1.0+beta9 (in development) -------------------------- - 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 - 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 and 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 - Better error messages when a findlib package is unavailable - 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. 1.0+beta8 (17/04/2017) ---------------------- - Added `${lib-available:}` which expands to `true` or `false` with the same semantic as literals in `(select ...)` stanzas - Remove hard-coded knowledge of a few specific ppx rewriters to ease maintenance moving forward - Pass the library name to ppx rewriters via the `library-name` cookie - Fix: make sure the action working directory exist before running it 1.0+beta7 (12/04/2017) ---------------------- - Make the output quieter by default and add a `--verbose` argument (Stephen Dolan, #40) - Various documentation fixes (Adrien Guatto, #41) - Make `@install` the default target when no targets are specified (Stephen Dolan, #47) - Add predefined support for menhir, similar to ocamlyacc support (Rudi Grinberg, #42) - Add internal support for sandboxing actions and sandbox the build of the alias module with 4.02 to workaround the compiler trying to read the cmi of the aliased modules - Allow to disable dynlink support for libraries via `(no_dynlink)` (#55) - Add a -p/--for-release-of-packages command line argument to simplify the jbuilder invocation in opam files and make it more future proof (#52) - Fix the lookup of the executable in `jbuilder exec foo`. Before, even if `foo` was to be installed, the freshly built version wasn't selected - Don't generate a `exists_if ...` lines in META files. These are useless sine the META files are auto-generated 1.0+beta6 (29/03/2017) ---------------------- - Add an `(executable ...)` stanza for single executables (#33) - Add a `(package ...)` and `(public_name )/(public_names (.opam` file - Fixed a bug where `.merlin` files where not generated at the root of the workspace (#20) - Fix a bug where a `(glob_files ...)` would cause other dependencies to be ignored - Fix the generated `ppx(...)` line in `META` files - Fix `(optional)` when a ppx runtime dependency is not available (#24) - Do not crash when an installed package that we don't need has missing dependencies (#25) 1.0+beta2 (10/03/2017) ---------------------- - Simplified the rules for finding the root of the workspace as the old ones were often picking up the home directory. New rules are: + look for a `jbuild-workspace` file in parent directories + look for a `jbuild-workspace*` file in parent directories + use the current directory - Fixed the expansion of `${ROOT}` in actions - Install `quick-start.org` in the documentation directory - Add a few more things in the log file to help debugging 1.0+beta1 (07/03/2017) ---------------------- - Added a manual - Support incremental compilation - Switched the CLI to cmdliner and added a `build` command (#5, Rudi Grinberg) - Added a few commands: + `runtest` + `install` + `uninstall` + `installed-libraries` + `exec`: execute a command in an environment similar to what you would get after `jbuilder install` - Removed the `build-package` command in favor of a `--only-packages` option that is common to all commands - Automatically generate `.merlin` files (#2, Richard Davison) - Improve the output of jbuilder, in particular don't mangle the output of commands when using `-j N` with `N > 1` - Generate a log in `_build/log` - Versioned the jbuild format and added a first stable version. You should now put `(jbuilder_version 1)` in a `jbuild` file at the root of your project to ensure forward compatibility - Switch from `ppx_driver` to `ocaml-migrate-parsetree.driver`. In order to use ppx rewriters with Jbuilder, they need to use `ocaml-migrate-parsetree.driver` - Added support for aliases (#7, Rudi Grinberg) - Added support for compiling against multiple opam switch simultaneously by writing a `jbuild-worspace` file - Added support for OCaml 4.02.3 - Added support for architectures that don't have natdynlink - Search the root according to the rules described in the manual instead of always using the current directory - extended the action language to support common actions without using a shell: + `(with-stdout-to )` + `(copy )` + ... - Removed all implicit uses of bash or the system shell. Now one has to write explicitely `(bash "...")` or `(system "...")` - Generate meaningful versions in `META` files - Strengthen the scope of a package. Jbuilder knows about package `foo` only in the sub-tree starting from where `foo.opam` lives 0.1.alpha1 (04/12/2016) ----------------------- First release