dune/ROADMAP.org

2.6 KiB

This document describe the plan for the next releases of Jbuilder.

V1

CLI

Add a proper cmdliner based CLI. Jbuilder will include a copy of cmdliner to avoid the extra dependency.

  • 20/02/2017: This is now implemented thanks to Rudi Grinberg (#5)

Improve the man pages

Add a bit more documentation in the Man pages generated by cmdliner.

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 or package.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.

Generate .merlin files #1

  • 08/02/2017: Richard Davison is working on this #2

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

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.