Add vs18.9 to merge-flow config; retire vs18.3 - #14214
Conversation
Phase 1.3 of the 18.9 release (dotnet#14213). 1.3a: route vs18.8 -> vs18.9 and add vs18.9 -> main now that vs18.9 has been snapped. 1.3b: retire vs18.3. SDK band 10.0.2xx is past end-of-support (EoS May 2026 per the SDK/VS versioning lifecycle table) and VS 18.3 is out of support, so both lifecycles agree it is retired. vs18.0 (SDK 10.0.1xx, supported through the .NET 10 lifecycle) now forwards directly to vs18.6 so its fixes keep flowing. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Updates the repository’s forward-merge automation configuration to reflect the MSBuild 18.9 release branch creation and to retire an out-of-support release branch, keeping the servicing chain aligned with supported VS/SDK lifecycles.
Changes:
- Insert
vs18.9into the forward-merge chain so merges flowvs18.8 -> vs18.9 -> main. - Retire
vs18.3from the merge flow and rewirevs18.0to merge directly tovs18.6. - Add/adjust inline comments documenting the lifecycle rationale (SDK band support + VS support status).
|
Caution agentic threat detected Error Messages Quality — LGTM This PR modifies only
|
|
Caution agentic threat detected Build Infrastructure Care — LGTM ✅All checks pass:
The stale No issues found in the Build Infrastructure Care dimension.
|
|
Caution agentic threat detected 24-dimension review — 23/24 LGTM
Key verification points:
One NIT (non-blocking, left as inline comment on line 26): the retirement tombstone comment explains why vs18.3 was retired but not what routing it replaced. Adding
|
There was a problem hiding this comment.
Caution
agentic threat detected
Threat detection flagged this output in warn mode. Manual review is REQUIRED before any follow-up automation.
Code Clarity & Readability
Two concrete clarity issues; one minor note.
ISSUE 1 — Retirement tombstone omits the prior routing
// vs18.3 (SDK 10.0.2xx) retired 2026-06: SDK band 10.0.2xx out of support (EoS May 2026) and VS 18.3 out of support.Concrete scenario: A future maintainer is asked to re-add vs18.3 if its support window is extended. Reading the config, they see vs18.0 → vs18.6 and a retirement note for vs18.3 — but the note never states that vs18.0 previously targeted vs18.3. They cannot reconstruct the original chain (vs18.0 → vs18.3 → ...) from the file alone.
Suggested fix:
// vs18.3 (SDK 10.0.2xx) retired 2026-06: was the MergeToBranch target for vs18.0;
// SDK band 10.0.2xx out of support (EoS May 2026) and VS 18.3 out of support; vs18.0 now merges directly to vs18.6.ISSUE 2 — vs18.7 and vs18.8 silently omit SDK band info
"vs18.7": { ... } // "(VS)"
"vs18.8": { ... } // "(VS)"vs18.6 carries (VS, SDK 10.0.3xx) and the new vs18.9 entry carries (VS, SDK 10.0.4xx), establishing a clear pattern. vs18.7 and vs18.8 just say (VS).
Concrete scenario: A maintainer is diagnosing a regression in SDK 10.0.3xx builds and searches the config comments for the corresponding branch. The absence of any SDK annotation on vs18.7/vs18.8 makes it ambiguous whether those branches have no dedicated SDK band (a VS-only release) or whether the band was simply not recorded. Either answer affects where they look for the fix.
If vs18.7 and vs18.8 genuinely have no SDK band, make that explicit:
// Automate opening PRs to merge msbuild's vs18.7 (VS only, no dedicated SDK band) into vs18.8 (VS)Minor note — (SDK X, VS) vs (VS, SDK X) ordering is inconsistent
vs17.12 and vs17.14 put SDK first; vs18.6 and vs18.9 put VS first. This is cosmetic and has no operational impact, so not flagging as an issue — but worth normalising in a follow-up if the file is touched again.
Generated by Expert Code Review (on open) for #14214 · 1.5K AIC · ⊞ 32.1K
Phase 1.3 of the 18.9 release (#14213).
1.3a — add
vs18.9to the merge chainvs18.9was snapped frommainon 2026-06-30. This routesvs18.8 -> vs18.9and addsvs18.9 -> mainso forward-merge automation reachesmainthrough the new release branch.1.3b — retire
vs18.3Applying the combined SDK + VS retirement rule (retire only when both lifecycles are out of support):
10.0.2xx(paired withvs18.3) is past end-of-support — EoS May 2026 per the SDK/MSBuild/VS versioning lifecycle table.Both agree, so
vs18.3is removed andvs18.0now forwards directly tovs18.6.vs18.0(SDK10.0.1xx) stays in the chain because.1xxbands are supported throughout the .NET 10 lifecycle, so its fixes keep flowing forward.Resulting chain:
vs16.11 -> vs17.8 -> vs17.11 -> vs17.12 -> vs17.14 -> vs18.0 -> vs18.6 -> vs18.7 -> vs18.8 -> vs18.9 -> main