Cheat sheet · Career
Open source cheat sheet
Opens with creditsFor developers who want to contribute to open source, from a first pull request to mentored programmes and maintaining a project of their own. Use it to revise how projects are run, the Git workflow contributors use, and the habits that get changes merged.
Chapters
6 chapters · 51 concepts
1How open source worksLicences, maintainers, contributing guides and codes of conduct. Most rejected first pull requests break a norm, not a test.9 concepts
- 1Open source licenceThe legal terms that let anyone use, change and share a project's code.
- 2Permissive licenceA licence that allows almost any use, including in closed source products, as long as you keep the copyright notice.
- 3Copyleft licenceA licence requiring that modified versions you distribute are shared under the same licence.
- 4MaintainersThe people who review and merge changes, triage issues, cut releases and set a project's direction.
- 5Project governanceHow a project makes decisions: a single lead (sometimes called a BDFL), a core team or steering committee, or a foundation such as the Apache Software…
- 6Contributing guideA file, usually
CONTRIBUTING.md, explaining how to set up the project, which issues to pick, coding style, tests to run, commit rules and how pull requests… - 7Code of conductA document setting expected behaviour in a project's spaces and how to report problems.
- 8CLA and DCOAgreements some projects require before merging.
- 9Why people contributeCommon reasons include fixing a bug that affects you, learning from experienced reviewers, building a public track record, and companies maintaining software…
9 in this chapterOpen this chapter2Git and GitHub for contributorsWorking in a repository you do not own: forks, branches, keeping in sync with upstream, rebasing and readable commits.10 concepts
- 1ForkYour own copy of someone else's repository on GitHub, where you can push branches without write access to the original.
- 2Origin and upstreamConventional remote names:
originpoints to your fork,upstreampoints to the original project you forked from. - 3Feature branchA short-lived branch created from the latest upstream main for one change, named after what it does.
- 4Keeping a fork in syncBringing new commits from upstream into your fork and branches, by fetching upstream and rebasing or merging.
- 5RebaseReplaying your branch's commits on top of a newer base, such as the latest upstream main, which rewrites their history.
- 6Merge conflictWhen Git cannot combine changes automatically because two commits edited the same lines, and it marks the file for you to resolve by hand.
- 7Good commit messageA short imperative subject line of about 50 characters, a blank line, then a body explaining what changed and why.
- 8Conventional CommitsA commit message convention with a type prefix such as
feat:,fix:ordocs:, an optional scope, andBREAKING CHANGEfor incompatible changes. - 9Squashing and force-pushingCombining several commits into one, for example with interactive rebase, then updating your remote branch with a force push because history changed.
- 10Everyday Git commandsThe commands used constantly while contributing:
status,diff,add -p,stash,log --onelineandrestore.
10 in this chapterOpen this chapter- Your first merged pull requestGet a small change merged. Documentation, tests and labelled beginner issues are where maintainers expect newcomers.9 conceptsOpens with credits
- Becoming a regular on one projectCommit to one project for months: read the code, triage issues, review others and join discussions until maintainers know your name.7 conceptsOpens with credits
- Mentored programmesFixed-length, usually paid projects with maintainers as mentors. Learn the timelines, pick early and back your proposal with real contributions.8 conceptsOpens with credits
- Maintaining your own projectRun a small project the way good maintainers do: a clear README, a licence, CI, templates, releases and a path for contributors.8 conceptsOpens with credits
- 7Glossary, A to ZEvery concept in the sheet and the smaller terms it uses, in one list.143 terms
About this sheet
First contribution to programmes.
Related on Sefism
Picked from the other libraries by shared topics.
Checklists
See all- Open Source Contribution ChecklistMake your first and next open source contributions the way maintainers expect: pick a healthy project, read the rules, claim an issue, fork, open a clean pull request and handle review.
- GitHub Profile Checklist for DevelopersCheck your GitHub profile part by part: name, photo and bio, profile README, pinned repositories, project READMEs, licences, contribution graph, commit email and account security.
Project structures
See all- Python package and CLI project structureA command line tool published to PyPI, laid out the way the Python Packaging User Guide and uv recommend: a src layout, one pyproject.toml for metadata and every tool, a thin Typer CLI over plain, testable modules, and releases uploaded by GitHub Actions with trusted publishing. The example is mdlinks, a tool that finds broken links in Markdown files. For students who have written Python scripts and want to ship one that strangers can
pip install. - TypeScript npm library project structureA small, typed npm package (a retry helper) built the way modern libraries ship in 2026: TypeScript source in
src, bundled by tsdown intodistwith type declarations and anexportsmap, tested with Vitest, checked with publint and Are the Types Wrong, versioned with Changesets and published from CI with npm provenance. For students who want to publish their first package, and for anyone whose package works locally but breaks for users. - VS Code extension project structureA TypeScript extension for Visual Studio Code, built from the official Yeoman generator with esbuild bundling. The example, TODO Lens, finds TODO comments and shows them in a tree view, with commands, settings and editor decorations. The tree grows from the generator's Hello World into commands, providers and editor-free core logic, then tests on three operating systems, publishing to the Marketplace and Open VSX, and a webview with a strict security policy. For students who use VS Code every day and want to build a tool other developers install.
Career questions
See all- How do I learn to read a large codebase when I can handle small projects but get lost in real ones?Nobody reads a large codebase from top to bottom. You follow one real path through it, such as a single request or button click, from entry point to database and back. Map what you find, ignore everything off that path for now, and repeat with a different path. Understanding builds in layers, and a first small change teaches more than a week of reading.
- Should I spend my free time building projects, solving DSA, contributing to open source or networking?Not one of them: a weighted mix that changes with your stage. Early on, lean on projects and fundamentals; closer to applying, shift time towards problem solving and networking. Open source is valuable but optional. Decide the split weekly and review it monthly against what is actually blocking you.
Work with me
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
- 1:1 Mentorship
- Fresh Graduate Mentorship
- Career Guidance
Brand deals, promos and partnerships: tauseeffayyaz@gmail.com