Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .claude/skills/robostack-debug-build/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,11 @@ bash -x conda_build.sh 2>&1 | less
endif()
```
- **Windows `min`/`max` macro clashes**: `target_compile_definitions(<target> PRIVATE NOMINMAX WIN32_LEAN_AND_MEAN)` under `if(WIN32)`.
- **gtest / test failures**: add the missing dependency in `dependencies.yaml`, or
- **gtest / test failures**: add the missing dependency in `pkg_additional_info.yaml`, or
disable the tests when safe; no custom shims.
- **Qt plugins (rviz, rtabmap)**: make sure CMake finds the intended Qt major version.
- **Missing dependency**: `shared/patch/dependencies.yaml` (all distributions) or
`distros/<d>/patch/dependencies.yaml` (one), keyed by ROS package name:
- **Missing dependency**: `shared/pkg_additional_info.yaml` (all distributions) or
`distros/<d>/pkg_additional_info.yaml` (one), keyed by ROS package name:
```yaml
<ros_pkg>:
add_host: [<conda-pkg>]
Expand Down
5 changes: 3 additions & 2 deletions .claude/skills/robostack-patch/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@ description: Create, refresh, place, port and validate source patches for RoboSt
of adding variants.
- vinca picks them up by name when generating recipes; nothing else needs wiring.
`pixi run rs check` rejects other names.
- `distros/<d>/patch/dependencies.yaml` is for dependency fixes, not source patches
(`shared/patch/dependencies.yaml` for all distributions).
- Dependency fixes are not source patches: they are `add_*`/`remove_*` keys in
`distros/<d>/pkg_additional_info.yaml` (`shared/pkg_additional_info.yaml` for all
distributions).

## Create a patch from work-directory edits

Expand Down
6 changes: 3 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ to read without Claude):
## Layout and rules

- Every distribution lives in `distros/<distro>/` (only distro-specific data); shared
data is in `shared/` (vinca.yaml, pkg_additional_info.yaml, dependencies.yaml,
data is in `shared/` (vinca.yaml, pkg_additional_info.yaml with the dependency fixes,
robostack.yaml, pinning, tests), tools in `tools/`. See README.md for the layout and
how they combine. Never edit `distros/<d>/work/`: every task regenerates it.
- A fix that applies to every distribution goes into `shared/`; a version-specific one
Expand All @@ -39,8 +39,8 @@ to read without Claude):
`vinca.yaml` (see `robostack-package-selection`), not an ad-hoc comment.
- One patch per package and platform:
`distros/<d>/patch/ros2-<pkg>[.osx|.linux|.win|.unix].patch`. Packages are only built
under the new `ros2-<pkg>` names (`package_name_mode: new`); write dependencies in
`dependencies.yaml` as `ros2-<pkg>` too.
under the new `ros2-<pkg>` names (`package_name_mode: new`); write dependency fixes in
`pkg_additional_info.yaml` as `ros2-<pkg>` too.

## Everyday commands

Expand Down
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,20 +44,21 @@ If you use RoboStack in your academic work, please cite:
distros/<distro>/ only what is specific to one distribution
distro.yaml channel, where it's uploaded and read from, conda-forge pinning version/migrations, own pins, rosdistro sync
vinca.yaml extends shared/vinca.yaml: ros_distro, build number, mutex version, its exceptions
pkg_additional_info.yaml its own per-package settings (build numbers, version-specific cmake args)
patch/ its patches; patch/dependencies.yaml its own dependency fixes
pkg_additional_info.yaml its own per-package settings (build numbers, version-specific cmake args, dependency fixes)
patch/ its patches
rosdistro_snapshot.yaml, rosdistro_additional_recipes.yaml
ci.yaml temporary PR-build controls (full rebuild, cache evictions)
conda_build_config.yaml generated: `pixi run rs <distro> render-pinning`
work/ generated, git-ignored: where vinca and rattler-build run
shared/ the same for every distribution
vinca.yaml settings and the package selection of every distribution
pkg_additional_info.yaml per-package settings that are the same everywhere
patch/dependencies.yaml dependency fixes that are the same everywhere
pkg_additional_info.yaml per-package settings and dependency fixes (add_host, remove_run, ...) that are the same everywhere
robostack.yaml rosdep key -> conda package mapping (`robostack: []` drops a key)
(also copied to pixi-build-ros: robostack-bot sync-pixi-mappings)
pinning/ conda-forge pinning version, migrations and overrides
tests/ package tests (ros2-<pkg>.yaml; `if: ros_distro ...` for distro-specific bits)
patch/ patches that apply to every distribution
files/<pkg>/ copied into that package's recipe (ros_workspace's activation scripts)
tools/robostack.py `pixi run rs ...`: every task, for one distribution or the repository
tools/maintenance.py checks and robostack-bot commands
tools/import_distro.py (re)import a distribution from its own repository
Expand All @@ -79,7 +80,7 @@ combines the two, and the files next to each:
- `mutex_package`: name and `upper_bound` are shared; each distribution sets its own `version`. The mutex only keeps one distribution per environment and has no `run_constraints` (`rs check` enforces it): library versions come from the packages' own dependencies, and wrong ones are fixed in the package's metadata.
- Other keys come from the distribution if it sets them, else from `shared/`. A distribution that differs from a shared setting just sets it.
- Paths are relative to the file that sets them. `distros/<distro>/work/vinca.yaml` (generated) extends the distribution's file and adds `skip_existing` (its channel).
- **`pkg_additional_info.yaml` and `patch/dependencies.yaml`:** merged per package. The distribution's keys win, for example its own `build_number` on top of a shared `additional_cmake_args`.
- **`pkg_additional_info.yaml`:** merged per package. The distribution's keys win, for example its own `build_number` on top of a shared `additional_cmake_args`.
- **`patch/*.patch` and `tests/`:** per package, the distribution's file replaces the shared one. In tests, `- if: ros_distro in ["humble", "jazzy"]` blocks select distribution-specific parts.
- **`vinca_pinning.yaml`:** the shared pinning, adjusted by `distro.yaml`:
- `conda_forge_pinning_version` and `conda_forge_migrations` keep a distribution on its own conda-forge pinning, for example until its next full rebuild;
Expand Down
198 changes: 0 additions & 198 deletions distros/humble/patch/dependencies.yaml

This file was deleted.

Loading
Loading