Dear all,
We are very pleased to announce the immediate availability of the latest stable release of Learn-OCaml, version 0.13.0
.
Many thanks to all users and developers that reported bugs, contributed features or patches and in particular, special thanks go to @yurug and @AltGr for their precious advice and help during the preparation of this release.
A (mostly) comprehensive list of the features, fixes, and enhancements offered by this release is available in the Release Notes.
Beyond this list of changes, note that:
- We now switch to semantic versioning, so that this version is git-tagged
v0.13.0
and not just0.13
. - The REST API did not change (between the previous stable version 0.12 and version 0.13.0).
- The “exodir” format has been slightly extended (but the documentation online is not yet up-to-date for these changes), keeping a strong focus on backward-compatibility (see e.g. PR #397 for related remarks).
- All the main binaries of Learn-OCaml (
learn-ocaml-client
,learn-ocaml
, and the nativelearn-ocaml-server
) are now statically built and available in the Release page, for Linux and macOS. - The whole codebase of Learn-OCaml has been ported to OCaml 4.12 (including the toplevel environment that is exposed to students).
- We now relax the coupling between client/server, and commit to keeping backward-compatibility for the latest
learn-ocaml-client
w.r.t. the previous versions (so,learn-ocaml-client.0.13.0
can interact with serverslearn-ocaml.{0.12, 0.13.0}
smoothly − see PR #426 for context). - The
learn-ocaml-client
CLI API did not change, except that a commandlearn-ocaml-client server-version
has been added, to distinguish between the server version and the (possibly more recent)learn-ocaml-client --version
(see PR #429 for details). - Docker images are still available on Docker Hub, e.g., to easily spin a local server from a repository exercises, you can do:
More details on the Docker setup can be found in How to deploy a learn-ocaml instance.sudo docker run --name=server-test -v "$PWD/demo-repository:/repository:ro" \ -p 8080:8080 ocamlsf/learn-ocaml:0.13.0
- (If you migrate from
0.12
to0.13.0
in your deployments, beware that the mere bump of OCaml’s version may cause some of your graders to fail.) - A dedicated PR has also been opened in opam-repository.
- As noted above, several architectural changes have been done about the
learn-ocaml-client
as this tool plays a key “pivot” role, for students that would like to use Tuareg+Merlin+learn-ocaml-mode and interact with a Learn-OCaml server backend directly from Emacs, and thus benefit from the advantages of using both Merlin and Learn-OCaml’s grading feature… and also get a significant speed-up regarding the grading time (because, no more transpilation to Js).
We hope to be able to release 0.14.0 soon, specifically to integrate the pending PR #372 that will solve a long-running issue with auto-Sync
and students-code overwriting; and we also plan to extend learn-ocaml’s backend and REST API soon to further enhance the UX of learn-ocaml.el, at least to lift this limitation (for which we have a working proof-of-concept to be refined).
If need be, feel free to open issues in the Learn-OCaml bug tracker or the learn-ocaml.el bug tracker, or post in this thread to share thoughts or experience-feedback.
Kind regards,
Érik Martin-Dorel for the Learn-OCaml team