3.6 KiB
This document describe the plan for the next releases of Jbuilder.
V1
CLI
Documentation
Document the usage and design of Jbuilder.
- 21/02/2017: There is now a manual, it still needs a bit more about CLI usage
Stable jbuild types
Add a stable version of the jbuild format so that one can write
(jbuild_version 1)
inside jbuild files and be sure that they will
work with future versions of jbuild.
- 24/02/2017: implemented
Finding the project/workspace root
Currently jbuilder
assumes that the root of the project/workspace is
where it is started. Eventually this will be changed as follows:
- if there is a
jbuild-workspace
in a parent directory, it marks the root; - if not found, look for a
opam
orpackage.opam
file in parent directories; - if not found, look for a
.git
,.hg
, … file in parent directories; - if not found, use the current directory as root.
- 28/02/2017: Implemented
Running tests with jbuilder #3
Allow to define tests with (alias ...)
stanzas and add jbuilder
runtest
to run them.
- 21/02/2017: Rudi Grinberg added support for aliases (#7)
- 23/02/2017: Added a
runtest
subcommand
Implement package version support
Implement finding the version of a package, as described in the documentation.
- 24/02/2017: Implemented
After V1
Cross-compilation
Everything needed for cross-compilation is implemented. One
essentially need to add a function host_exe : Path.t -> Path.t
inside build contexts to make it all work, as well as a way to define
the build contexts. These could be defined inside jbuild-workspace
as follows:
(context
((name foo)
(switch 4.04.0)))
(context
((name foo+mingw)
(switch 4.04.0+mingw)
(host foo)))
Jenga bridge
Implement a jenga plugin that can read the same jbuild files as Jbuilder. To do that we'll use Jbuilder as a library.
odoc support
Support generating documentation with odoc.
Inline tests
Setup automatic support of inline tests and inline benchmarks.
Extend the action language
Currently in (action ...)
fields, when not using bash
the language
is very limited. It would be nice to add more commands that would
guarantee portability and avoid the quoting nightmare of bash
.
FS commands should be straightfoward to implement:
(copy <src> <dst>)
(mkdir <path>)
- …
Redirections to/from files are simple as well.
We could also implements pipes ((pipe <command1> <command2> ...)
) by
using temporary files. Using proper pipes would complicate windows
support and would make proper handling of -j
hard. Using temporary
files will be just fine.
User configuration file
Load a configuration file from ~/.config/jbuilder/config.sexp
where
the user can define preferences such as colors.