-
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.0.0) #12323
[new release] dune (1.0.0) #12323
Conversation
CHANGES: - Do not load the user configuration file when running inside dune (ocaml/dune#700 @diml) - Do not infer ${null} to be a target (ocaml/dune#693 fixes ocaml/dune#694 @rgrinberg) - Introduce jbuilder.configurator library. This is a revived version of janestreet's configurator library with better cross compilation support, a versioned API, and no external dependencies. (ocaml/dune#673, ocaml/dune#678 ocaml/dune#692, ocaml/dune#695 @rgrinberg) - Register the transitive dependencies of compilation units as the compiler might read `.cm*` files recursively (ocaml/dune#666, fixes ocaml/dune#660, @emillon) - Fix a bug causing `jbuilder external-lib-deps` to crash (ocaml/dune#723, @diml) - `-j` now defaults to the number of processing units available rather 4 (ocaml/dune#726, @diml) - Fix attaching index.mld to documentation (ocaml/dune#731, fixes ocaml/dune#717 @rgrinberg) - Scan the file system lazily (ocaml/dune#732, fixes ocaml/dune#718 and ocaml/dune#228, @diml) - Add support for setting the default ocaml flags and for build profiles (ocaml/dune#419, @diml) - Display a better error messages when writing `(inline_tests)` in an executable stanza (ocaml/dune#748, @diml) - Restore promoted files when they are deleted or changed in the source tree (ocaml/dune#760, fix ocaml/dune#759, @diml) - Fix a crash when using an invalid alias name (ocaml/dune#762, fixes ocaml/dune#761, @diml) - Fix a crash when using c files from another directory (ocaml/dune#758, fixes ocaml/dune#734, @diml) - Add an `ignored_subdirs` stanza to replace `jbuild-ignore` files (ocaml/dune#767, @diml) - Fix a bug where Dune ignored previous occurrences of duplicated fields (ocaml/dune#779, @diml) - Allow setting custom build directories using the `--build-dir` flag or `DUNE_BUILD_DIR` environment variable (ocaml/dune#846, fix ocaml/dune#291, @diml @rgrinberg) - In dune files, remove support for block (`#| ... |#)`) and sexp (`#;`) comments. These were very rarely used and complicate the language (ocaml/dune#837, @diml) - In dune files, add support for block strings, allowing to nicely format blocks of texts (ocaml/dune#837, @diml) - Remove hard-coded knowledge of ppx_driver and ocaml-migrate-parsetree when using a `dune` file (ocaml/dune#576, @diml) - Make the output of Dune slightly more deterministic when run from inside Dune (ocaml/dune#855, @diml) - Simplify quoting behavior of variables. All values are now multi-valued and whether a multi valued variable is allowed is determined by the quoting and substitution context it appears in. (ocaml/dune#849, fix ocaml/dune#701, @rgrinberg) - Fix documentation generation for private libraries. (ocaml/dune#864, fix ocaml/dune#856, @rgrinberg) - Use `Marshal` to store digest and incremental databases. This improves the speed of 0 rebuilds. (ocaml/dune#817, @diml) * Allow setting environment variables in `findlib.conf` for cross compilation contexts. (ocaml/dune#733, @rgrinberg) - Add a `link_deps` field to executables, to specify link-time dependencies like version scripts. (ocaml/dune#879, fix ocaml/dune#852, @emillon) - Rename `files_recursively_in` to `source_tree` to make it clearer it doesn't include generated files (ocaml/dune#899, fix ocaml/dune#843, @diml) - Present the `menhir` stanza as an extension with its own version (ocaml/dune#901, @diml) - Improve the syntax of flags in `(pps ...)`. Now instead of `(pps (ppx1 -arg1 ppx2 (-foo x)))` one should write `(pps ppx1 -arg ppx2 -- -foo x)` which looks nicer (ocaml/dune#910, @diml) - Make `(diff a b)` ignore trailing cr on Windows and add `(cmp a b)` for comparing binary files (ocaml/dune#904, fix ocaml/dune#844, @diml) - Make `dev` the default build profile (ocaml/dune#920, @diml) - Version `dune-workspace` and `~/.config/dune/config` files (ocaml/dune#932, @diml) - Add the ability to build an alias non-recursively from the command line by writing `@@alias` (ocaml/dune#926, @diml) - Add a special `default` alias that defaults to `(alias_rec install)` when not defined by the user and make `@@default` be the default target (ocaml/dune#926, @diml) - Forbid `#require` in `dune` files in OCaml syntax (ocaml/dune#938, @diml) - Add `%{profile}` variable. (ocaml/dune#938, @rgrinberg) - Do not require opam-installer anymore (ocaml/dune#941, @diml) - Add the `lib_root` and `libexec_root` install sections (ocaml/dune#947, @diml) - Rename `path:file` to `dep:file` (ocaml/dune#944, @emillon) - Remove `path-no-dep:file` (ocaml/dune#948, @emillon) - Adapt the behavior of `dune subst` for dune projects (ocaml/dune#960, @diml) - Add the `lib_root` and `libexec_root` sections to install stanzas (ocaml/dune#947, @diml) - Add a `Configurator.V1.Flags` module that improves the flag reading/writing API (ocaml/dune#840, @avsm) - Add a `tests` stanza that simlpified defining regular and expect tests (ocaml/dune#822, @rgrinberg) - Change the `subst` subcommand to lookup the project name from the `dune-project` whenever it's available. (ocaml/dune#960, @diml) - The `subst` subcommand no longer looks up the root workspace. Previously this detection would break the command whenever `-p` wasn't passed. (ocaml/dune#960, @diml) - Add a `# DUNE_GEN` in META template files. This is done for consistency with `# JBUILDER_GEN`. (ocaml/dune#958, @rgrinberg) - Rename the following variables in dune files: `SCOPE_ROOT` to `project_root` `@` to `targets` `<` to `first-dep` `^` to `deps` (ocaml/dune#957, @rgrinberg) - Rename `ROOT` to `workspace_root` in dune files (ocaml/dune#993, @diml) - Lowercase all built-in %{variables} in dune files (ocaml/dune#956, @rgrinberg) - New syntax for naming dependencies: `(deps (:x a b) (:y (glob_files *.c*)))`. This replaces the use for `${<}` in dune files. (ocaml/dune#950, @diml, @rgrinberg) - Fix detection of dynamic cycles, which in particular may appear when using `(package ..)` dependencies (ocaml/dune#988, @diml)
There are some failures already. The main cause seems to be this (I haven't checked everything though):
|
Indeed, I fixed it in master. Is there a way to grep through the logs? To see if there are other failures before I update the release |
There are still some errors:
|
The kafka thing is old. It was an error with the current jbuilder. I fixed the build instructions in kafka's master branch but it still needs a release. @didier-wenzek another ping :) The maintainer of reed-solomon-erasure needs to update his package. He is relying on a detail of dune that never made it to any release. The 0.1 version of the dune language never made it to any releases. @diml I thought we couldn't find any sightings of bang patterns? In any case, I'll bring em back. It's a tiny fix to maintain the compat in jbuild files. |
Signed-off-by: Jeremie Dimino <jeremie@dimino.org>
@rgrinberg I don't think that's worth it, only two projects are affected and they both already have newer releases that are not affected. I added a conflit with |
Indeed, I did not updated the Kafka binding since months.
And I missed many discussions. => I will catch up asap.
…----- Mail original -----
De: "Rudi Grinberg" <notifications@github.com>
À: "ocaml/opam-repository" <opam-repository@noreply.github.com>
Cc: "Didier Wenzek" <didier.wenzek@acidalie.com>, "Mention" <mention@noreply.github.com>
Envoyé: Mardi 10 Juillet 2018 23:28:51
Objet: Re: [ocaml/opam-repository] [new release] dune (1.0.0) (#12323)
The kafka thing is old. It was an error with the current jbuilder. I fixed the build instructions in kafka's master branch but it still needs a release. @didier-wenzek another ping :)
The maintainer of reed-solomon-erasure needs to update his package. He is relying on a detail of dune that never made it to any release. The 0.1 version of the dune language never made it to any releases.
@diml I thought we couldn't find any sightings of bang patterns? In any case, I'll bring em back. It's a tiny fix to maintain the compat in jbuild files.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub , or mute the thread .
|
I can spot only one error remaining:
(same for |
So the error message is a bit sucky because you cannot tell if the paths are local to the build dir or your source dir but the error is essentially write. If you're inside a context's build dir, you cannot it with |
Fair enough. Let's do that! |
@rgrinberg: I release your fixes to the dune config in the 0.4 release of the kafka bindings (in February). Should I patch & release the previous one? I'm not sure it worth the value. But I can do it if this hampers the release of dune. |
I dont think it's worth it. It's your call however. Thanks for the release.
…On Wed, Jul 11, 2018, 9:48 PM Didier Wenzek ***@***.***> wrote:
@rgrinberg <https://github.com/rgrinberg>: I release your fixes to the
dune config in the 0.4 release of the kafka bindings (in February). Should
I patch & release the previous one? I'm not sure it worth the value. But I
can do it if this hampers the release of dune.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#12323 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAIe-5n1-uHPn6l0Erhou4f2ZOQo-Munks5uFlZwgaJpZM4VJoO0>
.
|
post-messages: [ | ||
"Jbuilder has been renamed and the jbuilder package is now a transition" | ||
"package. Use the dune package instead." | ||
] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please don't do this, use a multi-line string instead. Or better, let opam reformat it, it knows about the terminal width. This actually prints 2 messages, and is e.g. inconsistent with the use of conditional filters.
Fast, portable and opinionated build system
CHANGES:
Do not load the user configuration file when running inside dune
(Do not load the user configuration file when INSIDE_DUNE is set dune#700 @diml)
Do not infer ${null} to be a target (Add test to show that jbuilder mishandles ${null} dune#693 fixes Jbuilder infers ${null} to be a target dune#694 @rgrinberg)
Introduce jbuilder.configurator library. This is a revived version of
janestreet's configurator library with better cross compilation support, a
versioned API, and no external dependencies. (Add a blackbox test suite for configurator dune#673, Use Whitequark's Code to extract #define's and other compile time info from object files dune#678 Move current configurator API to V1 module dune#692, Pass ocamlc explicitly to configurator using DUNE_CONFIGURATOR dune#695
@rgrinberg)
Register the transitive dependencies of compilation units as the
compiler might read
.cm*
files recursively (Compute transitive modules depencies dune#666, fixes inconsistent assumptions when using module aliases dune#660,@emillon)
Fix a bug causing
jbuilder external-lib-deps
to crash (Make sure all_lib_deps_by_context doesn't report invalid contexts dune#723,@diml)
-j
now defaults to the number of processing units available rather4 (Make -j default to the number of processing units available dune#726, @diml)
Fix attaching index.mld to documentation (Fix 717 dune#731, fixes Problem generating index.mld pages dune#717 @rgrinberg)
Scan the file system lazily (Scan the file-system lazily dune#732, fixes Unscannable directory stopping the build dune#718 and jbuild-ignore not respected when there's a nested symlink dune#228, @diml)
Add support for setting the default ocaml flags and for build
profiles (Environment & build profiles dune#419, @diml)
Display a better error messages when writing
(inline_tests)
in anexecutable stanza (Better error message for #745 dune#748, @diml)
Restore promoted files when they are deleted or changed in the
source tree (Fix #759 dune#760, fix .merlin doesn't get regenerated when deleted dune#759, @diml)
Fix a crash when using an invalid alias name (Fix 761 dune#762, fixes Warn/error when alias have invalid characters dune#761,
@diml)
Fix a crash when using c files from another directory (Fix 734 dune#758, fixes
Exception "Build_system.get_collector called on closed directory" dune#734, @diml)
Add an
ignored_subdirs
stanza to replacejbuild-ignore
files(Add ignored_subdirs stanza dune#767, @diml)
Fix a bug where Dune ignored previous occurrences of duplicated
fields (Fix sexp record bug dune#779, @diml)
Allow setting custom build directories using the
--build-dir
flag orDUNE_BUILD_DIR
environment variable (Implement --build-dir and change Path.t to use symbolic paths dune#846, fix Ability to telljbuilder
where to place build artifacts. dune#291, @diml @rgrinberg)In dune files, remove support for block (
#| ... |#)
) and sexp(
#;
) comments. These were very rarely used and complicate thelanguage (Block strings + remove block/sexp comments dune#837, @diml)
In dune files, add support for block strings, allowing to nicely
format blocks of texts (Block strings + remove block/sexp comments dune#837, @diml)
Remove hard-coded knowledge of ppx_driver and
ocaml-migrate-parsetree when using a
dune
file (Generic ppx driver dune#576, @diml)Make the output of Dune slightly more deterministic when run from
inside Dune (Make the output of Dune deterministic in tests dune#855, @diml)
Simplify quoting behavior of variables. All values are now multi-valued and
whether a multi valued variable is allowed is determined by the quoting and
substitution context it appears in. (Remove Concat_or_split dune#849, fix Quoting problem when there are several targets dune#701, @rgrinberg)
Fix documentation generation for private libraries. (Refactor odoc generation and fix the private doc alias dune#864, fix odoc doesn't get called properly dune#856,
@rgrinberg)
Use
Marshal
to store digest and incremental databases. This improves thespeed of 0 rebuilds. (Use Marshal for the incremental and digest databases dune#817, @diml)
findlib.conf
for cross compilationcontexts. (Allow setting ENV vars in findlib.conf per toolchain dune#733, @rgrinberg)
Add a
link_deps
field to executables, to specify link-time dependencieslike version scripts. (Add link_deps field dune#879, fix Link-time dependencies dune#852, @emillon)
Rename
files_recursively_in
tosource_tree
to make it clearer itdoesn't include generated files (Rename files_recursively_in to source_tree dune#899, fix files_recuirsively_in -> source_tree dune#843, @diml)
Present the
menhir
stanza as an extension with its own version(Make the menhir stanza an extension dune#901, @diml)
Improve the syntax of flags in
(pps ...)
. Now instead of(pps (ppx1 -arg1 ppx2 (-foo x)))
one should write(pps ppx1 -arg ppx2 -- -foo x)
which looks nicer (Improve the syntax of ppx rewriters and flags dune#910, @diml)Make
(diff a b)
ignore trailing cr on Windows and add(cmp a b)
forcomparing binary files (Make diffing work on Windows dune#904, fix Make diffing work better on Windows dune#844, @diml)
Make
dev
the default build profile (Make--dev
the default dune#920, @diml)Version
dune-workspace
and~/.config/dune/config
files (Versiondune-workspace
and~/.config/dune/config
files dune#932, @diml)Add the ability to build an alias non-recursively from the command
line by writing
@@alias
(Add a default alias dune#926, @diml)Add a special
default
alias that defaults to(alias_rec install)
when not defined by the user and make
@@default
be the defaulttarget (Add a default alias dune#926, @diml)
Forbid
#require
indune
files in OCaml syntax (Forbid #require in dune files in OCaml syntax dune#938, @diml)Add
%{profile}
variable. (Forbid #require in dune files in OCaml syntax dune#938, @rgrinberg)Do not require opam-installer anymore (Do not use opam-installer to copy files dune#941, @diml)
Add the
lib_root
andlibexec_root
install sections (Add the lib_root and libexec_root install sections dune#947, @diml)Rename
path:file
todep:file
(Rename path variables in dune files dune#944, @emillon)Remove
path-no-dep:file
(Remove path-no-dep dune#948, @emillon)Adapt the behavior of
dune subst
for dune projects (Adapt the behavior of dune subst for dune projects dune#960, @diml)Add the
lib_root
andlibexec_root
sections to install stanzas(Add the lib_root and libexec_root install sections dune#947, @diml)
Add a
Configurator.V1.Flags
module that improves the flag reading/writingAPI ([WIP] configurator: add write_lines function dune#840, @avsm)
Add a
tests
stanza that simlpified defining regular and expect tests(Test Stanza Proposal dune#822, @rgrinberg)
Change the
subst
subcommand to lookup the project name from thedune-project
whenever it's available. (Adapt the behavior of dune subst for dune projects dune#960, @diml)The
subst
subcommand no longer looks up the root workspace. Previously thisdetection would break the command whenever
-p
wasn't passed. (Adapt the behavior of dune subst for dune projects dune#960, @diml)Add a
# DUNE_GEN
in META template files. This is done for consistency with# JBUILDER_GEN
. (Rename JBUILDER_GEN to DUNE_GEN dune#958, @rgrinberg)Rename the following variables in dune files:
SCOPE_ROOT
toproject_root
@
totargets
<
tofirst-dep
^
todeps
(Rename SCOPE_ROOT, ${@}, ${^}, etc. dune#957, @rgrinberg)
Rename
ROOT
toworkspace_root
in dune files (Rename %{root} to %{workspace_root} dune#993, @diml)Lowercase all built-in %{variables} in dune files (Lowercase builtin vars dune#956, @rgrinberg)
New syntax for naming dependencies:
(deps (:x a b) (:y (glob_files *.c*)))
.This replaces the use for
${<}
in dune files. (Syntax for naming dependencies dune#950, @diml, @rgrinberg)Fix detection of dynamic cycles, which in particular may appear when
using
(package ..)
dependencies (Fix detection of dynamic cycles dune#988, @diml)