Skip to content

deps: Update pixi tool constraint to >=0.71.0#841

Merged
renovate[bot] merged 1 commit into
mainfrom
renovate/pixi-0.x
Jul 8, 2026
Merged

deps: Update pixi tool constraint to >=0.71.0#841
renovate[bot] merged 1 commit into
mainfrom
renovate/pixi-0.x

Conversation

@renovate

@renovate renovate Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change Pending
pixi tool-constraint minor >=0.70.2>=0.71.0 0.72.1 (+4)

Release Notes

prefix-dev/pixi (pixi)

v0.71.0

Compare Source

✨ Highlights

This release adds a lot of exciting features.

⚠️ Breaking: Configurable Conda to PyPI name mappings

Pixi now gives you more control over how conda packages are matched to PyPI packages.

Previously you could already have an external map, in a file that overwrote the mappings we generate with parselmouth

There were a couple of problems though:

  1. It was always a full overwrite,
  2. We write a single-file compressed mapping, but it was not usable directly in Pixi and needed to be modified.

Especially 2, limited people on corporate networks to host their own mappings. We've now made a bunch of improvements:

Workspace conda-pypi-map now supports per-channel configuration with:

  1. inline mappings,
  2. remote mapping files, local was already supported,
  3. Direct support for linking to: https://github.com/prefix-dev/parselmouth/blob/main/files/compressed_mapping.json
  4. overlay (new) vs replacement (old) behavior,
  5. explicit opt-out for certain packages,
  6. and finally control over the same-name heuristic. Meaning that in case of a fallback you can enable just taking the conda as the PyPI name.

This makes it easier to fix individual name mismatches, use private channel mappings, or run reliably in
offline and firewall-restricted environments.

And with remote mapping files specifically, you could host an accurate mapping on your own infrastructure by using the compressed mapping, no need to hit an external network.

[workspace.conda-pypi-map]

# Fix a few names while falling back to Pixi's default mapping.
conda-forge = { mapping = { pytorch = "torch", not-on-pypi = false } }

# Treat a custom mapping as the source of truth for a channel.
my-company = { location = "mapping.json", mapping-mode = "replace" }

# Disable PyPI name derivation for one channel.
internal = false

The Python build backend also gains pypi-conda-map, letting pixi-build-python override PyPI-to-conda
dependency mapping inline before consulting the mapping service:

[package.build.config]
ignore-pypi-mapping = false
pypi-conda-map = { torch = "pytorch", my-internal-pkg = false }

All in all, this is a breaking change, since bare mapping locations such as conda-forge = "mapping.json" are now additive overlays by default.
To restore the old source-of-truth behavior, use:

conda-forge = { location = "mapping.json", mapping-mode = "replace", same-name-heuristic = false }

conda-pypi-map = false now fully disables PyPI name derivation, including same-name guessing. The
legacy conda-pypi-map = {} behavior is still supported but deprecated; spell it explicitly as:

conda-pypi-map = { conda-forge = { mapping-mode = "replace" } }
Rich platforms

We deprecated [system-requirements] in favor of the much more expressive rich platform support.
On top of operating systems and processor architecture, platforms can now also include system requirements like CUDA or glibc version:

[workspace]
platforms = [
  "osx-arm64",
  { platform = "linux-64", cuda = "12.0", glibc = "2.28" },
  { name = "jetson-nano", platform = "linux-aarch64", cuda = "12.8" },
]

Speaking of CUDA, together with rich platforms we added support for __cuda_arch.
We already supported __cuda which allows specifying the driver version you require.
With __cuda_arch, you can specify the necessary hardware architecture.

v3 Repodata

We also added support for v3 repodata.
That means you can declare extra dependency groups:

[package.extra-dependencies.test]
hypothesis = "*"
pytest = ">=8"

[package.extra-dependencies.cuda]
cupy = ">=13"

And of course you can also consume them:

[dependencies]
mypackage = { path = "./mypackage", extras = ["test"] }

It also includes the when keyword:

[package.run-dependencies]
unix-helper = { version = "*", when = "__unix" }

And it allows to set flags:

[package.build]
backend = { name = "pixi-build-cmake", version = "0.*" }

# not required:
channels = ["https://prefix.dev/conda-forge"]
config = { key = "value" } # Optional configuration, specific to the build backend
flags = [
  "cuda",
  "blas_openblas",
] # Optional variant flags recorded in the package metadata
Conditional dependencies

Finally, we revamped the way we define conditional dependencies.
We deprecated [package.target.*.host,build,run-dependencies] and introduce the following syntax:

# Only needed when cross-compiling (host platform differs from build platform).
[package.build-dependencies."if(host_platform != build_platform)"]
cross-python = "*"

# Only on Linux.
[package.host-dependencies."if(host_platform == 'linux-64')"]
libgl-devel = ">=1.7.0,<2"

# Based on a build variant.
[package.host-dependencies."if(matches(python, '>=3.10'))"]
exceptiongroup = "*"

NOTE: This only affects source dependencies, [target.*.dependencies] remains valid.

Breaking changes
Added
Changed
Documentation
Fixed
Performance
Refactor
New Contributors

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added the dependencies Pull requests that update a dependency file label Jul 8, 2026
@renovate renovate Bot enabled auto-merge (squash) July 8, 2026 17:02
@renovate renovate Bot merged commit 3fc7e30 into main Jul 8, 2026
13 checks passed
@renovate renovate Bot deleted the renovate/pixi-0.x branch July 8, 2026 17:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants