Monorepo for the Go implementation of the Structured Merge library family.
Initial packages:
treehaverastmergetextmergejsonmerge
Standard repo tasks are exposed through mise and native Go tooling:
mise run formatmise run format-checkmise run lintmise run typecheckmise run testmise run check
The Go monorepo uses:
gofmtfor formattinggolangci-lintfor lintinggo test ./... -run '^$'for type-checking/compilationgo test ./...for unit and integration tests
The current tree-sitter backend path uses the sibling
../tree-sitter-language-pack checkout through a local replace in
go.mod. Repo tasks build its ts-pack-ffi crate first and compile with the
tspack_dev build tag so the Go binding can link against the local fork while
the upstream packaging fix is pending.
Integration tests consume the shared fixture corpus from the sibling
../fixtures repository instead of copying fixture data into this monorepo.