commits
Alcotest requires at least one test case per suite. Replace empty lists
with a single noop test case to satisfy this constraint.
- Extract level_string, write_json_trace, write_tracing_entry, is_tracing_src,
report_tracing helpers to reduce trace_reporter nesting depth (E010)
- Replace Format.kfprintf with Fmt.kstr/Fmt.kpf (E205)
- Introduce log_flags record to eliminate 2 bool params in setup_log (E350)
- Add test_cli.mli, test_cli_no_json.mli with suite exports (E600)
- Add test_vlog.ml/mli with tests for parse_log_spec, level_of_verbosity,
enable_tracing; add test.ml runner (E605)
Extract write_tracing_entry helper to reduce duplication in
trace_reporter, and remove redundant .mli files for test modules.
Migrate Printf.sprintf to Fmt.str, Format.fprintf to Fmt.pf, and
Format.pp_print_string to Fmt.string across bundle, gpt, hap, homebrew,
jsonwt, matter, mbr, meross, paseto, precommit, publicsuffix, qemu,
retry, sdnv, slack, sle, space-packet, spake2, sqlite, squashfs, tar,
tc, tcf, tcpcl, tm, tomlt, tty, uslp, vlog, wal, wire, yamlrw, yamlt,
osrelease, space, xdge, and crypto test runner.
- 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.
git-subtree-dir: ocaml-vlog
git-subtree-mainline: b1ddf5fad92b80b66045606546fc152f1d204e11
- ocaml-git: Add advance_head function that properly updates branch refs
instead of writing directly to HEAD, preventing detached HEAD state
- ocaml-git: Add tests for advance_head in both branch and detached modes
- monopam: Add dune-build-info for proper versioning
- monopam: Add cram test for workflow commands
git-subtree-dir: ocaml-vlog
git-subtree-mainline: b1ddf5fad92b80b66045606546fc152f1d204e11
- Simplify homebrew.yml: use `target` path instead of package/exe_name
- Rename prune to pruner (avoid conflict with graphviz)
- Add parallel uploads with rclone --transfers 16
- Fix hyphenated name parsing (git-mono was parsed as "git")
- Add timing output for build/upload/tap update steps
- Add dry-run command to preview build targets
git-subtree-dir: ocaml-vlog
git-subtree-mainline: b1ddf5fad92b80b66045606546fc152f1d204e11
Wrap H2_client.close in try-catch to handle the case where fibers
are already cancelled during switch cleanup. This fixes the
"Cancelled: Stdlib.Exit" error that occurred when monopam pull
completed and the connection pool was cleaning up.
git-subtree-dir: ocaml-vlog
git-subtree-mainline: b1ddf5fad92b80b66045606546fc152f1d204e11
The @ocaml-index target was failing because:
1. Test modules lacked .mli files needed for index generation
2. Test directories with multiple executables didn't specify (modules),
causing dune to include all .ml files in each executable - modules
using alcotest were included in executables without that dependency
Added empty .mli stubs and explicit (modules) fields. Also added
(enabled_if (= %{context_name} "default")) to disable tests in afl context.
Update Vlog.setup_test to:
- Default to Debug level (Alcotest captures output anyway)
- Support RUST_LOG-style syntax: TEST_LOG=level,src:level,...
Examples: TEST_LOG=warning, TEST_LOG=warning,conpool:debug
Update all test files to use Vlog.setup_test:
- ocaml-requests: all 17 test files
- ocaml-claudeio: test_claude.ml
- ca-certs: tests.ml
Document TEST_LOG in ocaml-testing skill with comparison to
other ecosystems (RUST_LOG, GOLOG_LOG_LEVEL, pytest, DEBUG).
- ocaml-oci: Replace Logs_cli with Vlog.setup
- ocaml-agent: Replace setup_log with Vlog.setup
- ocaml-requests/ocurl: Use Vlog.setup, keep --verbose-http flag
- vlog: Add setup_test for test runners with TEST_LOG env var support
- json-logs: Add ~app, ~auto, ~base parameters for base fields
- json-logs: Auto-include hostname and pid in JSON output
- vlog: Add --log-tag KEY=VALUE flag for custom base tags
- vlog: Use json-logs by default, allow disabling with ~json_reporter:None
- Update meross, matter, mdns, claude-skills, precommit to use vlog
JSON output now includes automatic fields (hostname, pid, app) plus
any custom tags from --log-tag flags, useful for log aggregation.
- Extract level_string, write_json_trace, write_tracing_entry, is_tracing_src,
report_tracing helpers to reduce trace_reporter nesting depth (E010)
- Replace Format.kfprintf with Fmt.kstr/Fmt.kpf (E205)
- Introduce log_flags record to eliminate 2 bool params in setup_log (E350)
- Add test_cli.mli, test_cli_no_json.mli with suite exports (E600)
- Add test_vlog.ml/mli with tests for parse_log_spec, level_of_verbosity,
enable_tracing; add test.ml runner (E605)
Migrate Printf.sprintf to Fmt.str, Format.fprintf to Fmt.pf, and
Format.pp_print_string to Fmt.string across bundle, gpt, hap, homebrew,
jsonwt, matter, mbr, meross, paseto, precommit, publicsuffix, qemu,
retry, sdnv, slack, sle, space-packet, spake2, sqlite, squashfs, tar,
tc, tcf, tcpcl, tm, tomlt, tty, uslp, vlog, wal, wire, yamlrw, yamlt,
osrelease, space, xdge, and crypto test runner.
- ocaml-git: Add advance_head function that properly updates branch refs
instead of writing directly to HEAD, preventing detached HEAD state
- ocaml-git: Add tests for advance_head in both branch and detached modes
- monopam: Add dune-build-info for proper versioning
- monopam: Add cram test for workflow commands
- Simplify homebrew.yml: use `target` path instead of package/exe_name
- Rename prune to pruner (avoid conflict with graphviz)
- Add parallel uploads with rclone --transfers 16
- Fix hyphenated name parsing (git-mono was parsed as "git")
- Add timing output for build/upload/tap update steps
- Add dry-run command to preview build targets
The @ocaml-index target was failing because:
1. Test modules lacked .mli files needed for index generation
2. Test directories with multiple executables didn't specify (modules),
causing dune to include all .ml files in each executable - modules
using alcotest were included in executables without that dependency
Added empty .mli stubs and explicit (modules) fields. Also added
(enabled_if (= %{context_name} "default")) to disable tests in afl context.
Update Vlog.setup_test to:
- Default to Debug level (Alcotest captures output anyway)
- Support RUST_LOG-style syntax: TEST_LOG=level,src:level,...
Examples: TEST_LOG=warning, TEST_LOG=warning,conpool:debug
Update all test files to use Vlog.setup_test:
- ocaml-requests: all 17 test files
- ocaml-claudeio: test_claude.ml
- ca-certs: tests.ml
Document TEST_LOG in ocaml-testing skill with comparison to
other ecosystems (RUST_LOG, GOLOG_LOG_LEVEL, pytest, DEBUG).
- json-logs: Add ~app, ~auto, ~base parameters for base fields
- json-logs: Auto-include hostname and pid in JSON output
- vlog: Add --log-tag KEY=VALUE flag for custom base tags
- vlog: Use json-logs by default, allow disabling with ~json_reporter:None
- Update meross, matter, mdns, claude-skills, precommit to use vlog
JSON output now includes automatic fields (hostname, pid, app) plus
any custom tags from --log-tag flags, useful for log aggregation.