Vendor cmdliner 1.3.0 as opam-core.cmdliner#6755
Conversation
|
Note that unless I did not read this well, this will prevent people from linking cmdliner and opam libraries. I honestly have no idea why you decided to make your life so complicated. There are reasonable and simple workarounds that allow you to use cmdliner 2.0.0 directly. |
I'm just going to mention them because I'm not sure you got them.
|
8d69f59 to
fcf44d1
Compare
I understand the reluctance to
Note that 1. + 3. gives you exactly what you asked for in this comment. |
fcf44d1 to
15beca5
Compare
| ## VCS | ||
|
|
||
| ## Build | ||
| * opam no longer depends on `cmdliner` [#6755 @kit-ty-kate - fix #6425] |
There was a problem hiding this comment.
| * opam no longer depends on `cmdliner` [#6755 @kit-ty-kate - fix #6425] | |
| * opam no longer depends on `cmdliner`. It is now vendored to avoid version clash and more fine grained . [#6755 @kit-ty-kate - fix #6425] |
Proposal to be more precise on the how & why
There was a problem hiding this comment.
I don't think we have to do this here. The blog post is the right place for explanations
There was a problem hiding this comment.
and release notes. But ok to add it at that moment, we just need to remember
| @@ -0,0 +1,21 @@ | |||
| #!/bin/sh | |||
There was a problem hiding this comment.
Where this file is used ?
It needs more documentation & if it is only for the first vendoring (from what i read), it's better to store it in shell/
There was a problem hiding this comment.
It is used for first vendoring and in the future (or now) to have a quick way of showing what has changed (or make sure nothing has changed) compared to upstream 1.3.0. I've moved it to shell/
15beca5 to
d000e06
Compare
|
Is it possible to discuss the opportunity of not doing this? Or at least have a public discussion on why you are doing this? I would really like to have non utterly broken completion scripts for In my opinion the course of action here is creating technical debt for the project (assuming you want to continue using cmdliner), promotes software bloat and is not in favour of |
dune wraps libraries by default, so modules like
This is really not complicated, this took me 30mins to make and is quite straightforward. We don't need the new features of 2.0.0, and quite the opposite, upgrading to 1.3.0 minus the deprecation to make it compatible with 2.0.0 is quite a bit more work in itself as this PR shows. dbuenzli/cmdliner#200 announced the removal of the
I don't think it does. The comment was asking for a tangible OCaml expression to ensure that if the feature suddenly disappears, the build would fail. Instead, with the environment variable, the build would continue to succeed but things would now break at runtime. Note that vendoring this doesn't mean we can't go back to using upstream cmdliner in the future, as long as we're not adding our own patch on top of it, it will be as easy to remove the vendor as it was to create it. Maybe we will decide to stop supporting prefixes and have a proper alias system for shorter names in the future for opam 3.x but we would at least like our command line interface to remain stable for the remaining of opam 2.x. |
Please do, it's great to know in any case |
|
Besides, as mentioned in the issue #6425 (comment), Fedora packaging is blocked because of the constraint on cmdliner.1.3. Vendoring it now, for the release is a quick way to resolve this issue. As mentioned Kate, we can choose in the future to do in another way. |
Well that change will not happen before years at which point I would have expected and/or made sure that you would have migrated to the new experience.
It's difficult to satisfy everyone but there are very reasonable points that can be made against the feature and from an hci point of view it's much better to have a consistent experience across your cli tools. But I understand programmers rarely understand these hci issues. I'm sorry to have lost your trust (also please note that you were the only one who expressed disagreement with the change). But I can say that with this move you lost mine. To me this looks like favouring your preference and experience of the tool over providing a great experience to end-users.
Well I will say that given what is happening here, I'm not really in the mood of helping improve |
The module name is renamed to OpamCmdliner to allow end-users of the opam libraries to use upstream cmdliner
d000e06 to
989fcaa
Compare
The module name is renamed to OpamCmdliner to allow end-users of the opam libraries to use upstream cmdliner. The library is now also wrapped instead of unwrapped for the same reason.
The
src/core/cmdliner/vendor.shscript allows us to show and make sure ourselves of the changes between upstream cmdliner and our vendored version.Fixes #6425
Backported in 2.5 via #6756