2026-02-12 09:20:55 +03:00
|
|
|
# Changelog
|
|
|
|
|
|
|
|
|
|
## 1.0.0
|
|
|
|
|
|
|
|
|
|
Initial release. Extracted from [private-monorepo-example](https://code.itkan.io/pe/private-monorepo-example) into a standalone reusable library.
|
|
|
|
|
|
|
|
|
|
### Features
|
|
|
|
|
|
|
|
|
|
- Bidirectional sync: forward (mono → subrepo) and reverse (subrepo → mono)
|
|
|
|
|
- Multi-target support via `.josh-sync.yml` config
|
|
|
|
|
- Per-target credential overrides (SSH keys, HTTPS tokens)
|
|
|
|
|
- Force-with-lease safety for forward sync
|
|
|
|
|
- Loop prevention via git trailers
|
|
|
|
|
- State tracking on orphan branch (`josh-sync-state`)
|
|
|
|
|
- Initial import and subrepo reset commands
|
|
|
|
|
- Composite action for Gitea/GitHub CI
|
|
|
|
|
- Nix flake with devenv module
|
|
|
|
|
- Preflight validation checks
|
|
|
|
|
- Config schema (JSON Schema)
|
|
|
|
|
|
|
|
|
|
### Breaking Changes (vs. inline scripts)
|
|
|
|
|
|
|
|
|
|
- Python + pyyaml replaced by yq-go (single static binary)
|
|
|
|
|
- 7 separate scripts replaced by single `josh-sync` CLI
|
2026-02-12 11:22:51 +03:00
|
|
|
- Consumer workflows use composite action (`uses: https://your-gitea/org/josh-sync@v1`)
|