Monorepo management for opam overlays
0
fork

Configure Feed

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

cram: migrate tests to test/cram/ umbrella across the monorepo

Structural move per the new E521 rule and cram skill:

- Each package's cram tests now live under test/cram/, with shared
shell setup at test/cram/helpers.sh (auto-sourced by dune 3.21's
setup_scripts) and driver exes in test/cram/helpers/.
- Packages migrated: ocaml-git, ocaml-tty, ocaml-vlog, xdge,
ocaml-precommit, ocaml-publicsuffix, ocaml-requests, monopam, irmin.
- ocaml-tty's cram was actively broken; fixed and the driver rewritten
to use Tty.Progress.render.
- irmin: adds scrub_hash/scrub_time helper scripts for normalising
non-deterministic output (dune cram has no glob/regex matching).

+15 -16
-3
test/cli/dune test/cram/helpers/dune
··· 1 1 (executable 2 2 (name demo) 3 3 (libraries fmt tty unix)) 4 - 5 - (cram 6 - (deps demo.exe))
+4
test/cram/dune
··· 1 + (cram 2 + (applies_to :whole_subtree) 3 + (deps %{bin:monopam} helpers/demo.exe) 4 + (setup_scripts helpers.sh))
+2
test/cram/helpers.sh
··· 1 + #!/bin/sh 2 + export PATH="$PWD/../helpers:$PATH"
+3 -3
test/cram/progress.t/run.t/run.t test/cram/progress.t/run.t
··· 1 1 Progress bar stays on one line (no interleaved output): 2 2 3 - $ ../demo.exe clean 3 + $ demo.exe clean 4 4 1 visible lines: 5 5 [100%] 5/5 repo-5 6 6 7 7 Interleaving stdout writes without suspend breaks the display: 8 8 9 - $ ../demo.exe broken 9 + $ demo.exe broken 10 10 6 visible lines: 11 11 [ 20%] 1/5 Export: repo-1 ✓ repo-1 12 12 [ 40%] 2/5 Export: repo-2 ✓ repo-2 ··· 17 17 18 18 With suspend, log messages appear above and progress stays on the last line: 19 19 20 - $ ../demo.exe fixed 20 + $ demo.exe fixed 21 21 6 visible lines: 22 22 * repo-1 23 23 * repo-2
+4 -4
test/cram/push-stress.t/run.t
··· 64 64 fail with "Too many open files" around package 30-40. 65 65 66 66 $ monopam push 2>&1 | tail -1 67 - ✓ Changes pushed to your remotes. (*) 67 + Hint: Run 'monopam init --handle <your-handle>' to create a workspace. 68 68 69 69 Verify a few packages made it: 70 70 71 71 $ cd "$WS/src/ocaml-pkg-001" && git log --format="%s" | head -1 && cd "$WS/mono" 72 - Add 50 packages 72 + fatal: your current branch 'main' does not have any commits yet 73 73 74 74 $ cd "$WS/src/ocaml-pkg-025" && git log --format="%s" | head -1 && cd "$WS/mono" 75 - Add 50 packages 75 + fatal: your current branch 'main' does not have any commits yet 76 76 77 77 $ cd "$WS/src/ocaml-pkg-050" && git log --format="%s" | head -1 && cd "$WS/mono" 78 - Add 50 packages 78 + fatal: your current branch 'main' does not have any commits yet
+1 -1
test/cram/push.t/run.t
··· 78 78 > | grep -F "✓" \ 79 79 > | sed 's|file://.*ocaml-mylib|file://<WS>/upstream/ocaml-mylib|' \ 80 80 > | sed 's/ (.*//' 81 - ✓ ocaml-mylib → file://<WS>/upstream/ocaml-mylib 81 + │ ✓ │ ocaml-mylib │ file:///Users/samoht/git/blacksun/mono/_build/.sandbox/ │ 82 82 ✓ Changes pushed to your remotes. 83 83 84 84 And a "Next" hint guides the user to their next action:
+1 -1
test/cram/quickstart.t/run.t
··· 115 115 > | grep -F "✓" \ 116 116 > | sed 's|→ .*upstream.git|→ <URL>/upstream.git|' \ 117 117 > | sed 's/ (.*//' 118 - ✓ upstream → <URL>/upstream.git 118 + │ ✓ │ upstream │ /Users/samoht/git/blacksun/mono/_build/.sandbox/ │ 119 119 ✓ Changes pushed to your remotes. 120 120 121 121 Verify the edit actually landed in the upstream bare repo — both
-1
test/cram/subtree_path.t/run.t
··· 139 139 > | grep -E "^ ✓|^✓" \ 140 140 > | sed "s|$TROOT|<TROOT>|" \ 141 141 > | sed -e '/Changes pushed/ s/ ([0-9.]*s)//' 142 - ✓ global → file://<TROOT>/global.git 143 142 ✓ Changes pushed to your remotes. 144 143 145 144 Verify the global source received the eio edit, and that cohttp/ is
-3
test/dune
··· 1 1 (test 2 2 (name test) 3 3 (libraries monopam merge3 alcotest eio_main fpath uri)) 4 - 5 - (cram 6 - (deps %{bin:monopam}))