-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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 (15 packages) (3.17.0) #26975
Conversation
CHANGES: ### Fixed - Show the context name for errors happening in non-default contexts. (ocaml/dune#10414, fixes ocaml/dune#10378, @jchavarri) - Correctly declare dependencies of indexes so that they are rebuilt when needed. (ocaml/dune#10623, @voodoos) - Don't depend on coq-stdlib being installed when expanding variables of the `coq.version` family (ocaml/dune#10631, fixes ocaml/dune#10629, @gares) - Error out if no files are found when using `copy_files`. (ocaml/dune#10649, @jchavarri) - Re_export dune-section private library in the dune-site library stanza, in order to avoid failure when generating and building sites modules with implicit_transitive_deps = false. (ocaml/dune#10650, fixes ocaml/dune#9661, @MA0100) - Expect test fixes: support multiple modes and fix dependencies when there is a custom runner (ocaml/dune#10671, @vouillon) - In a `(library)` stanza with `(extra_objects)` and `(foreign_stubs)`, avoid double linking the extra object files in the final executable. (ocaml/dune#10783, fixes ocaml/dune#10785, @nojb) - Map `(re_export)` library dependencies to the `exports` field in `META` files, and vice-versa. This field was proposed in to https://discuss.ocaml.org/t/proposal-a-new-exports-field-in-findlib-meta-files/13947. The field is included in Dune-generated `META` files only when the Dune lang version is >= 3.17. (ocaml/dune#10831, fixes ocaml/dune#10830, @nojb) - Fix staged pps preprocessors on Windows (which were not working at all previously) (ocaml/dune#10869, fixes ocaml/dune#10867, @nojb) - Fix `dune describe` when an executable is disabled with `enabled_if`. (ocaml/dune#10881, fixes ocaml/dune#10779, @moyodiallo) - Fix an issue where C stubs would be rebuilt whenever the stderr of Dune was redirected. (ocaml/dune#10883, fixes ocaml/dune#10882, @nojb) - Fix the URL opened by the command `dune ocaml doc`. (ocaml/dune#10897, @gridbugs) - Fix the file referred to in the error/warning message displayed due to the dune configuration version not supporting a particular configuration stanza in use. (ocaml/dune#10923, @H-ANSEN) - Fix `enabled_if` when it uses `env` variable. (ocaml/dune#10936, fixes ocaml/dune#10905, @moyodiallo) - Fix exec -w for relative paths with --root argument (ocaml/dune#10982, @gridbugs) - Do not ignore the `(locks ..)` field in the `test` and `tests` stanza (ocaml/dune#11081, @rgrinberg) - Tolerate files without extension when generating merlin rules. (ocaml/dune#11128, @anmonteiro) ### Added - Make Merlin/OCaml-LSP aware of "hidden" dependencies used by `(implicit_transitive_deps false)` via the `-H` compiler flag. (ocaml/dune#10535, @voodoos) - Add support for the -H flag (introduced in OCaml compiler 5.2) in dune (requires lang versions 3.17). This adaptation gives the correct semantics for `(implicit_transitive_deps false)`. (ocaml/dune#10644, fixes ocaml/dune#9333, ocsigen/tyxml#274, ocaml/dune#2733, ocaml/dune#4963, @MA0100) - Add support for specifying Gitlab organization repositories in `source` stanzas (ocaml/dune#10766, fixes ocaml/dune#6723, @H-ANSEN) - New option to control jsoo sourcemap generation in env and executable stanza (ocaml/dune#10777, fixes ocaml/dune#10673, @hhugo) - One can now control jsoo compilation_mode inside an executable stanza (ocaml/dune#10777, fixes ocaml/dune#10673, @hhugo) - Add support for specifying default values of the `authors`, `maintainers`, and `license` stanzas of the `dune-project` file via the dune config file. Default values are set using the `(project_defaults)` stanza (ocaml/dune#10835, @H-ANSEN) - Add names to source tree events in performance traces (ocaml/dune#10884, @jchavarri) - Add `codeberg` as an option for defining project sources in dune-project files. For example, `(source (codeberg user/repo))`. (ocaml/dune#10904, @nlordell) - `dune runtest` can now run individual tests with `dune runtest mytest.t` (ocaml/dune#11041, @Alizter). - Wasm_of_ocaml support (ocaml/dune#11093, @vouillon) - Add a `coqdep_flags` field to the `coq` field of the `env` stanza, and to the `coq.theory` stanza, allowing to configure `coqdep` flags. (ocaml/dune#11094, @rlepigre) ### Changed - Remove all remnants of the experimental `patch-back-source-tree`. (ocaml/dune#10771, @rgrinberg) - Change the preset value for author and maintainer fields in the `dune-project` file to encourage including emails. (ocaml/dune#10848, @punchagan) - Tweak the preset value for tags in the `dune-project` file to hint at topics not having a special meaning. (ocaml/dune#10849, @punchagan) - Change some colors to improve readability in light-mode terminals (ocaml/dune#10890, @gridbugs) - Forward the linkall flag to jsoo in whole program compilation as well (ocaml/dune#10935, @hhugo) - Configurator uses `pkgconf` as pkg-config implementation when available and forwards it the `target` of `ocamlc -config`. (ocaml/dune#10937, @pirbo) - Enable Dune cache by default. Add a new Dune cache setting `enabled-except-user-rules`, which enables the Dune cache, but excludes user-written rules from it. This is a conservative choice that can avoid breaking rules whose dependencies are not correctly specified. This is the current default. (ocaml/dune#10944, ocaml/dune#10710, @nojb, @ElectreAAS) - Do not add `dune` dependency in `dune-project` when creating projects with `dune init proj`. The Dune dependency is implicitely added when generating opam files (ocaml/dune#11129, @Leonidas-from-XIV)
If the CI is ok, this PR will close #26951. |
Note that we do not expect the CI to run without issues, as a large part of the ecosystem is pulled in dune's revdeps, and some packages fail to build. |
The CI has finished, and the logs have been manually reviewed and approved by @maiste and myself. |
I also went through the failures. There are many new ones, but they are all due to CI network struggles |
Thanks |
Fast, portable, and opinionated build system
CHANGES:
Fixed
Show the context name for errors happening in non-default contexts.
(Show the context name for errors happening in "alt" contexts dune#10414, fixes Include the context name for errors that happen in the non-default context dune#10378, @jchavarri)
Correctly declare dependencies of indexes so that they are rebuilt when
needed. (Indexing rules: correctly declare indexes dependencies dune#10623, @voodoos)
Don't depend on coq-stdlib being installed when expanding variables
of the
coq.version
family ([coq] make expand "coq.version" and co not depend on coq-stdlib dune#10631, fixes [coq] expand coq.version & co without using coq-lib dune#10629, @gares)Error out if no files are found when using
copy_files
. (copy_files: error out if no files found dune#10649, @jchavarri)Re_export dune-section private library in the dune-site library stanza,
in order to avoid failure when generating and building sites modules
with implicit_transitive_deps = false. (Fix generating sites modules failure when implicit_transitive_deps set to false dune#10650, fixes Modules generated for sites use an implicit transitive dep dune#9661, @MA0100)
Expect test fixes: support multiple modes and fix dependencies when there is
a custom runner (Expect test fixes dune#10671, @vouillon)
In a
(library)
stanza with(extra_objects)
and(foreign_stubs)
, avoiddouble linking the extra object files in the final executable.
((library (extra_objects)): avoid double linking dune#10783, fixes Error building library with indirect dependency on object file dune#10785, @nojb)
Map
(re_export)
library dependencies to theexports
field inMETA
files,and vice-versa. This field was proposed in to
https://discuss.ocaml.org/t/proposal-a-new-exports-field-in-findlib-meta-files/13947.
The field is included in Dune-generated
META
files only when the Dune langversion is >= 3.17.
(Map
(re_export)
toexports
field inMETA
files dune#10831, fixes Map(re_export)
toexports
field inMETA
files dune#10830, @nojb)Fix staged pps preprocessors on Windows (which were not working at all
previously) (Fix staged pps on Windows dune#10869, fixes [windows]
staged_pps
passes incorrect path separator tocmd.exe
dune#10867, @nojb)Fix
dune describe
when an executable is disabled withenabled_if
.(fix: enabled_if with
dune describe
dune#10881, fixes dune describe crashing with enabled_if dune#10779, @moyodiallo)Fix an issue where C stubs would be rebuilt whenever the stderr of Dune was
redirected. (Always pass
-fdiagnostics-color=always
tocc
-style compilers to avoid useless recompilations when Dune's stderr is redirected dune#10883, fixes Redirecting the stderr of Dune causes recompilation of C stubs dune#10882, @nojb)Fix the URL opened by the command
dune ocaml doc
. (Fix url opened by "dune ocaml doc" dune#10897, @gridbugs)Fix the file referred to in the error/warning message displayed due to the
dune configuration version not supporting a particular configuration
stanza in use. (Fix error/warnings for config file dune#10923, @H-ANSEN)
Fix
enabled_if
when it usesenv
variable. (fix: enabled_if withenv
variable dune#10936, fixesenabled_if
field does not support environment variables on executable stanza dune#10905, @moyodiallo)Fix exec -w for relative paths with --root argument (Fix exec -w for relative paths with --root argument dune#10982, @gridbugs)
Do not ignore the
(locks ..)
field in thetest
andtests
stanza(fix: respect (locks ..) in the (tests ..) stanza dune#11081, @rgrinberg)
Tolerate files without extension when generating merlin rules.
(fix(merlin): tolerate files without extension dune#11128, @anmonteiro)
Added
Make Merlin/OCaml-LSP aware of "hidden" dependencies used by
(implicit_transitive_deps false)
via the-H
compiler flag. (Use new hidden deps Merlin support for handling implicit-transitive-deps false dune#10535, @voodoos)Add support for the -H flag (introduced in OCaml compiler 5.2) in dune
(requires lang versions 3.17). This adaptation gives
the correct semantics for
(implicit_transitive_deps false)
.(Add support for -H compiler flag dune#10644, fixes Add support for the new -H <dir> argument in OCaml 5.2 dune#9333, dune implicit_transitive_deps false leads to confusing errors ocsigen/tyxml#274, Debugging build failures with implicit_transitive_deps false dune#2733, ignore ppx runtime dependencies when implicit transitive deps = false dune#4963, @MA0100)
Add support for specifying Gitlab organization repositories in
source
stanzas (Organization In Source Stanza dune#10766, fixes Allow
(source (gitlab org/project/repo))
in dune-project dune#6723, @H-ANSEN)New option to control jsoo sourcemap generation in env and executable stanza
(Jsoo: make dune aware of sourcemap generation dune#10777, fixes Dune does not recognise separate source map files from js_of_ocaml dune#10673, @hhugo)
One can now control jsoo compilation_mode inside an executable stanza
(Jsoo: make dune aware of sourcemap generation dune#10777, fixes Dune does not recognise separate source map files from js_of_ocaml dune#10673, @hhugo)
Add support for specifying default values of the
authors
,maintainers
, andlicense
stanzas of thedune-project
file via the dune config file. Defaultvalues are set using the
(project_defaults)
stanza (feat: Config defaults for dune-project dune#10835, @H-ANSEN)Add names to source tree events in performance traces (perf: add names to source tree events dune#10884, @jchavarri)
Add
codeberg
as an option for defining project sources in dune-projectfiles. For example,
(source (codeberg user/repo))
. (Addcodeberg
Source Kind dune#10904, @nlordell)dune runtest
can now run individual tests withdune runtest mytest.t
(Allow runtest to run individual tests dune#11041, @Alizter).
Wasm_of_ocaml support (Wasm_of_ocaml support dune#11093, @vouillon)
Add a
coqdep_flags
field to thecoq
field of theenv
stanza, and to thecoq.theory
stanza, allowing to configurecoqdep
flags.(Add support for
coqdep
flags. dune#11094, @rlepigre)Changed
Remove all remnants of the experimental
patch-back-source-tree
. (refactor(rules): remove support for patch back into source tree dune#10771,@rgrinberg)
Change the preset value for author and maintainer fields in the
dune-project
file to encourage including emails. (Encourage adding email in author & maintainer info dune#10848, @punchagan)Tweak the preset value for tags in the
dune-project
file to hint at topicsnot having a special meaning. (Subtle hint that topics is not a keyword dune#10849, @punchagan)
Change some colors to improve readability in light-mode terminals
(Change colors to be more readable in light themes dune#10890, @gridbugs)
Forward the linkall flag to jsoo in whole program compilation as well (Pass the linkall flag to jsoo in whole program compilation as well dune#10935, @hhugo)
Configurator uses
pkgconf
as pkg-config implementation when availableand forwards it the
target
ofocamlc -config
. (Configurator: pkg-config plugin uses pkgconf and --personality=TARGET by default dune#10937, @pirbo)Enable Dune cache by default. Add a new Dune cache setting
enabled-except-user-rules
, which enables the Dune cache, but excludesuser-written rules from it. This is a conservative choice that can avoid
breaking rules whose dependencies are not correctly specified. This is the
current default. (Dune cache: add
enabled-except-user-rules
setting dune#10944, Enable dune cache by default dune#10710, @nojb, @ElectreAAS)Do not add
dune
dependency indune-project
when creating projects withdune init proj
. The Dune dependency is implicitely added when generatingopam files (fix: Do not depend on
dune
indune-project
indune init
template dune#11129, @Leonidas-from-XIV)