Artifact 8f67cf333ab75c4546f0d335aa5cb2e5ed0faec03f0cefde68e73c8faa0e17c4:
- File
CONTRIBUTING.md
— part of check-in
[d9574335d0]
at
2026-04-28 00:40:42
on branch trunk
— polish: add CHANGELOG + CONTRIBUTING (libfossil-level hygiene)
Matches the bones polish template. CHANGELOG covers root-module versions (v0.0.1 initial through v0.0.6 latest) and notes the multi-module tagging scheme (leaf/, bridge/ submodules carry their own tags). CONTRIBUTING covers the make setup bootstrap, test/sim commands, the four-binary build (edgesync + leaf + bridge + iroh-sidecar), wasm targets, and submodule coordination guidance for releases. (user: [email protected], size: 2207) [annotate] [blame] [check-ins using] [more...]
# Contributing to EdgeSync Thanks for your interest in `EdgeSync`, a peer-to-peer replication and sync substrate built on `libfossil` (durable state) and NATS (real-time coordination). This document covers everything you need to get a working checkout, run the tests, and submit changes. ## Development setup Requires Go 1.26 or newer. ``` git clone https://github.com/danmestas/EdgeSync cd EdgeSync make setup # installs hooks, builds binaries, runs tests ``` `make setup` is the one-shot bootstrap. The repository has a multi-module structure (root + `leaf` + `bridge` + `iroh-sidecar`); `setup` builds all of them. A `go.work.example` file is checked in — copy to `go.work` to resolve all submodules locally. ## Running tests ``` make test # full suite across all modules make vet # go vet make sim # deterministic simulation harness make sim-full # extended simulation runs ``` `make test` is the canonical pre-PR gate — the same checks run in CI. ## Building variants ``` make build # all four binaries (edgesync, leaf, bridge, iroh-sidecar) make wasm # WASI + browser WASM targets make wasm-wasi # WASI only make wasm-browser # browser only ``` ## Code layout - `cmd/`, `cli/` — CLI entry points (`edgesync`). - `leaf/` — leaf daemon Go submodule (separate `go.mod`, separately tagged). - `bridge/` — cross-cluster sync submodule. - `iroh-sidecar/` — libp2p sidecar for replication. - `deploy/` — deployment manifests and tooling. - `scripts/` — operational and test-helper scripts. - `sim/` — deterministic simulation harness. - `testdata/` — fixture data for tests. ## Submitting changes 1. Open a feature branch off `main`. Direct commits to `main` are not accepted. 2. Run `make test` locally before pushing. 3. Open a PR; CI will re-run the full suite. 4. Submodules (`leaf`, `bridge`) are tagged independently — coordinate release versions with the root module if a change spans both. ## Reporting issues Open an issue at https://github.com/danmestas/EdgeSync/issues with reproduction steps, expected vs. actual behavior, and which submodule (`edgesync`, `leaf`, `bridge`, `iroh-sidecar`) is affected.