Skip to content

dev meeting 20201028

Nathan Rebours edited this page Oct 28, 2020 · 2 revisions

Present at the meeting:

  • Guillaume Petiot (@gpetiot)
  • Sonja Heinze (@pitag-ha)
  • Nathan Rebours (@NathanReb)

Current plan

  • Nathan reviews opened PR to clear the PR tracker
  • Guillaume finishes the draft release PR
  • Sonja works on dune-release check
  • Nathan opens issue about dry-run still running some git commands

Meeting notes

Guillaume worked on the draft release PR. It is almost ready now, the last missing bit is to update the opam-repo PR. That should just be a matter of pushing the new opam files to the right branch on the remote fork. We talked about some potential issues with the undraft command. All of them are related to the fact that it may rely on local files or git branch. For instance to update the PR to opam-repo, the simplest thing is to assume that the local clone still has the branch created by the initial release process. There are a few other such assumptions we might make, in particular we need to store information on the disc such the PR number for the undraft API request for example. We already do this for the tarball URL by writing to a file in the _build/. It works okay for the URL because it happens in the middle of the release process and the file is likely to be consumed immediately after that. For the undraft command it's a bit different as a significant amount of time is likely to pass between the draft release and the "undrafting". The maintainer will probably wait for the opam-repository CI to go green for instance. The likelihood of them to run a simple dune clean in the meantime is fairly high so we need to come up with a more robust solution here. We agreed that we should start simple so we can start review and test this and then decide how we make it more robust to local changes! Guillaume also reworked the PR for improved management of the main versus regular package in multi-opam repositories. It's ready for another round of reviews!

Sonja implemented the suggestion to improve our deprecation warnings and it's awaiting review. She also worked on a solution for users without SSH configured. After discussing it among ourselves and thanks to a nice suggestion from @emillon, we decided that it was not dune-release's responsibility to choose how to push. Instead, we keep the current default (always pushing to SSH) but added a suggestion to the tool documentation that users that do not wish to push through SSH but through HTTPS instead can configure git to rewrite push URLs. This suggestion also comes up in the form of a documentation pointer when dune-release fails to push. Sonja checked that the original authors were happy with this solution. This has been merged and everyone's happy!

Nathan worked on fixing the CI. It was broken for two reasons:

  • The cram test for the documentation publication skip feature required network access which ocaml-ci denied.
  • The recent release of opam libraries in 2.1.0~beta versions were breaking our tests He simplified the cram tests and as a side effect they don't need network access anymore. It turns out that they were requiring network access even though they were only running in --dry-run mode so we still need to fix this bug but it won't bother us in the CI for now. He also added upper bounds on the opam libraries we need. This temporary, we'll wait for the opam release to reach a more stable state before looking into how we deal with 2.0 and 2.1 compatibility. Hopefully we'll have released dune-release.2.0.0 and thus dropped support for opam 1.2 by then so we only have to support a thin range of opam versions.

We also discussed some changes in the opam 2.1 API discovered by @kit-ty-kate. The function we use to generate the opam file updated with the url field will no longer drop comments in 2.1. @rjbou is making sure the API will provide a way to preserve the current dune-release behaviour when opam 2.1 is released.

On a side note, Rudi was happy with the submodules support, this has now been merged. The draft release is the last feature we need before cutting our last 1.x release!