Improve git flow on this project #39
Labels
No labels
blocked
duplicate
high priority
needs
approval
needs
criteria
needs
estimate
needs
tests
question
step
doing
step
review
step
testing
step
todo
step
uat
type
admin
type
alert
type
bug
type
change
type
defect
type
dependencies
type
development
type
documentation
type
epic
type
idea
type
incident
type
investigation
type
spike
type
story
type
tests
won't fix
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
RabbitLabs/calculator#39
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Story Points: 3
Summary
Align Calculator’s Git flow and Forgejo Actions CI so feature work integrates on
develop, production fixes usemain, staging builds run only fromrelease/*andhotfix/*, and hotfixes are merged back through the release lines.Acceptance Criteria
AS a contributor
GIVEN I am starting new feature work
WHEN I create a working branch
THEN it is based on
developand named with afeature/prefix (e.g.feature/11-forgejo-actions)AS a contributor
GIVEN I need an urgent production fix
WHEN I create a working branch
THEN it is based on
mainand named with ahotfix/prefixAS a release owner
GIVEN completed work on
developshould be staged and testedWHEN we begin a staging cycle
THEN a
release/{semver}branch is cut fromdevelopfor hardening and QA before productionAS CI/CD
GIVEN a change is pushed to the repository
WHEN the branch is
release/*orhotfix/*onlyTHEN the staging workflow (
.forgejo/workflows/stage.yml) runs and produces the stage build artifact (e.g.vyxcalc)AS CI/CD
GIVEN a change is pushed to the repository
WHEN the branch is
developormainTHEN the staging workflow does not run
AS CI/CD
GIVEN workflow definitions currently exist on
cursor/11-forgejo-actionsWHEN this issue is implemented
THEN the Forgejo Actions workflow files are updated on
developwith staging triggers restricted as aboveAS a developer integrating incomplete user-facing behaviour
GIVEN a story may ship to
developbefore it is ready for all usersWHEN a feature flag is appropriate for that story
THEN we use Cargo feature flags (team default); flags are adopted when they make sense, not required on every user-facing change
AS a release owner handling hotfixes
GIVEN a
hotfix/*branch has been validated and shippedWHEN merges are completed
THEN changes flow
hotfix/*→main→develop→ openrelease/*branches as applicableAS a release owner merging to production
GIVEN a
release/*orhotfix/*line is readyWHEN changes land on
mainTHEN merges use the repository’s normal merge strategy (as on
release/0.1.0today), not a squash-only requirementScope
develop)mainOut of scope
cursor/*branches tofeature/*Notes
develop,main,release/0.1.0.stage.ymloncursor/11-forgejo-actionsalso triggered onmainanddevelop; this issue removes those triggers.Planning questions (needs/criteria)
I drafted acceptance criteria on the issue body from your bullets and what is in the repo today. A few decisions are ambiguous — please reply here so I can finalize criteria and move to needs/estimate.
Production branch name — The issue text says
master, but the protected production branch here ismain(nomaster). Should the flow usemain, or do you wantmastercreated/renamed?Staging workflow — On
cursor/11-forgejo-actions,stage.ymlbuilds/tests and uploads avyxcalcartifact. Is that the intended “deploy stage”, and should this issue include merging those workflows todevelopplus restrictingon.push.branchestorelease/*andhotfix/*only?Deliverable scope — Should “done” include documentation + PR templates only, or also CI workflow changes, branch protection updates, and cleaning up branch naming (
cursor/*vsfeature/*)?Feature flags — For this Rust CLI/GUI app, what should we standardize on (Cargo feature flags, compile-time cfg, runtime env/config file, other)? Must every user-facing story ship behind a flag, or only incomplete work integrated to
develop?Hotfix merge-back — After a
hotfix/*ships to production, should it merge back intodevelopand any openrelease/*branches?Release branch convention — Confirm naming (
release/{semver}only) and whether production merges are squash-only via PR as today onrelease/0.1.0.Once these are answered I’ll tighten the acceptance criteria, remove the question label, re-assign Smithy-bot, and advance to needs/estimate.
@Smithy-bot wrote in #39 (comment):
mainhotfix/*andrelease/*needs/criteria → needs/estimate
Thanks @Vylpes — incorporated your answers into the issue body (production on
main, stage CI only onrelease/*andhotfix/*, scope limited to workflow YAML ondevelop, Cargo feature flags when useful, hotfix merge-back path, normal merges on release lines).Next planning step: story point estimate.
Story point estimate (needs/estimate)
Estimate: 3
Scope is limited to Forgejo Actions workflow YAML on
develop(merge fromcursor/11-forgejo-actionsand restrictstage.ymlpush triggers torelease/*andhotfix/*only). Acceptance criteria are clear; no app code changes..forgejo/workflows/*ondevelopfrom the feature branchstage.yml/ artifact patternrelease/*,hotfix/*; excludedevelop/main)release/*orhotfix/*(and confirm no run ondevelop)Comparable effort to a small infra change; lower than multi-module CLI stories (5 pts) because deliverable is CI config only.
Advancing needs/estimate → needs/tests. Story Points set to 3 on the issue body.
needs/estimate complete (label transition blocked)
Story point estimate (3) is posted above and
Story Points: 3is on the issue body.I removed
needs/estimatebut could not apply the next planning label: the RabbitLabs org hasneeds/criteria(215),needs/estimate(216), andneeds/approval(272), but noneeds/test/needs/testslabel ID is available via the API (adding candidate IDs does not attach a tests label).Please either:
then re-assign Smithy-bot so the next run can write QA scripts and advance to
needs/approval.Assigning Vylpes until resolved.
questionlabel added.