Skip to content

Keep package requests from bypassing existing selection conditions #28

Closed as not planned

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.

rs add-package rosidlcpp jazzy takes the wrong path when deciding whether to add a package.

rosidlcpp already exists in a conditional block in shared selection, and Jazzy explicitly excludes it. I verified with the installed Vinca resolver that it is available in Jazzy but absent from Jazzy's effective selected set. The add-package code treats that as a missing shared entry and appends an unconditional entry.

[INFERENCE] Running the mutating command would broaden the selection for other distributions/platforms while still not building the package for Jazzy. I did not run that mutation during the audit.

Code: tools/maintenance.py, shared/vinca.yaml and distros/jazzy/vinca.yaml.

Suggested change

Check the existing source selection as well as the resolved selection. Distinguish an absent package from one that is excluded, skipped or platform-restricted, and explain that state in the bot reply. Do not insert an unconditional duplicate to try to resolve it.

Acceptance criteria

  • Requesting rosidlcpp for Jazzy leaves the conditional shared entry unchanged and explains the exclusion.
  • Requesting an already selected or platform-restricted package does not broaden its scope.
  • A genuinely absent package can still be added once, in sorted order.
  • Regression tests cover exclusion and platform-condition cases.

Activity

  1. Tobias-Fischer commented on Oct 10, 2026

    @Tobias-Fischer
    Collaborator

    Not a bug on main: add-package resolves each distribution's selection, including its platform conditions, through read_vinca. #40's union over all distributions would have introduced the problem.

    🤖 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