commits
Rename make_superblock → superblock, make_inode_buf → inode_buf,
make_image → image, make_key → key in squashfs and streaming-aead.
Flatten test_retry from 5 groups into a single ("retry", [...]) pair.
Rename identifiers exceeding 4 underscores: i_frame → iframe,
multiple_targets_partial → multitarget_partial, etc.
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
Extract helpers in bpsec.ml (parameter_of_cbor, security_block_of_cbor)
and claudeio transport/examples to bring function lengths under threshold.
Add a location (file:1:0) to E510 Missing Log Source issues so the
output shows the full file path, making it easy to identify which
module needs fixing in monorepos with many similarly-named modules.
Also includes accumulated linter fixes and dune fmt formatting.
Remove redundant function prefixes (get_, find_, make_, create_, bundle_)
across bpsec, btree, bundle, cbort, cfdp, cgr, claudeio, and dependent
packages. Replace Printf.sprintf with Fmt.failwith, add err_eio/err_msg
helpers in skills.ml.
Add missing periods to doc comments, fix [name] format mismatches,
rename camelCase variant constructors to snake_case in hooks.ml,
and apply dune fmt formatting.
- Fix E325 to skip type variables when checking get/find naming
- Add test.ml runners for bpsec, bytesrw-eio, cfdp, claude-skills
- Add .mli files for btree lib modules and test modules
- Add .mli files for cbort, cgr, bundle, bpsec, bytesrw-eio
- Add claudeio test module stubs and .mli files
- Add claudeio test/proto/dune for outgoing tests
- Fix claudeio examples Test_json_utils -> Json_utils references
- Add linkedin URL parsing module and tests
- Improve linkedin profile scraping and cookie handling
- Fix claude-skills main.ml lint issues
- Fix various .mli doc comment formatting
Flatten multi-group test suites to single pairs (string * test_case list)
across bpsec, btree, bundle, bytesrw-eio, cfdp, cgr, claude-skills, and
claudeio. Update test.ml runners to wrap suites in lists. Add missing
test_cache.mli. Fix E600 linter to skip standalone executables and
utility libraries that happen to have a test_ prefix by checking whether
the corresponding .ml defines a suite value.
- 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.
- Regenerate opam files after source URL updates
- Add README files for irmin, git
Keep Service naming (more generic than Unikernel).
Also fix bundle/bpsec source URLs to use tangled.org.
- Update dune-project deps: mirage-crypto -> crypto, mirage-crypto-rng -> crypto-rng
- Update lib/dune libraries
- Update test/dune and fuzz/dune: mirage-crypto-rng.unix -> crypto-rng.unix
- Update module names: Mirage_crypto -> Crypto, Mirage_crypto_rng_unix -> Crypto_rng_unix
- Add open Result.Syntax and require helper for Option-to-Result
- Flatten security_block_of_cbor from 6+ nesting levels to 1-2
- Simplify parameter_of_cbor using Result.map
- Use Digestif.SHA256/384/512.hmac_string for HMAC operations
- Use Mirage_crypto.AES.GCM with string API (mirage-crypto 2.x)
- Fix duplicate None cases in parameter_of_cbor and result_of_cbor
- Replace incorrect List.fold_left_map with List.map in create_bcb
- Remove unused to_bytes function from fuzz tests
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
- Fix E325 to skip type variables when checking get/find naming
- Add test.ml runners for bpsec, bytesrw-eio, cfdp, claude-skills
- Add .mli files for btree lib modules and test modules
- Add .mli files for cbort, cgr, bundle, bpsec, bytesrw-eio
- Add claudeio test module stubs and .mli files
- Add claudeio test/proto/dune for outgoing tests
- Fix claudeio examples Test_json_utils -> Json_utils references
- Add linkedin URL parsing module and tests
- Improve linkedin profile scraping and cookie handling
- Fix claude-skills main.ml lint issues
- Fix various .mli doc comment formatting
Flatten multi-group test suites to single pairs (string * test_case list)
across bpsec, btree, bundle, bytesrw-eio, cfdp, cgr, claude-skills, and
claudeio. Update test.ml runners to wrap suites in lists. Add missing
test_cache.mli. Fix E600 linter to skip standalone executables and
utility libraries that happen to have a test_ prefix by checking whether
the corresponding .ml defines a suite value.
- Use Digestif.SHA256/384/512.hmac_string for HMAC operations
- Use Mirage_crypto.AES.GCM with string API (mirage-crypto 2.x)
- Fix duplicate None cases in parameter_of_cbor and result_of_cbor
- Replace incorrect List.fold_left_map with List.map in create_bcb
- Remove unused to_bytes function from fuzz tests