70 lines
3.5 KiB
Markdown
70 lines
3.5 KiB
Markdown
# 02 — Branching/Release — Questions
|
||
|
||
Purpose: Align on a clean, sustainable branch and release strategy before any changes. We will not implement until you approve.
|
||
|
||
Context: You suggested moving active work to a `WIPhax` branch and keeping `main` limited to non-code assets (docs/collab/.gitea). Below are options and tradeoffs to decide together.
|
||
|
||
## Goals & Constraints
|
||
1) Primary goals: What are the top 3 goals driving this change? (e.g., keep `main` always pristine, minimize merge noise, avoid half-baked code on main, simplify consumption by other projects, etc.)
|
||
|
||
main pristine
|
||
avoid half-baked code on main
|
||
simplify consumption by other projects
|
||
|
||
|
||
2) Stability bar: Should `main` be “always green + release-ready” with protected branch/required CI? Or “docs-only” as you proposed?
|
||
|
||
"always green + release ready"
|
||
|
||
3) Consumption: Will external automation/scripts rely on cloning `main` to bootstrap? If yes, what assets must be present on `main` (templates, prompts, wrapper) to keep bootstrapping simple?
|
||
|
||
No. I don't believe this will ever be automatically cloned to bootstrap. I expect that to be only done by a human. I can't control what people do of course, it's a public repo.
|
||
|
||
## Branching Models (pick one or adjust)
|
||
4) Trunk-based (recommended):
|
||
- `main` = always green, release-ready. All commits pass CI (Docker) and TDD.
|
||
- Work happens on short-lived feature branches `feat/*`, `fix/*` merged via PR.
|
||
- Optional long-lived integration branch `next` for batching risky changes.
|
||
5) WIP branch variant:
|
||
- `main` = release-ready only; heavy ongoing work on `WIPhax` (or `wip/*`), merged back via PR when green.
|
||
- Risk: drift between `WIPhax` and `main`, elevated merge pain if long-lived.
|
||
6) GitFlow:
|
||
- `main` for releases; `develop` for integration; feature branches; release/hotfix branches.
|
||
- Heavier process; likely overkill unless multiple contributors and scheduled releases.
|
||
|
||
Trunk based sounds perfect
|
||
|
||
## Repo Content Policy
|
||
7) What exactly belongs on `main`? Options:
|
||
- A) Full repo (code + prompts + templates + docs) — but always green.
|
||
- B) Everything except code/prompts (your suggestion) — use branches/tags for code.
|
||
- C) Minimal bootstrap subset (AGENTS seeds, prompts/global, templates/_shared) + docs.
|
||
Please choose and list mandatory directories for `main`.
|
||
|
||
A
|
||
|
||
8) If B or C: where do code/prompts live (branch names/tags)? How will downstream projects fetch them reliably?
|
||
|
||
## CI/Gitea Protections
|
||
9) Protect `main` with required checks (Docker tests) and linear history? Approve?
|
||
yes I approve
|
||
|
||
10) Require PR reviews and enforce Conventional Commits? Approve?
|
||
|
||
Yes I approve
|
||
|
||
11) Tagging: continue `YYYY-MM-DD-HHMM`. Should `main` tags correspond only to release-ready points?
|
||
|
||
Hmmm.... I was using tags/releases as a kind of "hack" or "snapshots" and that's not the practice I want to have. Yes the tags should only be release-ready points.
|
||
|
||
## Migration Plan (once we choose)
|
||
12) Baseline selection: pick commit/tag for the new `main` baseline.
|
||
13) Branch ops: create `WIPhax`/`next`/`develop` as chosen; move ongoing TDD work there.
|
||
14) CI updates: confirm branch protections and required checks in Gitea.
|
||
15) Docs: add `docs/branching.md` describing the policy; update README.
|
||
|
||
Do you need anything from me for this section? It's statements not questions, but that plan looks good to me.
|
||
|
||
## Decision
|
||
16) Please pick one model (4/5/6) and option (7 A/B/C), then reply “Approved for Branching Plan” (or edit inline). I’ll draft `collab/plan/02-branching.md` for review.
|