Skip to content

dev meeting 20220120

Nathan Rebours edited this page Jan 21, 2022 · 1 revision

Present at the meeting:

  • Marek Kubica (@Leonidas-from-XIV)
  • Nathan Rebours (@NathanReb)

Current Plan

  • Marek keeps working on opam-overlays CI
  • Marek creates a temporary github actions with the lint checks for opam-overlays
  • Nathan finishes the work on explicit repo list for opam-monorepo solver
  • Nathan finishes building tezos with opam-monorepo
  • Nathan starts upstreaming patches to tezos and packages maintained by tezos

Meeting notes

Nathan worked on building Tezos with opam-monorepo. The first lockfile was not working because of a remaining exact constraint on lwt-watcher. The solver was happy as lwt-watcher builds with dune but does not build in a duniverse. Craig had already fixed that but the equal constraint prevented the solver from picking the fixed version. We'll need to upstream this, which according to Raphael from Tezos shouldn't be a problem. Past that he was able to run a build with the new lockfile. There are a few problems still:

  • js_of_ocaml is looking up the stdlib through findlib and this fails
  • different parts of the tezos repo depend on different bls12-381 libraries, one of which is bls12-381-legacy. All those libraries come from the same repo. opam-monorepo has to pick the latest version of the repo required by tezos, in which the -legacy library doesn't exist anymore. The easy fix for this would be to get Tezos to upgrade to the latest bls12-381 library but that might not be possible for them. The other solution is quite technically involved and would require source trimming based on packages. We can probably implement this in dune but it will take a bit of time.
  • The hacl-star port doesn't quite work as expected so we need to look into it

While working on this, Nathan triggered a serious memory leak in dune, or at least some code path taking up huge amount of memory. We'll need to investigate this.

Nathan also is almost done on the repository list feature. It just works with local filesystem URLs at the moment but that's already extremely useful as it allows us to write integration tests for lock. We'll merge this first as it will prove quite helpful for working on any other feature. We had some good discussion on the follow ups for the feature and decided it might make sense to just support vcs URLs for the first release of this feature as it's better for ensuring reproducible lock. We also need some mechanism to reliably work on local filesystem URLs as those can only be absolute path so we'll bake in a feature to rewrite some watermarks in the file:// URLs.

Marek and Nathan worked on improving error messages in a very specific cases but this lead to interesting experimentation on how to interpret solver error output which is going to be handy for improving error messages in the general case. Marek mainly focused on duniverse-lint for opam-overlays's CI. He's working on the temprorary github action and while doing so realized the tool need some fixes first. Hopefully we should have a lint github action in there soon!