Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ArPow] NuGet.Client should publish source-build intermediate packages #11059

Open
crummel opened this issue Jul 21, 2021 · 7 comments
Open

[ArPow] NuGet.Client should publish source-build intermediate packages #11059

crummel opened this issue Jul 21, 2021 · 7 comments
Labels
Engineering Productivity Partner:DotNet Priority:2 Issues for the current backlog. Resolution:BlockedByExternal Progress on this task is blocked by an external issue. When that issue is completed this can proceed Type:Engineering product/infrastructure work/not a customer bug/feature/DCR

Comments

@crummel
Copy link

crummel commented Jul 21, 2021

NuGet Product Used

dotnet.exe

Product Version

NuGet client build process

Worked before?

No response

Impact

It's more difficult to complete my work

Repro Steps & Context

NuGet.Client now produces source-build intermediate packages (after NuGet/NuGet.Client#4105) but these aren't included in the manifest of binaries or published to BAR. To complete the product graph, we need to publish these with the non-source-built packages.

Related: dotnet/source-build#2310.

Verbose Logs

No response

@crummel
Copy link
Author

crummel commented Jul 21, 2021

@nkolev92 or @zivkan, is this something you'd be able to help us out with for Preview7?

@nkolev92
Copy link
Member

cc @aortiz-msft

@zivkan
Copy link
Member

zivkan commented Jul 21, 2021

@crummel how do other repos deal with package name + version collisions? I don't see how it's possible to publish both "source build" and "non source build" versions of the same package.

@zivkan zivkan added Type:Engineering product/infrastructure work/not a customer bug/feature/DCR Partner:DotNet Resolution:BlockedByExternal Progress on this task is blocked by an external issue. When that issue is completed this can proceed and removed Triage:Untriaged Type:Bug labels Jul 23, 2021
@zkat zkat added the WaitingForCustomer Applied when a NuGet triage person needs more info from the OP label Jul 26, 2021
@crummel
Copy link
Author

crummel commented Jul 28, 2021

We don't need the individual packages (NuGet.Versioning etc) from the source-build leg published, just the Microsoft.SourceBuild.Intermediate.nuget-client nupkg - that contains the source-built individual packages and arcade-powered source-build knows to look for and unpack that when it needs NuGet packages.

@zkat zkat removed the WaitingForCustomer Applied when a NuGet triage person needs more info from the OP label Jul 29, 2021
@zkat zkat added this to the Sprint 2021-08 milestone Jul 29, 2021
@zivkan
Copy link
Member

zivkan commented Aug 2, 2021

notes to implementer:

  1. I noticed the source build package is version 1.0.0, so I'm assuming we have to fix that and get the real product version, otherwise only the first BAR publish will succeed, and afterwards there will be version conflicts since the package id + version is already on the relevant feed.

  2. I think BAR publishing needs to be moved to a new job that happens after both source-build and Build_And_Unit_Test_NonRTM finish. source-build job needs to publish the nupkg as a pipeline/build artifact, and the new job should download all the nupkgs, then publish to BAR.

    • We could consider moving BAR publishing to the pipeline that copies our binaries to the fileshare. I also know now how we can make that pipeline source controled & yaml, if we're interested in making that effort. Frankly, I would like to see this, only do the builds in the build pipeline, and do all "publishing" (to bar and file share and the nuget-build feed)

@zivkan zivkan added the Priority:2 Issues for the current backlog. label Aug 2, 2021
@zivkan zivkan modified the milestones: Sprint 2021-08, Sprint 2021-09 Aug 2, 2021
@zivkan zivkan modified the milestones: Sprint 2021-09, Sprint 2021-10 Oct 4, 2021
@zivkan zivkan removed this from the Sprint 2021-10 milestone Nov 1, 2021
@zivkan zivkan removed their assignment Nov 1, 2021
@crummel
Copy link
Author

crummel commented Mar 17, 2023

Using Arcade to version and publish would also help with issues like dotnet/source-build#3249 where we see mismatches between the Microsoft-built version and the source-built version.

@crummel
Copy link
Author

crummel commented Mar 17, 2023

If we wanted to fix this without completely moving NuGet to Arcade, the build number is set in https://github.com/NuGet/NuGet.Client/blob/fdc39cc7f7541056c638ea982dc179f554849b7d/eng/pipelines/templates/Initialize_Build.yml and doesn't seem to be meaningful for them; it's just a different way of calculating it from the AzDo official build number than Arcade uses.

  • We may be able to switch them to the Arcade calulation.
  • Either way, the Initialize.yml should have run by the time source-build is choosing version numbers so we should be able to piggy-back on that rather than using the bad 1.0.0 version number.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Engineering Productivity Partner:DotNet Priority:2 Issues for the current backlog. Resolution:BlockedByExternal Progress on this task is blocked by an external issue. When that issue is completed this can proceed Type:Engineering product/infrastructure work/not a customer bug/feature/DCR
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants