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

[new release] dune-build-info, dune, dune-configurator, dune-action-plugin, dune-private-libs and dune-glob (2.6.0) #16585

Merged
merged 2 commits into from
Jun 9, 2020

Conversation

rgrinberg
Copy link
Member

Embed build informations inside executable

CHANGES:

@camelus
Copy link
Contributor

camelus commented Jun 6, 2020

Commit: 8e693ea

A pull request by opam-seasoned @rgrinberg.

☀️ All lint checks passed 8e693ea
  • These packages passed lint tests: dune-action-plugin.2.6.0, dune-build-info.2.6.0, dune-configurator.2.6.0, dune-glob.2.6.0, dune-private-libs.2.6.0, dune.2.6.0

☀️ Installability check (+6)
  • new installable packages (6): dune.2.6.0 dune-action-plugin.2.6.0 dune-build-info.2.6.0 dune-configurator.2.6.0 dune-glob.2.6.0 dune-private-libs.2.6.0

@avsm
Copy link
Member

avsm commented Jun 6, 2020

dune-configurator is failing on OCaml 4.07

#=== ERROR while compiling dune-configurator.2.6.0 ============================#
# context              2.0.7 | linux/x86_64 | ocaml-base-compiler.4.07.1 | file:///home/opam/opam-repository
# path                 ~/.opam/4.07/.opam-switch/build/dune-configurator.2.6.0
# command              ~/.opam/4.07/bin/dune build -p dune-configurator -j 72 @install
# exit-code            1
# env-file             ~/.opam/log/dune-configurator-29-450930.env
# output-file          ~/.opam/log/dune-configurator-29-450930.out
### output ###
#       ocamlc otherlibs/configurator/src/.configurator.objs/byte/configurator__Import.{cmi,cmo,cmt} (exit 2)
# (cd _build/default && /home/opam/.opam/4.07/bin/ocamlc.opt -w -40 -safe-string -g -bin-annot -I otherlibs/configurator/src/.configurator.objs/byte -I otherlibs/configurator/src/.configurator.objs/public_cmi -I /home/opam/.opam/4.07/lib/dune-private-libs/dune_csexp -no-alias-deps -open Configurator__ -o otherlibs/configurator/src/.configurator.objs/byte/configurator__Import.cmo -c -impl otherlibs/configurator/src/import.pp.ml)
# File "otherlibs/configurator/src/import.ml", line 85, characters 33-36:
# Error: Unbound module Int

@rgrinberg
Copy link
Member Author

Didn’t it fail before as well? Ill add a constraint for now and we can fix compat later

@rgrinberg
Copy link
Member Author

Never mind, this ends up being a regression after all. Will re-release

@rgrinberg rgrinberg force-pushed the release-dune-2.6.0 branch from f80ea5a to 411eb5d Compare June 7, 2020 19:57
…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)
@rgrinberg rgrinberg force-pushed the release-dune-2.6.0 branch from 411eb5d to feeccf5 Compare June 7, 2020 23:43
@kit-ty-kate
Copy link
Member

kit-ty-kate commented Jun 8, 2020

Is this expected? cc @dinosaure

#=== ERROR while compiling digestif.0.8.0-1 ===================================#
# context              2.0.7 | linux/x86_64 | ocaml-base-compiler.4.10.0 | file:///home/opam/opam-repository
# path                 ~/.opam/4.10/.opam-switch/build/digestif.0.8.0-1
# command              ~/.opam/4.10/bin/dune build -p digestif -j 72
# exit-code            1
# env-file             ~/.opam/log/digestif-25-016501.env
# output-file          ~/.opam/log/digestif-25-016501.out
### output ###
# File "dune-project", line 2, characters 0-28:
# 2 | (using library_variants 0.1)
#     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# Error: Extension library_variants was deleted in the 2.6 version of the dune
# language

If it is, some packages will need to be constrained first before merging this PR.

EDIT: ok I read the changelog and discussions. I'll open a PR to fix this.

@rgrinberg
Copy link
Member Author

Yup, it's expected. Experimental features can be removed without a major version change and we discussed things with dinosaure before dropping this feature. Upper bounds need to be added indeed.

@kit-ty-kate
Copy link
Member

Thanks (sorry I edited my post too late, I've read the discussions), I'm fixing the appropriate packages.

Looking at other failures, is this one expected as well?

#=== ERROR while compiling ocamlfuse.2.7.1-cvs6 ===============================#
# context              2.0.7 | linux/x86_64 | ocaml-base-compiler.4.10.0 | file:///home/opam/opam-repository
# path                 ~/.opam/4.10/.opam-switch/build/ocamlfuse.2.7.1-cvs6
# command              ~/.opam/4.10/bin/dune build -p ocamlfuse -j 72
# exit-code            1
# env-file             ~/.opam/log/ocamlfuse-25-ece7a3.env
# output-file          ~/.opam/log/ocamlfuse-25-ece7a3.out
### output ###
#       ocamlc lib/config/.discover.eobjs/byte/discover.{cmi,cmo,cmt} (exit 2)
# (cd _build/default && /home/opam/.opam/4.10/bin/ocamlc.opt -w -40 -g -bin-annot -I lib/config/.discover.eobjs/byte -I /home/opam/.opam/4.10/lib/dune-configurator -I /home/opam/.opam/4.10/lib/dune-private-libs/dune_csexp -no-alias-deps -o lib/config/.discover.eobjs/byte/discover.cmo -c -impl lib/config/discover.ml)
# File "lib/config/discover.ml", line 1, characters 6-12:
# 1 | open! Stdune
#           ^^^^^^
# Error: Unbound module Stdune

@rgrinberg
Copy link
Member Author

I'm fixing the appropriate packages.

Thanks. I already started fixing digestif, so you can take start from this patch if you want:

diff --git a/packages/digestif/digestif.0.7.2/opam b/packages/digestif/digestif.0.7.2/opam
index a361115735..d1a1a859f2 100644
--- a/packages/digestif/digestif.0.7.2/opam
+++ b/packages/digestif/digestif.0.7.2/opam
@@ -35,7 +35,7 @@ build: [
 
 depends: [
   "ocaml"          {>= "4.03.0"}
-  "dune"           {>= "1.9.2"}
+  "dune"           {>= "1.9.2" & < "2.6.0"}
   "eqaf"
   "base-bytes"
   "base-bigarray"
diff --git a/packages/digestif/digestif.0.7.3/opam b/packages/digestif/digestif.0.7.3/opam
index a3f087914a..b7d1c3a6c5 100644
--- a/packages/digestif/digestif.0.7.3/opam
+++ b/packages/digestif/digestif.0.7.3/opam
@@ -32,7 +32,7 @@ run-test: [ "dune" "runtest" "-p" name "-j" jobs ]
 
 depends: [
   "ocaml"          {>= "4.03.0"}
-  "dune"           {>= "1.9.2"}
+  "dune"           {>= "1.9.2" & < "2.6.0"}
   "eqaf"
   "base-bytes"
   "base-bigarray"
diff --git a/packages/digestif/digestif.0.7.4/opam b/packages/digestif/digestif.0.7.4/opam
index 455985603d..8521195648 100644
--- a/packages/digestif/digestif.0.7.4/opam
+++ b/packages/digestif/digestif.0.7.4/opam
@@ -31,7 +31,7 @@ run-test: [ "dune" "runtest" "-p" name "-j" jobs ]
 
 depends: [
   "ocaml"          {>= "4.03.0"}
-  "dune"           {>= "1.9.2"}
+  "dune"           {>= "1.9.2" & < "2.6.0"}
   "eqaf"
   "base-bytes"
   "bigarray-compat"
diff --git a/packages/digestif/digestif.0.8.0-1/opam b/packages/digestif/digestif.0.8.0-1/opam
index 6e026e9584..7a8814a02b 100644
--- a/packages/digestif/digestif.0.8.0-1/opam
+++ b/packages/digestif/digestif.0.8.0-1/opam
@@ -36,7 +36,7 @@ run-test: [ "dune" "runtest" "-p" name "-j" jobs ]
 
 depends: [
   "ocaml"          {>= "4.03.0"}
-  "dune"           {>= "1.9.2"}
+  "dune"           {>= "1.9.2" & < "2.6.0"}
   "eqaf"
   "base-bytes"
   "bigarray-compat"
diff --git a/packages/digestif/digestif.0.8.0/opam b/packages/digestif/digestif.0.8.0/opam
index df437c6267..ed5e4fc075 100644
--- a/packages/digestif/digestif.0.8.0/opam
+++ b/packages/digestif/digestif.0.8.0/opam
@@ -32,7 +32,7 @@ run-test: [ "dune" "runtest" "-p" name "-j" jobs ]
 
 depends: [
   "ocaml"          {>= "4.03.0"}
-  "dune"           {>= "1.9.2"}
+  "dune"           {>= "1.9.2" & < "2.6.0"}
   "eqaf"
   "base-bytes"
   "bigarray-compat"

@rgrinberg
Copy link
Member Author

Looking at other failures, is this one expected as well?

This is expected. The author forgot to specify a dependency on stdune and just assumed it would be transitively present from configurator. Dune made no such guarantees.

@kit-ty-kate
Copy link
Member

ok I had a look at all the remaining failure, they are all either related to the one already mentioned or unrelated. The failures should be fixed in #16597. I'll wait for Camelus on this PR, merge it and will re-check this PR afterwards in case I missed something. This should be done by tomorrow afternoon.

@kit-ty-kate
Copy link
Member

kit-ty-kate commented Jun 9, 2020

There seems to be an issue when using dune.2.5.2 with dune-configurator.2.6.0 in checkseum.0.2.0:

- Fatal error: exception Configurator__Import.Fatal_error("Cannot find special file \"/home/opam/.opam/4.10/.opam-switch/build/checkseum.0.2.0/_build/default/.dune/configurator.v2\" produced by dune.")

Does dune-configurator.2.6.0 require dune.2.6.0?

There is also an issue with archetype but it's related to digestif and I'm contact with @dinosaure for that. EDIT: this should be fixed in #16601

Apart from those two issues everything else seems alright

@rgrinberg
Copy link
Member Author

Does dune-configurator.2.6.0 require dune.2.6.0?

Yes, indeed.

@kit-ty-kate
Copy link
Member

Thanks a lot!

@kit-ty-kate kit-ty-kate merged commit 9e7e7e4 into ocaml:master Jun 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment