Oxmono Diff
Overview
oxmono diff <package> shows differences between pristine upstream packages and their OxCaml-adapted versions. Use this to understand what modifications were made to any package in the monorepo.
When to Use
- •Reviewing what changes were made to a package for OxCaml compatibility
- •Understanding why a package differs from upstream
- •Preparing to update a package to a newer upstream version
- •Checking if local modifications need rebasing
Quick Reference
bash
# Show diff for a package oxmono diff <package-name> # Example oxmono diff bytesrw
Finding Package Sources
Sources are tracked in sources.yaml and can be found by grepping through the package directories:
bash
# Find a package in the modified (OxCaml) directory ls opam/<package-name> # Find a package in the pristine upstream directory ls sources/<package-name> # Find packages in bleeding-edge development ls bleeding/<package-name> # Search for a package by partial name ls opam/ | grep <pattern> ls bleeding/ | grep <pattern>
Directory purposes:
- •
opam/- OxCaml-adapted packages (what gets built) - •
sources/- Pristine upstream copies (read-only reference) - •
bleeding/- New libraries being developed for OxCaml
How Diff Works
- •Locates pristine source at
sources/<package> - •Locates modified version at
opam/<package> - •Runs
diff -ruNto show unified recursive diff - •Output shows all files that differ between upstream and local
Common Patterns
| Task | Command |
|---|---|
| View package diff | oxmono diff <pkg> |
| List all opam packages | ls opam/ |
| List bleeding packages | ls bleeding/ |
| Find package source URL | grep -A5 "<pkg>:" sources.yaml |
| Check if package exists | ls opam/<pkg> sources/<pkg> |