Skip to content

Releases: prefix-dev/pixi

v0.39.0 - 2024-12-02

02 Dec 13:01
656ecd6
Compare
Choose a tag to compare

✨ Highlights

  • We now have a new concurrency configuration in the pixi.toml file.
    This allows you to set the number of concurrent solves or downloads that can be run at the same time.
  • We changed the way pixi searches for a pixi manifest. Where it was previously first considering the activated pixi shell, it will now search first in the current directory and its parent directories. more info
  • The lockfile format is changed to make it slightly smaller and support source dependencies.

Added

Changed

Documentation

Fixed

Refactor

Pixi build

We've merged in the main pixi build feature branch. This is a big change but shouldn't have affected any of the current functionality.
If you notice any issues, please let us know.

It can be turned on by preview = "pixi-build" in your pixi.toml file. It's under heavy development so expect breaking changes in that feature for now.

New Contributors

v0.38.0 - 2024-11-26

26 Nov 14:26
67f3830
Compare
Choose a tag to compare

✨ Highlights

  • Specify pypi-index per pypi-dependency
[pypi-dependencies]
pytorch ={ version = "*", index = "https://download.pytorch.org/whl/cu118" }
  • [dependency-groups] (PEP735) support in pyproject.toml
[dependency-groups]
test = ["pytest"]
docs = ["sphinx"]
dev = [{include-group = "test"}, {include-group = "docs"}]

[tool.pixi.environments]
dev = ["dev"]
  • Much improved pixi search output!

Added

Fixed

Performance

Documentation

New Contributors

v0.37.0 - 2024-11-18

18 Nov 12:43
fc90191
Compare
Choose a tag to compare

✨ Highlights

We now allow the use of prefix.dev channels with sharded repodata:

Running pixi search rubin-env using hyperfine on the default versus our channels gives these results:

Cache Status Channel Mean [ms] Relative
With cache https://prefix.dev/conda-forge 69.3 1.00
Without https://prefix.dev/conda-forge 389.5 5.62
With cache https://conda.anaconda.org/conda-forge 1043.3 15.06
Without https://conda.anaconda.org/conda-forge 2420.3 34.94

Breaking

  • Make sure that [activation.env] are not completely overridden by [target. tables, by @hameerabbasi in #2396

Changed

Documentation

Fixed

New Contributors

v0.36.0 - 2024-11-07

12 Nov 18:52
ce2345b
Compare
Choose a tag to compare

✨ Highlights

  • You can now pixi upgrade your project dependencies.
  • We've done a performance improvement on the prefix validation check, thus faster pixi run startup times.

Added

Documentation

Fixed

Performance

New Contributors

v0.35.0 - 2024-11-05

06 Nov 06:59
13f5350
Compare
Choose a tag to compare

✨ Highlights

pixi global now exposed binaries are not scripts anymore but actual executables.
Resulting in significant speedup and better compatibility with other tools.

Added

Changed

Documentation

Fixed

Refactor

New Contributors

v0.34.0

22 Oct 10:38
61d4eba
Compare
Choose a tag to compare

✨ Highlights

  • pixi global install now takes a flag --with, inspired by uv tool install. If you only want to add dependencies without exposing them, you can now run pixi global install ipython --with numpy --with matplotlib
  • Improved the output of pixi global subcommands
  • Many bug fixes

Added

Changed

Documentation

Fixed

Refactor

New Contributors

v0.33.0

16 Oct 09:31
975b123
Compare
Choose a tag to compare

✨ Highlights

This is the first release with the new pixi global implementation. It's a full reimplementation of pixi global where it now uses a manifest file just like pixi projects. This way you can declare your environments and save them to a VCS.

It also brings features like, adding dependencies to a global environment, and exposing multiple binaries from the same environment that are not part of the main installed packages.

Test it out with:

# Normal feature
pixi global install ipython

# New features
pixi global install \
    --environment science \           # Defined the environment name
    --expose scipython=ipython \      # Expose binaries under custom names
    ipython scipy                     # Define multiple dependencies for one environment

This should result in a manifest in $HOME/.pixi/manifests/pixi-global.toml:

version = 1

[envs.ipython]
channels = ["conda-forge"]
dependencies = { ipython = "*" }
exposed = { ipython = "ipython", ipython3 = "ipython3" }

[envs.science]
channels = ["conda-forge"]
dependencies = { ipython = "*", scipy = "*" }
exposed = { scipython = "ipython" }

πŸ“– Documentation

Checkout the updated documentation on this new feature:

Breaking changes

This release breaks some CLI commands for pixi global

Before v0.33 In v0.33.0 Comment
pixi global upgrade package pixi global update environment_name updates the environment to the highest versions possible within the spec from the manifest
pixi global upgrade-all pixi global update Updates all environments to the highest possible version within the spec from the manifest
pixi global remove pixi global uninstall remove has become the opposite of add and uninstall of install, thus remove only removes packages from an environment not the environment itself

v0.32.2 - 2024-10-16

16 Oct 07:24
5fa78cf
Compare
Choose a tag to compare

✨ Highlights

  • pixi self-update will only work on the binaries from the GitHub releases, avoiding accidentally breaking the installation.
  • We now support gcs:// conda registries.
  • No more broken PowerShell after using pixi shell.

Changed

Documentation

Fixed

Refactor

New Contributors

v0.33.0rc1

11 Oct 07:41
6b2adad
Compare
Choose a tag to compare
v0.33.0rc1 Pre-release
Pre-release

Installation:

pixi self-update --version 0.33.0rc1

# OR

curl -fsSL https://pixi.sh/install.sh | PIXI_VERSION=v0.33.0rc1 bash

✨ Highlights

This is a release candidate for the new pixi global implementation. It's a full reimplementation of pixi global where it now uses a manifest file just like pixi projects. This way you can declare your environments and save them to a VCS.

It also brings features like, adding dependencies to a global environment, and exposing multiple binaries from the same environment that are not part of the main installed packages.

Test it out with:

# Normal feature
pixi global install ipython

# New features
pixi global install \
    --environment science \           # Defined the environment name
    --expose scipython=ipython \      # Expose binaries under custom names
    ipython scipy                     # Define multiple dependencies for one environment

This should result in a manifest in $HOME/.pixi/manifests/pixi-global.toml:

version = 1

[envs.ipython]
channels = ["conda-forge"]
dependencies = { ipython = "*" }
exposed = { ipython = "ipython", ipython3 = "ipython3" }

[envs.science]
channels = ["conda-forge"]
dependencies = { ipython = "*", scipy = "*" }
exposed = { scipython = "ipython" }

πŸ“– Documentation

Checkout the updated documentation on this new feature:

v0.32.1 - 2024-10-08

08 Oct 12:18
fb050e0
Compare
Choose a tag to compare

Fixes

Documentation

Note

The task cache from inputs and outputs is most likely going to be invalidated, and thus will be rebuild. This had to do with a difference in the hash of a std::Path in this version of Rust.