-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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-site, dune-action-plugin, dune-private-libs and dune-glob (2.8.0) #17967
Merged
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
…ne-action-plugin, dune-private-libs and dune-glob (2.8.0) CHANGES: - `dune rules` accepts aliases and other non-path rules (ocaml/dune#4063, @mrmr1993) - Action `(diff reference test_result)` now accept `reference` to be absent and in that case consider that the reference is empty. Then running `dune promote` will create the reference file. (ocaml/dune#3795, @bobot) - Ignore special files (BLK, CHR, FIFO, SOCKET), (ocaml/dune#3570, fixes ocaml/dune#3124, ocaml/dune#3546, @ejgallego) - Experimental: Simplify loading of additional files (data or code) at runtime in programs by introducing specific installation sites. In particular it allow to define plugins to be installed in these sites. (ocaml/dune#3104, ocaml/dune#3794, fixes ocaml/dune#1185, @bobot) - Move all temporary files created by dune to run actions to a single directory and make sure that actions executed by dune also use this directory by setting `TMPDIR` (or `TEMP` on Windows). (ocaml/dune#3691, fixes ocaml/dune#3422, @rgrinberg) - Fix bootstrap script with custom configuration. (ocaml/dune#3757, fixes ocaml/dune#3774, @marsam) - Add the `executable` field to `inline_tests` to customize the compilation flags of the test runner executable (ocaml/dune#3747, fixes ocaml/dune#3679, @lubegasimon) - Add `(enabled_if ...)` to `(copy_files ...)` (ocaml/dune#3756, @nojb) - Make sure Dune cleans up the status line before exiting (ocaml/dune#3767, fixes ocaml/dune#3737, @alan-j-hu) - Add `{gitlab,bitbucket}` as options for defining project sources with `source` stanza `(source (<host> user/repo))` in the `dune-project` file. (ocaml/dune#3813, @rgrinberg) - Fix generation of `META` and `dune-package` files when some targets (byte, native, dynlink) are disabled. Previously, dune would generate all archives for regardless of settings. (ocaml/dune#3829, ocaml/dune#4041, @rgrinberg) - Do not run ocamldep to for single module executables & libraries. The dependency graph for such artifacts is trivial (ocaml/dune#3847, @rgrinberg) - Fix cram tests inside vendored directories not being interpreted correctly. (ocaml/dune#3860, fixes ocaml/dune#3843, @rgrinberg) - Add `package` field to private libraries. This allows such libraries to be installed and to be usable by other public libraries in the same project (ocaml/dune#3655, fixes ocaml/dune#1017, @rgrinberg) - Fix the `%{make}` variable on Windows by only checking for a `gmake` binary on UNIX-like systems as a unrelated `gmake` binary might exist on Windows. (ocaml/dune#3853, @kit-ty-kate) - Fix `$ dune install` modifying the build directory. This made the build directory unusable when `$ sudo dune install` modified permissions. (fix ocaml/dune#3857, @rgrinberg) - Fix handling of aliases given on the command line (using the `@` and `@@` syntax) so as to correctly handle relative paths. (ocaml/dune#3874, fixes ocaml/dune#3850, @nojb) - Allow link time code generation to be used in preprocessing executable. This makes it possible to use the build info module inside the preprocessor. (ocaml/dune#3848, fix ocaml/dune#3848, @rgrinberg) - Correctly call `git ls-tree` so unicode files are not quoted, this fixes problems with `dune subst` in the presence of unicode files. Fixes ocaml/dune#3219 (ocaml/dune#3879, @ejgallego) - `dune subst` now accepts common command-line arguments such as `--debug-backtraces` (ocaml/dune#3878, @ejgallego) - `dune describe` now also includes information about executables in addition to that of libraries. (ocaml/dune#3892, ocaml/dune#3895, @nojb) - instrumentation backends can now receive arguments via `(instrumentation (backend <name> <args>))`. (ocaml/dune#3906, ocaml/dune#3932, @nojb) - Tweak auto-formatting of `dune` files to improve readability. (ocaml/dune#3928, @nojb) - Add a switch argument to opam when context is not default. (ocaml/dune#3951, @tmattio) - Avoid pager when running `$ git diff` (ocaml/dune#3912, @AltGr) - Add `(root_module ..)` field to libraries & executables. This makes it possible to use library dependencies shadowed by local modules (ocaml/dune#3825, @rgrinberg) - Allow `(formatting ...)` field in `(env ...)` stanza to set per-directory formatting specification. (ocaml/dune#3942, @nojb) - [coq] In `coq.theory`, `:standard` for the `flags` field now uses the flags set in `env` profile flags (ocaml/dune#3931 , @ejgallego @rgrinberg) - [coq] Add `-q` flag to `:standard` `coqc` flags , fixes ocaml/dune#3924, (ocaml/dune#3931 , @ejgallego) - Add support for Coq's native compute compilation mode (@ejgallego, ocaml/dune#3210) - Add a `SUFFIX` directive in `.merlin` files for each dialect with no preprocessing, to let merlin know of additional file extensions (ocaml/dune#3977, @vouillon) - Stop promoting `.merlin` files. Write per-stanza Merlin configurations in binary form. Add a new subcommand `dune ocaml-merlin` that Merlin can use to query the configuration files. The `allow_approximate_merlin` option is now useless and deprecated. Dune now conflicts with `merlin < 3.4.0` and `ocaml-lsp-server < 1.3.0` (ocaml/dune#3554, @voodoos) - Configurator: fix a bug introduced in 2.6.0 where the configurator V1 API doesn't work at all when used outside of dune. (ocaml/dune#4046, @aalekseyev) - Fix `libexec` and `libexec-private` variables. In cross-compilation settings, they now point to the file in the host context. (ocaml/dune#4058, fixes ocaml/dune#4057, @TheLortex) - When running `$ dune subst`, use project metadata as a fallback when package metadata is missing. We also generate a warning when `(name ..)` is missing in `dune-project` files to avoid failures in production builds. - Remove support for passing `-nodynlink` for executables. It was bypassed in most cases and not correct in other cases in particular on arm32. (ocaml/dune#4085, fixes ocaml/dune#4069, fixes ocaml/dune#2527, @emillon) - Generate archive rules compatible with 4.12. Dune longer attempt to generate an archive file if it's unnecessary (ocaml/dune#3973, fixes ocaml/dune#3766, @rgrinberg) - Fix generated Merlin configurations when multiple preprocessors are defined for different modules in the same folder. (ocaml/dune#4092, fixes ocaml/dune#2596, ocaml/dune#1212 and ocaml/dune#3409, @voodoos) - Add the option `use_standard_c_and_cxx_flags` to `dune-project` that 1. disables the unconditional use of the `ocamlc_cflags` and `ocamlc_cppflags` from `ocamlc -config` in C compiler calls, these flags will be present in the `:standard` set instead; and 2. enables the detection of the C compiler family and populates the `:standard` set of flags with common default values when building CXX stubs. (ocaml/dune#3875, ocaml/dune#3802, fix ocaml/dune#3718 and ocaml/dune#3528, @voodoos)
Commit: 8dee76a A pull request by opam-seasoned @rgrinberg. ☀️ All lint checks passed 8dee76a
☀️ Installability check (+7)
|
This was referenced Jan 13, 2021
All fixed. Thanks a lot! |
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.
Embed build informations inside executable
CHANGES:
dune rules
accepts aliases and other non-path rules (Allow dune rules to accept aliases as arguments dune#4063, @mrmr1993)Action
(diff reference test_result)
now acceptreference
to be absent andin that case consider that the reference is empty. Then running
dune promote
will create the reference file. (Simplify adding a rule that use a diff action dune#3795, @bobot)
Ignore special files (BLK, CHR, FIFO, SOCKET), (Ignore special files (BLK, CHR, FIFO, SOCKET) dune#3570, fixes Exception in dune build when Unix domain socket in directory dune#3124, Crash if source directory contains a socket dune#3546,
@ejgallego)
Experimental: Simplify loading of additional files (data or code) at runtime
in programs by introducing specific installation sites. In particular it allow
to define plugins to be installed in these sites. (Sites, locations, relocation dune#3104, [Doc] Add explanation for sites in its own file dune#3794, fixes [RFC] Relocation library dune#1185,
@bobot)
Move all temporary files created by dune to run actions to a single directory
and make sure that actions executed by dune also use this directory by setting
TMPDIR
(orTEMP
on Windows). (Implement #3432 dune#3691, fixes Organize install_rules a little better dune#3422, @rgrinberg)Fix bootstrap script with custom configuration. (src/dune/setup.ml is now src/dune_rules/setup.ml dune#3757, fixes 2.7.1 fails to bootstrap dune#3774, @marsam)
Add the
executable
field toinline_tests
to customize the compilationflags of the test runner executable (add flexibility to compile a test executable dune#3747, fixes Compile flags dune#3679, @lubegasimon)
Add
(enabled_if ...)
to(copy_files ...)
(Support attaching MDX stanzas to packages dune#3756, @nojb)Make sure Dune cleans up the status line before exiting (Fix issue #3737 dune#3767,
fixes Missing newline after build dune#3737, @alan-j-hu)
Add
{gitlab,bitbucket}
as options for defining project sources withsource
stanza
(source (<host> user/repo))
in thedune-project
file. (Add support for gitlab/bitbucket sources dune#3813,@rgrinberg)
Fix generation of
META
anddune-package
files when some targets (byte,native, dynlink) are disabled. Previously, dune would generate all archives
for regardless of settings. (Use Lib_info to generate install archives dune#3829, Fix archives for bytecode only dune#4041, @rgrinberg)
Do not run ocamldep to for single module executables & libraries. The
dependency graph for such artifacts is trivial (Do not run ocamldep on single module buildables dune#3847, @rgrinberg)
Fix cram tests inside vendored directories not being interpreted correctly.
(Fix cram & vendored dirs bug dune#3860, fixes Dune repo doesn't work with (vendored_dirs ..) dune#3843, @rgrinberg)
Add
package
field to private libraries. This allows such libraries to beinstalled and to be usable by other public libraries in the same project
(Private libraries attached to a package dune#3655, fixes Idea/Proposal: Allow for public libraries to depend on private libraries dune#1017, @rgrinberg)
Fix the
%{make}
variable on Windows by only checking for agmake
binaryon UNIX-like systems as a unrelated
gmake
binary might exist on Windows.(Fix %{make} on Windows dune#3853, @kit-ty-kate)
Fix
$ dune install
modifying the build directory. This made the builddirectory unusable when
$ sudo dune install
modified permissions. (fixdune install with root permission should not create files in the build directory dune#3857, @rgrinberg)
Fix handling of aliases given on the command line (using the
@
and@@
syntax) so as to correctly handle relative paths. (Uniformize handling of alias targets dune#3874, fixes dune build @../foo does not work dune#3850, @nojb)
Allow link time code generation to be used in preprocessing executable. This
makes it possible to use the build info module inside the preprocessor.
(Use Exe to generate ppx executable dune#3848, fix Use Exe to generate ppx executable dune#3848, @rgrinberg)
Correctly call
git ls-tree
so unicode files are not quoted, this fixesproblems with
dune subst
in the presence of unicode files. Fixes Dune segfaults if the codebase contains some UTF-8 chars in (Coq) filenames dune#3219([git] Correctly call
git ls-tree
so unicode files are not quoted dune#3879, @ejgallego)dune subst
now accepts common command-line arguments such as--debug-backtraces
([dune subst] Interpret common command line flags. dune#3878, @ejgallego)dune describe
now also includes information about executables in addition tothat of libraries. ("dune describe" should include information about executables dune#3892, dune describe: include executables in output dune#3895, @nojb)
instrumentation backends can now receive arguments via
(instrumentation (backend <name> <args>))
. (Passing arguments to instrumentation backends dune#3906, Add support for passing arguments to instrumentation backends dune#3932, @nojb)Tweak auto-formatting of
dune
files to improve readability. (dune formatting: style tweaks dune#3928, @nojb)Add a switch argument to opam when context is not default. (Add a switch argument to opam when context is not default dune#3951, @tmattio)
Avoid pager when running
$ git diff
(Avoid running a pager when running 'git diff' dune#3912, @AltGr)Add
(root_module ..)
field to libraries & executables. This makes itpossible to use library dependencies shadowed by local modules ((root_module ..) field for libraries & executables dune#3825,
@rgrinberg)
Allow
(formatting ...)
field in(env ...)
stanza to set per-directoryformatting specification. (Allow (formatting ...) field in (env ...) stanza. dune#3942, @nojb)
[coq] In
coq.theory
,:standard
for theflags
field now uses theflags set in
env
profile flags ([coq] Add "-q" to default flags. dune#3931 , @ejgallego @rgrinberg)[coq] Add
-q
flag to:standard
coqc
flags , fixes [Coq] Use the flag -q by default dune#3924, ([coq] Add "-q" to default flags. dune#3931 , @ejgallego)Add support for Coq's native compute compilation mode (@ejgallego, [coq] Add support for native-mode compilation. dune#3210)
Add a
SUFFIX
directive in.merlin
files for each dialect with nopreprocessing, to let merlin know of additional file extensions (.merlin: add a SUFFIX directive for each dialect dune#3977,
@vouillon)
Stop promoting
.merlin
files. Write per-stanza Merlin configurations inbinary form. Add a new subcommand
dune ocaml-merlin
that Merlin can use toquery the configuration files. The
allow_approximate_merlin
option is nowuseless and deprecated. Dune now conflicts with
merlin < 3.4.0
andocaml-lsp-server < 1.3.0
([Wait for OcamlLSP] Disable promotion of.merlin
files and work onocaml-merlin
server dune#3554, @voodoos)Configurator: fix a bug introduced in 2.6.0 where the configurator V1 API
doesn't work at all when used outside of dune. (fix a bug in configurator String.take dune#4046, @aalekseyev)
Fix
libexec
andlibexec-private
variables. In cross-compilation settings,they now point to the file in the host context. (Fix libexec variable behavior dune#4058, fixes The
libexec
variable doesn't expand to the host-context library in case of cross-compilation dune#4057,@TheLortex)
When running
$ dune subst
, use project metadata as a fallback when packagemetadata is missing. We also generate a warning when
(name ..)
is missing indune-project
files to avoid failures in production builds.Remove support for passing
-nodynlink
for executables. It was bypassed inmost cases and not correct in other cases in particular on arm32.
(Never pass -nodynlink option dune#4085, fixes Cinaps stanza 1.0 fails to build the cinaps executable under arm32 dune#4069, fixes dune 1.11.0 fails to build on armv7 with odd relocation errors dune#2527, @emillon)
Generate archive rules compatible with 4.12. Dune longer attempt to generate
an archive file if it's unnecessary (Allow libraries without archives dune#3973, fixes dune runtest fails on OCaml 4.12.0 dune#3766, @rgrinberg)
Fix generated Merlin configurations when multiple preprocessors are defined
for different modules in the same folder. (Fix Merlin per-module pp flags dune#4092, fixes incorrect .merlin but no warning when using per_module dune#2596, per_module breaks .merlin output dune#1212 and
incorrect .merlin containing -open Dune__exe dune#3409, @voodoos)
Add the option
use_standard_c_and_cxx_flags
todune-project
that 1.disables the unconditional use of the
ocamlc_cflags
andocamlc_cppflags
from
ocamlc -config
in C compiler calls, these flags will be present in the:standard
set instead; and 2. enables the detection of the C compiler familyand populates the
:standard
set of flags with common default values whenbuilding CXX stubs. (Move default C flags to the
:standard
set dune#3875, Add necessary C++ flags for most common compilers dune#3802, fix [RFC] Rationalize C compiler flags dune#3718 and Better support for C++ dune#3528, @voodoos)