Uh oh!
There was an error while loading. Please reload this page.
Revert to classic GitFlow; stay on semver 10.x until a breaking change is needed - #653
Merged
Merged
Conversation
dennisdoomenforce-pushed
the
dennisdoomen-gitflow-adoption-impact
branch
3 times, most recently
from
August 23, 2026 18:41
d26d294 to
92f1843Comparedennisdoomen
marked this pull request as ready for review
August 23, 2026 18:42
ChrisonSimtian
approved these changes
Aug 23, 2026
…breaking change is needed This ADR replaces ADR-0004 (calendar versioning). It keeps ADR-0007's on-demand release-cut rule and ADR-0008's decision against a separate experimental branch, just renamed onto a develop/release-vX.Y/main layout. It also changes part of ADR-0001: GA tags move back to main. develop and main are renames of branches that already exist (main and release/v10.4), not new branches. The project stays on semver 10.x indefinitely -- every 10.x release is non-breaking, so Dependabot and Renovate upgrades within 10.x are always safe. v11 is reserved for whenever a breaking change actually becomes necessary, with no fixed date, and that move will go through fallout-migrate, the same tool already used for the NUKE-to-Fallout migration. Updates the amendment notes on ADR-0001, ADR-0004, ADR-0007, and ADR-0008, and the ADR index, so each ADR points to what replaced or kept its decision.
Rewrites AGENTS.md, CONTRIBUTING.md, README.md, and the release,
branching, conventions, experimental-API, obsolete-API, and roadmap
docs for the ADR-0009 model: develop (renamed from main; integration
trunk, preview builds) -> release/vX.Y (cut on demand per 10.x minor,
rc builds) -> main (renamed from release/v10.4; production, GA tags)
-> support/v10 (legacy, unaffected).
Also rewrites docs/branching-and-release.md for length and clarity --
merges duplicate release-flow examples into one walkthrough, drops
redundant tables, and tightens the branch-protection section.
- version.json: preview core "10.5.0-preview.{height}" (the next
10.x minor), updated publicReleaseRefSpec for main/release-v/
support-v, release branch template "release/v{version}".
- build/Build.cs: adds a DevelopBranch constant, repurposes
MainBranch as the production trunk, updates the ReleaseBranchPattern
and SupportBranchPattern comments and examples.
- build/Build.CI.GitHubActions.cs: the ubuntu-latest PR gate now also
targets develop. The cross-platform release-intent gate now also
targets main, since a PR into main is always a release/vX.Y GA merge
or a hotfix. build.yml and build-cross-platform.yml were regenerated
by the build, not hand-edited.
- build/Build.CodeGeneration.cs: tool-wrapper source links point at
develop, the new default branch.
- Hand-written workflows (publish-packages-preview.yml,
publish-packages-release.yml, build-skip.yml,
prune-preview-packages.yml): triggers and comments updated for
develop/main and the 10.x version examples.
The older support/v10 line (versions before 10.4) is not affected.
Renaming main to develop, renaming release/v10.4 to main, and making
develop the GitHub default branch are settings changes for the
maintainer to do separately. ADR-0009 notes this.The rename from ADR-0005 to ADR-0009 missed the bare "0005" mentions in docs/adr/README.md (the table's link label and three cross-reference notes) -- the earlier find-and-replace only matched "ADR-0005" and the old filename, not the bare number. Also moves the row to keep the table in ADR-number order.
dennisdoomenforce-pushed
the
dennisdoomen-gitflow-adoption-impact
branch
from
August 24, 2026 05:21
2f4ff4e to
c4f8e29CompareUh oh!
There was an error while loading. Please reload this page.
dennisdoomen added a commit
that referenced
this pull request
Aug 24, 2026
Where main and develop diverged on the same lines, keep develop's version: the branching/versioning-model docs and version.json reflect develop's GitFlow reversion (#653), and the migration-engine files (ScriptRewriter folded away, RewriteCsFilesStep/RewriteCsprojsStep, their specs) keep develop's refactor. docs/rebrand-plan.md stays deleted, matching develop. Non-conflicting changes from main (workflow tweaks, generated tool wrappers, AbsolutePath fix, etc.) are carried through as-is.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR reverts the branch and versioning model from calendar versioning back to classic GitFlow and semver. Unlike the version originally in this PR, it does not resume at v11 right away — the project stays on
10.xindefinitely, and defers a breaking major for as long as possible.experimentalbranch) as decisions, just renamed onto the new branch layout.mainbecomesdevelop(integration trunk, publishes preview builds); the currentrelease/v10.4becomesmain(production trunk, gets tagged for GA).release/vX.Yis cut fromdevelopon demand for every10.xminor (10.5, 10.6, ...), same as before — not just for an eventual major.10.xrelease stays non-breaking. Dependabot/Renovate users can always safely upgrade within10.x. v11 is reserved for whenever a breaking change actually becomes necessary — no fixed date — and that move will usefallout-migrate, the same tool already used for the NUKE-to-Fallout migration.support/v10line (versions before10.4) is untouched.AGENTS.md,CONTRIBUTING.md,README.md, the release/branching docs,version.json, the build config, and the CI workflow files to match.docs/branching-and-release.mdfor length — it was too long and repeated itself across several near-duplicate release-flow examples. It's about a third of its original length now, with one consolidated release walkthrough instead of three overlapping ones.Not done here
Renaming
maintodevelop, renamingrelease/v10.4tomain, and makingdevelopthe GitHub default branch are settings changes for you to do directly on GitHub. ADR-0009 notes this.Verification
./build.ps1 Compilesucceeds. The build regeneratedbuild.ymlandbuild-cross-platform.ymlitself.dotnet test tests/Fallout.Build.Specspasses, except 3 tests that were already failing before this change. They check for a hardcodedFallout-build/Falloutremote name and fail on any forked checkout.git merge-treeshows no conflicts against currentmain.🤖 Generated with Claude Code