-
Notifications
You must be signed in to change notification settings - Fork 741
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
Pin tool and package versions to reduce build non-determinism #272
Conversation
<PropertyGroup> | ||
<VersionPrefix>2.1.0</VersionPrefix> | ||
<VersionSuffix>preview1</VersionSuffix> | ||
<PackageVersion Condition="'$(IsFinalBuild)' == 'true' AND '$(VersionSuffix)' == 'rtm' ">$(VersionPrefix)</PackageVersion> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wouldn't KoreBuild normally take care of this? Are we going to need this logic in every repo? I feel like doing this logic per-repo is going to lead to something being missed and us making bad versions at some point.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, this will be in each repo. Although currently the Universe build takes care of normalizing versions for "final" builds, the addition of aspnet/templating to aspnet/Universe, PCP and source-build efforts required that we also push this logic down into individual repos.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm sad that we had to push PackageVersion logic down into per-repo, but I don't know of a better solution given the requirements.
446ec43
to
5df2c33
Compare
Part of aspnet/KoreBuild#239 and aspnet/Universe#575
This change removes some sources of non-determinism in our build. Package versions are hard-coded and do not float, and the build tools version is committed to source.
In addition, it removes the need for devs to run
build.cmd /t:Pin
before opening VS.