feat: remote recipe sources ([[recipe_sources]]) - #26
Merged
mad01 merged 6 commits intoJul 5, 2026
Conversation
internal/repo delegates to gitutil so internal/config can reuse the same git operations for recipe sources without an import cycle. Refs: MAD-185
Enabled [[recipe_sources]] entries are cloned/pinned under ~/.config/ralph/sources/<name> at load time, their recipes discovered and merged with identity <source>/<recipe>. Source recipe paths resolve absolute against the checkout; JoinSourcePath passes them through at every dotfiles-repo join site. Enable/hosts overrides use the namespaced key (overrides."<source>/<recipe>"). Refs: MAD-185
Pinned (detached HEAD) sources are skipped; the config-reload trigger now fingerprints recipe source checkouts alongside the dotfiles repo. Refs: MAD-185
Refs: MAD-185
- ralph doctor resolves absolute source paths via JoinSourcePath (three missed join sites in doctor_validate.go) - config.local.toml overlay no longer drops [[recipe_sources]] - ralph enable/disable accept namespaced <source>/<recipe> names - EnsureSourceCheckout re-pins to remote-only branches via checkout DWIM instead of hard-failing on local ref resolution Refs: MAD-185
mad01
added a commit
that referenced
this pull request
Jul 7, 2026
…pe-sources-recipe_sources feat: remote recipe sources ([[recipe_sources]])
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Recipes can now live in remote git repositories, pinned to a branch, tag, or commit:
Sources are cached under
~/.config/ralph/sources/<name>, cloned on first config load and re-pinned whenrefchanges. Recipes merge with the identity<source>/<recipe>; overrides, host gates, profiles, and waves apply unchanged.update = truebranch sources are pulled during theralph upsync phase, with a config reload when a source advances. Git clone/fetch/checkout/pull primitives moved frominternal/repotointernal/gitutilsointernal/configcan reuse them without an import cycle.MAD-185