-
Notifications
You must be signed in to change notification settings - Fork 40
Description
In 1.26.0-1, we changed our infrastructure to add the MICROSOFT_REVISION file to the go directory just before running distpack. We've been doing this with a fake VERSION file in the microsoft/main branch for a while, but 1.26 is the first time this is happening in a release branch.
Our project doesn't make it clear if the output source tarball is intended to be reproducible, and how to reproduce it. The file copy step doesn't happen within distpack, it's in our eng/_util module, so it's not necessarily obvious.
In release branches up until 1.26.0-1, all changes come from the patch files. 1.26.0-1 changes that, so anyone who has that expectation will be broken. A script that keeps the Microsoft build of Go up to date in Dalec has an automated process with that expectation.
I think that it would make sense for us to at least:
- Create a reproducibility test for the source tarball that doesn't involve running
eng/_util.- At this point, breaks would be fine, but they give us an opportunity to let partners know or consider alternatives to the break.
- Have clear guidance on how to reproduce the source tarball.
- I think that ideally, the test code is clear enough that it itself can be the bulk of the guidance.
We need to consider:
- Should we decide to not alter the source tree using
eng/_util?- Copying in
MICROSOFT_REVISIONusing an automatically maintained patch file would limit the ways that the source tarball can be changed, making it easier to reproduce. But: that's a decent chunk of infra that has to play nice with the otherwise manually maintained patch files--and play nice with the maintainers themselves. - It's much simpler for us to maintain the copy in
eng/_util.
- Copying in
- Should we move the
MICROSOFT_REVISIONfile into thepatches/directory?- Maybe
patches/insert/to treat it as something like a file insertion system we could use for other things? - The idea is that the file would be more obvious, leading to the question "how do I treat this file like a patch?" However, if we provide easy to find repro guidance, this move doesn't seem justified.
- Maybe