Releases: ocaml/dune
1.0+beta12 (18/08/2017)
-
Fix the quoting of
FLG
lines in generated.merlin
files (#200,
Marcello Seri) -
Use the full path of archive files when linking. Before jbuilder
would do:-I <path> file.cmxa
, now it does-I <path> <path>/file.cmxa
. Fixes #118 and #177 -
Use an absolute path for ppx drivers in
.merlin
files. Merlin
<3.0.0 used to run ppx commands from the directory where the
.merlin
was present but this is no longer the case -
Allow to use
jbuilder install
in contexts other than opam; if
ocamlfind
is present in thePATH
and the user didn't pass
--prefix
or--libdir
explicitly, use the output ofocamlfind printconf destdir
as destination directory for library files (#179,
Francois Bobot) -
Allow
(:include ...)
forms in all*flags
fields (#153, David
Allsopp) -
Add a
utop
subsommand. Runningjbuilder utop
in a directory
builds and executes a customutop
toplevel with all libraries
defined in the current directory (#183, Rudi Grinberg) -
Do not accept
per_file
anymore inpreprocess
field.per_file
was renamedper_module
and it is planned to reuseper_file
for
another purpose -
Warn when a file is both present in the source tree and generated by
a rule. Before, jbuilder would silently ignore the rule. One now has
to add a field(fallback)
to custom rules to keep the current
behavior (#218) -
Get rid of the
deprecated-ppx-method
findlib package for ppx
rewriters (#222, fixes #163) -
Use digests (MD5) of files contents to detect changes rather than
just looking at the timestamps. We still use timestamps to avoid
recomputing digests. The performance difference is negligible and we
avoid more useless recompilations, especially when switching branches
for instance (#209, fixes #158)
1.0+beta11
1.0+beta11 (21/07/2017)
-
Fix the error message when there are more than one
<package>.opam
file for a given pacakge -
Report an error when in a wrapped library, a module that is not the
toplevel module depends on the toplevel module. This doesn't make as
such a module would in theory be inaccessible from the outside -
Add
${SCOPE_ROOT}
pointing to the root of the current scope, to
fix some misuses of${ROOT}
-
Fix useless hint when all missing dependencies are optional (#137)
-
Fix a bug preventing one from generating
META.pkg.template
with a
custom rule (#190) -
Fix compilation of reason projects: .rei files where ignored and
caused the build to fail (#184)
1.0+beta10
1.0+beta10 (08/06/2017)
-
Add a
clean
subcommand (Richard Davison, #89) -
Add support for generating API documentation with odoc (#74)
-
Don't use unix in the bootstrap script, to avoid surprises with
Cygwin -
Improve the behavior of
jbuilder exec
on Windows -
Add a
--no-buffer
option to see the output of commands in
real-time. Should only be used with-j1
-
Deprecate
per_file
in preprocessing specifications and
rename itper_module
-
Deprecate
copy-and-add-line-directive
and rename itcopy#
-
Remove the ability to load arbitrary libraries in jbuild file in
OCaml syntax. Onlyunix
is supported since a few released packages
are using it. The OCaml syntax might eventually be replaced by a
simpler mechanism that plays better with incremental builds -
Properly define and implement scopes
-
Inside user actions,
${^}
now includes files matches by
(glob_files ...)
or(file_recursively_in ...)
-
When the dependencies and targets of a rule can be inferred
automatically, you no longer need to write them:(rule (copy a b))
-
Inside
(run ...)
,${xxx}
forms that expands to lists can now be
split across multiple arguments by adding a!
:${!xxx}
. For
instance:(run foo ${!^})
-
Add support for using the contents of a file inside an action:
${read:<file>}
${read-lines:<file>}
${read-strings:<file>}
(same asread-lines
but lines are
escaped using OCaml convention)
-
When exiting prematurely because of a failure, if there are other
background processes running and they fail, print these failures -
With msvc,
-lfoo
is transparently replaced byfoo.lib
(David
Allsopp, #127) -
Automatically add the
.exe
when installing executables on Windows
(#123) -
(run <prog> ...)
now resolves<prog>
locally if
possible. i.e.(run ${bin:prog} ...)
and(run prog ...)
behave
the same. This seems like the right default -
Fix a bug where
jbuild rules
would crash instead of reporting a
proper build error -
Fix a race condition in future.ml causing jbuilder to crash on
Windows in some cases (#101) -
Fix a bug causing ppx rewriter to not work properly when using
multiple build contexts (#100) -
Fix .merlin generation: projects in the same workspace are added to
merlin's source path, so "locate" works on them.
1.0+beta9
1.0+beta9 (19/05/2017)
-
Add support for building Reason projects (Rudi Grinberg, #58)
-
Add support for building javascript with js-of-ocaml (Hugo Heuzard,
#60) -
Better support for topkg release workflow. See
topkg-jbuilder for more
details -
Port the manual to rst and setup a jbuilder project on
readthedocs.org (Rudi Grinberg, #78) -
Hint for mistyped targets. Only suggest correction on the basename
for now, otherwise it's slow when the workspace is big -
Add a
(package ...)
field for aliases, so that one can restrict
tests to a specific package (Rudi Grinberg, #64) -
Fix a couple of bugs on Windows:
- fix parsing of end of lines in some cases
- do not take the case into account when comparing environment
variable names
-
Add AppVeyor CI
-
Better error message in case a chain of dependencies crosses the
installed world -
Better error messages for invalid dependency list in jbuild files
-
Severel improvements/fixes regarding the handling of findlib packages:
- Better error messages when a findlib package is unavailable
- Don't crash when an installed findlib package has missing
dependencies - Handle the findlib alternative directory layout which is still
used by a few packages
-
Add
jbuilder installed-libraries --not-available
explaining why
some libraries are not available -
jbuilder now records dependencies on files of external
libraries. This mean that when you upgrade a library, jbuilder will
know what need to be rebuilt. -
Add a
jbuilder rules
subcommand to dump internal compilation
rules, mostly for debugging purposes -
Ignore all directories starting with a
.
or_
. This seems to be
a common pattern:.git
,.hg
,_darcs
_build
_opam
(opam 2 local switches)
-
Fix the hint for
jbuilder external-lib-deps
(#72) -
Do not require
ocamllex
andocamlyacc
to be at the same location
asocamlc
(#75)