dotnet / dotnet/arcade-services

Maestro's feed management should be a little smarter in case of multiple builds on the same hash

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

Description

### Release Note Category
- [x] Feature changes/additions
- [ ] Bug fixes
- [ ] Internal Infrastructure Improvements

The feed management code in Maestro's dependency update functionality is designed to add a 'darc*' feed to the nuget.config if the asset location of a dependency is in one of those feeds. This allows for stable package dependency flow. When a package is released publicly, part of Maestro then removes these locations, and then future dependency updates would remove the darc* from the nuget.config.

There is a corner case that occurs when there is more than one build of a single sha. Typically we see these cases when we have an internal branch and a public branch that have the same sha. One of these gets published, one doesn't. This could also happen with dev builds. In these cases, when Maestro is attempting to figure out what to put in the nuget.config, it has more than one asset that looks the same to choose from when it does the asset lookup. It just ends up choosing the first asset, which may be an unpublished build. Keep in mind that this lookup is not build specific. Because coherency updates must figure into what goes into the nuget,config, the lookup that is updating the nuget.config is just a general asset lookup.

Anyways, if the first asset was from an unpublished build, it doesn't have an isolated feed asset location, and so maestro adds no feed to the nuget.config. This is inconvenient at times.

What we could do is filter away assets in the disambiguation lookup that do not have feeds as their asset locations (all assets have an initial location of the build artifacts). Then, if there are still more than one match, just choose the first one.

### Release Note Description

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.