Skip to content

Conversation

@NikolaMilosavljevic
Copy link
Member

Contributes to dotnet/source-build#4101

Enables publishing in VMR.

@NikolaMilosavljevic NikolaMilosavljevic requested review from a team, ViktorHofer and mmitche March 7, 2024 22:54
@NikolaMilosavljevic NikolaMilosavljevic requested review from a team and wtgodbe as code owners March 7, 2024 22:54
@ghost ghost added the area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework label Mar 7, 2024
<RelativeBlobPath>$(_UploadPathRoot)/Runtime/$(_PackageVersion)/%(Filename)%(Extension)</RelativeBlobPath>
</ItemsToPushToBlobFeed>

<ItemsToPushToBlobFeed Include="@(_VersionFileToPublish)">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was this not getting published before?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not in VMR build, no.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK - I see why - this is conditioned on PublishInstallerBaseVersion -

<_InstallersToPublish Include="$(ArtifactsDir)installers\**\*.version" UploadPathSegment="Runtime"
Condition=" '$(PublishInstallerBaseVersion)' == 'true' " />

The property is only set in CI:

/p:PublishInstallerBaseVersion=true

I should probably update the existing condition to also publish in VMR (i.e. when '$(DotNetBuildRepo)' == 'true')?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. When you see things like this, e.g. OS != Windows_NT or some kind of random flag that says SkipPublishingInstallers or something along those lines, it's that the repo's official build was publishing duplicates of assets between two legs. So Windows and OSX both produced Foo.Bar. The rule in our official builds is that when the merged manifest is generated, you can't have any duplicates from the input manifests.

This is not the rule in the VMR and we don't want to do this here. The asset selection that will happen at the merge point will be responsible for deciding which of a set of duplicates wins, and we'll add metadata to repo builds as necessary to feed the algorithm. This is in contrast to the official repo builds, which just avoid publishing altogether for duplicate assets.

So, much of your publishing.props changes in the repos can get a lot simpler (maybe go away altogether)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed with 9dc87de

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants