Releases: prefix-dev/pixi
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
v0.30.0 - 2024-09-19
β¨ Highlights
I want to thank @synapticarbors and @abkfenris for starting the work on pixi project export
.
Pixi now supports the export of a conda environment.yml
file and a conda explicit specification file.
This is a great addition to the project and will help users to share their projects with other non pixi users.
Added
- Export conda explicit specification file from project by @synapticarbors in #1873
- Add flag to
pixi search
by @Hofer-Julian in #2018 - Adds the ability to set the index strategy by @tdejager in #1986
- Export conda
environment.yml
by @abkfenris in #2003
Changed
- Improve examples/docker by @jennydaman in #1965
- Minimal pre-commit tasks by @Hofer-Julian in #1984
- Improve error and feedback when target does not exist by @tdejager in #1961
- Move the rectangle using a mouse in SDL by @certik in #2069
Documentation
- Update cli.md by @xela-95 in #2047
- Update
system-requirements
information by @ruben-arts in #2079 - Append to file syntax in task docs by @nicornk in #2013
- Change documentation of pixi upload to refer to correct API endpoint by @traversaro in #2074
Testing
- Add downstream nerfstudio test by @tdejager in #1996
- Run pytests in parallel by @tdejager in #2027
- Testing common wheels by @tdejager in #2031
Fixed
- Lock file is always outdated for pypi path dependencies by @nichmor in #2039
- Fix error message for export conda explicit spec by @synapticarbors in #2048
- Use
conda-pypi-map
for feature channels by @nichmor in #2038 - Constrain feature platforms in schema by @bollwyvl in #2055
- Split tag creation functions by @tdejager in #2062
- Tree print to pipe by @ruben-arts in #2064
subdirectory
in pypi url by @ruben-arts in #2065- Create a GUI application on Windows, not Console by @certik in #2067
- Make dashes underscores in python package names by @ruben-arts in #2073
- Give better errors on broken
pyproject.toml
by @ruben-arts in #2075
Refactor
- Stop duplicating
strip_channel_alias
from rattler by @Hofer-Julian in #2017 - Follow-up wheels tests by @Hofer-Julian in #2063
- Integration test suite by @Hofer-Julian in #2081
- Remove
psutils
by @Hofer-Julian in #2083 - Add back older caching method by @tdejager in #2046
- Release script by @Hofer-Julian in #1978
- Activation script by @Hofer-Julian in #2014
- Pins python version in add_pypi_functionality by @tdejager in #2040
- Improve the lock_file_usage flags and behavior. by @ruben-arts in #2078
- Move matrix to workflow that it is used in by @tdejager in #1987
- Refactor manifest into more generic approach by @nichmor in #2015