Skip to content

Determine what to do about 'stable' assets produced by VMR builds #4892

@mmitche

Description

@mmitche

Problem

There is an issue with stable assets present in Unified Build (UB) merged manifests. Pavel has discovered that Maestro publishing refuses to push stable assets produced by UB, which is by design.

Example Assets

  1. Diagnostics Asset: This asset is not stable as the patch varies by build.
  2. Aspire Asset: This asset is stable.

Current Behavior in Isolated Repo Builds

  • Diagnostics: The diagnostics build would have a flag to mark the manifest as having release-only assets. This flag allows the publishing safety checks to be skipped.
  • Aspire: The manifest would be marked stable, and an isolated feed would be created. All shipping assets would be published to this isolated feed.

Desired Behavior in VMR Builds

  1. Publishing should succeed.
  2. Avoid putting a bunch of stable assets on an isolated feed just because a single asset is stable.
  3. A non-stable asset that looks stable should not block publishing.

Issues Identified

  1. The stable and release-only-package bits are not properly propagated when merging manifests.
  2. The publishing infrastructure does not handle these bits at a fine-enough grained level.

Considerations

  • We might need to take a different approach and be more selective about what we push to feeds.
  • Should we only be pushing non-stable assets and assets published by .NET? e,g, If System.CommandLine stabilizes, what should backflow to dotnet/sdk out of the VMR? Should nothing backflow?

Action Items

  • Determine how to handle the publishing of stable and non-stable assets in UB merged manifests.
  • Implement a solution to properly propagate the stable and release-only-package bits when merging manifests.
  • Enhance the publishing infrastructure to handle these bits at a finer-grained level.
  • Consider alternative approaches to pushing assets to feeds and backflowing assets to specific repositories.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions