Skip to content

Releases: prefix-dev/pixi

v0.77.0

Choose a tag to compare

@github-actions github-actions released this 19 Aug 07:17
Immutable release. Only release title and notes can be modified.
e3c26fb

[0.77.0] - 2026-08-18

✨ Highlights

This release includes the API update for the backends such that we support pin-compatible and pin-subpackage specs in package manifests. For example:

# Pin subpackage `mypkg` to the same version as the package itself, but allow any compatible version of `mypkg` to be used.
[package]
name = "mypkg"

[package.run-exports.weak]
mypkg = { pin-subpackage = { upper-bound = "x.x" } }

# Pin `boltons` to a compatible version.
[package.host-dependencies]
boltons = ">=2,<3"

[package.run-dependencies]
boltons = { pin-compatible = true }

Note that this is a pixi-build-api-version update to v7.

Also, you can now modify the workspace activation with the new pixi workspace activation subcommand.

Added

Changed

Documentation

Fixed

Refactor

  • Use matchspecs for requirements in rich platforms by @hunger in #6827

New Contributors

v0.76.2

Choose a tag to compare

@github-actions github-actions released this 10 Aug 12:43
Immutable release. Only release title and notes can be modified.
c723070

[0.76.2] - 2026-08-10

✨ Highlights

This release features better logging and a few bug fixes.

Added

Changed

  • Log CEP-42 user-order conflicts at debug level by @hunger in #6778
  • Small fixes to better handle paths containing spaces by @hunger in #6779

Documentation

Fixed

Removed

Style

v0.76.1

Choose a tag to compare

@github-actions github-actions released this 04 Aug 10:46
Immutable release. Only release title and notes can be modified.
79ce628

[0.76.1] - 2026-08-04

✨ Highlights

This release features an improved pixi task list and a revamped docs page based on Zensical.

Changed

  • Correct task list runnability and show every task by @hunger in #6367

Documentation

Fixed

  • Honour editable = true in transitive [tool.uv.sources] at install time by @earlybard in #6730

New Contributors

v0.76.0

Choose a tag to compare

@github-actions github-actions released this 03 Aug 12:11
Immutable release. Only release title and notes can be modified.
6177dfa

[0.76.0] - 2026-08-03

✨ Highlights

A single Python file can now carry its own environment. Pixi reads PEP 723 inline metadata, and --script works on init, run, add, remove, lock, list, tree, and workspace export.

# /// script
# requires-python = ">=3.11"
# dependencies = ["rich>=13.9.2"]
# ///
import rich

rich.print("Hi from [bold magenta]hello.py[/bold magenta]!")

pixi run --script hello.py is the whole setup: no pixi.toml, no .pixi folder, and no lock file unless you ask for one with pixi lock --script.

PEP 723 only covers Python and PyPI, so Pixi reads tool.pixi for the rest. This greatly extends the script's capabilities, for example to add conda dependencies:

# /// script
# dependencies = ["httpx"]
# [tool.pixi.workspace]
# channels = ["conda-forge"]
# [tool.pixi.dependencies]
# gdal = "*"
# ///

pixi init --script, pixi add --script <file> gdal, and pixi add --script <file> --pypi httpx write that block for you. Scripts don't have to be local either: pixi run --script takes a URL, a Gist page (that one builds CPython 3.16 from git first), or - to read from stdin.

Thanks @manzt for building this out across five PRs, see the standalone scripts docs for the rest. This release also adds [package.run-exports], an lfs field for git dependencies, and configurable channel priority.

Added

Changed

  • Point the uv cache at the pixi cache directory by @wolfv in #6712
  • Resolve the target subdir to the declared workspace platform by @wolfv in #6715
  • Strip ANSI escapes from rendered diagnostics in snapshots by @ruben-arts in #6735

Documentation

Fixed

New Contributors

v0.75.0

Choose a tag to compare

@github-actions github-actions released this 29 Jul 13:43
Immutable release. Only release title and notes can be modified.
3cf61a8

[0.75.0] - 2026-07-29

✨ Highlights

pixi publish now publishes every workspace package that opts in in dependency order. It also refuses to publish anything if a necessary source dependencies didn't opt into being published.

[package]
name = "cpp_math"
publish = true

Offline solves now only consider conda packages you already have, either in the package cache or on a local file:// channel.

That means that you can run pixi update --offline and it will resolve with the packages you have local on your machine.

Completion is now generated from the CLI itself, so environment, platform, feature, and task names complete on every option that takes one, in bash, zsh, fish, and nushell.

As usual we also fixed a couple of bugs.

Added

Changed

  • Report the assumed platform per environment by @hunger in #6508
  • Reuse cached artifacts for immutable sources when the cache dir is gone by @Hofer-Julian in #6699

Documentation

Fixed

Removed

v0.74.0

Choose a tag to compare

@github-actions github-actions released this 27 Jul 12:50
Immutable release. Only release title and notes can be modified.
0c03829

