pixi-ros 0.3.0__tar.gz → 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/.github/workflows/ci.yml +1 -1
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/PKG-INFO +83 -26
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/README.md +81 -25
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/pixi.lock +134 -1
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/pixi.toml +2 -1
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/pyproject.toml +2 -1
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/src/pixi_ros/cli.py +42 -29
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/src/pixi_ros/data/conda-forge.yaml +4 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/src/pixi_ros/init.py +324 -198
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/src/pixi_ros/mappings.py +39 -30
- pixi_ros-0.4.0/src/pixi_ros/validator.py +245 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/examples/ws1/pixi.toml +10 -11
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/examples/ws1/src/package-a/package.xml +2 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/test_init.py +14 -2
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/test_mappings.py +54 -0
- pixi_ros-0.4.0/tests/test_validator.py +324 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/.gitattributes +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/.github/workflows/publish-pypi.yml +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/.gitignore +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/LICENSE +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/src/pixi_ros/__init__.py +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/src/pixi_ros/config.py +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/src/pixi_ros/data/README.md +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/src/pixi_ros/data/README_PIXI.md.template +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/src/pixi_ros/package_xml.py +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/src/pixi_ros/utils.py +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/src/pixi_ros/workspace.py +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/examples/ws1/README_PIXI.md +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/examples/ws1/pixi.lock +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/examples/ws1/src/package-a/CMakeLists.txt +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/examples/ws1/src/package-a/LICENSE +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/examples/ws1/src/package-b/package-b/__init__.py +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/examples/ws1/src/package-b/package.xml +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/examples/ws1/src/package-b/setup.cfg +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/examples/ws1/src/package-b/setup.py +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/examples/ws1/src/package-b/test/test_copyright.py +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/examples/ws1/src/package-b/test/test_flake8.py +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/examples/ws1/src/package-b/test/test_pep257.py +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/fixtures/mock_workspace/README.md +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/fixtures/mock_workspace/src/legacy_pkg/package.xml +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/fixtures/mock_workspace/src/my_cpp_pkg/CMakeLists.txt +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/fixtures/mock_workspace/src/my_cpp_pkg/package.xml +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/fixtures/mock_workspace/src/my_mixed_pkg/package.xml +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/fixtures/mock_workspace/src/my_python_pkg/package.xml +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/fixtures/mock_workspace/src/my_python_pkg/setup.py +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/test_cli.py +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/test_config.py +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/test_gateway_availability.py +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/test_package_xml.py +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/test_utils.py +0 -0
- {pixi_ros-0.3.0 → pixi_ros-0.4.0}/tests/test_workspace.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pixi-ros
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Pixi extension for ROS package management
|
|
5
5
|
Project-URL: Homepage, https://github.com/ruben-arts/pixi-ros
|
|
6
6
|
Project-URL: Repository, https://github.com/ruben-arts/pixi-ros
|
|
@@ -13,6 +13,7 @@ Requires-Dist: pathspec>=0.11.0
|
|
|
13
13
|
Requires-Dist: py-rattler>=0.6.0
|
|
14
14
|
Requires-Dist: pyyaml>=6.0
|
|
15
15
|
Requires-Dist: rich>=13.0.0
|
|
16
|
+
Requires-Dist: rosdistro>=0.9.0
|
|
16
17
|
Requires-Dist: tomlkit>=0.12.0
|
|
17
18
|
Requires-Dist: typer>=0.12.0
|
|
18
19
|
Description-Content-Type: text/markdown
|
|
@@ -63,10 +64,16 @@ pixi-ros init --distro humble
|
|
|
63
64
|
This will:
|
|
64
65
|
1. Discover all ROS packages in your workspace (by finding `package.xml` files)
|
|
65
66
|
2. Read dependencies from each `package.xml`
|
|
66
|
-
3.
|
|
67
|
+
3. **Validate and resolve** each dependency using the priority system:
|
|
68
|
+
- Skip workspace packages (built locally)
|
|
69
|
+
- Use custom mappings from YAML files
|
|
70
|
+
- Query ROS distro index for ROS packages
|
|
71
|
+
- Auto-detect packages on conda-forge
|
|
72
|
+
- Flag packages that can't be found
|
|
67
73
|
4. Generate/update `pixi.toml` with proper channels and dependencies
|
|
68
|
-
5. Check package availability
|
|
74
|
+
5. Check package availability in conda channels for each platform
|
|
69
75
|
6. Create helpful build/test/clean tasks
|
|
76
|
+
7. Display detailed validation results with source information
|
|
70
77
|
|
|
71
78
|
### Install and Build
|
|
72
79
|
|
|
@@ -88,26 +95,66 @@ pixi shell
|
|
|
88
95
|
|
|
89
96
|
## How It Works
|
|
90
97
|
|
|
91
|
-
### Dependency Mapping
|
|
98
|
+
### Dependency Mapping & Validation
|
|
92
99
|
|
|
93
|
-
`pixi-ros` reads all dependency types from `package.xml` files
|
|
94
|
-
It then does a best effort mapping of ROS package names to conda packages.
|
|
100
|
+
`pixi-ros` reads all dependency types from `package.xml` files and intelligently resolves them to conda packages using a **priority-based validation system**.
|
|
95
101
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
102
|
+
#### Validation Priority Order
|
|
103
|
+
|
|
104
|
+
When resolving a ROS package dependency, `pixi-ros` checks sources in this order:
|
|
105
|
+
|
|
106
|
+
1. **Workspace packages** (local source) → Skipped, won't be added to dependencies
|
|
107
|
+
2. **Mapping files** → Use custom conda package mappings from the embedded mapping.
|
|
108
|
+
3. **ROS distribution** → Query the official ROS distro index for `ros-{distro}-{package}` packages
|
|
109
|
+
4. **conda-forge** (auto-detection) → Search conda-forge for packages without ros-distro prefix
|
|
110
|
+
5. **NOT FOUND** → Mark as unavailable and comment out in `pixi.toml`
|
|
111
|
+
|
|
112
|
+
#### Package Sources
|
|
113
|
+
|
|
114
|
+
The dependency tables show where each package comes from:
|
|
115
|
+
|
|
116
|
+
- **ROS {distro}**: Official ROS distribution packages from robostack (e.g., `ros-humble-rclcpp`)
|
|
117
|
+
- **Mapping**: Custom mappings from YAML files (e.g., `cmake` → `cmake`, `udev` → `libusb + libudev`)
|
|
118
|
+
- **conda-forge**: Auto-detected packages available directly on conda-forge
|
|
119
|
+
- **Workspace**: Local packages in your workspace (skipped from dependencies)
|
|
120
|
+
- **NOT FOUND**: Packages that couldn't be resolved (commented out in `pixi.toml`)
|
|
99
121
|
|
|
100
122
|
The mapping rules are defined in YAML files (see `src/pixi_ros/data/conda-forge.yaml`) and can be customized by placing your own mapping files in `pixi-ros/*.yaml` or `~/.pixi-ros/*.yaml`.
|
|
101
123
|
|
|
102
|
-
After
|
|
124
|
+
After dependency resolution, `pixi-ros` validates package availability in the configured channels for each target platform by connecting to `https://prefix.dev`.
|
|
125
|
+
|
|
126
|
+
### Example Output
|
|
127
|
+
|
|
128
|
+
When you run `pixi-ros init --distro humble`, you'll see validation results:
|
|
103
129
|
|
|
104
|
-
|
|
130
|
+
```
|
|
131
|
+
Found 2 package(s): my_package, other_package
|
|
132
|
+
Initializing ROS humble distribution validator...
|
|
133
|
+
|
|
134
|
+
╭─────────────────── Package: my_package ───────────────────╮
|
|
135
|
+
│ ROS Dependency │ Type │ Conda Packages │ Source │
|
|
136
|
+
├────────────────┼─────────┼─────────────────────────┼──────────────┤
|
|
137
|
+
│ rclcpp │ Build │ ros-humble-rclcpp │ ROS humble │
|
|
138
|
+
│ std_msgs │ Runtime │ ros-humble-std-msgs │ ROS humble │
|
|
139
|
+
│ cmake │ Build │ cmake │ Mapping │
|
|
140
|
+
│ eigen │ Build │ eigen │ conda-forge │
|
|
141
|
+
╰────────────────┴─────────┴─────────────────────────┴──────────────╯
|
|
142
|
+
|
|
143
|
+
Validation Summary:
|
|
144
|
+
✓ 2 workspace packages (skipped)
|
|
145
|
+
✓ 1 packages from mappings
|
|
146
|
+
✓ 5 packages from ROS humble distro
|
|
147
|
+
✓ 1 packages from conda-forge (auto-detected)
|
|
148
|
+
|
|
149
|
+
Total external dependencies: 7
|
|
150
|
+
```
|
|
105
151
|
|
|
106
152
|
Given a `package.xml` with:
|
|
107
153
|
|
|
108
154
|
```xml
|
|
109
155
|
<depend>rclcpp</depend>
|
|
110
156
|
<build_depend>ament_cmake</build_depend>
|
|
157
|
+
<build_depend>cmake</build_depend>
|
|
111
158
|
<exec_depend>std_msgs</exec_depend>
|
|
112
159
|
```
|
|
113
160
|
|
|
@@ -115,9 +162,21 @@ Given a `package.xml` with:
|
|
|
115
162
|
|
|
116
163
|
```toml
|
|
117
164
|
[dependencies]
|
|
118
|
-
|
|
119
|
-
ros-humble-
|
|
120
|
-
|
|
165
|
+
# Base ROS dependencies
|
|
166
|
+
ros-humble-ros-base = "*"
|
|
167
|
+
pkg-config = "*"
|
|
168
|
+
compilers = "*"
|
|
169
|
+
make = "*"
|
|
170
|
+
ninja = "*"
|
|
171
|
+
|
|
172
|
+
# Build tools
|
|
173
|
+
colcon-common-extensions = "*"
|
|
174
|
+
|
|
175
|
+
# Workspace dependencies
|
|
176
|
+
cmake = "*" # From mapping
|
|
177
|
+
ros-humble-ament-cmake = "*" # From ROS humble
|
|
178
|
+
ros-humble-rclcpp = "*" # From ROS humble
|
|
179
|
+
ros-humble-std-msgs = "*" # From ROS humble
|
|
121
180
|
```
|
|
122
181
|
|
|
123
182
|
### Version Constraints
|
|
@@ -155,13 +214,6 @@ eigen = ">=3.3.0,<4.0.0"
|
|
|
155
214
|
boost = "==1.2.3"
|
|
156
215
|
```
|
|
157
216
|
|
|
158
|
-
## Supported ROS Distributions
|
|
159
|
-
|
|
160
|
-
- ROS 2 Humble: https://prefix.dev/robostack-humble
|
|
161
|
-
- ROS 2 Iron: https://prefix.dev/robostack-iron
|
|
162
|
-
- ROS 2 Jazzy: https://prefix.dev/robostack-jazzy
|
|
163
|
-
- ROS 2 Rolling: https://prefix.dev/robostack-rolling
|
|
164
|
-
|
|
165
217
|
## Command Reference
|
|
166
218
|
|
|
167
219
|
### `pixi-ros init`
|
|
@@ -183,6 +235,7 @@ pixi-ros init
|
|
|
183
235
|
**What it does:**
|
|
184
236
|
- Scans workspace for `package.xml` files
|
|
185
237
|
- Reads all dependency types (build, exec, test) and version constraints
|
|
238
|
+
- **Validates dependencies** using the priority-based system (workspace → mapping → ROS distro → conda-forge)
|
|
186
239
|
- Maps ROS dependencies to conda packages for each platform
|
|
187
240
|
- Applies version constraints from package.xml to pixi.toml dependencies
|
|
188
241
|
- Configures robostack channels
|
|
@@ -190,6 +243,7 @@ pixi-ros init
|
|
|
190
243
|
- Creates build tasks using colcon
|
|
191
244
|
- Generates helpful `README_PIXI.md`
|
|
192
245
|
- Sets up platform-specific dependencies in `pixi.toml`
|
|
246
|
+
- **Displays validation results** showing where each dependency was found
|
|
193
247
|
|
|
194
248
|
**Running multiple times:**
|
|
195
249
|
The command is idempotent - you can run it multiple times to update dependencies as your workspace changes.
|
|
@@ -297,12 +351,15 @@ workspace/
|
|
|
297
351
|
|
|
298
352
|
### Package Not Found
|
|
299
353
|
|
|
300
|
-
If pixi-ros marks packages as "NOT FOUND":
|
|
354
|
+
If pixi-ros marks packages as "NOT FOUND" (shown in red in the validation output):
|
|
355
|
+
|
|
356
|
+
1. **Check the ROS distro**: Verify the package exists in robostack: https://prefix.dev/channels/robostack-{distro}
|
|
357
|
+
2. **Check for typos**: Review your `package.xml` for spelling errors
|
|
358
|
+
3. **Check conda-forge**: Some packages may be available directly on conda-forge without the `ros-distro-` prefix
|
|
359
|
+
4. **Create a mapping**: Add a custom mapping in `pixi-ros/*.yaml` if the package has a different conda name
|
|
360
|
+
5. **Add to workspace**: Consider including the package source in your workspace instead of depending on it
|
|
301
361
|
|
|
302
|
-
|
|
303
|
-
2. Check for typos in `package.xml`
|
|
304
|
-
3. Some packages may have different names - check mapping files
|
|
305
|
-
4. Consider adding the package to your workspace instead of depending on it
|
|
362
|
+
The validation table shows exactly where each dependency was checked, making it easier to diagnose issues.
|
|
306
363
|
|
|
307
364
|
### Different Package Names
|
|
308
365
|
|
|
@@ -44,10 +44,16 @@ pixi-ros init --distro humble
|
|
|
44
44
|
This will:
|
|
45
45
|
1. Discover all ROS packages in your workspace (by finding `package.xml` files)
|
|
46
46
|
2. Read dependencies from each `package.xml`
|
|
47
|
-
3.
|
|
47
|
+
3. **Validate and resolve** each dependency using the priority system:
|
|
48
|
+
- Skip workspace packages (built locally)
|
|
49
|
+
- Use custom mappings from YAML files
|
|
50
|
+
- Query ROS distro index for ROS packages
|
|
51
|
+
- Auto-detect packages on conda-forge
|
|
52
|
+
- Flag packages that can't be found
|
|
48
53
|
4. Generate/update `pixi.toml` with proper channels and dependencies
|
|
49
|
-
5. Check package availability
|
|
54
|
+
5. Check package availability in conda channels for each platform
|
|
50
55
|
6. Create helpful build/test/clean tasks
|
|
56
|
+
7. Display detailed validation results with source information
|
|
51
57
|
|
|
52
58
|
### Install and Build
|
|
53
59
|
|
|
@@ -69,26 +75,66 @@ pixi shell
|
|
|
69
75
|
|
|
70
76
|
## How It Works
|
|
71
77
|
|
|
72
|
-
### Dependency Mapping
|
|
78
|
+
### Dependency Mapping & Validation
|
|
73
79
|
|
|
74
|
-
`pixi-ros` reads all dependency types from `package.xml` files
|
|
75
|
-
It then does a best effort mapping of ROS package names to conda packages.
|
|
80
|
+
`pixi-ros` reads all dependency types from `package.xml` files and intelligently resolves them to conda packages using a **priority-based validation system**.
|
|
76
81
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
82
|
+
#### Validation Priority Order
|
|
83
|
+
|
|
84
|
+
When resolving a ROS package dependency, `pixi-ros` checks sources in this order:
|
|
85
|
+
|
|
86
|
+
1. **Workspace packages** (local source) → Skipped, won't be added to dependencies
|
|
87
|
+
2. **Mapping files** → Use custom conda package mappings from the embedded mapping.
|
|
88
|
+
3. **ROS distribution** → Query the official ROS distro index for `ros-{distro}-{package}` packages
|
|
89
|
+
4. **conda-forge** (auto-detection) → Search conda-forge for packages without ros-distro prefix
|
|
90
|
+
5. **NOT FOUND** → Mark as unavailable and comment out in `pixi.toml`
|
|
91
|
+
|
|
92
|
+
#### Package Sources
|
|
93
|
+
|
|
94
|
+
The dependency tables show where each package comes from:
|
|
95
|
+
|
|
96
|
+
- **ROS {distro}**: Official ROS distribution packages from robostack (e.g., `ros-humble-rclcpp`)
|
|
97
|
+
- **Mapping**: Custom mappings from YAML files (e.g., `cmake` → `cmake`, `udev` → `libusb + libudev`)
|
|
98
|
+
- **conda-forge**: Auto-detected packages available directly on conda-forge
|
|
99
|
+
- **Workspace**: Local packages in your workspace (skipped from dependencies)
|
|
100
|
+
- **NOT FOUND**: Packages that couldn't be resolved (commented out in `pixi.toml`)
|
|
80
101
|
|
|
81
102
|
The mapping rules are defined in YAML files (see `src/pixi_ros/data/conda-forge.yaml`) and can be customized by placing your own mapping files in `pixi-ros/*.yaml` or `~/.pixi-ros/*.yaml`.
|
|
82
103
|
|
|
83
|
-
After
|
|
104
|
+
After dependency resolution, `pixi-ros` validates package availability in the configured channels for each target platform by connecting to `https://prefix.dev`.
|
|
105
|
+
|
|
106
|
+
### Example Output
|
|
107
|
+
|
|
108
|
+
When you run `pixi-ros init --distro humble`, you'll see validation results:
|
|
84
109
|
|
|
85
|
-
|
|
110
|
+
```
|
|
111
|
+
Found 2 package(s): my_package, other_package
|
|
112
|
+
Initializing ROS humble distribution validator...
|
|
113
|
+
|
|
114
|
+
╭─────────────────── Package: my_package ───────────────────╮
|
|
115
|
+
│ ROS Dependency │ Type │ Conda Packages │ Source │
|
|
116
|
+
├────────────────┼─────────┼─────────────────────────┼──────────────┤
|
|
117
|
+
│ rclcpp │ Build │ ros-humble-rclcpp │ ROS humble │
|
|
118
|
+
│ std_msgs │ Runtime │ ros-humble-std-msgs │ ROS humble │
|
|
119
|
+
│ cmake │ Build │ cmake │ Mapping │
|
|
120
|
+
│ eigen │ Build │ eigen │ conda-forge │
|
|
121
|
+
╰────────────────┴─────────┴─────────────────────────┴──────────────╯
|
|
122
|
+
|
|
123
|
+
Validation Summary:
|
|
124
|
+
✓ 2 workspace packages (skipped)
|
|
125
|
+
✓ 1 packages from mappings
|
|
126
|
+
✓ 5 packages from ROS humble distro
|
|
127
|
+
✓ 1 packages from conda-forge (auto-detected)
|
|
128
|
+
|
|
129
|
+
Total external dependencies: 7
|
|
130
|
+
```
|
|
86
131
|
|
|
87
132
|
Given a `package.xml` with:
|
|
88
133
|
|
|
89
134
|
```xml
|
|
90
135
|
<depend>rclcpp</depend>
|
|
91
136
|
<build_depend>ament_cmake</build_depend>
|
|
137
|
+
<build_depend>cmake</build_depend>
|
|
92
138
|
<exec_depend>std_msgs</exec_depend>
|
|
93
139
|
```
|
|
94
140
|
|
|
@@ -96,9 +142,21 @@ Given a `package.xml` with:
|
|
|
96
142
|
|
|
97
143
|
```toml
|
|
98
144
|
[dependencies]
|
|
99
|
-
|
|
100
|
-
ros-humble-
|
|
101
|
-
|
|
145
|
+
# Base ROS dependencies
|
|
146
|
+
ros-humble-ros-base = "*"
|
|
147
|
+
pkg-config = "*"
|
|
148
|
+
compilers = "*"
|
|
149
|
+
make = "*"
|
|
150
|
+
ninja = "*"
|
|
151
|
+
|
|
152
|
+
# Build tools
|
|
153
|
+
colcon-common-extensions = "*"
|
|
154
|
+
|
|
155
|
+
# Workspace dependencies
|
|
156
|
+
cmake = "*" # From mapping
|
|
157
|
+
ros-humble-ament-cmake = "*" # From ROS humble
|
|
158
|
+
ros-humble-rclcpp = "*" # From ROS humble
|
|
159
|
+
ros-humble-std-msgs = "*" # From ROS humble
|
|
102
160
|
```
|
|
103
161
|
|
|
104
162
|
### Version Constraints
|
|
@@ -136,13 +194,6 @@ eigen = ">=3.3.0,<4.0.0"
|
|
|
136
194
|
boost = "==1.2.3"
|
|
137
195
|
```
|
|
138
196
|
|
|
139
|
-
## Supported ROS Distributions
|
|
140
|
-
|
|
141
|
-
- ROS 2 Humble: https://prefix.dev/robostack-humble
|
|
142
|
-
- ROS 2 Iron: https://prefix.dev/robostack-iron
|
|
143
|
-
- ROS 2 Jazzy: https://prefix.dev/robostack-jazzy
|
|
144
|
-
- ROS 2 Rolling: https://prefix.dev/robostack-rolling
|
|
145
|
-
|
|
146
197
|
## Command Reference
|
|
147
198
|
|
|
148
199
|
### `pixi-ros init`
|
|
@@ -164,6 +215,7 @@ pixi-ros init
|
|
|
164
215
|
**What it does:**
|
|
165
216
|
- Scans workspace for `package.xml` files
|
|
166
217
|
- Reads all dependency types (build, exec, test) and version constraints
|
|
218
|
+
- **Validates dependencies** using the priority-based system (workspace → mapping → ROS distro → conda-forge)
|
|
167
219
|
- Maps ROS dependencies to conda packages for each platform
|
|
168
220
|
- Applies version constraints from package.xml to pixi.toml dependencies
|
|
169
221
|
- Configures robostack channels
|
|
@@ -171,6 +223,7 @@ pixi-ros init
|
|
|
171
223
|
- Creates build tasks using colcon
|
|
172
224
|
- Generates helpful `README_PIXI.md`
|
|
173
225
|
- Sets up platform-specific dependencies in `pixi.toml`
|
|
226
|
+
- **Displays validation results** showing where each dependency was found
|
|
174
227
|
|
|
175
228
|
**Running multiple times:**
|
|
176
229
|
The command is idempotent - you can run it multiple times to update dependencies as your workspace changes.
|
|
@@ -278,12 +331,15 @@ workspace/
|
|
|
278
331
|
|
|
279
332
|
### Package Not Found
|
|
280
333
|
|
|
281
|
-
If pixi-ros marks packages as "NOT FOUND":
|
|
334
|
+
If pixi-ros marks packages as "NOT FOUND" (shown in red in the validation output):
|
|
335
|
+
|
|
336
|
+
1. **Check the ROS distro**: Verify the package exists in robostack: https://prefix.dev/channels/robostack-{distro}
|
|
337
|
+
2. **Check for typos**: Review your `package.xml` for spelling errors
|
|
338
|
+
3. **Check conda-forge**: Some packages may be available directly on conda-forge without the `ros-distro-` prefix
|
|
339
|
+
4. **Create a mapping**: Add a custom mapping in `pixi-ros/*.yaml` if the package has a different conda name
|
|
340
|
+
5. **Add to workspace**: Consider including the package source in your workspace instead of depending on it
|
|
282
341
|
|
|
283
|
-
|
|
284
|
-
2. Check for typos in `package.xml`
|
|
285
|
-
3. Some packages may have different names - check mapping files
|
|
286
|
-
4. Consider adding the package to your workspace instead of depending on it
|
|
342
|
+
The validation table shows exactly where each dependency was checked, making it easier to diagnose issues.
|
|
287
343
|
|
|
288
344
|
### Different Package Names
|
|
289
345
|
|
|
@@ -12,9 +12,12 @@ environments:
|
|
|
12
12
|
- conda: https://prefix.dev/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda
|
|
13
13
|
- conda: https://prefix.dev/conda-forge/linux-64/bzip2-1.0.8-hda65f42_8.conda
|
|
14
14
|
- conda: https://prefix.dev/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda
|
|
15
|
+
- conda: https://prefix.dev/conda-forge/noarch/catkin_pkg-1.1.0-pyhd8ed1ab_0.conda
|
|
15
16
|
- conda: https://prefix.dev/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda
|
|
16
17
|
- conda: https://prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
|
|
17
18
|
- conda: https://prefix.dev/conda-forge/noarch/cpython-3.14.2-py314hd8ed1ab_101.conda
|
|
19
|
+
- conda: https://prefix.dev/conda-forge/noarch/distro-1.9.0-pyhd8ed1ab_1.conda
|
|
20
|
+
- conda: https://prefix.dev/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda
|
|
18
21
|
- conda: https://prefix.dev/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda
|
|
19
22
|
- conda: https://prefix.dev/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda
|
|
20
23
|
- conda: https://prefix.dev/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda
|
|
@@ -43,15 +46,21 @@ environments:
|
|
|
43
46
|
- conda: https://prefix.dev/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda
|
|
44
47
|
- conda: https://prefix.dev/conda-forge/linux-64/py-rattler-0.21.0-py310h70157a2_0.conda
|
|
45
48
|
- conda: https://prefix.dev/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
|
|
49
|
+
- conda: https://prefix.dev/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda
|
|
46
50
|
- conda: https://prefix.dev/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda
|
|
47
51
|
- conda: https://prefix.dev/conda-forge/linux-64/python-3.14.2-h32b2ec7_101_cp314.conda
|
|
52
|
+
- conda: https://prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda
|
|
48
53
|
- conda: https://prefix.dev/conda-forge/noarch/python-gil-3.14.2-h4df99d1_101.conda
|
|
49
54
|
- conda: https://prefix.dev/conda-forge/noarch/python_abi-3.14-8_cp314.conda
|
|
50
55
|
- conda: https://prefix.dev/conda-forge/noarch/pyyaml-6.0.3-pyh7db6752_0.conda
|
|
51
56
|
- conda: https://prefix.dev/conda-forge/linux-64/readline-8.3-h853b02a_0.conda
|
|
52
57
|
- conda: https://prefix.dev/conda-forge/noarch/rich-14.3.1-pyhcf101f3_0.conda
|
|
58
|
+
- conda: https://prefix.dev/conda-forge/noarch/rosdistro-1.0.1-pyhd8ed1ab_0.conda
|
|
59
|
+
- conda: https://prefix.dev/conda-forge/noarch/rospkg-1.6.1-pyhd8ed1ab_0.conda
|
|
53
60
|
- conda: https://prefix.dev/conda-forge/linux-64/ruff-0.14.14-h40fa522_1.conda
|
|
61
|
+
- conda: https://prefix.dev/conda-forge/noarch/setuptools-80.10.2-pyh332efcf_0.conda
|
|
54
62
|
- conda: https://prefix.dev/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_2.conda
|
|
63
|
+
- conda: https://prefix.dev/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda
|
|
55
64
|
- conda: https://prefix.dev/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda
|
|
56
65
|
- conda: https://prefix.dev/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda
|
|
57
66
|
- conda: https://prefix.dev/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda
|
|
@@ -67,9 +76,12 @@ environments:
|
|
|
67
76
|
- conda: https://prefix.dev/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda
|
|
68
77
|
- conda: https://prefix.dev/conda-forge/osx-64/bzip2-1.0.8-h500dc9f_8.conda
|
|
69
78
|
- conda: https://prefix.dev/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda
|
|
79
|
+
- conda: https://prefix.dev/conda-forge/noarch/catkin_pkg-1.1.0-pyhd8ed1ab_0.conda
|
|
70
80
|
- conda: https://prefix.dev/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda
|
|
71
81
|
- conda: https://prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
|
|
72
82
|
- conda: https://prefix.dev/conda-forge/noarch/cpython-3.14.2-py314hd8ed1ab_101.conda
|
|
83
|
+
- conda: https://prefix.dev/conda-forge/noarch/distro-1.9.0-pyhd8ed1ab_1.conda
|
|
84
|
+
- conda: https://prefix.dev/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda
|
|
73
85
|
- conda: https://prefix.dev/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda
|
|
74
86
|
- conda: https://prefix.dev/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda
|
|
75
87
|
- conda: https://prefix.dev/conda-forge/osx-64/libexpat-2.7.3-heffb93a_0.conda
|
|
@@ -92,15 +104,21 @@ environments:
|
|
|
92
104
|
- conda: https://prefix.dev/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda
|
|
93
105
|
- conda: https://prefix.dev/conda-forge/osx-64/py-rattler-0.21.0-py310hd1493e5_0.conda
|
|
94
106
|
- conda: https://prefix.dev/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
|
|
107
|
+
- conda: https://prefix.dev/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda
|
|
95
108
|
- conda: https://prefix.dev/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda
|
|
96
109
|
- conda: https://prefix.dev/conda-forge/osx-64/python-3.14.2-hf88997e_101_cp314.conda
|
|
110
|
+
- conda: https://prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda
|
|
97
111
|
- conda: https://prefix.dev/conda-forge/noarch/python-gil-3.14.2-h4df99d1_101.conda
|
|
98
112
|
- conda: https://prefix.dev/conda-forge/noarch/python_abi-3.14-8_cp314.conda
|
|
99
113
|
- conda: https://prefix.dev/conda-forge/noarch/pyyaml-6.0.3-pyh7db6752_0.conda
|
|
100
114
|
- conda: https://prefix.dev/conda-forge/osx-64/readline-8.3-h68b038d_0.conda
|
|
101
115
|
- conda: https://prefix.dev/conda-forge/noarch/rich-14.3.1-pyhcf101f3_0.conda
|
|
116
|
+
- conda: https://prefix.dev/conda-forge/noarch/rosdistro-1.0.1-pyhd8ed1ab_0.conda
|
|
117
|
+
- conda: https://prefix.dev/conda-forge/noarch/rospkg-1.6.1-pyhd8ed1ab_0.conda
|
|
102
118
|
- conda: https://prefix.dev/conda-forge/osx-64/ruff-0.14.14-h5930b28_1.conda
|
|
119
|
+
- conda: https://prefix.dev/conda-forge/noarch/setuptools-80.10.2-pyh332efcf_0.conda
|
|
103
120
|
- conda: https://prefix.dev/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_2.conda
|
|
121
|
+
- conda: https://prefix.dev/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda
|
|
104
122
|
- conda: https://prefix.dev/conda-forge/osx-64/tk-8.6.13-h7142dee_3.conda
|
|
105
123
|
- conda: https://prefix.dev/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda
|
|
106
124
|
- conda: https://prefix.dev/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda
|
|
@@ -116,9 +134,12 @@ environments:
|
|
|
116
134
|
- conda: https://prefix.dev/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda
|
|
117
135
|
- conda: https://prefix.dev/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_8.conda
|
|
118
136
|
- conda: https://prefix.dev/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda
|
|
137
|
+
- conda: https://prefix.dev/conda-forge/noarch/catkin_pkg-1.1.0-pyhd8ed1ab_0.conda
|
|
119
138
|
- conda: https://prefix.dev/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda
|
|
120
139
|
- conda: https://prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
|
|
121
140
|
- conda: https://prefix.dev/conda-forge/noarch/cpython-3.14.2-py314hd8ed1ab_101.conda
|
|
141
|
+
- conda: https://prefix.dev/conda-forge/noarch/distro-1.9.0-pyhd8ed1ab_1.conda
|
|
142
|
+
- conda: https://prefix.dev/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda
|
|
122
143
|
- conda: https://prefix.dev/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda
|
|
123
144
|
- conda: https://prefix.dev/conda-forge/osx-arm64/icu-78.2-h38cb7af_0.conda
|
|
124
145
|
- conda: https://prefix.dev/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda
|
|
@@ -142,15 +163,21 @@ environments:
|
|
|
142
163
|
- conda: https://prefix.dev/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda
|
|
143
164
|
- conda: https://prefix.dev/conda-forge/osx-arm64/py-rattler-0.21.0-py310hcf6febd_0.conda
|
|
144
165
|
- conda: https://prefix.dev/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
|
|
166
|
+
- conda: https://prefix.dev/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda
|
|
145
167
|
- conda: https://prefix.dev/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda
|
|
146
168
|
- conda: https://prefix.dev/conda-forge/osx-arm64/python-3.14.2-h40d2674_101_cp314.conda
|
|
169
|
+
- conda: https://prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda
|
|
147
170
|
- conda: https://prefix.dev/conda-forge/noarch/python-gil-3.14.2-h4df99d1_101.conda
|
|
148
171
|
- conda: https://prefix.dev/conda-forge/noarch/python_abi-3.14-8_cp314.conda
|
|
149
172
|
- conda: https://prefix.dev/conda-forge/noarch/pyyaml-6.0.3-pyh7db6752_0.conda
|
|
150
173
|
- conda: https://prefix.dev/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda
|
|
151
174
|
- conda: https://prefix.dev/conda-forge/noarch/rich-14.3.1-pyhcf101f3_0.conda
|
|
175
|
+
- conda: https://prefix.dev/conda-forge/noarch/rosdistro-1.0.1-pyhd8ed1ab_0.conda
|
|
176
|
+
- conda: https://prefix.dev/conda-forge/noarch/rospkg-1.6.1-pyhd8ed1ab_0.conda
|
|
152
177
|
- conda: https://prefix.dev/conda-forge/osx-arm64/ruff-0.14.14-h279115b_1.conda
|
|
178
|
+
- conda: https://prefix.dev/conda-forge/noarch/setuptools-80.10.2-pyh332efcf_0.conda
|
|
153
179
|
- conda: https://prefix.dev/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_2.conda
|
|
180
|
+
- conda: https://prefix.dev/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda
|
|
154
181
|
- conda: https://prefix.dev/conda-forge/osx-arm64/tk-8.6.13-h010d191_3.conda
|
|
155
182
|
- conda: https://prefix.dev/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda
|
|
156
183
|
- conda: https://prefix.dev/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda
|
|
@@ -166,9 +193,12 @@ environments:
|
|
|
166
193
|
- conda: https://prefix.dev/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda
|
|
167
194
|
- conda: https://prefix.dev/conda-forge/win-64/bzip2-1.0.8-h0ad9c76_8.conda
|
|
168
195
|
- conda: https://prefix.dev/conda-forge/noarch/ca-certificates-2026.1.4-h4c7d964_0.conda
|
|
196
|
+
- conda: https://prefix.dev/conda-forge/noarch/catkin_pkg-1.1.0-pyhd8ed1ab_0.conda
|
|
169
197
|
- conda: https://prefix.dev/conda-forge/noarch/click-8.3.1-pyha7b4d00_1.conda
|
|
170
198
|
- conda: https://prefix.dev/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
|
|
171
199
|
- conda: https://prefix.dev/conda-forge/noarch/cpython-3.14.2-py314hd8ed1ab_101.conda
|
|
200
|
+
- conda: https://prefix.dev/conda-forge/noarch/distro-1.9.0-pyhd8ed1ab_1.conda
|
|
201
|
+
- conda: https://prefix.dev/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda
|
|
172
202
|
- conda: https://prefix.dev/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda
|
|
173
203
|
- conda: https://prefix.dev/conda-forge/win-64/icu-78.2-h637d24d_0.conda
|
|
174
204
|
- conda: https://prefix.dev/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda
|
|
@@ -191,14 +221,20 @@ environments:
|
|
|
191
221
|
- conda: https://prefix.dev/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda
|
|
192
222
|
- conda: https://prefix.dev/conda-forge/win-64/py-rattler-0.21.0-py310hb39080a_0.conda
|
|
193
223
|
- conda: https://prefix.dev/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
|
|
224
|
+
- conda: https://prefix.dev/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda
|
|
194
225
|
- conda: https://prefix.dev/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda
|
|
195
226
|
- conda: https://prefix.dev/conda-forge/win-64/python-3.14.2-h4b44e0e_101_cp314.conda
|
|
227
|
+
- conda: https://prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda
|
|
196
228
|
- conda: https://prefix.dev/conda-forge/noarch/python-gil-3.14.2-h4df99d1_101.conda
|
|
197
229
|
- conda: https://prefix.dev/conda-forge/noarch/python_abi-3.14-8_cp314.conda
|
|
198
230
|
- conda: https://prefix.dev/conda-forge/noarch/pyyaml-6.0.3-pyh7db6752_0.conda
|
|
199
231
|
- conda: https://prefix.dev/conda-forge/noarch/rich-14.3.1-pyhcf101f3_0.conda
|
|
232
|
+
- conda: https://prefix.dev/conda-forge/noarch/rosdistro-1.0.1-pyhd8ed1ab_0.conda
|
|
233
|
+
- conda: https://prefix.dev/conda-forge/noarch/rospkg-1.6.1-pyhd8ed1ab_0.conda
|
|
200
234
|
- conda: https://prefix.dev/conda-forge/win-64/ruff-0.14.14-h213852a_1.conda
|
|
235
|
+
- conda: https://prefix.dev/conda-forge/noarch/setuptools-80.10.2-pyh332efcf_0.conda
|
|
201
236
|
- conda: https://prefix.dev/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_2.conda
|
|
237
|
+
- conda: https://prefix.dev/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda
|
|
202
238
|
- conda: https://prefix.dev/conda-forge/win-64/tk-8.6.13-h6ed50ae_3.conda
|
|
203
239
|
- conda: https://prefix.dev/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda
|
|
204
240
|
- conda: https://prefix.dev/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda
|
|
@@ -299,6 +335,20 @@ packages:
|
|
|
299
335
|
license: ISC
|
|
300
336
|
size: 146519
|
|
301
337
|
timestamp: 1767500828366
|
|
338
|
+
- conda: https://prefix.dev/conda-forge/noarch/catkin_pkg-1.1.0-pyhd8ed1ab_0.conda
|
|
339
|
+
sha256: fe602164dc1920551e1452543e22338d55d8a879959f12598c9674cf295c6341
|
|
340
|
+
md5: 3e500faf80e42f26d422d849877d48c4
|
|
341
|
+
depends:
|
|
342
|
+
- docutils
|
|
343
|
+
- packaging
|
|
344
|
+
- pyparsing >=1.5.7
|
|
345
|
+
- python >=3.10
|
|
346
|
+
- python-dateutil
|
|
347
|
+
- setuptools
|
|
348
|
+
license: BSD-3-Clause
|
|
349
|
+
license_family: BSD
|
|
350
|
+
size: 54106
|
|
351
|
+
timestamp: 1757558592553
|
|
302
352
|
- conda: https://prefix.dev/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda
|
|
303
353
|
sha256: 38cfe1ee75b21a8361c8824f5544c3866f303af1762693a178266d7f198e8715
|
|
304
354
|
md5: ea8a6c3256897cc31263de9f455e25d9
|
|
@@ -341,6 +391,23 @@ packages:
|
|
|
341
391
|
license: Python-2.0
|
|
342
392
|
size: 49613
|
|
343
393
|
timestamp: 1769457358023
|
|
394
|
+
- conda: https://prefix.dev/conda-forge/noarch/distro-1.9.0-pyhd8ed1ab_1.conda
|
|
395
|
+
sha256: 5603c7d0321963bb9b4030eadabc3fd7ca6103a38475b4e0ed13ed6d97c86f4e
|
|
396
|
+
md5: 0a2014fd9860f8b1eaa0b1f3d3771a08
|
|
397
|
+
depends:
|
|
398
|
+
- python >=3.9
|
|
399
|
+
license: Apache-2.0
|
|
400
|
+
license_family: APACHE
|
|
401
|
+
size: 41773
|
|
402
|
+
timestamp: 1734729953882
|
|
403
|
+
- conda: https://prefix.dev/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda
|
|
404
|
+
sha256: 0d605569a77350fb681f9ed8d357cc71649b59a304099dc9d09fbeec5e84a65e
|
|
405
|
+
md5: d6bd3cd217e62bbd7efe67ff224cd667
|
|
406
|
+
depends:
|
|
407
|
+
- python >=3.10
|
|
408
|
+
license: CC-PDDC AND BSD-3-Clause AND BSD-2-Clause AND ZPL-2.1
|
|
409
|
+
size: 438002
|
|
410
|
+
timestamp: 1766092633160
|
|
344
411
|
- conda: https://prefix.dev/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda
|
|
345
412
|
sha256: ee6cf346d017d954255bbcbdb424cddea4d14e4ed7e9813e429db1d795d01144
|
|
346
413
|
md5: 8e662bd460bda79b1ea39194e3c4c9ab
|
|
@@ -1073,7 +1140,7 @@ packages:
|
|
|
1073
1140
|
timestamp: 1769677743677
|
|
1074
1141
|
- conda: .
|
|
1075
1142
|
name: pixi-ros
|
|
1076
|
-
version: 0.
|
|
1143
|
+
version: 0.4.0
|
|
1077
1144
|
build: pyh4616a5c_0
|
|
1078
1145
|
subdir: noarch
|
|
1079
1146
|
variants:
|
|
@@ -1088,6 +1155,7 @@ packages:
|
|
|
1088
1155
|
- py-rattler >=0.6.0
|
|
1089
1156
|
- pathspec >=0.11.0
|
|
1090
1157
|
- rich >=13.0.0
|
|
1158
|
+
- rosdistro >=0.9.0
|
|
1091
1159
|
license: MIT
|
|
1092
1160
|
- conda: https://prefix.dev/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda
|
|
1093
1161
|
sha256: e14aafa63efa0528ca99ba568eaf506eb55a0371d12e6250aaaa61718d2eb62e
|
|
@@ -1172,6 +1240,16 @@ packages:
|
|
|
1172
1240
|
license_family: BSD
|
|
1173
1241
|
size: 889287
|
|
1174
1242
|
timestamp: 1750615908735
|
|
1243
|
+
- conda: https://prefix.dev/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda
|
|
1244
|
+
sha256: 417fba4783e528ee732afa82999300859b065dc59927344b4859c64aae7182de
|
|
1245
|
+
md5: 3687cc0b82a8b4c17e1f0eb7e47163d5
|
|
1246
|
+
depends:
|
|
1247
|
+
- python >=3.10
|
|
1248
|
+
- python
|
|
1249
|
+
license: MIT
|
|
1250
|
+
license_family: MIT
|
|
1251
|
+
size: 110893
|
|
1252
|
+
timestamp: 1769003998136
|
|
1175
1253
|
- conda: https://prefix.dev/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda
|
|
1176
1254
|
sha256: 9e749fb465a8bedf0184d8b8996992a38de351f7c64e967031944978de03a520
|
|
1177
1255
|
md5: 2b694bad8a50dc2f712f5368de866480
|
|
@@ -1290,6 +1368,17 @@ packages:
|
|
|
1290
1368
|
size: 16629248
|
|
1291
1369
|
timestamp: 1769457277306
|
|
1292
1370
|
python_site_packages_path: Lib/site-packages
|
|
1371
|
+
- conda: https://prefix.dev/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda
|
|
1372
|
+
sha256: d6a17ece93bbd5139e02d2bd7dbfa80bee1a4261dced63f65f679121686bf664
|
|
1373
|
+
md5: 5b8d21249ff20967101ffa321cab24e8
|
|
1374
|
+
depends:
|
|
1375
|
+
- python >=3.9
|
|
1376
|
+
- six >=1.5
|
|
1377
|
+
- python
|
|
1378
|
+
license: Apache-2.0
|
|
1379
|
+
license_family: APACHE
|
|
1380
|
+
size: 233310
|
|
1381
|
+
timestamp: 1751104122689
|
|
1293
1382
|
- conda: https://prefix.dev/conda-forge/noarch/python-gil-3.14.2-h4df99d1_101.conda
|
|
1294
1383
|
sha256: ef9d512824e3d6e1d8d07236795b60b61f13f6f3dafcc93c4d9a87ed058f8928
|
|
1295
1384
|
md5: 90fd30fc6dd044c0f79c7ef4e7e9fb16
|
|
@@ -1365,6 +1454,31 @@ packages:
|
|
|
1365
1454
|
license_family: MIT
|
|
1366
1455
|
size: 208244
|
|
1367
1456
|
timestamp: 1769302653091
|
|
1457
|
+
- conda: https://prefix.dev/conda-forge/noarch/rosdistro-1.0.1-pyhd8ed1ab_0.conda
|
|
1458
|
+
sha256: bff3b2fe7afe35125669ffcb7d6153db78070a753e1e4ac3b3d8d198eb6d6982
|
|
1459
|
+
md5: b7ed380a9088b543e06a4f73985ed03a
|
|
1460
|
+
depends:
|
|
1461
|
+
- catkin_pkg
|
|
1462
|
+
- python >=3.9
|
|
1463
|
+
- pyyaml
|
|
1464
|
+
- rospkg
|
|
1465
|
+
- setuptools
|
|
1466
|
+
license: BSD-3-Clause
|
|
1467
|
+
license_family: BSD
|
|
1468
|
+
size: 47691
|
|
1469
|
+
timestamp: 1747826651335
|
|
1470
|
+
- conda: https://prefix.dev/conda-forge/noarch/rospkg-1.6.1-pyhd8ed1ab_0.conda
|
|
1471
|
+
sha256: 4d930bee9f6a6d0fb7e5c9bb644b2b168787e907014deb49a3e00c0552934447
|
|
1472
|
+
md5: d530f2ffe740578a5ece44b1004067cc
|
|
1473
|
+
depends:
|
|
1474
|
+
- catkin_pkg
|
|
1475
|
+
- distro
|
|
1476
|
+
- python >=3.10
|
|
1477
|
+
- pyyaml
|
|
1478
|
+
license: BSD-3-Clause
|
|
1479
|
+
license_family: BSD
|
|
1480
|
+
size: 31852
|
|
1481
|
+
timestamp: 1766125246079
|
|
1368
1482
|
- conda: https://prefix.dev/conda-forge/linux-64/ruff-0.14.14-h40fa522_1.conda
|
|
1369
1483
|
noarch: python
|
|
1370
1484
|
sha256: 0c6c9825ff88195fd13936d63872213d6c88c1fe795d136881c0753c3037c5ff
|
|
@@ -1418,6 +1532,15 @@ packages:
|
|
|
1418
1532
|
license_family: MIT
|
|
1419
1533
|
size: 9568276
|
|
1420
1534
|
timestamp: 1769521017574
|
|
1535
|
+
- conda: https://prefix.dev/conda-forge/noarch/setuptools-80.10.2-pyh332efcf_0.conda
|
|
1536
|
+
sha256: f5fcb7854d2b7639a5b1aca41dd0f2d5a69a60bbc313e7f192e2dc385ca52f86
|
|
1537
|
+
md5: 7b446fcbb6779ee479debb4fd7453e6c
|
|
1538
|
+
depends:
|
|
1539
|
+
- python >=3.10
|
|
1540
|
+
license: MIT
|
|
1541
|
+
license_family: MIT
|
|
1542
|
+
size: 678888
|
|
1543
|
+
timestamp: 1769601206751
|
|
1421
1544
|
- conda: https://prefix.dev/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_2.conda
|
|
1422
1545
|
sha256: 1d6534df8e7924d9087bd388fbac5bd868c5bf8971c36885f9f016da0657d22b
|
|
1423
1546
|
md5: 83ea3a2ddb7a75c1b09cea582aa4f106
|
|
@@ -1427,6 +1550,16 @@ packages:
|
|
|
1427
1550
|
license_family: MIT
|
|
1428
1551
|
size: 15018
|
|
1429
1552
|
timestamp: 1762858315311
|
|
1553
|
+
- conda: https://prefix.dev/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda
|
|
1554
|
+
sha256: 458227f759d5e3fcec5d9b7acce54e10c9e1f4f4b7ec978f3bfd54ce4ee9853d
|
|
1555
|
+
md5: 3339e3b65d58accf4ca4fb8748ab16b3
|
|
1556
|
+
depends:
|
|
1557
|
+
- python >=3.9
|
|
1558
|
+
- python
|
|
1559
|
+
license: MIT
|
|
1560
|
+
license_family: MIT
|
|
1561
|
+
size: 18455
|
|
1562
|
+
timestamp: 1753199211006
|
|
1430
1563
|
- conda: https://prefix.dev/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda
|
|
1431
1564
|
sha256: cafeec44494f842ffeca27e9c8b0c27ed714f93ac77ddadc6aaf726b5554ebac
|
|
1432
1565
|
md5: cffd3bdd58090148f4cfcd831f4b26ab
|