Skip to content

feat!: manifest v2 schema with remotes and fork workflow support#333

Merged
laynepenney merged 2 commits intomainfrom
feat/manifest-v2
Feb 20, 2026
Merged

feat!: manifest v2 schema with remotes and fork workflow support#333
laynepenney merged 2 commits intomainfrom
feat/manifest-v2

Conversation

@laynepenney
Copy link
Owner

Summary

  • Rename default_branch to revision (aligns with git-repo terminology)
  • target is now branch-only (not remote/branch), with new sync_remote/push_remote fields
  • New top-level remotes section for named remotes with base fetch URLs
  • gr sync auto-configures declared remotes (e.g. upstream) in repos
  • v1 manifests auto-migrate on parse (backward compatible)

Test plan

  • cargo build — compiles
  • cargo test --lib — 521 passed, 0 failed
  • cargo clippy — no new warnings
  • cargo fmt — formatted
  • Parse a v1 manifest → auto-migrates, behavior unchanged
  • Parse a v2 manifest with remotes → resolves correctly
  • gr push uses push_remote
  • gr sync configures declared remotes

Closes #332

🤖 Generated with Claude Code

laynepenney and others added 2 commits February 20, 2026 10:58
…kflow support

BREAKING CHANGE: Manifest schema updated to v2.

- Rename `default_branch` to `revision` (aligns with git-repo terminology)
- `target` is now a branch name only (e.g. `develop`), not `remote/branch`
- New `sync_remote` field for fetch/rebase remote (default: `origin`)
- New `push_remote` field for push remote (default: `origin`)
- New top-level `remotes` section with base fetch URLs for URL derivation
- Repos can use `remote: upstream` instead of explicit `url`
- `gr sync` auto-configures declared remotes via `ensure_remote_configured`
- v1 manifests auto-migrate: `default_branch` aliased, `target` split

Closes #332

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
migrate_v1() is already called in parse_raw(), so the second call
in parse() was a harmless no-op (guarded by version check) but
unnecessary.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@laynepenney laynepenney merged commit d8fe895 into main Feb 20, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Manifest v2: top-level remotes, revision rename, sync_remote/push_remote

1 participant