Skip to content

simulate: a claim pinned to a revision that calls a changed function is left out #516

Open

Description

@jcogilvie

What happened?

When a run changes a function, simulate also renders Manual XRs pinned to a Composition revision whose pipeline calls that function (pinnedFunctionChangeXRs in internal/diff/diffprocessor/comp_processor.go). Their revision doesn't change, but the function it calls does.

That check doesn't cover claims. pinnedRevisionCallsChangedFunction only matches a revision whose compositeTypeRef is the object's own group and kind. A claim's kind isn't, so a pinned claim stays filtered out as Manual, and nothing is predicted for it.

Claims only exist for legacy cluster-scoped XRs, so this misses exactly those users: a claim bound to a Manual XR whose revision calls the changed function gets no entry.

The code has a TODO(jcogilvie) for this at pinnedRevisionCallsChangedFunction. Fixing it means checking the claim's backing XR instead, and routing that XR's key to the render.

Raised in review on #436: #436 (comment)

How can we reproduce it?

  1. Install a legacy cluster-scoped XRD that offers a claim, and a Composition whose pipeline calls function F.
  2. Create a claim with compositionUpdatePolicy: Manual, so its XR is pinned to the current revision.
  3. Change F in a project, without changing the Composition.
  4. Run crossplane project simulate.
  5. The claim has no entry. A namespaced XR pinned to the same kind of revision does get one.

What environment did it happen in?

  • Crossplane CLI version: main at 4f5fc53
  • Platform (e.g., linux/amd64): any
  • Crossplane version (if applicable): v2, with a legacy cluster-scoped XRD

Activity

  1. added a commit that references this issue on Nov 10, 2026
    ad4917c
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

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions