I wrote up recent developments about reproducible builds with opam – including some tooling https://hannes.nqsb.io/Posts/ReproducibleOPAM
Thanks to everyone involved in the effort to get OCaml and opam deterministic
- Nov 2015 I collected downstream patches and asked kindly to get them upstream (temporary flle names in binaries, timestamps)
- Dec 2017 BUILD_PATH_PREFIX_MAP support (and further patches for that)
- Dec 2018 Paris summit opam reproducibility MirageOS
orbtool for reproducibility testing (so much better than shell scripts)
- Dec 2019 Marrakesh summit
The journey is not yet finished, we’re in a pretty good shape, but further testing and tooling is needed to expose the information “is my library reproducible?” to OCaml developers.
I’m interested in feedback, please let us discuss this further here in case you’re interested.
This coq issue and discussion is a very interesting read (and may help to solve the cma/… divergences in OCaml that are observable).