Getting Started
Why read docs when you can just read the code?
Something needs fixing? Want to add a new feature?
Creating an issue documents changes to incorporate and lets everyone know what you're working on.
Here's an example of a well-documented issue.
Using a terminal user interface (TUI) Git porcelain is highly encouraged to manage your commits, branches, staging areas, stashes, and much more. These are common occurences as we do Trunk-Based Development.
It's also significantly easier to resolve merge conflicts, cherry-pick commits between branches, squash them, amend a few commits back, checkout a specific commit, stage in hunks, etc.
You'll be able to unlock the full power of Git without having to memorize all the commands.
Lazygit is included in the Nix shell. Run lazygit
to use it.
Learn the Fork and Pull Model
The Fork and Pull Model is used to merge external contributions into the project.
Our codebase is constantly changing and evolving. Keep your fork up-to-date with the main repository with gh repo sync cuhacking/2025
.
See Knowledge Base - Learn Git and for resources.
Check Project Status
See what we're up to on the project board linked in the navbar.
Pick an Issue
Comment on an issue on the project board that you're interested in to be assigned, or create one for yourself.
Alternatively, you can also look at the open issues and see if there's anything that you can help with which interests you.
Make sure to let us know that you're interested in working on an issue by commenting on it.
Create a Branch
Branch from main
with the following name format:
yourname/<issue-type>/<issue-number>-<issue-name-kebab-cased>
.
Your branch must be named the same as the issue, without the scopes.
For example, the branch for issue #1 titled 'feat(portal): add login page' would be:
johndoe/feat/1-add-login-page
.
See Conventional Branch to learn more.
Commit Changes with Conventional Commits spec
See Conventional Commits to learn more.
Create Draft PR
Mark Draft PR Ready for Review
Implement Feedback
Volunteer meetings 📆
Meet the team, learn about the project, get the latest updates, and ask any questions you may have regarding cuHacking at our meetings. View our calendar.
Don't forget to join the community server as well.