Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build repo specific PackageVersions.props w/dependencies declared in Version.Details.xml #2482

Closed
MichaelSimons opened this issue Sep 29, 2021 · 10 comments
Assignees
Labels
area-arcade Common Arcade source-build infra

Comments

@MichaelSimons
Copy link
Member

Currently source-build build injects a PackageVersions.props into the repos builds that contains the current source-built package versions as well as all previously source built package versions. The result of this is that source-build does not behave the same as repo builds. Often times repos define Versions.props entries that are not auto-updated. They do not have a corresponding dependency in the Version.Details.xml file. Yet the way source-build works, these Versions.props entries are getting updated to use the source-built versions.

The solution to this is to build up a repo specific PackageVersions.props based on the dependencies defined in the Version.Details.xml. This will get source-build to build like the microsoft build and will be a forcing function to ensure the appropriate dependencies are defined (in order to eliminate pre-builts).

@MichaelSimons
Copy link
Member Author

MichaelSimons commented Aug 18, 2022

This is required for #2979

@oleksandr-didyk
Copy link
Contributor

Update on progress -> was finishing implementation for a different task (#2655) + have a Bootcamp to attend this week, will properly start with the issue on Friday, 09/09/2022

@oleksandr-didyk
Copy link
Contributor

Update on progress -> FR week + Hacathon next week, most probably will not produce meaningful progress in the next week

@oleksandr-didyk
Copy link
Contributor

oleksandr-didyk commented Sep 29, 2022

After initial investigation the current workload should probably be split into several separate issues due to the time and work required to accomplish a given milestone.

Based on introduction from @MichaelSimons and my own inspection, the steps taken should be as follows:

Furthermore, there are several issues that are worth mentioning:

  • repositories should utilize the latest versions of project dependencies (enforcement of this rule is not part of MVP)
    • having non-latest versions would require additional support from SB in terms of adding a ref pack for every version
    • maintaining and upgrading the pack would be costly
    • additional packs would bloat the size of the end tarball
    • SBRP in general should not contain any pre-release versions
  • rollout of the proposed changes should be gradual
    • additional work would probably be required for on-boarding existing repositories to the new version handling (ex.: adding SBRPs or bumping dependencies to latest)
  • tarball should be offline-buildable
    • PackageVersions.props files can be resolved with access to the feeds (meaning online) before the actual build is started

@MichaelSimons
Copy link
Member Author

Once this functionality is picked up by each repo and within the tarball build, the existing infrastructure should be removed.

@MichaelSimons
Copy link
Member Author

tarball should be offline-buildable
PackageVersions.props files can be resolved with access to the feeds (meaning online) before the actual build is started

This is certainly doable today with the current tarball creation process but becomes significantly more difficult with the VMR. We should discuss this at one of our syncs w/@premun and @crummel

@oleksandr-didyk
Copy link
Contributor

Once this functionality is picked up by each repo and within the tarball build, the existing infrastructure should be removed.

Thank you for reminding me about it, I will create a separate issue for it since it can be achieved only after the repos are on the new system, which can take some time

@oleksandr-didyk
Copy link
Contributor

tarball should be offline-buildable
PackageVersions.props files can be resolved with access to the feeds (meaning online) before the actual build is started

This is certainly doable today with the current tarball creation process but becomes significantly more difficult with the VMR. We should discuss this at one of our syncs w/@premun Premek Vysoky FTE and @crummel Chris Rummel FTE

Based on the info received on the sync, it seems that the PackageVersions.props files are resolved offline, so this might not be an issue anymore, correct?

@MichaelSimons
Copy link
Member Author

MichaelSimons commented Mar 13, 2023

@mmitche - was this completed with dotnet/installer#15267? I know we have the repo consumption side of this which is tracked in #3043.

@mmitche
Copy link
Member

mmitche commented Mar 13, 2023

Yep, this is completed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-arcade Common Arcade source-build infra
Projects
Archived in project
Development

No branches or pull requests

4 participants