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

opam files: maintenance intention #6348

Open
hannesm opened this issue Jan 5, 2025 · 3 comments
Open

opam files: maintenance intention #6348

hannesm opened this issue Jan 5, 2025 · 3 comments

Comments

@hannesm
Copy link
Member

hannesm commented Jan 5, 2025

Dear Madam or Sir,

thanks a lot for your work on opam.

I've been working on the opam-repository archiving process, we established a policy https://github.com/ocaml/opam-repository/blob/master/governance/policies/archiving.md

Now, opam itself has a lot of packages released to opam-repository, and I'm curious whether you could specify the maintenance intention of opam itself by adding a x-maintenance-intent field to the opam files. Specifying this field in the latest release is sufficient.

In addition, there are various opam pre-releases in the opam-repository - could these be marked with flags: deprecated and be cleaned up in the phase 3 (march 1st)? Or is there value in keeping these pre-releases and beta versions? I did so for the OCaml compilers releases (in ocaml/opam-repository#27153) - and can propose such a PR for the opam pre-releases as well if you like.

Thanks a lot, if you've any questions, don't hesitate to ask.

@hannesm
Copy link
Member Author

hannesm commented Jan 7, 2025

A related issue/question is about "opam-lib" - a package which exists in opam-repository, originates from this repository - but is no longer around -- can that be safely marked as deprecated? (existing versions are 0.9.1 0.9.3 0.9.4 0.9.5 1.0.0 1.1.0 1.1.1 1.2.0 1.2.1 1.2.2 1.3.0 1.3.1).

If you say "yes", I can propose a PR for opam-repository.

@kit-ty-kate
Copy link
Member

kit-ty-kate commented Jan 7, 2025

opam-lib can be marked as deprecated indeed, as it is the original library for the long gone opam 1.x. This is done in ocaml/opam-repository#27229
The pre-releases have been also marked as deprecated in ocaml/opam-repository#27228

As mentioned in ocaml/opam-repository#27228 i'm not sure flags: deprecated is the right thing to use to do that. It currently displays a vague note to users: => Note: This package is deprecated. upon installation, which might imply that the package itself was deprecated instead of the version only.
The effort to tag all the versions is quite substantial as well, maybe a side database listing rules could be more indicated than using flags: deprecated and x-maintenance-intent. At the very least the former could be merged into the latter if we had a more rich "intent language" to talk about pre-releases. For example can you think of a solution for this? (this would probably be our maintenance intent if i understand it correctly):

x-maintenance-intent: [
  "2.(any).(latest)"
  "2.(latest).0~(any)" # except here i want to say "match only if 2.(latest).x does not exist"
]

@mseri
Copy link
Member

mseri commented Jan 8, 2025

The language for the intent could be improved, we could have

"2.(latest).0~(any) < 2.(latest).(any)"

or something of the sort, to specify only if it was superseded by 2.(latest).(any)

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

3 participants