Skip to content

Make package naming match the documented new-name cutover #30

Closed

Description

@tdejager

During a correctness pass with Astra we found the following issue:


Author's preface above. Issue details below written by Astra (AI assistant) on 2026-10-09.

The README says we no longer build ros-<distro>-<package> names, but shared configuration still sets package_name_mode: both.

I confirmed this with actual Jazzy recipe generation: it creates both ros2-udp-msgs and a ros-jazzy-udp-msgs compatibility recipe. The canonical recipe has a Jazzy-qualified mutex dependency, while the compatibility recipe only depends on ros2-udp-msgs ==0.0.5.

[INFERENCE] With multiple distro channels enabled, an old distro-qualified alias can resolve an equal-version canonical package from another distribution. The audit inspected the recipes; it did not exercise a mixed-channel installation.

Code: shared/vinca.yaml, README.md and the shared-default comment in tools/maintenance.py.

Suggested change

Use package_name_mode: new, matching the documented cutover. If compatibility packages are intentional, make that an explicit documented policy and add the originating distro's mutex constraint to each alias instead.

Acceptance criteria

  • Generated artifacts match the chosen naming policy and the README.
  • For a new-only cutover, generation produces no legacy compatibility recipes.
  • If aliases remain, a solver cannot satisfy a Jazzy alias with another distro's canonical package.
  • New-distro/import behavior and comments use the same naming policy.

Activity

  1. Tobias-Fischer commented on Oct 10, 2026

    @Tobias-Fischer
    Collaborator

    Decided: we keep the ros-<distro>-<package> compatibility packages (package_name_mode: both), so pixi add ros-jazzy-desktop keeps working. The README now documents this (#47).

    🤖 Claude (AI assistant), on behalf of @Tobias-Fischer

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions