Opinionated OCaml linter with Merlin integration for code quality, naming conventions, and style checks
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

irmin: restructure into irmin/lib/<backend>/, add Irmin.SHA{1,256}, implement diff/ddiff, rewrite all backends + bin for Schema API

- Move backends into irmin/lib/{git,json,cbor,tar,atproto,oci}/
- Rename parse→dec, serialize→enc across Schema API
- Add Irmin.SHA1, Irmin.SHA256 pre-built schema instances
- Deduplicate Schema.Make boilerplate in json, cbor, tar, oci
- Implement structural diff and 4-point ddiff (was stubs)
- Implement JSON serialize via Jsont, CBOR serialize via Cbort
- Rewrite ATProto backend: Schema.Make + Heap.BACKEND + MST bridge
- Rewrite OCI backend: SHA256 JSON schema
- Rewrite all 13 bin commands for Schema/Heap API
- Fix test infrastructure: restrict old tests, rewrite mst_proof
- Fix ocaml-scitt for dec/enc rename
- Two-phase merge API: cursor * conflict list (not Ok/Error)
- Irmin.Merge module with typed combinators + v/v_result lifters
- 11 tests pass (6 schema + 5 tar), mst_proof verified

+4 -2
+4 -2
lib/rules/e900.ml
··· 35 35 (Filename.concat lib_dir f) 36 36 In_channel.input_all 37 37 in 38 - Astring.String.is_infix ~affix:"Wire.Codec" content 39 - || Astring.String.is_infix ~affix:"Wire.Field" content 38 + (* Only flag packages that define codecs, not ones 39 + that just consume them *) 40 + Astring.String.is_infix ~affix:"Wire.Codec.v " content 41 + || Astring.String.is_infix ~affix:"Codec.v \"" content 40 42 with _ -> false) 41 43 ml_files 42 44 in