Skip to content

1.0.0

Compare
Choose a tag to compare
released this 10 Jul 14:40
· 11150 commits to main since this release

CHANGES:

  • Do not load the user configuration file when running inside dune
    (#700 @diml)

  • Do not infer ${null} to be a target (#693 fixes #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. (#673, #678 #692, #695
    @rgrinberg)

  • Register the transitive dependencies of compilation units as the
    compiler might read .cm* files recursively (#666, fixes #660,
    @emillon)

  • Fix a bug causing jbuilder external-lib-deps to crash (#723,
    @diml)

  • -j now defaults to the number of processing units available rather
    4 (#726, @diml)

  • Fix attaching index.mld to documentation (#731, fixes #717 @rgrinberg)

  • Scan the file system lazily (#732, fixes #718 and #228, @diml)

  • Add support for setting the default ocaml flags and for build
    profiles (#419, @diml)

  • Display a better error messages when writing (inline_tests) in an
    executable stanza (#748, @diml)

  • Restore promoted files when they are deleted or changed in the
    source tree (#760, fix #759, @diml)

  • Fix a crash when using an invalid alias name (#762, fixes #761,
    @diml)

  • Fix a crash when using c files from another directory (#758, fixes
    #734, @diml)

  • Add an ignored_subdirs stanza to replace jbuild-ignore files
    (#767, @diml)

  • Fix a bug where Dune ignored previous occurrences of duplicated
    fields (#779, @diml)

  • Allow setting custom build directories using the --build-dir flag or
    DUNE_BUILD_DIR environment variable (#846, fix #291, @diml @rgrinberg)

  • In dune files, remove support for block (#| ... |#)) and sexp
    (#;) comments. These were very rarely used and complicate the
    language (#837, @diml)

  • In dune files, add support for block strings, allowing to nicely
    format blocks of texts (#837, @diml)

  • Remove hard-coded knowledge of ppx_driver and
    ocaml-migrate-parsetree when using a dune file (#576, @diml)

  • Make the output of Dune slightly more deterministic when run from
    inside 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. (#849, fix #701, @rgrinberg)

  • Fix documentation generation for private libraries. (#864, fix #856,
    @rgrinberg)

  • Use Marshal to store digest and incremental databases. This improves the
    speed of 0 rebuilds. (#817, @diml)

  • Allow setting environment variables in findlib.conf for cross compilation
    contexts. (#733, @rgrinberg)
  • Add a link_deps field to executables, to specify link-time dependencies
    like version scripts. (#879, fix #852, @emillon)

  • Rename files_recursively_in to source_tree to make it clearer it
    doesn't include generated files (#899, fix #843, @diml)

  • Present the menhir stanza as an extension with its own version
    (#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 (#910, @diml)

  • Make (diff a b) ignore trailing cr on Windows and add (cmp a b) for
    comparing binary files (#904, fix #844, @diml)

  • Make dev the default build profile (#920, @diml)

  • Version dune-workspace and ~/.config/dune/config files (#932, @diml)

  • Add the ability to build an alias non-recursively from the command
    line by writing @@alias (#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 (#926, @diml)

  • Forbid #require in dune files in OCaml syntax (#938, @diml)

  • Add %{profile} variable. (#938, @rgrinberg)

  • Do not require opam-installer anymore (#941, @diml)

  • Add the lib_root and libexec_root install sections (#947, @diml)

  • Rename path:file to dep:file (#944, @emillon)

  • Remove path-no-dep:file (#948, @emillon)

  • Adapt the behavior of dune subst for dune projects (#960, @diml)

  • Add the lib_root and libexec_root sections to install stanzas
    (#947, @diml)

  • Add a Configurator.V1.Flags module that improves the flag reading/writing
    API (#840, @avsm)

  • Add a tests stanza that simlpified defining regular and expect tests
    (#822, @rgrinberg)

  • Change the subst subcommand to lookup the project name from the
    dune-project whenever it's available. (#960, @diml)

  • The subst subcommand no longer looks up the root workspace. Previously this
    detection would break the command whenever -p wasn't passed. (#960, @diml)

  • Add a # DUNE_GEN in META template files. This is done for consistency with
    # JBUILDER_GEN. (#958, @rgrinberg)

  • Rename the following variables in dune files:
    SCOPE_ROOT to project_root
    @ to targets
    < to first-dep
    ^ to deps
    (#957, @rgrinberg)

  • Rename ROOT to workspace_root in dune files (#993, @diml)

  • Lowercase all built-in %{variables} in dune files (#956, @rgrinberg)

  • New syntax for naming dependencies: (deps (:x a b) (:y (glob_files *.c*))).
    This replaces the use for ${<} in dune files. (#950, @diml, @rgrinberg)

  • Fix detection of dynamic cycles, which in particular may appear when
    using (package ..) dependencies (#988, @diml)