Skip to content

Support prerelease versions in the release and CI workflows - #368

Merged
Vulthil merged 1 commit into
mainfrom
preview-train-release-support
Aug 1, 2026
Merged

Support prerelease versions in the release and CI workflows#368
Vulthil merged 1 commit into
mainfrom
preview-train-release-support

Conversation

@Vulthil

@Vulthil Vulthil commented Aug 1, 2026

Copy link
Copy Markdown
Owner

Summary

Groundwork for a preview/net11 release train: a long-lived branch whose version.json carries a -preview.{height} prerelease tag and whose packages additionally target net11.0, released through the existing Release workflow. These are the main-side changes; they are inert for stable releases.

  • release.yml: gh release create passes --prerelease for versions with a prerelease tag, so a preview never becomes the repo's "Latest" release. The docs, mark-api-shipped, and propagate-baseline-to-main jobs skip prerelease versions: the site default must never point at a preview, the PublicAPI freeze + PackageValidationBaselineVersion bump are stable-release rituals, and propagate_baseline.py only ever raises — a 1.3.0-preview.N out-ranks the latest stable and would poison main into validating against a non-stable baseline. Also corrects the PublicRelease=true comment: it drops the non-public -g<sha> suffix; a prerelease tag from version.json survives it.
  • ci.yml: preview/** branches get CI (push + PR), and the pack/upload/publish-preview conditions now include refs/heads/preview/, so merges to a preview train branch publish prerelease packages to GitHub Packages the same way main merges do. Coverage badge/artifact side effects stay main-only.
  • MessageConfiguration.DefaultUrnFromFullName: string.LastIndexOf(char)AsSpan().LastIndexOf(char). .NET 11 adds a LastIndexOf(char, StringComparison) overload, so CA1307 (via AnalysisMode=All + TreatWarningsAsErrors) fails the net11.0 compile; the span overload is ordinal by construction on every TFM and keeps the preview branch source-identical to main. A string-overload fix (LastIndexOf(".", StringComparison.Ordinal)) would trip CA1866 instead.

Verification

  • Both workflows parse as YAML; conditions reviewed against stable-release dispatches from main and servicing branches (no behavior change: version has no -, so all guards stay true, and preview/** filters don't affect existing refs).
  • Preview-train changes (net11.0 TFM in src, SDK 11.0.100-preview.6, 1.3.0-preview.{height}) applied locally on top of this branch: full solution builds with 0 warnings/0 errors, dotnet pack passes package validation against the 1.2.0 baseline including the new net10.0↔net11.0 ApiCompat pair with no new suppressions, and all 24 nupkgs contain lib/net11.0 with correct per-TFM dependency groups.
  • This branch alone on SDK 10.0.302: full solution builds with 0 warnings/0 errors; Vulthil.Messaging tests pass 116/116.

Backport to v1.0: no

@Vulthil
Vulthil merged commit e6a39e2 into main Aug 1, 2026
7 checks passed
@Vulthil
Vulthil deleted the preview-train-release-support branch August 1, 2026 19:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant