(Archaic) Spelling variant of camelote: poor quality goods; junk, rubbish, tat
Monorepo of small OCaml libraries and programs of questionable quality... but maintained!
You can also visit the API documentation for these packages.
- Monadise — Monadise direct-style functions easily
- Next — Niols's extended standard library
- ppx_deriving_biniou — Derive conversion functions between OCaml types and Biniou trees
- ppx_deriving_madcast — Derive cast functions from their types
- ppx_monad — Syntax extension for all monadic syntaxes
- SpacedOut — Helpers to read and write space-separated data files
- TestU01 — Bindings for TestU01, “a collection of utilities for the empirical statistical testing of uniform random number generators.”
- Valet — Declare types from
let-bindings with a preceedingvaldeclaration
The content of this repository, unless stated otherwise, is licensed under the MIT license. See LICENSE.md.
The CI checks periodically that everything builds via Nix or via the OPAM packaging. You may also choose either of these environments to contribute to this repository:
-
The Nix way: the flake provides a devShell for all your needs:
nix develop, orecho 'use flake' > .envrc. -
The OPAM way:
opam install . --deps-only --with-test --with-doc.
The CI pushes the built derivations to a Nix cache, which Nix users might enjoy
to use. The flake adds it as an extra-trusted-substituters.
The Nix environment contains Git hooks that will check formatting of OCaml with
Topiary, for instance, or that dune-project and the *.opam files are in
sync. This is also enforced by the CI. There is currently no good way to follow
this the OPAM way.
Say you have a project <proj> that lives in its own repository <repo> and
that should come to live in Camelotte under <dir>/:
-
Rewrite its history to have it live in a subdirectory instead:
git clone <repo> <proj> cd <proj> git filter-repo --to-subdirectory-filter <dir>/Note:
git filter-repocan crash monumentally on some Git configurations; you might want tomv ~/.config/git/config{,.bak}during the rewrite. -
Import the rewritten repository into Camelotte:
cd camelotte git remote add import /path/to/<proj> git fetch import git merge --allow-unrelated-histories import/main ## => use “Import history from `<proj>`” as commit message git remote remove import -
Then comes the work of integrating the project with the monorepo, adding it to this README, to
dune-projectandflake.nix, importing or cleaning up information from its.gitignore,.github, etc. and potentially renaming its tags and recreating its releases.