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

Pin tool and package versions to reduce build non-determinism #272

Merged
merged 1 commit into from
Oct 25, 2017

Conversation

natemcmaster
Copy link

@natemcmaster natemcmaster commented Oct 23, 2017

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.

<PropertyGroup>
<VersionPrefix>2.1.0</VersionPrefix>
<VersionSuffix>preview1</VersionSuffix>
<PackageVersion Condition="'$(IsFinalBuild)' == 'true' AND '$(VersionSuffix)' == 'rtm' ">$(VersionPrefix)</PackageVersion>

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.

Copy link
Author

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.

Copy link

@ryanbrandenburg ryanbrandenburg left a 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.

@natemcmaster natemcmaster changed the title Pin tool and package versions to reduce non-determinism Pin tool and package versions to reduce build non-determinism Oct 25, 2017
@natemcmaster natemcmaster merged commit 5df2c33 into dev Oct 25, 2017
@natemcmaster natemcmaster deleted the namc/determinism branch October 25, 2017 18:47
pakrym pushed a commit that referenced this pull request Apr 20, 2018
natemcmaster pushed a commit that referenced this pull request Nov 6, 2018
@ghost ghost locked as resolved and limited conversation to collaborators May 30, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants