I think the issue of OCaml packages refers to more than just opam
and opam-repository
. As far as the work done on opam-repository
is concerned (being an actor myself), it must be understood that these members cannot give an opinion or a direction on the choice that the author/maintainer of the package may have made despite all the considerations that may be known from the ecosystem. In other words, the members can be aware that there may be situations (clash of module names, reverse dependencies, incompatibility between types, etc.) that the author/maintainer may not have taken into consideration. As such, we can spend a really non-negligible amount of time helping and assisting these authors/maintainers (sometimes for free). However, they remain authors/maintainers and we may not agree with their solutions (based on our experience) but this does not bias our choice to press the ‘merge’ button and accept the release.
To describe the situation factually, it’s “normal” that a package that hasn’t had a release for almost 1 year (and whose distribution isn’t all that standard compared to the first release: Dream — tidy, feature-complete Web framework by aantron · Pull Request #18536 · ocaml/opam-repository · GitHub) may no longer be installable today. The team clearly doesn’t have the time or resources to ensure that all packages are installable throughout the year. So there is also work expected by maintainers and authors of packages for which opam-repository members are obviously not responsible.
And that may be the problem. You can give a factual description of the ecosystem, as this article does very well. But beyond an honest assessment, we can also look at the reasons. Why hasn’t this package had a release in almost 1 year? Why does part of the ecosystem seem to be continuing to evolve, while this first package seems to have remained in the past? Why are there esy and opam - and why are we being led to consider these two solutions?
To answer one of these questions, it may also be time to consider the financial resources that are available or could be made available to help these authors/maintainers so that they can continue to maintain and develop these packages. This is often the nerd in the war. Nobody works on “love and fresh water”.
The financial aspect is not the only parameter. Behind these questions, there are also social considerations (interactions between authors/maintainers because their projects depend on each other). These interactions are also a burden that may or may not be healthy depending on people’s affinities. And this burden can be so great that we refuse to give even more of our time to our projects. In this respect, we also need to question the community’s ability to be inclusive and maintain good relations between all the authors/maintainers.
A technical and honest assessment of OCaml and its ecosystem always hides a forest of social questions and it seems to me to be healthy to pose the problem without responding with another technical solution.
I’d like to make it clear that I’m in no way blaming the author of Dream (being French, I may not have the subtlety to match the words written here with my thoughts and I’d really like to avoid offending anyone) as I myself took part in the project, which depended on one of my projects. I’ve always had cordial and pleasant exchanges with the author (and I’d like to imagine a future where these exchanges can continue).