Skip to content

Replace pkgprojs with NuGet Pack task based projects #75966

@ViktorHofer

Description

@ViktorHofer

During the .NET 6 timeframe, the .NET libraries infrastructure team heavily invested in replacing the legacy pkgproj packaging system with NuGet Pack task based projects. The completion of that work resulted in a significant simplified servicing process as various flawed concepts that complicated publishing, RTM and servicing were eliminated:

  • package index maintenance
  • harvesting and the cross-release dependencies that it caused
  • runtime.json restore infrastructure
  • the custom packaging infrastructure that still todays relies on a different set of packaging properties than NuGet's Pack task (the common path)

We, the .NET libraries infrastructure team don't plan to further invest in the pkgproj packaging system and eventually want to remove it entirely in favor of the NuGet Pack task which is the official way to produce nuget packages.

This repository still relies on the pkgproj infrastructure for the producing runtime and host packages:

While these packages don't use the full set feature set of the pkgproj infrastructure, history has shown that any part of the custom packaging infrastructure continues to break RTM and servicing builds for various reasons. Recent examples that would have hindered RTM and servicing of .NET 7 are 1631465, and b966a10.

I suggest that we invest in replacing the remaining set of pkgproj based projects by converting them to NuGet Pack task based projects. For the mono ones, I already started with the migration a year ago but couldn't finish it because of conflicting priorities. Even though some of the packaging projects changed, it should be possible to either revive or mimic my PR: #57499.

Size: S-M
I expect that this shouldn't take more than a week per area (coreclr, mono). Also, it's unclear if the legacy host packages need to be migrated as those aren't used anymore by the the libraries (as we now use the live host).

Related: #49137, #59355

cc @jeffschwMSFT @marek-safar @steveisok @dotnet/runtime-infrastructure @ericstj

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions