-
Notifications
You must be signed in to change notification settings - Fork 413
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
Check the minimum version of dune during opam file generation #3427
Check the minimum version of dune during opam file generation #3427
Comments
Second PR in a row with the same issue today: ocaml/opam-repository#16281 |
Indeed. If the dependency on dune is omitted, we automatically insert one with the right constraint. But if one is already present, we don't add the constraint. |
Makes sense to add the constraint unconditionally indeed -- there's no situation that would warrant manually overriding this. |
I'm making this my before lunch time bugfix |
Fixed in #3434. Note that the version constraint will only be inserted when using a version of the dune language >= 2.6 |
Even if the dependency is explicitly listed in the dune-project file Fixes #3427 Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
…lugin, dune-private-libs and dune-glob (2.6.0) CHANGES: - Fix a bug where valid lib names in `dune init exec --libs=lib1,lib2` results in an error. (ocaml/dune#3444, fix ocaml/dune#3443, @bikallem) - Add and `enabled_ if` field to the `install` stanza. Enforce the same variable restrictions for `enabled_if` fields in the `executable` and `install` stanzas than in the `library` stanza. When using dune lang < 2.6, the usage of forbidden variables in executables stanzas with only trigger a warning to maintain compatibility. (ocaml/dune#3408 and ocaml/dune#3496, fixes ocaml/dune#3354, @voodoos) - Insert a constraint one the version of dune when the user explicitly specify the dependency on dune in the `dune-project` file (ocaml/dune#3434 , fixes ocaml/dune#3427, @diml) - Generate correct META files for sub-libraries (of the form `lib.foo`) that contain .js runtime files. (ocaml/dune#3445, @hhugo) - Add a `(no-infer ...)` action that prevents inference of targets and dependencies in actions. (ocaml/dune#3456, fixes ocaml/dune#2006, @roddyyaga) - Correctly infer targets for the `diff?` action. (ocaml/dune#3457, fixes ocaml/dune#2990, @greedy) - Fix `$ dune print-rules` crashing (ocaml/dune#3459, fixes ocaml/dune#3440, @rgrinberg) - Simplify js_of_ocaml rules using js_of_ocaml.3.6 (ocaml/dune#3375, @hhugo) - Add a new `ocaml-merlin` subcommand that can be used by Merlin to get configuration directly from dune instead of using `.merlin` files. (ocaml/dune#3395, @voodoos) - Remove experimental variants feature and make default implementations part of the language (ocaml/dune#3491, fixes ocaml/dune#3483, @rgrinberg)
…lugin, dune-private-libs and dune-glob (2.6.0) CHANGES: - Fix a bug where valid lib names in `dune init exec --libs=lib1,lib2` results in an error. (ocaml/dune#3444, fix ocaml/dune#3443, @bikallem) - Add and `enabled_ if` field to the `install` stanza. Enforce the same variable restrictions for `enabled_if` fields in the `executable` and `install` stanzas than in the `library` stanza. When using dune lang < 2.6, the usage of forbidden variables in executables stanzas with only trigger a warning to maintain compatibility. (ocaml/dune#3408 and ocaml/dune#3496, fixes ocaml/dune#3354, @voodoos) - Insert a constraint one the version of dune when the user explicitly specify the dependency on dune in the `dune-project` file (ocaml/dune#3434 , fixes ocaml/dune#3427, @diml) - Generate correct META files for sub-libraries (of the form `lib.foo`) that contain .js runtime files. (ocaml/dune#3445, @hhugo) - Add a `(no-infer ...)` action that prevents inference of targets and dependencies in actions. (ocaml/dune#3456, fixes ocaml/dune#2006, @roddyyaga) - Correctly infer targets for the `diff?` action. (ocaml/dune#3457, fixes ocaml/dune#2990, @greedy) - Fix `$ dune print-rules` crashing (ocaml/dune#3459, fixes ocaml/dune#3440, @rgrinberg) - Simplify js_of_ocaml rules using js_of_ocaml.3.6 (ocaml/dune#3375, @hhugo) - Add a new `ocaml-merlin` subcommand that can be used by Merlin to get configuration directly from dune instead of using `.merlin` files. (ocaml/dune#3395, @voodoos) - Remove experimental variants feature and make default implementations part of the language (ocaml/dune#3491, fixes ocaml/dune#3483, @rgrinberg)
…lugin, dune-private-libs and dune-glob (2.6.0) CHANGES: - Fix a bug where valid lib names in `dune init exec --libs=lib1,lib2` results in an error. (ocaml/dune#3444, fix ocaml/dune#3443, @bikallem) - Add and `enabled_ if` field to the `install` stanza. Enforce the same variable restrictions for `enabled_if` fields in the `executable` and `install` stanzas than in the `library` stanza. When using dune lang < 2.6, the usage of forbidden variables in executables stanzas with only trigger a warning to maintain compatibility. (ocaml/dune#3408 and ocaml/dune#3496, fixes ocaml/dune#3354, @voodoos) - Insert a constraint one the version of dune when the user explicitly specify the dependency on dune in the `dune-project` file (ocaml/dune#3434 , fixes ocaml/dune#3427, @diml) - Generate correct META files for sub-libraries (of the form `lib.foo`) that contain .js runtime files. (ocaml/dune#3445, @hhugo) - Add a `(no-infer ...)` action that prevents inference of targets and dependencies in actions. (ocaml/dune#3456, fixes ocaml/dune#2006, @roddyyaga) - Correctly infer targets for the `diff?` action. (ocaml/dune#3457, fixes ocaml/dune#2990, @greedy) - Fix `$ dune print-rules` crashing (ocaml/dune#3459, fixes ocaml/dune#3440, @rgrinberg) - Simplify js_of_ocaml rules using js_of_ocaml.3.6 (ocaml/dune#3375, @hhugo) - Add a new `ocaml-merlin` subcommand that can be used by Merlin to get configuration directly from dune instead of using `.merlin` files. (ocaml/dune#3395, @voodoos) - Remove experimental variants feature and make default implementations part of the language (ocaml/dune#3491, fixes ocaml/dune#3483, @rgrinberg)
When turning on the opam file generation, if the dune dependency is explicitly specified no check is being done on whether or not the dune dependency actually has a correct constraint.
For instance:
Here the opam file is generated with an explicit dependency to dune with no constraint. In my opinion it should be checked that
>= 2.4
or above is being required. It would simplify opam-repository maintenance. For example see this PR in which the case was hit: ocaml/opam-repository#16280The text was updated successfully, but these errors were encountered: