Conversation
f8e47f1 to
05add08
Compare
|
I just realized with the CI crashing that this may be too much of a breaking change ? For example the CI (which apparently use the PR's dune version to build the opam switch) fails because I see three options:
And my choice would be option 2. |
|
Options 2 seems best to me as well. One thing we could do to help though is scan the dune-universe for invalid |
|
I implemented Option 2 for backward compatibility. The current policy is the following:
|
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
|
You can bump the version of the dune language to 2.5 in this PR. This way we can test it now. We usually bump it as soon as required after a release. |
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
f1213ed to
6c8fac5
Compare
However it is not sufficient to enable us to test the first case: for that we need an extension with a newer version introduced in 2.5 or later. Is there one already ? |
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
|
There isn't indeed. Let's just rely on code review for the first case then. BTW, reading this part of the code again, I just remembered that you can use the |
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
|
@voodoos this PR looks ready to me, you should feel free to merge it. |
Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
… extensions-versionning Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com>
Improve and check extensions versioning. Signed-off-by: Ulysse Gérard <thevoodoos@gmail.com> Co-authored-by: Jeremie Dimino <jeremie@dimino.org>
…lugin, dune-private-libs and dune-glob (2.5.0) CHANGES: - Add a `--release` option meaning the same as `-p` but without the package filtering. This is useful for custom `dune` invocation in opam files where we don't want `-p` (ocaml/dune#3260, @diml) - Fix a bug introduced in 2.4.0 causing `.bc` programs to be built with `-custom` by default (ocaml/dune#3269, fixes ocaml/dune#3262, @diml) - Allow contexts to be defined with local switches in workspace files (ocaml/dune#3265, fix ocaml/dune#3264, @rgrinberg) - Delay expansion errors until the rule is used to build something (ocaml/dune#3261, fix ocaml/dune#3252, @rgrinberg, @diml) - [coq] Support for theory dependencies and compositional builds using new field `(theories ...)` (ocaml/dune#2053, @ejgallego, @rgrinberg) - From now on, each version of a syntax extension must be explicitely tied to a minimum version of the dune language. Inconsistent versions in a `dune-project` will trigger a warning for version <=2.4 and an error for versions >2.4 of the dune language. (ocaml/dune#3270, fixes ocaml/dune#2957, @voodoos) - [coq] Bump coq lang version to 0.2. New coq features presented this release require this version of the coq lang. (ocaml/dune#3283, @ejgallego) - Prevent installation of public executables disabled using the `enabled_if` field. Installation will now simply skip such executables instead of raising an error. (ocaml/dune#3195, @voodoos) - `dune upgrade` will now try to upgrade projects using versions <2.0 to version 2.0 of the dune language. (ocaml/dune#3174, @voodoos) - Add a `top` command to integrate dune with any toplevel, not just utop. It is meant to be used with the new `#use_output` directive of OCaml 4.11 (ocaml/dune#2952, @mbernat, @diml) - Allow per-package `version` in generated `opam` files (ocaml/dune#3287, @toots) - [coq] Introduce the `coq.extraction` stanza. It can be used to extract OCaml sources (ocaml/dune#3299, fixes ocaml/dune#2178, @rgrinberg) - Load ppx rewriters in dune utop and add pps field to toplevel stanza. Ppx extensions will now be usable in the toplevel (ocaml/dune#3266, fixes ocaml/dune#346, @stephanieyou) - Add a `(subdir ..)` stanza to allow evaluating stanzas in sub directories. (ocaml/dune#3268, @rgrinberg) - Fix a bug preventing one from running inline tests in multiple modes (ocaml/dune#3352, @diml) - Allow the use of the `%{profile}` variable in the `enabled_if` field of the library stanza. (ocaml/dune#3344, @mrmr1993) - Allow the use of `%{ocaml_version}` variable in `enabled_if` field of the library stanza. (ocaml/dune#3339, @voodoos) - Fix dune build freezing on MacOS when cache is enabled. (ocaml/dune#3249, fixes #ocaml/dune#2973, @artempyanykh)
Presentation
This PR implements a new versioning system for syntax extensions.
When reading the
dune-projectfile an error will be raised if an extension requires a minimal version of the dune language which is superior to the declared version of the dune language.Fixes #2957
Changes
When an extension is used without being explicitly declared the latest version supported under the actual dune lang version will be added automatically to the project file.
If a mismatch is found the minimal dune lang version needed is shown along with the versions of the extensions available under the current dune lang version.
To make it less a breaking change, only a warning is emitted in some cases:
Notes
Syntax.sincefunction are now useless.Todo
>=2.5