Specify all source-built dependencies and ensure they are regularly updated #5177
Labels
area: infra
The issue is related to engineering infrastructure.
triaged
The issue was evaluated by the triage team, placed on correct area, next action defined.
Milestone
Overview
Source-build works today by building a repository, gathering the versions of the outputs, and creating a property file with those versions. This property file is then fed to downstream repositories, which import it after their
eng/Versions.props
. The resulting behavior is that the downstream repo overrides all dependency versions specified ineng/Versions.props
with the versions built from source. This behavior is not the same as the Maestro dependency-flow based approach. Maestro only updates properties for dependencies that are specified ineng/Version.Details.xml
.This causes the following difference: Say that dotnet/aspnetcore has a
Microsoft.Net.Compilers.Toolset
dependency. It codes a property for that dependency's version ineng/Versions.props
asMicrosoftNetCompilersToolsetVersion
, with an older version of the package.This difference tends to cause build breaks in source-build. The version bump may be significant and require repo reaction. This is not ideal and not sustainable.
One option would be to only override those versions that are specified in
eng/Version.Details.xml
. This would more closely align the source-build and current official builds. The huge downside is that this will cause an explosion of ref packs. And in some cases, we would be building against old versions but actually executing against newer ones. Non-ideal.In summary, the goals are:
Work Required
This work is dependent on dotnet/source-build#2982.
In this repo, do the following
eng/Version.Details.xml
file.The text was updated successfully, but these errors were encountered: