Allow default branding to be set by the VMR orchestrator#3574
Allow default branding to be set by the VMR orchestrator#3574ViktorHofer merged 22 commits intomainfrom
Conversation
Removed branding comment from Directory.Build.targets.
There was a problem hiding this comment.
Pull request overview
This PR refactors the branding/versioning mechanism for the VMR (Virtual Monolithic Repository) to allow the orchestrator to set default branding values. The changes introduce a new property RepoDotNetFinalVersionKind that can be set to control how assets are branded, replacing the previous direct use of DotNetFinalVersionKind.
Key changes:
- Introduced four branding modes:
repodefault(uses repo defaults),unstable(repo-specified suffix),preview(.final suffix), andrelease(no suffix) - Refactored build scripts (PowerShell and Bash) to use the new
RepoDotNetFinalVersionKindproperty instead of directly settingDotNetFinalVersionKind - Updated pipeline configuration to support the new branding options with clearer descriptions
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| repo-projects/Directory.Build.targets | Implements the logic to map RepoDotNetFinalVersionKind values to DotNetFinalVersionKind MSBuild properties |
| eng/pipelines/templates/variables/vmr-build.yml | Maps pipeline parameter values to branding types and fixes typos in parameter descriptions |
| eng/pipelines/templates/jobs/vmr-build.yml | Conditionally sets the branding argument only when a branding type is specified |
| eng/pipelines/official.yml | Updates the parameter values and descriptions with the new branding options |
| eng/build.ps1 | Simplifies branding logic to use RepoDotNetFinalVersionKind property and updates help text |
| build.sh | Removes the SetBranding function and simplifies branding handling to use RepoDotNetFinalVersionKind |
| eng/Versions.props | Sets default RepoDotNetFinalVersionKind value and documents the allowed values |
| README.md | Removes outdated RTM branding example from documentation |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <[email protected]>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@mmitche the PR is now ready. I also added a clear notice for distro maintainers that explicitly passed |
|
@ellahathaway regarding https://dev.azure.com/dnceng/internal/_workitems/edit/8757, distro maintainers don't need to pass that argument in anymore as the default is now correct. Someone would only want to pass this argument in explicitly when wanting to change the default (i.e. testing stable builds in the RC timeframe) which is quite uncommon. Do we want to send out another announcement or update the existing one? We should wait though until the backport PRs are merged into 10.0.1xx and 10.0.2xx. |
I don't think we should backport this to 10.0.1xx as that would be a breaking change. |
mthalman
left a comment
There was a problem hiding this comment.
It's not clear to me how repodefault actually will cause different behavior depending on where we're at in the release cycle. So when we're in servicing, how does repodefault know to use release branding?
|
When stabilizing for previews,
I really think we should backport to 1xx. The breaking change will be clearly visible (the build fails) and the error message indicates how to react. I want to include this as part of many UX build entry point changes that we did up to .NET 10 so that distro partners don't need to condition based on 1xx vs 2xx/main. cc @tmds for input |
|
cc @dotnet/distro-maintainers for visibility |
@ViktorHofer - would it be feasible to support a migration? What I mean by that is for one servicing release we support both the new and old options so that folks can migrate at their convenience. Then the next servicing release we make the actual breaking change and remove the old options? I realize the transition period may be confusing with the option names but we could choose to support the old options as undocumented. |
The announcement templates referenced in that work item served as a temporary workaround to address dotnet/release#1707 for the 10.0 GA release. As a result, the announcement templates were not permanently updated to include information about using the |
Ok. I was saying that with this change, distro partners don't need to pass |
|
With my distro maintainer hat on, I never really understood the role of the branding argument. Requiring If this PR is switching to automatically building the right thing, then a big 👍 from me. I am even okay with the "build break" for 10.0 as this makes it easier to build the right thing correctly by default, and the error on using |
Yes, that's what this PR does 👍 While there's still the |
Co-authored-by: Matt Mitchell <[email protected]>
Co-authored-by: Copilot <[email protected]> Co-authored-by: Matt Mitchell <[email protected]>
Co-authored-by: Copilot <[email protected]> Co-authored-by: Matt Mitchell <[email protected]>
Fixes #3345