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

Add x-maintenance-intent to your opam files #1879

Open
hannesm opened this issue Jan 7, 2025 · 7 comments
Open

Add x-maintenance-intent to your opam files #1879

hannesm opened this issue Jan 7, 2025 · 7 comments

Comments

@hannesm
Copy link
Member

hannesm commented Jan 7, 2025

Dear Madam or Sir,

due to the opam repository archival process, we are keen to have the maintainers of packages specify their intention. We noticed that merlin has a lot of releases, and are curious what your maintenance intention is.

You can read up on the policy at https://github.com/ocaml/opam-repository/blob/master/governance/policies/archiving.md and the x-maintenance-intent field at https://github.com/ocaml/opam-repository/blob/master/governance/policies/archiving.md#specification-of-the-x--fields-used-in-the-archiving-process

Thanks a lot for taking this into consideration. Please note that adding x-maintenance-intent in the latest release is sufficient (please feel free to PR such a field directly to the opam-repository).

Also note that if there exists a package that is to be retained in opam-repository, and this depends on a specific merlin version (not part of the maintenance-intent), this merlin version is kept -- so we don't end up in uninstallable packages.

@voodoos
Copy link
Collaborator

voodoos commented Jan 8, 2025

Hello @hannesm,

We maintain the latest releases of Merlin for the two last releases of the compiler and 4.14.
For example, the currently maintained versions are v4.18-414, v5.3-502 and v5.3-503.

I think that would translate into this value:
x-maintenance-intent: ["v(latest)-414" "v(latest)-(latest)" "v(latest)-(latest-1)"]

Does that feels right to you ? (I mean, is that the expected syntax ?)

@hannesm
Copy link
Member Author

hannesm commented Jan 8, 2025

Thanks @voodoos, I'll get back to you later about the syntax. Thanks for explaining what your maintenance strategy is.

@hannesm
Copy link
Member Author

hannesm commented Jan 16, 2025

We maintain the latest releases of Merlin for the two last releases of the compiler and 4.14. For example, the currently maintained versions are v4.18-414, v5.3-502 and v5.3-503.

I think that would translate into this value: x-maintenance-intent: ["v(latest)-414" "v(latest)-(latest)" "v(latest)-(latest-1)"]

Does that feels right to you ? (I mean, is that the expected syntax ?)

I'm confused by the "-" (since in opam, only "." is a separator between major, minor, patch, subpatch, whatever you call it), but @raphael-proust volunteered to support that in the parser for maintenance intent. Your maintenance-intent looks allright, apart from the leading "v" -- you don't need that (at least according to https://ocaml.org/p/merlin/latest your released versions are not prefixed by "v").

Thanks a lot.

@hannesm
Copy link
Member Author

hannesm commented Jan 30, 2025

My impression is, esp. with the revised specification of the semantics (https://discuss.ocaml.org/t/opam-repository-archive-clarification-of-the-opam-fields) that what you try to achieve is "the latest version for each supported OCaml compiler"!? If this is the case, the x-maintenance-intent should be ["(latest)"]. Does this sound good to you/

@voodoos
Copy link
Collaborator

voodoos commented Jan 30, 2025

Sounds reasonable to me, even if it does not inform about which versions of the compiler are supported.

@hannesm
Copy link
Member Author

hannesm commented Jan 30, 2025

Hmm, I'm a bit puzzled. From the discuss post linked above:

[...]
The opam-repository supports (from February 1st on) OCaml 4.08 and greater.
[...]
The [...] semantics of “(latest)” is “the latest version of this package, so that every supported OCaml version will have an installation candidate”.

So, from the archival perspective, for each OCaml compiler >= 4.08, a version of merlin will be retained that is installable.

@voodoos
Copy link
Collaborator

voodoos commented Jan 30, 2025

Yes, from the archival perspective keeping the latest Merlin (and merlin lib and dot-merlin-reader and ocaml-lsp-server) for each opam supported compiler is the right thing to do.

However from the maintenance perspective we do not commit to regularly maintain Merlin for all opam-supported compiler versions, only the most recent from branches 4 and 5.

I will put latest in our opam files.

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

No branches or pull requests

2 participants