Skip to content

pixi 0.71 breaks build-backend resolution — pixi-build-cmake <=0.3.8 cap too low (recurring; all pixi-build repos) #96

Description

@joshkamm

Summary

Installing with pixi 0.71.0 fails at dependency resolution, before any compilation:

Cannot solve the request because of: pixi-build-cmake >=0.3.6,<=0.3.8 cannot be installed:
  ├─ 0.3.7 | 0.3.8 require pixi-build-api-version >=4,<5  → no candidates
  └─ 0.3.6        requires pixi-build-api-version >=2,<3  → no candidates

pixi 0.71 provides a build-API version that none of the pinned backends (0.3.60.3.8) satisfy, and the <=0.3.8 upper cap stops pixi from selecting a newer backend that would.

Confirmed reproduction (Perlmutter login node)

  • pixi 0.71.0 → fails at the solve above.
  • pixi 0.70.0 → resolves pixi-build-cmake@0.3.8, negotiates API v4, builds normally (SlaterGPU compiles fully, libcint found via conda-forge).

This is the recurring tax of the bounded-pin strategy

We pin the build backend on purpose — backend/tooling updates have broken our builds several times:

pixi 0.71 is the next instance: this time the upper cap of that range is what breaks.

Blast radius — all four repos share the identical pin

pixi-build-cmake = ">=0.3.6,<=0.3.8", requires-pixi = ">=0.60.0":

  • ZimmermanGroup/SlaterGPU
  • ZimmermanGroup/ZEST (pulls SlaterGPU as a source dependency)
  • ZimmermanGroup/XCtera (pulls SlaterGPU as a source dependency)
  • ZimmermanGroup/molecularGSM

A coordinated bump is needed; ZEST/XCtera also need SlaterGPU bumped because they build it from source.

Proposed fix — keep the bounded pin, bump the cap to a tested version

We should not drop the upper cap (history shows backend updates do break us). Instead:

  1. Identify the newest pixi-build-cmake that negotiates with pixi 0.71's build-API version (likely 0.3.9+/0.4.x).
  2. Verify a clean pixi install on pixi 0.71 (and confirm a still-supported floor on an older pixi).
  3. Bump all four repos to >=0.3.6,<=<new tested version> (keeping a bounded range), updating requires-pixi only if a higher floor is actually required.

Reducing the future maintenance burden

Context

  • Surfaced while doing the local build verification for the exact-4c work (ZimmermanGroup/ZEST#99).

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