dotnet / dotnet/arcade-services

Maestro subscriptions should support repo-origin filtering

Open
#5,930 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
86
Forks
86
Avg merge
1d 8h
Merged PRs (30d)
35

Description

Subscriptions from the VMR (VMR to repo or VMR to VMR) have a major flaw today: the lack of the ability to select assets to update based on repo origin. We have the ability to exclude assets based on name, and target only certain directories in flow to the VMR, but there is no way today to filter based on the repo origin. Note that this is available in `update-dependencies`, based on applying information from a merged manifest.

The problem with this state is that there are frequent cases where we want to select assets based on origin. In pre-VMR land, this was pretty simple. There was implicit filtering based on the repos that you subscribed to. Roslyn could simply NOT subscribe to the runtime, because it didn't depend on the runtime at build time. However, in the VMR this isn't possible. Instead, we're left with very complex subscriptions that attempt to exclude some set of assets across a number of repos.

To remedy this, I think we need a couple things:
- Repo origin becomes an asset field. This is optional, and would only be populated for new VMR builds.
- Excluded assets becomes a glob include/exclude that allows for repo origin filtering. E.g. `+runtime|*System.Text.Json` - I think it's important that this allows for include/exclude. When thinking about updating roslyn, for instance, we want command-line-api, but we don't want anything else. It seems more logical to include command-line-api than exclude everything that the VMR builds.

Doing this would drastically simplify a bunch of subscriptions, especially backflow.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by tracing Maestro subscription filtering, asset metadata, and the merged-manifest handling used by update-dependencies. Define how optional repo-origin fields are populated for new VMR builds and how include/exclude glob syntax should select origins and asset names. Done means subscriptions can express origin-based inclusion and exclusion and the affected backflow cases are covered.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
devtools
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.