Update docs, changelog, examples, and add ADRs for v1.2
- Add v1.1.0 and v1.2.0 changelog entries - Add exclude field to config reference and example config - Add ADRs documenting all major design decisions - Fix step numbering in reverse_sync() - Fix action.yml to copy VERSION file - Add dist/ and .env to .gitignore - Use refs/tags/ format for Nix flake tag refs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
14
README.md
14
README.md
@@ -16,12 +16,12 @@ josh:
|
||||
targets:
|
||||
- name: "billing"
|
||||
subfolder: "services/billing"
|
||||
josh_filter: ":/services/billing"
|
||||
subrepo_url: "git@gitea.example.com:ext/billing.git"
|
||||
subrepo_auth: "ssh"
|
||||
branches:
|
||||
main: main
|
||||
forward_only: []
|
||||
exclude: # files excluded from subrepo (optional)
|
||||
- ".monorepo/"
|
||||
|
||||
bot:
|
||||
name: "josh-sync-bot"
|
||||
@@ -58,8 +58,10 @@ Run `josh-sync preflight` to validate your setup.
|
||||
|
||||
## Documentation
|
||||
|
||||
- **[Setup Guide](docs/guide.md)** — Step-by-step: prerequisites, importing existing subrepos, CI workflows, and troubleshooting
|
||||
- **[Setup Guide](docs/guide.md)** — Step-by-step: prerequisites, importing existing subrepos, CI workflows, file exclusion, and troubleshooting
|
||||
- **[Configuration Reference](docs/config-reference.md)** — Full `.josh-sync.yml` field documentation
|
||||
- **[Architecture Decision Records](docs/adr/)** — Design rationale and trade-offs
|
||||
- **[Changelog](CHANGELOG.md)** — Version history
|
||||
|
||||
## CLI
|
||||
|
||||
@@ -79,12 +81,16 @@ josh-sync state reset <target> [branch]
|
||||
|
||||
- **Forward sync** (mono → subrepo): pushes directly if clean, creates conflict PR if not. Uses `--force-with-lease` for safety.
|
||||
- **Reverse sync** (subrepo → mono): always creates a PR, never pushes directly.
|
||||
- **File exclusion**: `exclude` patterns are embedded inline in the josh-proxy URL. Excluded files exist only in the monorepo.
|
||||
- **Filter reconciliation**: Changing the exclude list auto-creates a merge commit that connects old and new histories — no force-push needed.
|
||||
- **Loop prevention**: `Josh-Sync-Origin:` git trailer filters out bot commits.
|
||||
- **State tracking**: orphan branch `josh-sync-state` stores JSON per target/branch.
|
||||
|
||||
## Dependencies
|
||||
|
||||
`bash >=4`, `git`, `curl`, `jq`, `yq` ([mikefarah/yq](https://github.com/mikefarah/yq) v4+), `openssh`
|
||||
`bash >=4`, `git`, `curl`, `jq`, `yq` ([mikefarah/yq](https://github.com/mikefarah/yq) v4+), `openssh`, `rsync`
|
||||
|
||||
> The Nix flake bundles all dependencies automatically.
|
||||
|
||||
## License
|
||||
|
||||
|
||||
Reference in New Issue
Block a user