dotnet / arcade-services

Arcade Engineering Services
MIT License
54 stars 73 forks source link

Darc does not update packages which were added in an existing PR #3562

Open ericstj opened 1 month ago

ericstj commented 1 month ago

See https://github.com/dotnet/efcore/pull/33810/commits/79197f7b372fe0d4e0e8f9072f7ee52097e705cc

I had added two packages to Version.Details.xml. Darc then modified the PR with a new version of runtime but it didn't update the packages I added.

Probably Darc is looking at the target branch's file rather than the PR branch's file.

mmitche commented 1 month ago

Probably Darc is looking at the target branch's file rather than the PR branch's file.

Yes, Maestro is reading from the target branch initially when creating the branch, and either it keeps looking at the target branch, or it has a list of previously updated packages and only uses those for future updates. Can't remember which.

We can probably make a partial fix by reading dependencies from the PR branch if an existing PR is already open. A 'full' fix would be more difficult. A common scenario that happens is that a PR is opened for updates, someone adds a new dependency in a different PR, and both PRs merge. Often they don't conflict so you can get incoherency that way. Maestro would need to be aware of the PR target branch's current state and ensure that the dependency set wasn't changed. If it was, then it needs to restart the update process, pulling in a new build.