Every document filename now mirrors its lifecycle state with a status suffix (e.g., .draft.md, .wip.md, .accepted.md). No more bare .md for tracked document types. Also renamed all from_str methods to parse to avoid FromStr trait confusion, introduced StagingDeploymentParams struct, and fixed all 19 clippy warnings across the codebase. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
76 lines
2 KiB
Markdown
76 lines
2 KiB
Markdown
# Spike: Develop Branch Workflow
|
|
|
|
| | |
|
|
|---|---|
|
|
| **Status** | Complete |
|
|
| **Date** | 2026-01-25 |
|
|
|
|
---
|
|
|
|
## Question
|
|
|
|
How should we implement the develop branch workflow for Blue, and what's needed to enforce it consistently?
|
|
|
|
---
|
|
|
|
## Findings
|
|
|
|
### Current State
|
|
|
|
| Branch | Location | Purpose |
|
|
|--------|----------|---------|
|
|
| `main` | forgejo, origin | Only branch - contains all production code |
|
|
| `git-forge-integration` | forgejo | RFC 0013 feature branch |
|
|
| `mcp-workflow-guidance` | forgejo | RFC 0011 feature branch |
|
|
|
|
**Problem:** `blue_pr_create` defaults to `develop` base and rejects `main`/`master`, but no `develop` branch exists. Feature branches can't be merged.
|
|
|
|
### The Workflow Model
|
|
|
|
```
|
|
main (production releases only)
|
|
↑ merge when releasing
|
|
develop (integration branch)
|
|
↑ PRs merge here
|
|
feature branches (rfc/*, feature/*)
|
|
```
|
|
|
|
**Why this matters:**
|
|
- `main` stays stable - only receives tested, integrated code
|
|
- `develop` is where features integrate before release
|
|
- Prevents accidental direct commits to production
|
|
- Enables release management (develop → main when ready)
|
|
|
|
### What's Needed
|
|
|
|
1. **Create `develop` branch** from current `main`
|
|
2. **Push to forgejo**
|
|
3. **Update forgejo settings** - set default branch to `develop`
|
|
4. **Rebase existing feature branches** onto `develop`
|
|
5. **Add `blue_release_create`** tool for develop → main merges
|
|
|
|
### Tool Enforcement (Already Done)
|
|
|
|
`blue_pr_create` in `pr.rs:59-71`:
|
|
- Defaults base to `develop`
|
|
- Rejects `main`/`master` with helpful message
|
|
- This is correct - just needs the branch to exist
|
|
|
|
## Recommendation
|
|
|
|
**Proceed.** Create the `develop` branch now. This is a one-time setup:
|
|
|
|
```bash
|
|
# From main branch
|
|
git checkout main
|
|
git checkout -b develop
|
|
git push forgejo develop
|
|
|
|
# On Forgejo: Settings → Branches → Default Branch → develop
|
|
```
|
|
|
|
Then existing feature branches can create PRs targeting `develop`.
|
|
|
|
## Outcome
|
|
|
|
Proceed with implementation - create develop branch and update forgejo settings.
|