Skip to content

Change package prefix to ros- or ros2-#104

Merged
Tobias-Fischer merged 1 commit into
RoboStack:masterfrom
baszalmstra:rename-packages
Jul 23, 2026
Merged

Change package prefix to ros- or ros2-#104
Tobias-Fischer merged 1 commit into
RoboStack:masterfrom
baszalmstra:rename-packages

Conversation

@baszalmstra

@baszalmstra baszalmstra commented Oct 31, 2025

Copy link
Copy Markdown
Collaborator

Why

ROS package names currently include the full ROS distribution, for example ros-humble-rclcpp. This makes project configuration specific to one distribution and means package names have to change when moving from Humble to Jazzy, even though the selected channel and distro mutex already determine which ROS distribution is installed.

Keeping the ROS major version in the name is still useful. It avoids collisions and makes it clear whether a package belongs to ROS 1 or ROS 2. The new names therefore use ros- for ROS 1 and ros2- for ROS 2, for example ros2-rclcpp.

What happens after this is merged

Nothing changes for existing Vinca configurations by default. They continue generating distro-qualified names such as ros-humble-rclcpp.

A distribution can start the migration by enabling both. Vinca will then generate the new names alongside the old names. Installing an old name will install the corresponding package under its new name, which gives downstream repositories, examples, users, and tooling time to migrate without breaking existing configurations.

Once the migration is complete, the distribution can switch to new and stop generating the old compatibility names.

What the legacy packages do

In legacy mode, distro-qualified packages remain normal packages and contain the ROS package itself, just as they do today.

In both mode, the package under the new name contains the ROS package. The distro-qualified legacy package becomes a lightweight compatibility package that depends on the same version under its new name. For example, installing ros-humble-rclcpp installs ros2-rclcpp. This preserves existing environment files and commands without building or installing two copies of RCLCPP.

In new mode, the legacy packages are no longer generated.

Configuration

Use package_name_mode in vinca.yaml to select the desired stage:

package_name_mode: both

Available values:

  • legacy is the default. It preserves the current distro-qualified packages and their current behavior.
  • both starts the migration. The new names contain the ROS packages, while the old names remain as compatibility packages.
  • new completes the migration by generating only the new ros- or ros2- names.

Existing configurations that omit package_name_mode remain on legacy.

Closes #97

Validation

All tests and GitHub CI checks pass on Ubuntu, macOS, and Windows.

@traversaro

traversaro commented Oct 31, 2025

Copy link
Copy Markdown
Member

Personally I would strongly prefer to also generate the old name, at least for a deprecation period, that from what I understand what was we had consensus on #97 (comment) . I really prefer to avoid breaking all existing robostack examples and existing human and llm knoledge (and I am happy to work on adding that).

@baszalmstra

Copy link
Copy Markdown
Collaborator Author

Makes sense. But then we let those point to the renamed packages instead of the other way around.

@traversaro

Copy link
Copy Markdown
Member

Makes sense. But then we let those point to the renamed packages instead of the other way around.

Yes, sure!

@Tobias-Fischer

Copy link
Copy Markdown
Contributor

@baszalmstra do you want to implement the last small changes required so we can merge here?

@baszalmstra

Copy link
Copy Markdown
Collaborator Author

@Tobias-Fischer @traversaro I implemented the changes and update the PR description to describe what happened.

@Tobias-Fischer

Copy link
Copy Markdown
Contributor

LGTM, what do you think @traversaro?

@traversaro

Copy link
Copy Markdown
Member

Thanks and sorry for the delay!

@Tobias-Fischer
Tobias-Fischer merged commit 0ece7a5 into RoboStack:master Jul 23, 2026
3 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.

Proposal to remove ros-<distro> prefix from packages

3 participants