Skip to content

Conversation

@mthalman
Copy link
Member

Contributes to dotnet/source-build#4975

In order to simplify the experience for distro maintainers, an officialBuildId field will be added to the release manifest file included in VMR releases. This value can be used as input to the build to automatically set the OfficialBuildId MSBuild property. Since the release manifest is already capable of being provided as input to the VMR's build script for the purposes of source link information, these changes just build on top of that by also extracting the officialBuildId value.

If the OfficialBuildId property is already explicitly defined as an argument to the build script (e.g. /p:OfficialBuildId=X), that value will override whatever was defined in the release manifest if one was provided.

cc @dotnet/distro-maintainers

@MichaelSimons
Copy link
Member

If the OfficialBuildId property is already explicitly defined as an argument to the build script (e.g. /p:OfficialBuildId=X), that value will override whatever was defined in the release manifest if one was provided.

I was thinking this was going to be added as an option to the script. It feels inconsistent that --source-repository and source-version exist as options but there isn't one for build id. I expect most distro maintainers will not be able to use the -release-manifest as they will need to point to their source-repository.

@mthalman
Copy link
Member Author

If the OfficialBuildId property is already explicitly defined as an argument to the build script (e.g. /p:OfficialBuildId=X), that value will override whatever was defined in the release manifest if one was provided.

I was thinking this was going to be added as an option to the script. It feels inconsistent that --source-repository and source-version exist as options but there isn't one for build id. I expect most distro maintainers will not be able to use the -release-manifest as they will need to point to their source-repository.

Do we really need an explicit option for it when it can already be passed as /p:OfficialBuildId=X?

@MichaelSimons
Copy link
Member

Do we really need an explicit option for it when it can already be passed as /p:OfficialBuildId=X?

My concern is more about the UX. How will distro-maintainers discover this?

@ViktorHofer
Copy link
Member

ViktorHofer commented Apr 28, 2025

My assumption is that with stable versioning (which is planned for P5), you would rarely want to pass an OfficialBuildId in. Based on that, the UX for P4 probably doesn't need to be perfect.

@MichaelSimons
Copy link
Member

My assumption is that with stable versioning (which is planned for P5), you would rarely want to pass an OfficialBuildId in. Based on that, the UX for P4 probably doesn't need to be perfect.

Recapping an offline discussion: My concern is if non-shipping packages will participate in stable versioning. If they don't, there will be a need to set the OfficialBuildId. @ViktorHofer and @mmitche are working through these details. I agree with the earlier suggestion that we should merge this PR as is and log a follow-up issue to circle back on the open UX question here once the stable versioning questions are resolved/implemented.

@mthalman mthalman merged commit 3f1ec42 into dotnet:release/10.0.1xx-preview4 Apr 28, 2025
39 checks passed
@mthalman mthalman deleted the officialbuildid-buildscript branch April 28, 2025 18:54
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.

3 participants