Skip to content

Remove constraints that became useless from update_opam_repo.sh

Romain requested to merge nomadic-labs/tezos:romain-lock-0 into master

Depends on: opam-repository!499 (merged)

What

This MR simplifies update_opam_repo.sh to remove the additional constraints on inotify and mirage-runtime.

It also updates Python version to 3.11.8.

Why

Those constraints are no longer useful.

The Python upgrade is a side-effect of having to regenerate our Docker images from tezos/opam-repository: it happens that Python got upgraded in Alpine.

Inotify

The reason we added inotify was that irmin-watcher had a { os = linux } dependency on it, but we do not appear to depend on irmin-watcher anymore (since 898e0afbaec16183fa4c62ac2b1d22430f719298 in tezos/opam-repository apparently, which dates from 2022). Moreover irmin has been vendored anyway.

Mirage-Runtime

The reason we added mirage-runtime was to ensure it was chosen instead of mirage-no-solo5 and mirage-no-xen, to make the opam solver deterministic.

  • The non-deterministic constraint was in mirage-crypto-pk and is no longer there starting from mirage-crypto-pk >= 0.11.0.
  • All versions of tls-lwt seem to require mirage-crypto-rng-lwt >= 0.11.0, which require mirage-crypto-rng {= version}.
  • And all versions of mirage-crypto-pk seem to require mirage-crypto-rng {= version} too.
  • tls-lwt was added to tezos/opam-repository by c6ef83f7026ccec1a0d332ed7998bd1424b6bb3b, which dates from Feb. 2023, to update the world to get tezos-rust-libs; before that, we had a constraint that we didn't want tls >= 0.16.0, and apparently there was no tls-lwt, only tls.
  • In the manifest, we do depend on tls-lwt >= 0.16.0.
  • All of these means that mirage-crypto-pk < 0.11.0 is not compatible with tls-lwt and thus with Octez, and thus the non-deterministic constraint from mirage-crypto-pk < 0.11.0 is no longer a problem.
  • Conclusion: this hack can be removed.

How

  • Remove the hack.
  • Run the script.
  • See that the opam_repo.patch is not empty, as expected.
  • Apply this patch and obtain: opam-repository!499 (merged)
  • See the CI fail because Python.
  • Bump Python version on both side.
  • Update the commit hash in version.sh.
  • Rejoice.

Manually testing the MR

Run scripts/update_opam_repo.sh. Check that the resulting opam_repo.patch makes sense.

Checklist

  • Select suitable reviewers using the Reviewers field below.
  • Select as Assignee the next person who should take action on that MR
Edited by Romain

Merge request reports