feat(ci): trunk-based migration — main as the only long-lived branch#10
Merged
Merged
Conversation
Replaces the GitFlow branch model (develop/release/*/master/hotfix/*) with trunk-based — single `main` branch, short-lived feature/bugfix/ chore branches off main, every merge can publish a release. Build code: - Build.cs: drop MasterBranch/DevelopBranch/ReleaseBranchPrefix/ HotfixBranchPrefix constants, replace with MainBranch = "main". Update IsPublicRelease and IPublish.Publish.Requires logic to check IsOnMainBranch instead of master/release/develop. - Build.cs: absorb MajorMinorPatchVersion + MilestoneTitle + Major parameter from the deleted Build.GitFlow.cs. - Build.CodeGeneration.cs, Build.Announce.cs: master → main references. - Build.GitFlow.cs: DELETED. Contained Milestone/Changelog/Release/ Hotfix targets that were entirely GitFlow-specific. - Build.CI.GitHubActions.cs: branch filters main-ified, paths-ignore added for docs/images/markdown. Alpha-deployment workflow attribute removed; AlphaDeployment constant retained with a comment because several code paths (Test.OnlyWhen, Pack.PackSettings, Publish.Requires, DeletePackages) still reference it — they evaluate to false until the follow-up Nerdbank/release PR brings a workflow back under a new name. Workflows: - ubuntu/windows/macos-latest.yml: regenerated to match attributes. `branches-ignore: [main]` for push, `branches: [main]` + paths-ignore for pull_request. - alpha-deployment.yml: removed. Docs: - CLAUDE.md: updated branching section to describe trunk-based. Sequencing note: the default branch on GitHub (develop) has NOT been renamed yet. Recommended ceremony: 1. Merge any in-flight PRs against develop (so their CI runs cleanly) 2. Merge this PR into develop 3. Rename develop → main on GitHub (auto-retargets remaining PRs) 4. Set main as default branch (automatic with the rename) Between steps 2 and 3 no CI will trigger for new PRs, because the workflows on develop now point at main. Keep the gap short. Public release publishing is currently inert (no workflow invokes Publish). The next PR adds Nerdbank.GitVersioning and a real release workflow. Refs #7 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Removes the JetBrains Qodana static-analysis workflow and its artifacts. It has been failing on every run on this fork because the QODANA_TOKEN secret belonged to the previous maintainer's account. Files removed: - .github/workflows/code-quality.yml — the JetBrains/qodana-action job - qodana.yml — local Qodana config - qodana.sarif.json — 6.9MB baseline of suppressed findings from the previous maintainer's scans The security-scanning gap will be filled by CodeQL — see #8. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
chore(ci): drop Qodana
3 tasks
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 free
to 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
Replaces GitFlow (`develop` / `release/` / `master` / `hotfix/`) with trunk-based: a single `main` branch, short-lived feature/bugfix/chore branches off main, every merge can publish a release.
Stacked on top of #9 (CI purge). Change the base back to `develop` once #9 is merged. The non-Build.cs diff against current develop will look smaller after that.
Refs #7 (CI roadmap).
What's in this PR
Build code
Workflows
Docs
Cutover ceremony (manual, after merging this PR)
Between steps 2 and 3 no CI triggers for new PRs because the workflows on develop now point at main. Keep the gap short — do the rename immediately after the merge.
Known follow-up (next PR)
Test plan
🤖 Generated with Claude Code