Skip to content

Table of Contents

🐙 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:

📥 Backlog → 🗓️ This Week → 🔨 In Progress → 🔍 Review → ✅ Done
  • 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

README · Portfolio strategy