Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

result < 1.5: mark as available only with ocaml < 4.08 #27208

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

hannesm
Copy link
Member

@hannesm hannesm commented Jan 5, 2025

Result is a compatibility package for OCaml versions that do not provide the Result module in the standard library (< 4.08). There's an issue with result < 1.5, namely that with OCaml compilers >= 4.08 it does lack the type equality which leads to compilation errors due to the Result.result (provided by the result package) not being compatible with the Result.t from the standard library.

Now, at several occasions there was an attempt to lower the lower bound - to avoid random packages failing in CI, and requiring the magic conflicts: [ "result" {< "1.5"} ] line in arbitrary opam files (see also discussions and more).

Time has moved on, we're now in the happy situation (thanks to #25960 and #27100) that we're able to remove packages. This is great.

Within our archival process, soon (Feb 1st) we'll move all our < 4.08 packages to the archive. To avoid further burden on ocaml package developers, I propose (as discussed in opam-repository maintainers meetings) to lower the lower bound of earlier result packages - so we finally can close #24263.

Obviously since there has been some discussions and disapproval by @dra27 (and eventually others, asking for @avsm @kit-ty-kate opinions), my invitation is to discuss this PR - whether there are still concerns or the time is ready. From my discussions with the opam-repository maintainers, the timing is good.

@kit-ty-kate
Copy link
Member

With the archival process in mind i personally think this PR is totally fine and welcome. If this is merged i would also invite to also open a PR to remove the now unnecessary conflicts: ["result" {< "1.5"}] from the numerous packages that have it.

@hannesm
Copy link
Member Author

hannesm commented Jan 6, 2025

@kit-ty-kate that's a great idea, and once this PR is merged I'll follow up (it may only be safe when the result packages have been archived - otherwise on a e.g. 4.06 switch someone may install result 1.3 and get into trouble with some packages).

@avsm
Copy link
Member

avsm commented Jan 7, 2025

Agreed with @kit-ty-kate! My only objection to it previously was the supported status of pre-4.08 versions. It'll also be really nice to remove all the conflict clauses on result.

@dra27
Copy link
Member

dra27 commented Jan 8, 2025

It's a data point rather than a veto, but as in #24868 (comment), there will still I think be packages which aren't (yet) archived but which become uninstallable on OCaml 4.08-4.13 as a result of this.

@hannesm
Copy link
Member Author

hannesm commented Jan 8, 2025

Right @dra27. To repeat your list -- here with the transitive closure of revdeps:

  • alcotest.0.8.0, alcotest.0.8.1, alcotest.0.8.3, alcotest.0.8.4, alcotest.0.8.5 -- makes irmin-test.2.0.0 unavailable, newer alcotest versions available
  • cmdliner.1.0.0, cmdliner.1.0.1, cmdliner.1.0.2 - no further revdeps, newer releases available
  • containers.2.6, containers.2.6.1, containers.2.7 - makes smbc.0.5 and smbc.0.6 uninstallable (there's smbc.0.6.1) -- also newer containers releases available
  • datakit-client.0.12.0, datakit-client.0.12.2, datakit-client.0.12.3, datakit-client.1.0.0 - makes datakit-bridge-github, datakit-bridge-local-git, datakit-ci, datakit-client-9p, datakit-github uninstallable
  • depyt.0.2.0 - no further revdeps, newer versions available
  • irmin.1.3.2, irmin.1.4.0 - plays a role in datakit, also in ezirmin -- newer irmin versions available
  • logs.0.6.2 - makes logs-async.1.0 uninstallable (there's newer versions), also newer logs versions available
  • mirage-block-lwt.1.0.0, mirage-block-lwt.1.1.0 - no further revdeps, newer versions available
  • ocaml-version.2.3.0 - no further revdeps, newer versions available
  • promise.1.0.2 - no further revdeps, newer versions available
  • tls.0.9.2, tls.0.9.3, tls.0.10.1 - no further revdeps, newer versions available
  • tsdl.0.9.1, tsdl.0.9.2, tsdl.0.9.3, tsdl.0.9.4, tsdl.0.9.5, tsdl.0.9.6 - makes bogue.20190717, bogue.20190920, and bogue.20200630 uninstallable (there are newer bogue versions), also tsdl-mixer.0.2 (newer version available) -- there are newer tsdl versions available
  • tsdl-image.0.2.0 - no further revdeps, newer versions available
  • x509.0.6.2 - no further revdeps, newer versions available
  • zed.2.0, zed.2.0.1, zed.2.0.2, zed.2.0.3, zed.2.0.4, zed.2.0.5 - no further revdeps, newer versions available

So, below the line I only see datakit as an issue -- and am wondering whether this is an actively used project? There's not much activity on https://github.com/moby/datakit -- is this still used?

@hannesm
Copy link
Member Author

hannesm commented Jan 8, 2025

Oops, there's maybe some more impact by containers, with:

  • calculon.0.1 and calculon.0.2 (newer version exists)
  • lilis.0.2.1 no newer version available
  • opam-query.1.3 no newer version available

I'm unaware of the usage and impact of lilis and opam-query. They both don't have any revers dependencies, I am not sure whether they are used.

@hannesm
Copy link
Member Author

hannesm commented Jan 9, 2025

paging @avsm @djs55 @samoht @MagnusS @talex5 as datakit authors
also @whitequark for opam-query
and @Drup for lilis

the question is: are these three packages actively used and maintained, so would it be really sad to archive them (as a collateral damage of result < 1.5) or not. thanks.

@djs55
Copy link
Contributor

djs55 commented Jan 9, 2025

Regarding datakit: I've not used it for several years. We've not added a commit for 6 years. I think it's ok to archive.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Old result packages shadows the Result modules for newer builds
6 participants