Skip to content

2025 Developer Meetings

Raja Boujbel edited this page Oct 31, 2025 · 77 revisions

Next meeting: 03/11/2025 13:00 CET

Agenda:

  • look at new issues/PRs (ordered by "Last updated") in:
    • opam
    • opam-file-format
    • github.com/ocaml-opam/*
  • discuss plans for a public meeting
  • discuss how to handle the next/3.0 branch
  • triage old issues/PRs in the above listed repositories

2025-10-27

No meeting

2025-10-20

No meeting

2025-10-13

Present: Artemiy (@arozovyk), Kate (@kit-ty-kate), Raja (@rjbou)

TOWRITE

2025-10-06

Present: Artemiy (@arozovyk), David (@dra27), Kate (@kit-ty-kate), Raja (@rjbou)

TOWRITE

2025-10-03

Present: Kate (@kit-ty-kate), Raja (@rjbou)

TOWRITE

2025-09-22

Present: Artemiy (@arozovyk), David (@dra27), Kate (@kit-ty-kate), Raja (@rjbou)

  • #5484 (opam update, Could not update repository "default": Failed to extract archive): comment#5484
  • #4558 (Opam 2.0.8 doesn't pick new compiler variants when updating a repo): We need to think about what do we want for repositories default, it remain an open question
  • #6049 (opam layout upgrade from 2.2alpha to 2.2beta seems to delete empty switches): comment#6049
  • #6181 ([Windows] Internal cygwin installation should not populate to the path): moved to setup ocaml
  • #5967 (Opam windows: ocaml vs ocaml.exe: "Cannot find file topfind"): Issue in finding ocamlfind in Cygwin. Moved to opam repository
  • #6642 (:The archive-mirrors value from repo files are not overridable, displayed nor deduplicated): comment#6642
  • #6674 (Solver inconsistency between 0install and mccs): David will take a look
  • #5693 (opam updates a package, then forgets that it did so): comment#5693

TOBECONTINUED

2025-09-15

Present: Artemiy (@arozovyk), David (@dra27), Kate (@kit-ty-kate), Raja (@rjbou)

  • #6679 (OpamFile.OPAM API: No longer assume that internal opam repositories are directories): It is almost ready but there is an issue with opam lint --package that changes behaviour as it no longer take the raw file but the processed one comment#6679
  • #6680 (Abstract opam repository root): To look at later, it is queued on other PRs
  • #6682 (opam update updates the sources of previously VCS pinned packages): comment#6682
  • #6683 (post-messages should not be displayed on reinstall/upgrades if the message is the same): comment#6683
  • #6684 (GHA: Add OCaml 5.4 and trunk to the test matrix): comment#6684
  • #6685 (opam lint --check-upstream doesn't check extra-source): comment#6685
  • #6686 (Re-use already loaded opam files in OpamRepositoryCommand.update_with_auto_upgrade): Noticed on #6614, comment#6686
  • #6688 (Add a test showing the behaviour of opam tree on local packages that happen to be already pinned): Raja will review it
  • Since 2.2, untarring once package archives doesn't keep timestamps, which slow down automake jobs. This issue is seen in opam-repository#28495 (comment. It could be fixed by #6440 (to confirm). An issue #6693 is opened.
  • #6659 (Make the computation of pkg:opamfile match its specification): Raja will review it
  • On the alpha release, we plan to release it around the 13th October. The only mandatory PR that needs to be integrated is #6611 - Fix pinned depends begin ignored on simulated pins, we can split it if depends PRs are blocking it.

2025-09-08

Present: Artemiy (@arozovyk), Kate (@kit-ty-kate), Raja (@rjbou)

Discussion: change in the dev meeting notes format

Consensus: live note taking by Raja, transcription by Kate. By default, we'll try to put everything in the PRs being discussed and only put a pico-summary (a few words) with a link to those comments or new issues. Everything else can stay in the notes in a "recap format".

New or newly updated PRs/issues

2025-09-01

Present: Artemiy (@arozovyk), Kate (@kit-ty-kate), Raja (@rjbou)

No notes

2025-08-25

Present: Artemiy (@arozovyk), Kate (@kit-ty-kate), Raja (@rjbou)

  • We went through the 28 new or updated issues and PRs
  • No notable discussion that wasn't reported on the tickets

opam 2.5

No notes

2025-08-18

No meeting

2025-08-11

Present: David (@dra27), Kate (@kit-ty-kate)

  • We went through the 30 new or updated issues and PRs
  • #6417: David will review it when he has time
  • #6633: David recalled a similar problem with MSYS2 fixed with a patch to ocamlfind. He'll have a look into it when he has time

2025-08-04

No meeting

2025-07-28

Present: Artemiy (@arozovyk), Kate (@kit-ty-kate), Raja (@rjbou)

  • We went through the 13 new or updated issues and PRs
  • #6615: we discussed several issues with the current behaviour (repository reload when upgrading a patch version, possible breaking out of safe-mode by writing new cache files, …) and concluded that we should at least probably have a variable containing a hash of the current shape of the cache (probably the same string that the cache-* files use)
  • #6614: we looked at it together and tried to find ways to factorize some of the code which detects the path of opam files but it turned out that the code does very minimal checks regarding the location of the opam files in a repository. The PR in its current file should more or less be ok, but it might be worth to look at repositories structures once again in the future, in a future PR.
  • #6621: we were able to reproduce with 2.3 and 2.2 so this isn't a regression
  • #6623: on first sight we agreed that these two cases should probably be errors
  • #6489: a review was still mistakenly in its draft/pending form
  • #6622: we'll look at what happened during the 2.2 release cycle
  • #6596: kate tried to debug how opam2web copies html files to the /www directory and did some experiment last week but wasn't able to make staging.opam.ocaml.org to copy the generated html files beyond the already available index.html for both /doc/api and /doc/man.

2025-07-21

Present: Artemiy (@arozovyk), David (@dra27), Kate (@kit-ty-kate), Raja (@rjbou)

  • we went through the 19 new or updated issues and PRs
  • #5824: Artemiy has a branch and will open a PR soon
  • #6611: this needs more tests before merging and a way to test multiple inputs without using expect (either by implementing expect ourselves in the reftest system, or by adding a new environment variable that lists answers to questions/menus like OPAMANSWERS="pin-and-install=n;try-install-anyway=y" opam install ...)
  • #6574: Kate shared her test-case

opam 2.4.1

#6612 just needs a review and we should be able to release a quick 2.4.1 in the next couple of days.

2025-07-15

Present: Artemiy (@arozovyk), Kate (@kit-ty-kate), Raja (@rjbou)

New issues/PRs

  • #6596: we should remove the previous section and replace it by a link to the API

opam 2.4

  • Modulo one regression fix (#6598) and an addition to the documentation (#6407) that we can add during the release, the stable release of opam 2.4 is ready and should start later this week.

opam 2.5

  • Artemiy is looking at #5824 and asked some precisions about it

2025-07-07

Present: Artemiy (@arozovyk), David (@dra27), Kate (@kit-ty-kate)

New issues/PRs

The issues up to #6589 and PRs up to #6586 didn't require further discussions

opam 2.4

The rc1 release happened last week as planned, everything went well. Next week should see the stable release if everything goes right.

2025-06-30

Present: Artemiy (@arozovyk), Kate (@kit-ty-kate), Raja (@rjbou)

New issues/PRs

The issues up to #6574 and PRs up to #6573 didn't require further discussions

opam 2.4.0~beta1

The rc1 should be ready by the end the week. Some things are left to do:

2025-06-23

Present: Artemiy (@arozovyk), Kate (@kit-ty-kate), Raja (@rjbou)

New issues/PRs

The issues up to #6564 and PRs up to #6568 didn't require further discussions

  • #6562 let's keep it open so that it can be discovered more easily if people encounter this.
  • Artemiy discovered an issue with the reftests on macOS where wc doesn't have the same output as on Linux, making the admin.test reftest fail.

opam 2.4.0~beta1

We moved the remaining issues unlikely to be fixed before the final release to the 2.5.0~alpha1 milestone and divided the remaining work amongst ourselves:

  • #6407 can be done during the rc phase
  • #5896: raja will look into the unexpected increase in time taken by read that doesn't happen locally
  • #6394: artemiy might take over the PR and finish it
  • #6536: kate will look into whether or not the ticket was ever a bug or not
  • #6560: raja
  • #6561 / #6567 / #6568: kate
  • #6563: raja

2025-06-16

Present: David (@dra27), Kate (@kit-ty-kate), Raja (@rjbou)

New issues/PRs

The issues up to #6548 and PRs up to #6552 didn't require further discussions

  • #6541 we don't need more than 8 or 16 anyway since ocaml will not compile any faster

opam 2.4.0~beta1

TODO:

  • Debug GHA: kate
  • review #6544: raja
  • review #6520: david
  • review #6549: kate
  • make sure the test in #6539 matches the actual behaviour of opam-repo-ci: raja
    • once done, review it: kate
  • review #6550 after the other PRs are merge and this one is rebased: kate
  • release: kate

2025-06-10

Present: Artemiy (@arozovyk), David (@dra27), Kate (@kit-ty-kate), Raja (@rjbou)

New issues/PRs

The issues up to #6536 and PRs up to #6531 didn't require further discussions

  • #6535: we need to flip the new switch state field from the overwritten opams to the simulated opams
  • #6528, #6520, etc...: sum up of the current statuses of the different experiments. Solution chosen: We merge #6520 in 2.4 and work on a better solution in 2.5.
  • ocurrent/opam-repo-ci#441: looked at the issue. It could be an issue with either #6436 or the recent changes to pinned packages. Kate was unable to reproduce locally but we'll try again.

Discussions

deps-only behaviour

In order to have the intuitive workflow for users we decided to change the whole behaviour as described in #6520 (no self-conflict) and then take time to do a more fine grained specification for 2.5 (remove only if it is accurate the removal of installed package).

opam 2.4.0~beta1

We're hoping to start the release by the end of the week. TODO:

2025-06-02

Present: Artemiy (@arozovyk), David (@dra27), Kate (@kit-ty-kate), Raja (@rjbou)

New issues/PRs

The issues up to #6521 and PRs up to #6523 didn't require further discussions

Discussions

opam 2.4.0~beta1

  • #6513: the fix is in patch, it has been released and PR will follow to updte external sources patch
  • #6504: Kate will finish the PR, then a review
  • #6501: deps-only behaviour, we need to test the new behaviour and add some tests

2025-05-26

Present: Artemiy (@arozovyk), David (@dra27), Kate (@kit-ty-kate), Raja (@rjbou)

New issues/PRs

The issues up to #6521 and PRs up to #6523 didn't require further discussions

Discussions

opam 2.4.0~beta1

We discussed needed PRs for the release, the current plan is : beta1 02/06, rc 09/06, final 16/06

2025-05-19

Present: Artemiy (@arozovyk), David (@dra27), Raja (@rjbou)

New issues/PRs

The issues up to #6514 and PRs up to #6516 didn't require further discussions

Discussions

opam 2.4.0~beta1

Release PRs & issues:

  • #6501 : dps-onyl issue, Raja reproduced, she will look at it
  • #6513 : stack overflow, guess that it is an issue on patch
  • #6498 : windows / setup.exe, Raja will give it a try

The current plan is to have the final on 10/06

2025-05-12

Present: Artemiy (@arozovyk), David (@dra27), Raja (@rjbou)

New issues/PRs

The issues up to #6514 and PRs up to #6515 didn't require further discussions

  • #6514 (source cache shouldn't be indexed by the checksum only) : it is definitively something todo, see comment

2025-05-05

Present: Artemiy (@arozovyk), Kate (@kit-ty-kate)

Discussions

Discussed implementation of #6461 Move the depexts availability calculation at opam update time

2025-04-28

Present: Artemiy (@arozovyk), David (@dra27), Kate (@kit-ty-kate), Raja (@rjbou)

New issues/PRs

The issues up to #6491 and PRs up to #6490 didn't require further discussions

Discussions

Windows / MSYS2

There is a view to try to enforce MSYS2 support for 2.5 release.

setup.exe

Instead of having setup.exe in cache in opam.ocaml.org, we could add setup.exe embed in Windows opam binary. It adds only 2M and resolve all network issue related to that (plus Cygwin website seems to be no more reachable in some countries). The licensing seems good (GPL).

Related issue: #6497

ocaml-system & switch creation

Context

Currently, ocaml-system is the compiler installed by default is there is an ocaml binary on the system. This is very useful to have a quickly set switch, but with the time there was several issue encountered:

  • some system have the compiler installed but not the compiler-libs
  • some system installs several version of some libraries confusing opam install actions

Several proposition were discussed:

  • check if the install is consistent and the one needed by opam: it would result into too much work to keep synchronised over several distributions.
  • remove completely ocaml-system from repository, but it is not what is wanted: it would break too much process, especially CIs
  • remove compiler flag from ocaml-system: it would break opam 2.0 users, where invariant was not yet introduced
  • #6465 (use default-compiler flag to select invariant): used with other repositories, it would need to keep default-compiler up-to-date with newly added compilers
  • #6464 (remove eval-variables from invariant computation): it would remove the ability to use eval-variables for other repositories to compute invariant

We tend for a solution like #6464 with an option in the global config to re-enable eval-variables in invariant computation. But this won't resolve having ocaml-system selected when install local switchs, or install a switch with the compiler ocaml (which ends up as an invariant).

We finally agreed on a solution of having an explicit flag for ocaml-system that would make it installable only if requested explicitly, like that it is won't be installed by default on switches with an invariant, and won't be included on computed invariants. It is possible with mccs, we need to check if it is possible with 0install.

The general behaviour of explicit flag would be: the package won't be installed unless explicitly required via CLI or in the invariant, not if it is in package dependency.

2025-04-22

Present: Artemiy (@arozovyk), David (@dra27), Kate (@kit-ty-kate), Raja (@rjbou)

New issues/PRs

The issues up to #6480 and PRs up to #6476 didn't require further discussions

Discussions

Cygwin setup.exe retrieval

Related to issue #6474

There is more and more Cygwin setup.exe issues. Having opam.ocaml.org as a mirror could help. We end up that we don't want to have a full cygwin mirror on opam.ocaml.org, but we still can store setup.exe and its sha, it is easy to maintain.

We also need to add a fallback when setup.exe fetch fails and there is an already one present (see #6495)

2.4.0~alpha2

We need to have : #6448 (patch failures) and #6465/#6466 (no longer have ocaml-system at switch creation b default)

ocaml-system & switch creation

related #6465 & #6466

After some tests, it is not possible to use the flag avoid-version as it is not working with the solver 0install (it doesn't handles priorities). We need to find the good way to do it, it seems to be by removing eval-variables at invariant computation, we need more time to validate it or another procedure.

Related issues :

  • #6496 : Move eval-variables variables from opam default configuration to repository one
  • #6497 : Externalise default opamrc

2025-04-14

Present: Artemiy (@arozovyk), David (@dra27), Kate (@kit-ty-kate), Raja (@rjbou)

New issues/PRs

The issues up to #6472 and PRs up to #6469 didn't require further discussions

  • #6465, #6466 (change opam switch creation compiler default): it is something that can and should be done in the repository (there is no code in opam that choose ocaml-system over ocaml-base-compiler, it's the number of dependencies and solver criteria). We could use the flag avoid-version in order to have the wanted behaviour. We need to advertise well the change of default behaviour.

Discussions

opam 2.4

We moved issues and PRs that we couldn't take a look in time to the 2.4.0~alpha2 and 2.5.0~alpha1 milestones, and approved the release of 2.4.0~alpha1 tomorrow after the merge of #5982.

2025-04-07

Present: Artemiy (@arozovyk), David (@dra27), Kate (@kit-ty-kate), Raja (@rjbou)

New issues/PRs

The issues up to #6462 and PRs up to #6450 didn't require further discussions

Discussions

opam 2.4

The release is planned for next week. We triaged all the tickets and PRs present in the 2.4.0~alpha1 milestone, kept the ones we plan to realistically look at or merge, moved the ones that we plan to look at during the alpha/beta phase to the 2.4.0~alpha2 milestone, and moved the ones we sadly won't have time to look at, to the 2.5.0~alpha1 milestone.

2025-03-31

Present: Artemiy (@arozovyk), David (@dra27), Kate (@kit-ty-kate), Raja (@rjbou)

New issues/PRs

The issues up to #6445 and PRs up to #6446 didn't require further discussions

Discussions

cmdliner (cmdliner#200)

There is no more need to have 1.3 compatibility as 2.0 will ensure prefixes usage. We may need to have it more global in our internal cmdliner.

opam list --latest-only (#6387)

After somme discussion and tests, we want to test a new command that permit to query using high-level formulae language instead of trying to guess what user wanted by argument position.

2025-03-25

Present: David (@dra27), Kate (@kit-ty-kate), Raja (@rjbou)

New issues/PRs

The issues up to #6430 and PRs up to #6431 didn't require further discussions

Discussions

cmdliner (cmdliner#200)

We continued the discussion about cmdliner fork for opam needs. We can add cmdliner code in opam-core wit only our modification added. The simpler way to integrate it is to have all cmdliner code in a single module but it will make backport and updates very painful. Forking cmdliner could add some burden as it comes automatically with users that may need maintenance over it. We tend toward having the code in a subdirectory of opam-core, making it a full composant of that library, that is only for opam lib usage.

Shell completion per package

Discussion related to #6427 & #3967.

Some package may want to add their shell completion script to users shell session. One big issue is that it can be a potential security issue as it's shell scripts that are used for completion (even if opam does not check if the binary is malicious, shell scripts are little more dangerous).

It does not need to be implemented in opam to be tested in the wild, it can be done by adding environment updates in the packages themselves in opam repository. This first step will permit us to test how it is used, and how people use it. It needs to be enforced by a post-message that inform user that shell completion was updated on the system.

2025-03-17

Present: Artemiy (@arozovyk), Kate (@kit-ty-kate), Raja (@rjbou)

New issues/PRs

The issues up to #6425 and PRs up to #6422 didn't require further discussions

#6423 (opam admin add-constraint does not create dependencies): see comment

#6425 (cmdliner 2.0.0 support): We took a tour of ideas for the fork of cmdliner in order to 1. keep the ability to have prefixes 2. add our proper functions 3. propose to the community a cmdliner 1.3 without splitting the repository. In order to that we need to have proper library for OCaml users that is a cmdliner1 snapshot and another one that is our own fork that contains opam specific additions (or even modifications).

2025-03-10

Present: Artemiy (@arozovyk), David (@dra27), Kate (@kit-ty-kate), Raja (@rjbou)

New issues/PRs

The issues up to #6413 and PRs up to #6412 didn't require further discussions

  • #6409 (Fix opam file lookup when a pin is done with a local directory and a branch is specified): we discussed the proposed change of behaviour of opam pin ./local-vcs-dir. It seems that #4300 changed this behaviour in opam 2.1 but it needs further investigations. The proposal would change this behaviour, a warning could be added to notify of the untracked changes in the opam files.

Discussions

  • #5982 (Support Nix depexts with opam env): Tested on an issue and iw working as expected. It reaffirms us on that it is the good way to do it.
  • patch: ocaml-patch.3.0 is merged! Incoming PR.
  • The alpha is planned to the beginning of april.

2025-03-03

Present: David (@dra27), Kate (@kit-ty-kate), Raja (@rjbou)

New issues/PRs

The issues up to #6405 and PRs up to #6406 didn't require further discussions

Discussions

cmdliner

Issue #200 on the removal of prefixes in cmdliner. We use and define opam options having in mind prefixes, having cli versioning too. We want to keep that behaviour, we will see how to: use the environment variable, fork, use internal API, etc.

Init default compiler change

PR #6307, see issue #6407

Light & hard upgrades

PR #6393 by default does an hard upgrade. We have the two mechanisms of light and hard upgrade: hard upgrade is a complete lock of opam root to update internal layout, while light upgrade permit to load old opam roots (even if internal files changed) in read only mode, blocking only if a write is needed (by state). This is useful for libraries that uses opam lib and read opam root (e.g. opam-dune-lint), the ones that need to write still need to have the same version for library than binary (e.g. opam-build). We will try to enforce the rule that no new version of hard upgrade will be defined (last one is 2.0.0~beta5), only add mechanisms that permit light upgrades.

2025-02-24

Present: Kate (@kit-ty-kate), Raja (@rjbou)

New issues/PRs

The issues up to #6395 and PRs up to #6394 didn't require further discussions

Discussions

  • PR #6393: repos-config syntaxe & soft/hard update to discuss on next meeting, we took a tour of parser printer used for the new syntax
  • PR #6394 on adding a job that test opam lib reverse dependencies, see comment

2025-02-17

Present: Kate (@kit-ty-kate), Raja (@rjbou)

New issues/PRs

The issues up to #6387 and PRs up to #6381 didn't require further discussions

Discussions

opam list selector precedence

Issue #6387 See comment and comment

opam install . --deps-only issue

Issue #6379/#6248 & PR #6256 see comment and issue #6390.

2025-02-10

Present: David (@dra27), Kate (@kit-ty-kate), Raja (@rjbou)

New issues/PRs

The issues up to #6379 and PRs up to #6377 didn't require further discussions

Discussions

opam admin split

There is no (simple) way to keep a complete working history, and it is not required for other plugins. The solution we would go for is to just keep the history and make plugins changes on top of that, like that we have at least a working git blame. Everything is ready for the split, we pause that until we see more with opam admin users.

2025-02-03

Present: David (@dra27), Kate (@kit-ty-kate), Raja (@rjbou), Ryan (@RyanGibb)

New issues/PRs

The issues up to #6374 and PRs up to #6377 didn't require further discussions

Discussions - Nix depext support

Related PR: #5982

The current implementation generates a Nix derivation at each install of a depext that contains all needed depexts by the switch: new ones (opam packages to install) and old ones (already installed opam packages). This leads to a rework of the API for handling the current switch state. A proposal for discussion was done to keep persistent the Nix derivation file in the switch hierarchy and only update it when a new package is added; but it needs a removal mechanism to remove already stored Nix packages from that internal install (there is no simple way to update that internal install, it would be an update of the file). It is a very delicate issue to remove depexts in other distribution (user managed system), but for internal ones (Nix, Cygwin) is doable but have its pro and cons: some think it is preferable as the user has no way to interact with the internal install, some think that it is as delicate a non internal install as user may change it. It is possible to add this functionality at opam remove as it is done now at opam install for system packages install. After some discussions and projections, we end up by keeping the way it is done currently in the PR (propagate the information of all needed depext at current state), it may be reused by other futur depext support, and it won't add the removal complexity (handling multiswitch system dependencies removal with its own command).

Another review of the PR will be done with that in mind.

2025-01-27

No meeting

2025-01-20

Present: David (@dra27), Kate (@kit-ty-kate), Raja (@rjbou)

New issues/PRs

The issues up to #6366 and PRs up to #6367 didn't require further discussions

Discussions

  • Alpha release of ocaml-patch soon, to integrate to opam for 2.4 if released for opam 2.4 release process
  • Some exploratory work for reftest splitting, not so trivial for dune
  • On opam admin split, we'll try to keep git history, and need to manage how to move issues (different orgs) & PRs (reopen?)

2025-01-13

No meeting

2025-01-07

Present: David (@dra27), Kate (@kit-ty-kate)

New issues/PRs

The issues up to #6357 and PRs up to #6343 didn't require further discussions

Clone this wiki locally