Table of Contents
- Contributing & Working Conventions
- For outside contributors 🙌
- Daily workflow (author)
- Git conventions
- Code standards
- Markdown standards
Contributing & Working Conventions¶
This file serves two audiences: the author's daily workflow conventions and how outside contributors can help.
For outside contributors 🙌¶
This is a personal learning journal, but corrections and suggestions are very welcome — they make it a better resource for everyone.
- Found a factual error in a note or cheatsheet? Open an issue with the
type: docslabel, or send a PR. - Have a better idiom or a clearer explanation? PRs welcome — keep the teaching tone.
- Questions / "how did you...?" Use Discussions, not issues.
- Please be kind and constructive. By contributing you agree your contributions are MIT-licensed.
Daily workflow (author)¶
./scripts/new-day.sh— scaffoldsjournal/month-NN/day-NNN.mdfrom the template.- Follow
ROADMAP.mdfor the day. Write code in the matching folder. - Fill the day note completely (especially Mistakes, Active Recall, Reflection).
- Update
LEARNING_LOG.md(one line) andPROGRESS.md. - Commit (see below). End each week/month with the review template + tag.
Git conventions¶
Branching¶
main— always green (CI passes). Daily notes can commit straight tomain.- Feature branches for projects:
project/<name>,exercise/<topic>,docs/<thing>. - Open a PR into
mainfor anything non-trivial so CI runs and you practice reviews.
Commit messages — Conventional Commits¶
| Type | Use for |
|---|---|
feat |
new code/example/feature |
fix |
bug fix |
docs |
notes, journal, README, cheatsheets |
test |
adding/altering tests |
refactor |
restructuring without behavior change |
chore |
tooling, deps, scaffolding |
perf |
performance work |
style |
formatting/lint only |
Scopes: examples, exercises, projectNN, journal, interview, cheatsheets, ci, repo.
Examples:
feat(examples): demonstrate slice append aliasing
docs(journal): day 012 — strings, runes, and bytes
test(project01): table-driven tests for todo store
chore(ci): add golangci-lint workflow
Tags & releases¶
- Tag the end of each month:
git tag -a v0.N.0 -m "Month N complete: <theme>". - Write release notes from the CHANGELOG monthly block. Capstone =
v1.0.0.
Contribution graph & commit attribution¶
For the daily commits to register on the GitHub contribution graph, the commit author email must be linked to the GitHub account and the commit must land on the default branch (main). Both are already set up here.
- Author identity is set per-repo (so it can't drift):
git config user.name "nabin747"
git config user.email "nabinshrestha747@gmail.com" # verified on the GitHub account
If you'd rather not expose a real email in public history, use the account's no-reply address instead — it still links to your profile:
Verify attribution after pushing: on GitHub the commit should show your avatar/username, or via API gh api repos/nabin747/go-from-zero/commits --jq '.[0].author.login' should print nabin747 (not null).
-
Private repo visibility. This repo is private, so the green squares are hidden from other people by default (you always see your own). To show them publicly — anonymized; viewers see the activity, not the repo — enable Settings → Profile → "Include private contributions on my profile" (https://github.com/settings/profile). There's no API for this toggle.
-
One real commit per study day. The graph fills in honestly from the daily workflow — don't backdate commits (
GIT_AUTHOR_DATE/GIT_COMMITTER_DATE) to manufacture a streak. A real, steady history is the portfolio signal; a faked one is a liability if anyone looks closely.
Code standards¶
gofmt/goimportsclean;go vet ./...andgolangci-lint runpass.- Idiomatic per Effective Go and the Google Go Style Guide.
- Tests for non-trivial code; race-clean (
go test -race). - Each project folder has its own
README.mdand (where applicable)go.mod.
Markdown standards¶
See docs/STANDARDS.md. In short: one H1 per file, ToC for long docs, relative links, fenced code blocks with language, mermaid for diagrams, every directory has a README.md index.
⬅ README