This report covers weekly developments in the moby/datakit, mirage/irmin, mirage/ocaml-git and mirage/ocaml-9p repositories.
TL;DR: The project now has a new home in the Moby Project and the main DataKit repository was renamed. There were three releases this week, of moby/datakit:0.10.0, mirage/irmin:1.1.0 and mirage/ocaml-9p:v0.10.0, with mega build speedups and improvements to the DataKit Continuous Integration engine.
Build and Packaging:
- DataKit was ported to use the new Jbuilder build system for OCaml, resulting in a 4x speedup of compilation time and a more consistent linking strategy for the various DataKit subcomponents. See moby/datakit#532 moby/datakit#539 and mirage/ocaml-9p#119 (@diml @talex5 @dbuenzli @samoht @djs55).
- The DataKit trees were also refreshed to support the latest versions of Irmin, Mirage3 and Cmdliner (moby/datakit#529 moby/datakit#531 @talex5 @samoht).
- The 9P implementation now also supports the latest Lwt 3.0.0 interfaces (mirage/ocaml-9p#117 @djs55).
- OPAM constraints for the
irmin-unix
andirmin-git
packages were also fixed (mirage/irmin#439 @samoht).
Functionality improvements:
- DataKit now allows the use of
/
in branch names (moby/datakit#533 @samoht). - The GitHub bridge was simplified by removing the VFS layer, which was intended to be useful for debugging but rarely used in practise (moby/datakit#535 @samoht).
- The Continuous Integration subsystem was improved to make the required GitHub scopes configurable to make it easier to deploy on public GitHub repositories with less privilege (moby/datakit#534 @talex5 @avsm) and to accept SSH keys automatically when autocloning state repositories (moby/datakit#536 @talex5).
- A regression in Irmin 1.0 in the
Irmin.Tree.diff
function, where nested diffs were reported with the wrong path was fixed (mirage/irmin#438 @samoht). - Irmin can now specify branches in URLs for the
fetch
function (mirage/irmin#432 @samoht).
Thanks to @samoht @avsm and @djs55 for handling all the release activity this week in moby/datakit#538 moby/datakit#540, moby/datakit#541, moby/datakit#542 and mirage/ocaml-9p#120.
-
@kayceesrk and @samoht have been discussing the semantics of merging
option
types in mirage/irmin#421, and concluded that Irmin 1.0.1 has the right semantics. mirage/irmin#422 was closed as a result. -
@yomimono and @samoht did a lot of work in the runup to the MirageOS 3.0 release a few months ago to prepare DataKit for support, and all of that functionality is now present in DataKit 0.10, so moby/datakit#433 and moby/datakit#459 were closed.
-
While building the mirage-ci, @avsm had reported that invalid job names from the CI resulted in inscrutable errors in the web interface. After some discussion, @talex5 decided that moby/datakit#492 wasn't worth the complexity, and that it should be addressed elsewhere.
-
@samoht had put together a design for a
dkt
CLI tool in moby/datakit#146. While there were many good ideas in the design, it has never been implemented fully, so the PR is closed. Get in touch with @samoht if you'd like to build it!
- The Golang DataKit bindings need to handle larger values better, so @simonferquel and @samoht are discussing merging moby/datakit#292.
- The C# bindings to DataKit in moby/datakit#334 are also awaiting review from @dgageot and @simonferquel. If you are interested in other language bindings, please create an issue.
- Irmin 1.1.0 is being improved by @samoht and @talex5 to make it possible to distinguish between empty trees and nonexistent sub-trees in mirage/irmin#431 and mirage/irmin#433. It will also add some new features such as
Irmin.Merge.idempotent
(mirage/irmin#435) and anS.repo
type exposed (mirage/irmin#436). - @talex5 has opened a WIP PR in mirage/ocaml-9p#118 to upstream some of the 9P patches used by DataKit in production, such as logging exceptions and keep-alive pings.
- The documentation is being improved by fixing the build instructions in moby/datakit#537 (@samoht @talex5). More patches to improve the instructions are welcome!
- Introducing the Moby Project to explain DataKit's new home.
Other reports in this series can be browsed directly in the repository at moby/datakit:reports.