Monorepo management for opam overlays

Documentation and code quality improvements across libraries

- Add README files for jsonwt, owntracks, monopam, and srcsetter
- Fix langdetect language count (47→49) in dune-project
- Remove unused variable in crockford encode function
- Improve retention type documentation in zulip channels.mli
- Refactor conpool is_healthy to reduce nesting and improve clarity
- Document unimplemented IDNA features in punycode README

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

+86
+86
README.md
··· 1 + # monopam 2 + 3 + Opam overlay and monorepo manager using git subtrees. 4 + 5 + ## Overview 6 + 7 + Monopam manages synchronization between: 8 + - An opam overlay repository 9 + - Individual git checkouts of packages 10 + - A monorepo using git subtrees 11 + 12 + This enables maintaining multiple OCaml packages in a single repository while preserving their individual git histories. 13 + 14 + ## Installation 15 + 16 + ``` 17 + opam install monopam 18 + ``` 19 + 20 + ## Workflow 21 + 22 + ### Initialize 23 + 24 + ```bash 25 + monopam init 26 + ``` 27 + 28 + Creates configuration and initializes the monorepo structure. 29 + 30 + ### Check Status 31 + 32 + ```bash 33 + monopam status 34 + ``` 35 + 36 + Shows synchronization state of all packages, including: 37 + - Pending commits in checkouts 38 + - Uncommitted changes in monorepo 39 + - Remote tracking status 40 + 41 + ### Pull Updates 42 + 43 + ```bash 44 + monopam pull # Pull all packages 45 + monopam pull <package> # Pull specific package 46 + ``` 47 + 48 + For each package: 49 + 1. Clones or fetches the individual checkout 50 + 2. Adds or pulls the subtree in the monorepo 51 + 52 + ### Push Changes 53 + 54 + ```bash 55 + monopam push # Push all packages 56 + monopam push <package> # Push specific package 57 + ``` 58 + 59 + For each package with monorepo changes: 60 + 1. Splits the subtree commits 61 + 2. Pushes to the individual checkout 62 + 63 + Use `--upstream` to also push checkouts to their remotes. 64 + 65 + ### Add/Remove Packages 66 + 67 + ```bash 68 + monopam add <package> # Add package to monorepo 69 + monopam remove <package> # Remove package from monorepo 70 + ``` 71 + 72 + ## Directory Structure 73 + 74 + ``` 75 + overlay/ # Opam overlay repository 76 + src/ # Individual git checkouts 77 + package-a/ 78 + package-b/ 79 + monorepo/ # Combined monorepo 80 + package-a/ # Subtree from src/package-a 81 + package-b/ # Subtree from src/package-b 82 + ``` 83 + 84 + ## License 85 + 86 + ISC