Repository navigation
extends: build a vinca.yaml on top of a shared one - #163
Merged
traversaro merged 3 commits intoOct 15, 2026
Merged
Conversation
A configuration can extend another one (relative path). Package lists are combined, mutex_package is merged (run_constraints replaced per package), other keys of the extending file win. pkg_additional_info.yaml, dependencies.yaml, patches, tests and conda_index files of every layer are combined, each relative to its configuration. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…a-gha reads the layered configuration Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The recipe refers to patch/<file>; the template copies the patch from its configuration's patch directory. Before, a path relative to a common root was copied relative to the working directory, which broke for patches outside it (e.g. with extends). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Tobias-Fischer
force-pushed
the
feat/config-layering
branch
from
October 10, 2026 04:26
ee60ae5 to
b70f0f0
Compare
Member
Contributor
Author
Done :). Would you mind taking a quick look please @traversaro? |
traversaro
approved these changes
Oct 15, 2026
Tobias-Fischer
added a commit
to RoboStack/robostack
that referenced
this pull request
Oct 16, 2026
Everything the monorepo needed is merged upstream (RoboStack/vinca#163-#175). Same recipes for humble and lyrical, except the intended upstream changes: compatibility packages require the distribution's mutex (#171), and the build scripts' opt-in sccache / SP_DIR fallback (#153, no-ops by default). The integration branch's cross-compiling qt6-main build dependency isn't upstream (no cross-compiling anymore). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Tobias-Fischer
added a commit
to RoboStack/robostack
that referenced
this pull request
Oct 16, 2026
* CI fixes found by the rosdistro sync trials - PR cache pruning on Windows: the PATH clean-up drops the GitHub CLI, so gh wasn't found and superseded Windows caches were never deleted. - ABI check comment: every distribution's section stays collapsed (the counts are in the summary line); open sections made the comments very long. - rs gha: a full rebuild of jazzy on win-64 (1827 recipes) gives a 520-530 KiB workflow at batches of 25, over GitHub's 500 KiB limit; retry with 1.5 times larger batches (up to 100) when vinca reports it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * vinca: RoboStack/vinca master instead of the integration branch Everything the monorepo needed is merged upstream (RoboStack/vinca#163-#175). Same recipes for humble and lyrical, except the intended upstream changes: compatibility packages require the distribution's mutex (#171), and the build scripts' opt-in sccache / SP_DIR fallback (#153, no-ops by default). The integration branch's cross-compiling qt6-main build dependency isn't upstream (no cross-compiling anymore). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * gh from pixi in every workflow; the repository is Tobias-Fischer/robostack Every job that calls gh sets up pixi and runs pixi's gh (one pinned version; the runner's isn't on PATH on Windows after Clean up PATH, which broke the cache pruning), replacing the PATH workaround. The automerge jobs (pull_request_target) check out the base branch for it, never the pull request. The workspace and the test fixtures follow the repository's rename. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * run_build: retry prefix.dev's 409 / 5xx repodata errors like network errors lyrical's linux-64 build failed on "HTTP status client error (409 Conflict)" for a robostack-lyrical repodata shard while resolving a package; a retry a minute later finds the channel updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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.
This lets several configurations share one base, e.g. one
vinca.yamlper ROS 2 distribution on top of a shared one, as RoboStack's monorepo does:How the layers combine:
packages_select_by_deps,packages_excludeandpackages_skipare combined, base first.mutex_packageis merged: the extending file's keys win, and itsrun_constraintsreplace the base's constraint on the same package and add the others.pkg_additional_info.yamland<patch_dir>/dependencies.yaml: per package, the extending file's keys win;tests/: per package, the extending file's file wins;conda_indexfiles: the extending file's mappings are looked up first.Paths (
patch_dir, the snapshot paths,conda_indexfiles) are now resolved relative to the file that sets them, rather than the working directory. vinca is normally run in the directory of itsvinca.yaml, so that resolves to the same paths. vinca-gha's additional-recipes check now reads the layered configuration, soskip_existingfrom a base is seen too.Tests: six new tests cover lists, scalars, selectors, the mutex merge, per-layer files, file-relative paths and cycle detection. All 267 tests pass, ruff and pyrefly are clean, and the README documents
extends.Checked against RoboStack: RoboStack's monorepo previously did this merging in its own scripts. With this branch, its distributions'
vinca.yamlfiles just extend the shared one, and the generated recipes are identical (rolling, lyrical, jazzy and humble on linux-64, and humble on win-64).🤖 Generated with Claude Code