[0.74.0] - 2026-07-27

✨ Highlights

Environments can now define content inline, no feature needed:

[environments.test.dependencies]
pytest = "*"

[environments.test-lower-bounds]
solve-strategy = "lowest-direct"

And pixi global can build tools from sources without a package manifest, just name the backend:

pixi global install --git https://github.com/BurntSushi/xsv.git --build-backend pixi-build-rust

We also fixed a bunch of bugs.

Added

Changed

Documentation

Fixed

New Contributors

v0.73.0

Choose a tag to compare

@github-actions github-actions released this 15 Jul 09:12
Immutable release. Only release title and notes can be modified.
0a17650

[0.73.0] - 2026-07-15

✨ Highlights

This release brings two big features:

  • workspace = true now also works in environment [dependency] tables
  • TOML 1.1 multiline inline tables are now fully supported

As usual we also fixed a couple of bugs.

workspace = true in environment dependency tables

Until now, { workspace = true } only worked in the package dependency tables and required the pixi-build preview.
With this release, the environment tables can inherit from [workspace.dependencies] as well, no preview needed.
That means a version shared by several features or targets only has to be declared once:

[workspace.dependencies]
numpy = "1.*"

[dependencies]
numpy = { workspace = true }

[feature.dev.dependencies]
numpy = { workspace = true }

You can learn more about this feature in the docs: https://pixi.prefix.dev/v0.73.0/build/workspace_dependencies/

TOML 1.1

Pixi now fully supports TOML 1.1.
Most notably, inline tables can now span multiple lines and have trailing commas, which used to be a syntax error:

[dependencies]
python = {
    version = ">=3.12",
    channel = "conda-forge",
}

Commands that modify the manifest, like pixi add, keep the layout you wrote.
One word of caution: many other tools only read TOML 1.0 so far, so using the new syntax in pyproject.toml can break them even though Pixi accepts it.

Added

Changed

  • Complete tasks after options in pixi run by @hunger in #6518

Documentation

  • Expand docs for extras, flags, and conditional dependencies by @wolfv in #6570
  • Document TOML 1.1 support by @Hofer-Julian
  • Fix python version constraint location in pixi-build-python backend by @hunger in #6580

Fixed

v0.72.2

Choose a tag to compare

@github-actions github-actions released this 09 Jul 13:59
Immutable release. Only release title and notes can be modified.
7dfdb75

[0.72.2] - 2026-07-09

✨ Highlights

This release contains more fixes for rich platforms.

Added

  • Add pixi workspace platform add --auto-detected by @hunger in #6355
  • Explain why each declared platform cannot run here by @hunger in #6491

Changed

  • Compose sysreq platforms from customisations only by @kilian-hu in #6520
  • Report unsatisfied virtual packages instead of a misleading interpreter error by @hunger

Documentation

  • Document the build variants pixi sets automatically by @hunger in #6534

Fixed

  • Quick-validate to rebuild source packages on rich platforms by @wolfv in #6544
  • Satisfiability of conditional dependencies with virtual packages by @ruben-arts in #6554
  • Name the unmet virtual package in the runs-by-accident warning by @hunger in #6563
  • Truncate stdlib variant version to major.minor by @hunger in #6567

Removed

v0.72.1

Choose a tag to compare

@github-actions github-actions released this 07 Jul 08:19
Immutable release. Only release title and notes can be modified.
baa3aa8

[0.72.1] - 2026-07-07

✨ Highlights

This release contains important bugfixes for rich platforms, v3 repodata handling, pixi-build-r and more.

Changed

  • Do not fail when running tasks in an environment by @hunger in #6507
  • Provide R packages under their r-prefixed conda name by @roaldarbol in #6515
  • Suggest pixi self-update --version for requires-pixi errors by @hunger in #6516
  • Register run-export-introduced source deps on the assembled record by @wolfv in #6519
  • Let explicit source registrations win over implied ones by @Hofer-Julian in #6532

Documentation

Fixed

  • Don't drag rich platform variants into bare-subdir environments by @hunger in #6517
  • Invalidate lock file when an inline package definition changes by @Hofer-Julian in #6529

Refactor

  • Use shared config types from rattler_config by @wolfv in #6528

New Contributors

v0.72.0

Choose a tag to compare

@github-actions github-actions released this 01 Jul 12:23
Immutable release. Only release title and notes can be modified.
0031aa7

[0.72.0] - 2026-07-01

✨ Highlights

This release brings an exciting new Pixi Build feature: inline package manifests.
If you want to build a package from source that didn't contain a Pixi Build manifest, that used to be pretty annoying.
Now you can simply set the metadata inline like this:

[dependencies]
rust-package = { git = "https://github.com/user/repo.git", package.build.backend.name = "pixi-build-rust" }

You can learn more about this feature in the docs: https://pixi.prefix.dev/v0.72.0/build/inline_packages/

Added