-
Notifications
You must be signed in to change notification settings - Fork 290
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
Make the build reproducible #182
Comments
This means we should really go for 2 branches:
WDYT? |
This issue is not about a problem in the continuous integration setup nor in the test itself. Both are working fine, although they could be improved as you describe. This issue is about the build not being reproducible as indicated in the title and the description. Maybe the definition of build is reproducible needs to be clarified to explain the problem and how to check it. A build is reproducible with time window Because we can only run This test is currently failing as demonstrated in #180 which does a no-op change (which means that the commit is equal to its previous commit and thus both can be used interchangeably). With the notations above we have |
I don't think this level of formalism is necessary to understand the issue. It's rather clear that over time changes in any of the dependencies affects reproducibility, and therefore we can't achieve reproducibility over time without pinning to a So I think pinning a WDYT? |
Yes, we should do that.
This is an orthogonal improvement to the reproducibility problem. However a cron job that tests the reproducibility of old commits (maybe just some tags to avoid computational costs) would be useful to track reproducibility issues. |
This could be useful. However, if an old commit X turns out not to be reproducible, it will be forever non-reproducible and we cannot fix it - the only option is to create a different commit Y. |
Yes, and that would work well with a release branch process. The cron job would check the last commit of all release branches. If a release is not reproducible (for example the retention of the nightly compiler that was used expired), then we push a commit to update the compiler version for that release branch. |
#667 suggests to have binary releases. We might want to revisit reproducibility if we go for it. |
git clone && ./setup.sh && ./deploy
should be reproducible at any time for a given commit. This is currently not the case, at least because we don't commit aCargo.lock
.This is blocking #151. The workflow is currently disabled by #181.
The text was updated successfully, but these errors were encountered: