Table of Contents
- 🐙 GitHub Workflow, Project Board, Labels & Milestones
- Branch strategy
- Commit convention
- GitHub Project board design
- Issue label strategy
- Milestone strategy
- Releases & tags
- Pull requests & code review
- Automation summary (see
.github/workflows/)
🐙 GitHub Workflow, Project Board, Labels & Milestones¶
The professional Git/GitHub process this repo runs on. Mirrors CONTRIBUTING.md and is enforced by the automation in .github/.
Branch strategy¶
main— protected, always green. Daily notes commit directly.- Short-lived branches for substantive work:
project/05-grpc,exercise/concurrency,docs/adr-0003. - Open a PR → CI runs (lint, links, spell, Go tests) → self-review → squash-merge.
Commit convention¶
Conventional Commits: type(scope): summary. Full table in CONTRIBUTING.
GitHub Project board design¶
Create a Project (board view) named "Go From Zero — 180 Days" with columns:
- Custom fields:
Month(single-select 1–6),Difficulty(🟢🟡🔴),Type(note/project/exercise/interview),Confidence(number 1–5). - Views: Board (by status), Table (by Month), Roadmap/Timeline (the 6 months).
- Automation: auto-add issues with label
type: *; move to Done when issue closes. - Daily-log issues are created from the issue form and land in This Week.
Issue label strategy¶
Defined in .github/labels.yml (sync with a label-sync action). Namespaced:
| Namespace | Labels | Purpose |
|---|---|---|
type: |
note, project, exercise, docs, bug, refactor | what kind of work |
area: |
concurrency, web, db, grpc, testing, devops, language | topic |
month: |
month-1 … month-6 | which phase |
difficulty: |
easy, medium, hard | effort/challenge |
status: |
in-progress, blocked, done | live state |
good first issue, help wanted |
— | inviting contributors |
Milestone strategy¶
One milestone per month (or per week for finer tracking):
| Milestone | Due | Definition of done |
|---|---|---|
M1 — Fundamentals |
end of month 1 | days 1–28 logged, CLI todo shipped, v0.1.0 tagged |
M2 — Stdlib & Testing |
end of month 2 | URL shortener tested + CI, v0.2.0 |
M3 — Concurrency |
end of month 3 | crawler race-clean, v0.3.0 |
M4 — Web/DB |
end of month 4 | REST API + Postgres, v0.4.0 |
M5 — gRPC/Arch |
end of month 5 | gRPC service + ADRs, v0.5.0 |
M6 — Capstone |
end of month 6 | SaaS backend deployed, v1.0.0 |
Releases & tags¶
git tag -a v0.N.0 -m "Month N complete: <theme>"then push tags.- Create a GitHub Release per tag; paste the month's CHANGELOG block + a short retrospective.
Pull requests & code review¶
- Use the PR template checklist.
- Even solo, review your own diff before merging — it's deliberate practice for real reviews.
- Let CI gate the merge. Resolve Dependabot PRs weekly.
Automation summary (see .github/workflows/)¶
| Workflow | Trigger | Does |
|---|---|---|
go-ci.yml |
push/PR on Go files | vet, lint, test -race, coverage |
markdown-lint.yml |
push/PR | markdownlint |
link-check.yml |
weekly + PR | broken-link detection |
spell-check.yml |
push/PR | spell check |
toc.yml |
push to main | regenerate ToCs |
labeler.yml |
PR | auto-label by path |
dependabot.yml |
weekly | dependency updates |