Releases: prefix-dev/pixi
v0.37.0 - 2024-11-18
✨ 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
- Allow using sharded repodata by @baszalmstra in #2467
Documentation
- Update ros2.md turtlesim section by @nbbrooks in #2442
- Update pycharm.md to show optional installation by @plainerman in #2487
- Fix typo in documentation by @saraedum in #2496
- Update pixi install output by @LiamConnors in #2495
Fixed
- Incorrect python version was used in some parts of the solve by @tdejager in #2481
- Wrong description on pixi upgrade by @notPlancha in #2483
- Extra test for mismatch in python versions by @tdejager in #2485
- Keep
build
inpixi upgrade
by @ruben-arts in #2476
New Contributors
- @saraedum made their first contribution in #2496
- @plainerman made their first contribution in #2487
- @hameerabbasi made their first contribution in #2396
- @nbbrooks made their first contribution in #2442
v0.36.0 - 2024-11-07
✨ 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
- Add powerpc64le target to trampoline by @ruben-arts in #2419
- Add trampoline tests again by @Hofer-Julian in #2420
- Add
pixi upgrade
by @Hofer-Julian in #2368 - Add platform fallback win-64 for win-arm64 by @chawyehsu in #2427
- Add
--prepend
option forpixi project channel add
by @mrswastik-robot in #2447
Documentation
- Fix cli basic usage example by @lucascolley in #2432
- Update python tutorial by @LiamConnors in #2452
- Improve
pixi global
docs by @Hofer-Julian in #2437
Fixed
- Use
--silent
instead of--no-progress-meter
for oldcurl
by @jaimergp in #2428 - Search should return latest package across all platforms by @nichmor in #2424
- Trampoline unwraps by @ruben-arts in #2422
- PyPI Index usage (regression in v0.35.0) by @tdejager in #2465
- PyPI git dependencies (regression in v0.35.0) by @wolfv in #2438
- Tolerate pixi file errors (regression in v0.35.0) by @jvenant in #2457
- Make sure tasks are fetched for best platform by @jjjermiah in #2446
Performance
- Quick prefix validation check by @ruben-arts in #2400
New Contributors
- @jvenant made their first contribution in #2457
- @mrswastik-robot made their first contribution in #2447
- @LiamConnors made their first contribution in #2452
v0.35.0 - 2024-11-05
✨ Highlights
pixi global
now exposed binaries are not scripts anymore but actual executables.
Resulting in significant speedup and better compatibility with other tools.
Added
- Add language packages with minor pinning by default by @ruben-arts in #2310
- Add grouping for exposing and removing by @nichmor in #2387
- Add trampoline for pixi global by @Hofer-Julian and @nichmor in #2381
- Adding SCM option for init command by @alvgaona in #2342
- Create
.pixi/.gitignore
containing*
by @maresb in #2361
Changed
- Use the same package cache folder by @nichmor in #2335zx
- Disable progress in non tty by @ruben-arts in #2308
- Improve global install reporting by @Hofer-Julian in #2395
- Suggest fix in platform error message by @maurosilber in #2404
- Upgrading uv to
0.4.30
by @tdejager in #2372
Documentation
- Add pybind11 example by @alvgaona in #2324
- Replace build with uv in pybind11 example by @alvgaona in #2341
- Fix incorrect statement about env location by @opcode81 in #2370
Fixed
- Global update reporting by @Hofer-Julian in #2352
- Correctly display unrequested environments on
task list
by @jjjermiah in #2402
Refactor
- Use built in string methods by @KGrewal1 in #2348
- Reorganize integration tests by @Hofer-Julian in #2408
- Reimplement barrier cell on OnceLock by @KGrewal1 in #2347
New Contributors
v0.34.0
✨ Highlights
pixi global install
now takes a flag--with
, inspired byuv tool install
. If you only want to add dependencies without exposing them, you can now runpixi global install ipython --with numpy --with matplotlib
- Improved the output of
pixi global
subcommands - Many bug fixes
Added
- Add timeouts by @Hofer-Julian in #2311
Changed
-
Global update should add new executables by @nichmor in #2298
-
Add
pixi global install --with
by @Hofer-Julian in #2332
Documentation
-
Document where
pixi-global.toml
can be found by @Hofer-Julian in #2304 -
Add ros noetic example by @ruben-arts in #2271
-
Add nichita and julian to CITATION.cff by @Hofer-Julian in #2327
-
Improve keyring documentation to use pixi global by @olivier-lacroix in #2318
Fixed
-
pixi global upgrade-all
error message by @Hofer-Julian in #2296 -
Select correct run environment by @ruben-arts in #2301
-
Adapt channels to work with newest rattler-build version by @Hofer-Julian in #2306
-
Hide obsolete commands in help page of
pixi global
by @chawyehsu in #2320 -
Typecheck all tests by @Hofer-Julian in #2328
Refactor
- Improve upload errors by @ruben-arts in #2303
New Contributors
v0.33.0
✨ 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:
- Main documentation on this tag: https://pixi.sh/v0.33.0/
- Global CLI documentation: https://pixi.sh/v0.33.0/reference/cli/#global
- The implementation documentation: https://pixi.sh/v0.33.0/features/global_tools/
- The initial design proposal: https://pixi.sh/v0.33.0/design_proposals/pixi_global_manifest/
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
✨ 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
- Add support for
gcs://
conda registries by @clement-chaneching in #2263
Documentation
- Small fixes in tutorials/python.md by @carschandler in #2252
- Update
pixi list
docs by @Hofer-Julian in #2269
Fixed
- Bind ctrl c listener so that it doesn't interfere on powershell by @wolfv in #2260
- Explicitly run default environment by @ruben-arts in #2273
- Parse env name on adding by @ruben-arts in #2279
Refactor
- Make self-update a compile time feature by @freundTech in #2213
New Contributors
- @clement-chaneching made their first contribution in #2263
- @freundTech made their first contribution in #2213
v0.33.0rc1
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:
- Main documentation on this tag: https://pixi.sh/v0.33.0rc1/
- Global CLI documentation: https://pixi.sh/v0.33.0rc1/reference/cli/#global
- The implementation documentation: https://pixi.sh/v0.33.0rc1/features/global_tools/
- The initial design proposal: https://pixi.sh/v0.33.0rc1/design_proposals/pixi_global_manifest/
v0.32.1 - 2024-10-08
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.
v0.32.0 - 2024-10-08
✨ Highlights
The biggest fix in this PR is the move to the latest rattler as it came with some major bug fixes for macOS and Rust 1.81 compatibility.
Changed
- Correctly implement total ordering for dependency provider by @tdejager in rattler/#892
Fixed
- Fixed self-clobber issue when up/down grading packages by @wolfv in rattler/#893
- Check environment name before returning not found print by @ruben-arts in #2198
- Turn off symlink follow for task cache by @ruben-arts in #2209
v0.31.0 - 2024-10-03
✨ Highlights
Thanks to our maintainer @baszamstra!
He sped up the resolver for all cases we could think of in #2162
Check the result of times it takes to solve the environments in our test set:
Added
- Add
nodefaults
to imported conda envs by @ruben-arts in #2097 - Add newline to
.gitignore
by @ruben-arts in #2095 - Add
--no-activation
option to prevent env activation during global install/upgrade by @183amir in #1980 - Add
--priority
arg toproject channel add
by @minrk in #2086
Changed
- Use pixi spec for conda environment yml by @ruben-arts in #2096
- Follow symlinks while walking files by @0xbe7a in #2141
Documentation
- Community: add array-api-extra by @lucascolley in #2107
- Add minimal constructor example by @bollwyvl in #2102
- Add description for
pixi update --json
by @scottamain in #2160 - Fixes backticks for doc strings by @rachfop in #2174
Fixed
- Sort exported conda explicit spec topologically by @synapticarbors in #2101
--import env_file
breaks channel priority by @fecet in #2113- Allow exact yanked pypi packages by @nichmor in #2116
- Check if files are same in
self-update
by @apoorvkh in #2132 get_or_insert_nested_table
by @Hofer-Julian in #2167- Improve
install.sh
PATH handling and general robustness by @Arcitec in #2189 - Output tasks on
pixi run
without input by @ruben-arts in #2193
Performance
- Significantly speed up conda resolution by @baszalmstra in #2162
New Contributors
- @Arcitec made their first contribution in #2189
- @rachfop made their first contribution in #2174
- @scottamain made their first contribution in #2160
- @apoorvkh made their first contribution in #2132
- @0xbe7a made their first contribution in #2141
- @fecet made their first contribution in #2113
- @minrk made their first contribution in #2086
- @183amir made their first contribution in #1980
- @lucascolley made their first contribution in #2107