-
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 (1.10.0) #14239
Merged
Merged
[new release] dune (1.10.0) #14239
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CHANGES: - Restricted the set of variables available for expansion in the destination filename of `install` stanza to simplify implementation and avoid dependency cycles. (ocaml/dune#2073, @aalekseyev, @diml) - [menhir] call menhir from context root build_dir (ocaml/dune#2067, @ejgallego, review by @diml, @rgrinberg) - [coq] Add `coq.pp` stanza to help with pre-processing of grammar files (ocaml/dune#2054, @ejgallego, review by @rgrinberg) - Add a new more generic form for the *promote* mode: `(promote (until-clean) (into <dir>))` (ocaml/dune#2068, @diml) - Allow to promote only a subset of the targets via `(promote (only <pred>))`. For instance: `(promote (only *.mli))` (ocaml/dune#2068, @diml) - Improve the behavior when a strict subset of the targets of a rule is already in the source tree for projects using the dune language < 1.10 (ocaml/dune#2068, fixes ocaml/dune#2061, @diml) - With lang dune >= 1.10, rules in standard mode are no longer allowed to produce targets that are present in the source tree. This has been a warning for long enough (ocaml/dune#2068, @diml) - Allow %{...} variables in pps flags (ocaml/dune#2076, @mlasson review by @diml and @aalekseyev). - Add a 'cookies' option to ppx_rewriter/deriver flags in library stanzas. This allow to specify cookie requests from variables expanded at each invocation of the preprocessor. (ocaml/dune#2106, @mlasson @diml) - Add more opam metadata and use it to generate `.opam` files. In particular, a `package` field has been added to specify package specific information. (ocaml/dune#2017, ocaml/dune#2091, @avsm, @jonludlam, @rgrinberg) - Clean up the special support for `findlib.dynload`. Before, Dune would simply match on the library name. Now, we only match on the findlib package name when the library doesn't come from Dune. Someone writing a library called `findlib.dynload` with Dune would have to add `(special_builtin_support findlib_dynload)` to trigger the special behavior. (ocaml/dune#2115, @diml) - Install the `future_syntax` preprocessor as `ocaml-syntax-shims.exe` (ocaml/dune#2125, @rgrinberg) - Hide full command on errors and warnings in development and show them in CI. (detected using the `CI` environment variable). Commands for which the invocation might be omitted must output an error prefixed with `File `. Add an `--always-show-command-line` option to disable this behavior and always show the full command. (ocaml/dune#2120, fixes ocaml/dune#1733, @rgrinberg) - In `dune-workspace` files, add the ability to choose the host context and to create duplicates of the default context with different settings. (ocaml/dune#2098, @TheLortex, review by @diml, @rgrinberg and @aalekseyev) - Add support for hg in `dune subst` (ocaml/dune#2135, @diml) - Don't build documentation for implementations of virtual libraries (ocaml/dune#2141, fixes ocaml/dune#2138, @jonludlam) - Fix generation of the `-pp` flag in .merlin (ocaml/dune#2142, @rgrinberg) - Make `dune subst` add a `(version ...)` field to the `dune-project` file (ocaml/dune#2148, @diml) - Add the `%{os_type}` variable, which is a short-hand for `%{ocaml-config:os_type}` (ocaml/dune#1764, @diml) - Allow `enabled_if` fields in `library` stanzas, restricted to the `%{os_type}`, `%{model}`, `%{architecture}`, `%{system}` variables (ocaml/dune#1764, ocaml/dune#2164 @diml, @rgrinberg) - Fix `chdir` on external and source paths. Dune will also fail gracefully if the external or source path does not exist (ocaml/dune#2165, fixes ocaml/dune#2158, @rgrinberg) - Support the `.cc` extension fro C++ sources (ocaml/dune#2195, fixes ocaml/dune#83, @rgrinberg) - Run `ocamlformat` relative to the context root. This improves the locations of errors. (ocaml/dune#2196, fixes ocaml/dune#1370, @rgrinberg) - Fix detection of `README`, `LICENSE`, `CHANGE`, and `HISTORY` files. These would be undetected whenever the project was nested in another workspace. (ocaml/dune#2194, @rgrinberg) - Fix generation of `.merlin` whenever there's more than one stanza with the same ppx preprocessing specification (ocaml/dune#2209 ,fixes ocaml/dune#2206, @rgrinberg) - Fix generation of `.merlin` in the presence of the `copy_files` stanza and preprocessing specifications of other stanazs. (ocaml/dune#2211, fixes ocaml/dune#2206, @rgrinberg) - Run `refmt` from the context's root directory. This improves error messages in case of syntax errors. (ocaml/dune#2223, @rgrinberg) - In .merlin files, don't pass `-dump-ast` to the `future_syntax` preprocessor. Merlin doesn't seem to like it when binary AST is generated by a `-pp` preprocessor. (ocaml/dune#2236, @aalekseyev) - `dune install` will verify that all files mentioned in all .install files exist before trying to install anything. This prevents partial installation of packages (ocaml/dune#2230, @rgrinberg)
CI timeout problems, probably you will want to rerun some of the jobs:
|
☀️ All lint checks passed cfa54d7
☀️ Installability check (11274 → 11275)
|
avsm
added a commit
to avsm/opam-repository
that referenced
this pull request
Jun 4, 2019
spotted in revdeps for ocaml#14239
Is this a regression in 1.10? exists_if is a new feature
|
The |
Ping @avsm |
thanks @rgrinberg ! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fast, portable and opinionated build system
CHANGES:
Restricted the set of variables available for expansion in the destination
filename of
install
stanza to simplify implementation and avoid dependencycycles. (Discover binaries created by install stanzas without listing buildable targets dune#2073, @aalekseyev, @diml)
[menhir] call menhir from context root build_dir ([menhir] Call menhir from root build directory to improve error reporting dune#2067, @ejgallego,
review by @diml, @rgrinberg)
[coq] Add
coq.pp
stanza to help with pre-processing of grammarfiles ([coq] Add coqpp preprocessing stanza. dune#2054, @ejgallego, review by @rgrinberg)
Add a new more generic form for the promote mode:
(promote (until-clean) (into <dir>))
(Fix #2061 and allow to promote a subset of the targets dune#2068, @diml)Allow to promote only a subset of the targets via
(promote (only <pred>))
. For instance:(promote (only *.mli))
(Fix #2061 and allow to promote a subset of the targets dune#2068, @diml)Improve the behavior when a strict subset of the targets of a rule is already
in the source tree for projects using the dune language < 1.10 (Fix #2061 and allow to promote a subset of the targets dune#2068, fixes
Parallel build issue in 1.9.1 dune#2061, @diml)
With lang dune >= 1.10, rules in standard mode are no longer allowed to
produce targets that are present in the source tree. This has been a warning
for long enough (Fix #2061 and allow to promote a subset of the targets dune#2068, @diml)
Allow %{...} variables in pps flags (Allow variables in pps flags dune#2076, @mlasson review by @diml and
@aalekseyev).
Add a 'cookies' option to ppx_rewriter/deriver flags in library stanzas. This
allow to specify cookie requests from variables expanded at each invocation of
the preprocessor. (Allow to pass more information to ppx rewriters dune#2106, @mlasson @diml)
Add more opam metadata and use it to generate
.opam
files. In particular, apackage
field has been added to specify package specific information.(track opam file metadata in dune-project and rewrite opam files dune#2017, More progress on the opam generation dune#2091, @avsm, @jonludlam, @rgrinberg)
Clean up the special support for
findlib.dynload
. Before, Dune would simplymatch on the library name. Now, we only match on the findlib package name when
the library doesn't come from Dune. Someone writing a library called
findlib.dynload
with Dune would have to add(special_builtin_support findlib_dynload)
to trigger the special behavior. (Formalise special builtin support for findlib.dynload dune#2115, @diml)Install the
future_syntax
preprocessor asocaml-syntax-shims.exe
(Rename future-syntax to ocaml-syntax-shims dune#2125,@rgrinberg)
Hide full command on errors and warnings in development and show them in CI.
(detected using the
CI
environment variable). Commands for which theinvocation might be omitted must output an error prefixed with
File
. Add an--always-show-command-line
option to disable this behavior and always showthe full command. (Trim error messages in watch mode dune#2120, fixes display: add an option to not print the command even on errors dune#1733, @rgrinberg)
In
dune-workspace
files, add the ability to choose the host context and tocreate duplicates of the default context with different settings. (Add the ability to choose the host context and create duplicates of the default context with different settings dune#2098,
@TheLortex, review by @diml, @rgrinberg and @aalekseyev)
Add support for hg in
dune subst
(Use the VCS module in watermarks.ml dune#2135, @diml)Don't build documentation for implementations of virtual libraries (Don't build docs for implementations of virtual libraries dune#2141,
fixes Docs build fail with multiple virtual library implementations dune#2138, @jonludlam)
Fix generation of the
-pp
flag in .merlin (Fix generation of -pp in .merlin dune#2142, @rgrinberg)Make
dune subst
add a(version ...)
field to thedune-project
file (Make "dune subst" add a version field to dune-project dune#2148, @diml)
Add the
%{os_type}
variable, which is a short-hand for%{ocaml-config:os_type}
(Allow theenabled_if
field inlibrary
stanzas dune#1764, @diml)Allow
enabled_if
fields inlibrary
stanzas, restricted to the%{os_type}
,%{model}
,%{architecture}
,%{system}
variables (Allow theenabled_if
field inlibrary
stanzas dune#1764,Add model, architecture, system as enabled_if vars (#2164)kf dune#2164 @diml, @rgrinberg)
Fix
chdir
on external and source paths. Dune will also fail gracefully ifthe external or source path does not exist (Fix chdir handling dune#2165, fixes Mkdir_p.exec: attempted to create unmanaged dir in Dune 1.9 dune#2158, @rgrinberg)
Support the
.cc
extension fro C++ sources (Add support for the .cc extension for C++ sources dune#2195, fixes can cxx_files support a .cc extension? dune#83, @rgrinberg)Run
ocamlformat
relative to the context root. This improves the locations oferrors. (Run ocamlformat from build context root dune#2196, fixes ocamlformat is passed a path relative to the build dir dune#1370, @rgrinberg)
Fix detection of
README
,LICENSE
,CHANGE
, andHISTORY
files. Thesewould be undetected whenever the project was nested in another workspace.
(Fix detecting odig files for installation dune#2194, @rgrinberg)
Fix generation of
.merlin
whenever there's more than one stanza with thesame ppx preprocessing specification (watch mode awakened by changes in ignored_subdirs dune#2209 ,fixes FLG -ppx missing dune#2206, @rgrinberg)
Fix generation of
.merlin
in the presence of thecopy_files
stanza andpreprocessing specifications of other stanazs. (Fix copy_files handling when generating .merlin files dune#2211, fixes FLG -ppx missing dune#2206,
@rgrinberg)
Run
refmt
from the context's root directory. This improves error messages incase of syntax errors. (Run refmt from the context's root dir dune#2223, @rgrinberg)
In .merlin files, don't pass
-dump-ast
to thefuture_syntax
preprocessor.Merlin doesn't seem to like it when binary AST is generated by a
-pp
preprocessor. (future-syntax: do not confuse merlin by an AST produced by a -pp dune#2236, @aalekseyev)
dune install
will verify that all files mentioned in all .install filesexist before trying to install anything. This prevents partial installation of
packages (Add check that all files are present before installing dune#2230, @rgrinberg)