-
Notifications
You must be signed in to change notification settings - Fork 372
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
On breaking compat for the CLI for 2.1 #4503
Comments
Thanks for opening this issue, indeed in |
@dra27 I'm not sure what the story is. Do you mean that with opam 2.1, the following will be run with Makes me slightly puzzled and afraid, versioning in command line behaviour... |
Thanks for the list, which I've added to the release checks for 2.1 (we need to update that during our next dev meeting, so we'll consider if there are more tools affected then). The whole purpose of this feature is to allow the CLI to evolve cleanly without the mess of mixed ways of specifying commands We considered having warnings appear in opam 2.1 and then turn it in to an actual error in 2.2, but experience of watching OCaml deprecate like this (and, indeed, opam itself) shows that all that happens is that people ignore the messages and we have the same discussion at the next version when it becomes an error. opam's CLI is already complicated enough without having to actively support multiple syntaxes at the same time! |
@hannesm - if you run One may of course choose to set |
@dra27 I'm still not sure whether I understand the new semantics. What I'm concerned about are:
With a user hat on, I'd expect an executable within the same major version to not drop support for command line arguments. I'm aware that openssl went this path, but I don't think it is wise. Obviously, bumping / removing arguments in the next major version is fine with me. But I have not followed the discussion at all. Writing shell scripts that need certain arguments / behaviour could parse the output of |
That's correct for the first point. For the second, either For the user hat, and with a lot of reverence to semver and so forth, opam 2.0 was released coming up on 2.5 years ago and I put slightly more weight on that, then the version number. Put another way, whether the version is 2.1 or 3.0, you'll still have to change the mirage tool, or force users to uninstall the package manager! For shell scripts (and, indeed, tools like Running There is further on this in the specification in opam's wiki. I'm also planning on getting a Discuss post up to announce beta4 rather more formally and to introduce this change in more detail. I appreciate it's happened in the wrong order, but I keep being interrupted this week either by children or requests to hack OCaml's build system 🙂 We'll be discussing this in tomorrow's developer meeting - I am expecting that we will conclude that we would like tools to update (in many of these cases, not to set |
Please do not break compatibility in a minor release, whatever the "cleanliness" arguments are. The |
@c-cube: there is no such thing as "write code compatible with 2.0 and 2.1" - your code is either for 2.0's CLI or for 2.1's. There's nothing magic about the environment variable - every single opam command line option is, and always has been, exposed this way. |
More specifically, I'd like our 2.1 beta users to report on CLI changes that are proving problematic aside from |
The 2.1 version of the CLI will remove or deprecate opam config var in favor of opam var: ocaml/opam#4503
This has been reworked in #4575 and so should be fixed with the release candidate. By default you'll now see:
the deprecation can be silenced by setting
and the syntax is now an error only with
|
The 2.1 version of the CLI will remove or deprecate opam config var in favor of opam var: ocaml/opam#4503
* Make freestanding compilation possible w/o opam If we miss opam we just invoke pkg-config with PKG_CONFIG_PATH from the environment (if any). Also don't override a manually passed PKG_CONFIG_PATH even if we have opam. * Adjust for opam 2.1 CLI The 2.1 version of the CLI will remove or deprecate opam config var in favor of opam var: ocaml/opam#4503
Hi,
I recently migrated to the last version of
opam-git
, and noticed that opam now breaks compat with the CLI. In particularopam config var
is not available anymore, andopam var
must be used instead.This is just a head's up that it break at the very least the following tools (and probably more):
thanksfully this can be rolledback using the
OPAMCLI
variable, but I'm not sure the change is worth it.The text was updated successfully, but these errors were encountered: