commits
Rename make_superblock → superblock, make_inode_buf → inode_buf,
make_image → image, make_key → key in squashfs and streaming-aead.
Standardize fuzz and test conventions across 30+ packages:
- E715/E718: Add fuzz.ml runners referencing Fuzz_*.suite instead of
calling Fuzz_*.run() directly; update dune files accordingly
- E725: Fix fuzz_paseto suite name from "crowbar" to "paseto"
- E600: Create .mli interfaces for test modules (test_firmware,
test_remoteproc, test_pbkdf2, test_paseto) with single-group suites
- E605: Add missing test files (test_skills, test_monitor, test_openamp,
test_xrpc_server) with proper module extraction from inline test.ml
- E415: Add pp pretty-printer to xrpc_server type t
- E405: Add doc comment for pp_sync_action in skills.mli
- E205: Replace Printf with Fmt in fuzz_paseto and gen_corpus
- E331: Rename make_key to key in fuzz_paseto
- Change `run` signature to `string -> (string * test_case list) list -> unit`
matching Alcotest's grouping convention
- Fix `_name` bug: pass the name through to Alcotest.run_with_args
- Each fuzz module now exports `let suite = ("name", [test_case ...])`
- Entry points (fuzz.ml) collect suites: `Crowbar.run "pkg" [Fuzz_X.suite]`
- Remove stale `add_test`/`suite` API, keep only `test_case`/`run`
- Remove `let run () = ()` from fuzz_common.ml files
- Update merlint E725 rule to match new `let suite = ("name", ...)` pattern
- Update E725 test fixtures and expected output
- Restore cursor on exit via at_exit in Tty.Progress (fixes TTY corruption)
- Install SIGINT handler in monopam test for clean Ctrl-C
- Add 2s per-iteration timeout and 2s total budget to crowbar
- Group crowbar alcotest output by module prefix ("mdns: foo" → group "mdns")
- Skip fuzz runtest in afl context (enabled_if <> profile afl)
- Add merlint E725: enforce "module: description" fuzz test name convention
Add (enabled_if (= %{profile} afl)), (source_tree corpus), and
gen_corpus.exe deps to all 25 fuzz directories
E722: Convert ocaml-crc (test ...) to (executable ...) with rules
E718: Add gen_corpus.ml to ocaml-crc/fuzz
E724: Rename (alias fuzz-afl) to (alias fuzz) in 12 fuzz directories
Add seed corpus generators with representative test data for:
ocaml-aos, ocaml-block, ocaml-bloom, ocaml-bpsec, ocaml-bundle,
ocaml-cfdp, ocaml-cgr, ocaml-clcw, ocaml-cookeio, ocaml-cpio
E722: Convert (test ...) to (executable ...) in ocaml-aos, ocaml-clcw
E724: Add (rule (alias runtest) ...) and (rule (alias fuzz-afl) ...)
to all fuzz directories: ocaml-ax25, ocaml-block, ocaml-bloom,
ocaml-bpsec, ocaml-bundle, ocaml-cbort, ocaml-cfdp, ocaml-cgr,
ocaml-cookeio, ocaml-cpio
Rename CamelCase internal modules to Snake_case per OCaml convention:
- ocaml-hap: TlvType→Tlv_type, HapError→Hap_error, CharType→Char_type
- ocaml-cookeio: SameSite→Same_site, DateParser→Date_parser
- ocaml-claudeio: PreToolUse→Pre_tool_use, PostToolUse→Post_tool_use,
UserPromptSubmit→User_prompt_submit, SubagentStop→Subagent_stop,
PreCompact→Pre_compact (wire format strings preserved)
- irmin: StringMap→String_map, PathSet→Path_set
- ocaml-block: ReadOnly→Read_only, WithCrc→With_crc
Change all test_*.mli to export val suite : string * unit Alcotest.test_case
list (singular tuple). Flatten multi-group test suites into single groups.
Fix incorrect v_* function renames in CLI call sites.
Refactor all test directories to follow the convention: test_*.ml exports
suite/suites values, test_*.mli exposes only the suite type, and a single
test.ml runner aggregates and calls Alcotest.run. Consolidate dune files
to single test stanzas per directory.
Fix 64 documentation style issues: add trailing periods, fix [name] format
mismatches, and correct arg count mismatches in doc comments. Add pp
pretty-printers to 7 modules (block_map, standard_site_api, tangled_api,
xrpc_auth_client, xrpc_client, xrpc_cred, block).
Replace Alcotest.fail (Fmt.str ...) with Alcotest.failf (E616) in
ocaml-block tests, hoist nested functions (E320), reduce nesting depth
(E010), and accept spaces in cookie values to match browser behavior.
Add chardev/channel/socket-serial support to ocaml-qemu so QEMU VMs
can expose virtio-serial IPC ports and redirect consoles to Unix
sockets. Update pid1 init to read IPC frames from P0 and store them
as events in the block device. Add Block.of_file ?sectors override
for Linux block devices that report st_size=0. Wire up space build
and run commands for the two-partition (P0 flight + P1 SpaceOS) demo
with Docker cross-compilation of both binaries.
Rename the d3t library to wire for clarity. Update all references
in bench, test, and library code across affected packages.
- License -> Licence
- color -> colour (in prose, not API/code)
- behavior -> behaviour
- analyze -> analyse
- organized -> organised
- Remove marketing buzzwords (leveraging)
- Remove emojis from prose
Convert all packages from:
(source (uri https://tangled.org/handle/repo))
to:
(source (tangled handle/repo))
This uses dune 3.21's native tangled support for cleaner source
declarations. Also removes redundant homepage/bug_reports fields
that are auto-generated from tangled sources.
- prune: Replace ppxlib with compiler-libs.common, converting
Ast_traverse.iter visitors to Ast_iterator.default_iterator
- prune: Adapt to OCaml 5.3 Longident changes (located strings)
- Remove ppxlib from root dune-project, prune dune-project and opam
- Clean up stale ppxlib references in merlint comments and docs
- Remove ppxlib dependency from merlint, use merlin-lib's AST analysis
via ocaml-merlin's Dump module instead
- Move dump.ml parser from merlint to ocaml-merlin library, adding
dump_ast with typedtree/parsetree fallback
- Add Location, Dump, Outline, Occurrence modules to ocaml-merlin with
proper re-exports from the main Merlin module
- Delete merlin_dump.ml thin wrapper; merlint rules use Merlin.Dump
directly throughout
- Unify Location types between merlint and ocaml-merlin (merlint
re-exports Merlin.Location with custom pp)
- Fix ocaml-block build (Eio/bytesrw API updates)
- Add ocaml-merlin cram tests for outline, occurrences, enclosing
Standardize fuzz and test conventions across 30+ packages:
- E715/E718: Add fuzz.ml runners referencing Fuzz_*.suite instead of
calling Fuzz_*.run() directly; update dune files accordingly
- E725: Fix fuzz_paseto suite name from "crowbar" to "paseto"
- E600: Create .mli interfaces for test modules (test_firmware,
test_remoteproc, test_pbkdf2, test_paseto) with single-group suites
- E605: Add missing test files (test_skills, test_monitor, test_openamp,
test_xrpc_server) with proper module extraction from inline test.ml
- E415: Add pp pretty-printer to xrpc_server type t
- E405: Add doc comment for pp_sync_action in skills.mli
- E205: Replace Printf with Fmt in fuzz_paseto and gen_corpus
- E331: Rename make_key to key in fuzz_paseto
- Change `run` signature to `string -> (string * test_case list) list -> unit`
matching Alcotest's grouping convention
- Fix `_name` bug: pass the name through to Alcotest.run_with_args
- Each fuzz module now exports `let suite = ("name", [test_case ...])`
- Entry points (fuzz.ml) collect suites: `Crowbar.run "pkg" [Fuzz_X.suite]`
- Remove stale `add_test`/`suite` API, keep only `test_case`/`run`
- Remove `let run () = ()` from fuzz_common.ml files
- Update merlint E725 rule to match new `let suite = ("name", ...)` pattern
- Update E725 test fixtures and expected output
- Restore cursor on exit via at_exit in Tty.Progress (fixes TTY corruption)
- Install SIGINT handler in monopam test for clean Ctrl-C
- Add 2s per-iteration timeout and 2s total budget to crowbar
- Group crowbar alcotest output by module prefix ("mdns: foo" → group "mdns")
- Skip fuzz runtest in afl context (enabled_if <> profile afl)
- Add merlint E725: enforce "module: description" fuzz test name convention
Rename CamelCase internal modules to Snake_case per OCaml convention:
- ocaml-hap: TlvType→Tlv_type, HapError→Hap_error, CharType→Char_type
- ocaml-cookeio: SameSite→Same_site, DateParser→Date_parser
- ocaml-claudeio: PreToolUse→Pre_tool_use, PostToolUse→Post_tool_use,
UserPromptSubmit→User_prompt_submit, SubagentStop→Subagent_stop,
PreCompact→Pre_compact (wire format strings preserved)
- irmin: StringMap→String_map, PathSet→Path_set
- ocaml-block: ReadOnly→Read_only, WithCrc→With_crc
Add chardev/channel/socket-serial support to ocaml-qemu so QEMU VMs
can expose virtio-serial IPC ports and redirect consoles to Unix
sockets. Update pid1 init to read IPC frames from P0 and store them
as events in the block device. Add Block.of_file ?sectors override
for Linux block devices that report st_size=0. Wire up space build
and run commands for the two-partition (P0 flight + P1 SpaceOS) demo
with Docker cross-compilation of both binaries.
- prune: Replace ppxlib with compiler-libs.common, converting
Ast_traverse.iter visitors to Ast_iterator.default_iterator
- prune: Adapt to OCaml 5.3 Longident changes (located strings)
- Remove ppxlib from root dune-project, prune dune-project and opam
- Clean up stale ppxlib references in merlint comments and docs
- Remove ppxlib dependency from merlint, use merlin-lib's AST analysis
via ocaml-merlin's Dump module instead
- Move dump.ml parser from merlint to ocaml-merlin library, adding
dump_ast with typedtree/parsetree fallback
- Add Location, Dump, Outline, Occurrence modules to ocaml-merlin with
proper re-exports from the main Merlin module
- Delete merlin_dump.ml thin wrapper; merlint rules use Merlin.Dump
directly throughout
- Unify Location types between merlint and ocaml-merlin (merlint
re-exports Merlin.Location with custom pp)
- Fix ocaml-block build (Eio/bytesrw API updates)
- Add ocaml-merlin cram tests for outline, occurrences, enclosing