Skip to content

Latest commit

 

History

History
657 lines (506 loc) · 40.7 KB

CHANGELOG.md

File metadata and controls

657 lines (506 loc) · 40.7 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.14.0] - 2024-02-15

✨ Highlights

Now, solve-groups can be used in [environments] to ensure dependency alignment across different environments without simultaneous installation. This feature is particularly beneficial for managing identical dependencies in test and production environments. Example configuration:

[environments]
test = { features = ["prod", "test"], solve-groups = ["group1"] }
prod = { features = ["prod"], solve-groups = ["group1"] }

This setup simplifies managing dependencies that must be consistent across test and production.

📃 Details

Added

  • Add index field to pypi requirements by @vlad-ivanov-name in #784
  • Add -f/--feature to the pixi project platform command by @ruben-arts in #785
  • Warn user when unused features are defined by @ruben-arts in #762
  • Disambiguate tasks interactive by @baszalmstra in #766
  • Solve groups for conda by @baszalmstra in #783
  • Pypi solve groups by @baszalmstra in #802
  • Enable reflinks by @baszalmstra in #729

Changed

  • Add environment name to the progress by @ruben-arts in #788
  • Set color scheme by @ruben-arts in #773
  • Update lock on pixi list by @ruben-arts in #775
  • Use default env if task available in it. by @ruben-arts in #772
  • Color environment name in install step by @ruben-arts in #795

Fixed

  • Running cuda env and using those tasks. by @ruben-arts in #764
  • Make svg a gif by @ruben-arts in #782
  • Fmt by @ruben-arts
  • Check for correct platform in task env creation by @ruben-arts in #759
  • Remove using source name by @ruben-arts in #765
  • Auto-guessing of the shell in the shell-hook by @ruben-arts in prefix-dev#811
  • sdist with direct references by @nichmor in prefix-dev#813

Miscellaneous

  • Add slim-trees to community projects by @pavelzw in #760
  • Add test to default env in polarify example
  • Add multiple machine example by @ruben-arts in #757
  • Add more documentation on environments by @ruben-arts in #790
  • Update rip and rattler by @wolfv in #798
  • Rattler 0.18.0 by @baszalmstra in #805
  • Rip 0.8.0 by @nichmor in #806
  • Fix authentication path by @pavelzw in #796
  • Initial addition of integration test by @ruben-arts in prefix-dev#804

New Contributors

  • @vlad-ivanov-name made their first contribution in #784
  • @nichmor made their first contribution in #806

Full commit history

[0.13.0] - 2024-02-01

✨ Highlights

This release is pretty crazy in amount of features! The major ones are:

  • We added support for multiple environments. 🎉 Checkout the documentation
  • We added support for sdist installation, which greatly improves the amount of packages that can be installed from PyPI. 🚀

Important

Renaming of PIXI_PACKAGE_* variables:

PIXI_PACKAGE_ROOT -> PIXI_PROJECT_ROOT
PIXI_PACKAGE_NAME ->  PIXI_PROJECT_NAME
PIXI_PACKAGE_MANIFEST -> PIXI_PROJECT_MANIFEST
PIXI_PACKAGE_VERSION -> PIXI_PROJECT_VERSION
PIXI_PACKAGE_PLATFORMS -> PIXI_ENVIRONMENT_PLATFORMS

Check documentation here: https://pixi.sh/environment/

Important

The .pixi/env/ folder has been moved to accommodate multiple environments. If you only have one environment it is now named .pixi/envs/default.

📃 Details

Added

  • Add support for multiple environment:

    • Update to rattler lock v4 by @baszalmstra in #698
    • Multi-env installation and usage by @baszalmstra in #721
    • Update all environments in the lock-file when requesting an environment by @baszalmstra in #711
    • Run tasks in the env they are defined by @baszalmstra in #731
    • polarify use-case as an example by @ruben-arts in #735
    • Make environment name parsing strict by @ruben-arts in #673
    • Use named environments (only "default" for now) by @ruben-arts in #674
    • Use task graph instead of traversal by @baszalmstra in #725
    • Multi env documentation by @ruben-arts in #703
    • pixi info -e/--environment option by @ruben-arts in #676
    • pixi channel add -f/--feature option by @ruben-arts in #700
    • pixi channel remove -f/--feature option by @ruben-arts in #706
    • pixi remove -f/--feature option by @ruben-arts in #680
    • pixi task list -e/--environment option by @ruben-arts in #694
    • pixi task remove -f/--feature option by @ruben-arts in #694
    • pixi install -e/--environment option by @ruben-arts in #722
  • Support for sdists in pypi-dependencies by @tdejager in #664

  • Add pre-release support to pypi-dependencies by @tdejager in #716

  • Support adding dependencies for project's unsupported platforms by @orhun in #668

  • Add pixi list command by @hadim in #665

  • Add pixi shell-hook command by @orhun in #672#679 #684

  • Use env variable to configure locked, frozen and color by @hadim in #726

  • pixi self-update by @hadim in #675

  • Add PIXI_NO_PATH_UPDATE for PATH update suppression by @chawyehsu in #692

  • Set the cache directory by @ruben-arts in #683

Changed

  • Use consistent naming for tests module by @orhun in #678
  • Install pixi and add to the path in docker example by @ruben-arts in #743
  • Simplify the deserializer of PyPiRequirement by @orhun in #744
  • Use tabwriter instead of comfy_table by @baszalmstra in #745
  • Document environment variables by @ruben-arts in #746

Fixed

  • Quote part of the task that has brackets ([ or ]) by @JafarAbdi in #677
  • Package clobber and __pycache__ removal issues by @wolfv in #573
  • Non-global reqwest client by @tdejager in #693
  • Fix broken pipe error during search by @orhun in #699
  • Make pixi search result correct by @chawyehsu in #713
  • Allow the tasks for all platforms to be shown in pixi info by @ruben-arts in #728
  • Flaky tests while installing pypi dependencies by @baszalmstra in #732
  • Linux install script by @mariusvniekerk in #737
  • Download wheels in parallel to avoid deadlock by @baszalmstra in #752

New Contributors

  • @JafarAbdi made their first contribution in #677
  • @mariusvniekerk made their first contribution in #737

Full commit history

[0.12.0] - 2024-01-15

✨ Highlights

  • Some great community contributions, pixi global upgrade, pixi project version commands, a PIXI_HOME variable.
  • A ton of refactor work to prepare for the multi-environment feature.
    • Note that there are no extra environments created yet, but you can just specify them in the pixi.toml file already.
    • Next we'll build the actual environments.

📃 Details

Added

  • Add global upgrade command to pixi by @trueleo in #614
  • Add configurable PIXI_HOME by @chawyehsu in #627
  • Add --pypi option to pixi remove by @marcelotrevisani in prefix-dev#602
  • PrioritizedChannels to specify channel priority by @ruben-arts in prefix-dev#658
  • Add project version {major,minor,patch} CLIs by @hadim in prefix-dev#633

Changed

  • Refactored project model using targets, features and environments by @baszalmstra in prefix-dev#616
  • Move code from Project to Environment by @baszalmstra in #630
  • Refactored system-requirements from Environment by @baszalmstra in #632
  • Extract activation.scripts into Environment by @baszalmstra in #659
  • Extract pypi-dependencies from Environment by @baszalmstra in prefix-dev#656
  • De-serialization of features and environments by @ruben-arts in prefix-dev#636

Fixed

  • Make install.sh also work with wget if curl is not available by @wolfv in #644
  • Use source build for rattler by @ruben-arts
  • Check for pypi-dependencies before amending the pypi purls by @ruben-arts in #661
  • Don't allow the use of reflinks by @ruben-arts in #662

Removed

  • Remove windows and unix system requirements by @baszalmstra in #635

Documentation

  • Document the channel logic by @ruben-arts in prefix-dev#610
  • Update the instructions for installing on Arch Linux by @orhun in prefix-dev#653
  • Update Community.md by @KarelZe in prefix-dev#654
  • Replace contributions.md with contributing.md and make it more standardized by @ruben-arts in prefix-dev#649
  • Remove windows and unix system requirements by @baszalmstra in prefix-dev#635
  • Add CODE_OF_CONDUCT.md by @ruben-arts in prefix-dev#648
  • Removed remaining .ps1 references by @bahugo in prefix-dev#643

New Contributors

Full Changelog: https://github.com/prefix-dev/pixi/compare/v0.11.0...v0.12.0

[0.11.1] - 2024-01-06

📃 Details

Fixed

  • Upgrading rattler to fix pixi auth in #642

[0.11.0] - 2024-01-05

✨ Highlights

  • Lots of important and preparations for the pypi sdist and multi environment feature
  • Lots of new contributors that help pixi improve!

📃 Details

Added

  • Add new commands for pixi project {version|channel|platform|description} by @hadim in #579
  • Add dependabot.yml by @pavelzw in #606

Changed

  • winget-releaser gets correct identifier by @ruben-arts in #561
  • Task run code by @baszalmstra in #556
  • No ps1 in activation scripts by @ruben-arts in #563
  • Changed some names for clarity by @tdejager in #568
  • Change font and make it dark mode by @ruben-arts in #576
  • Moved pypi installation into its own module by @tdejager in #589
  • Move alpha to beta feature and toggle it off with env var by @ruben-arts in #604
  • Improve UX activation scripts by @ruben-arts in #560
  • Add sanity check by @tdejager in #569
  • Refactor manifest by @ruben-arts in #572
  • Improve search by @Johnwillliam in #578
  • Split pypi and conda solve steps by @tdejager in #601

Fixed

  • Save file after lockfile is correctly updated by @ruben-arts in #555
  • Limit the number of concurrent solves by @baszalmstra in #571
  • Use project virtual packages in add command by @msegado in #609
  • Improved mapped dependency by @ruben-arts in #574

Documentation

  • Change font and make it dark mode by @ruben-arts in #576
  • typo: no ps1 in activation scripts by @ruben-arts in #563
  • Document adding CUDA to system-requirements by @ruben-arts in #595
  • Multi env proposal documentation by @ruben-arts in #584
  • Fix multiple typos in configuration.md by @SeaOtocinclus in #608
  • Add multiple machines from one project example by @pavelzw in #605

New Contributors

  • @hadim made their first contribution in #579
  • @msegado made their first contribution in #609
  • @Johnwillliam made their first contribution in #578
  • @SeaOtocinclus made their first contribution in #608

Full Changelog: https://github.com/prefix-dev/pixi/compare/v0.10.0...v0.11.0

[0.10.0] - 2023-12-8

Highlights

  • Better pypi-dependencies support, now install even more of the pypi packages.
  • pixi add --pypi command to add a pypi package to your project.

Details

Added

  • Use range (>=1.2.3, <1.3) when adding requirement, instead of 1.2.3.* by @baszalmstra in prefix-dev#536
  • Update rip to fix by @tdejager in prefix-dev#543
    • Better Bytecode compilation (.pyc) support by @baszalmstra
    • Recognize .data directory headers by @baszalmstra
  • Also print arguments given to a pixi task by @ruben-arts in prefix-dev#545
  • Add pixi add --pypi command by @ruben-arts in prefix-dev#539

Fixed

  • space in global install path by @ruben-arts in prefix-dev#513
  • Glibc version/family parsing by @baszalmstra in prefix-dev#535
  • Use build and host specs while getting the best version by @ruben-arts in prefix-dev#538

Miscellaneous

New Contributors

Full Changelog: https://github.com/prefix-dev/pixi/compare/v0.9.1...v0.10.0

[0.9.1] - 2023-11-29

Highlights

Details

Fixed

  • Remove attr (unused) and update all dependencies by @wolfv in prefix-dev#510
  • Remove empty folders on python uninstall by @baszalmstra in prefix-dev#512
  • Bump rip to add scripts by @baszalmstra in prefix-dev#517

Full Changelog: https://github.com/prefix-dev/pixi/compare/v0.9.0...v0.9.1

[0.9.0] - 2023-11-28

Highlights

  • You can now run pixi remove, pixi rm to remove a package from the environment
  • Fix pip install -e issue that was created by release v0.8.0 : prefix-dev#507

Details

Added

Fixed

  • Install entrypoints for [pypi-dependencies] @baszalmstra in prefix-dev#508
  • Only uninstall pixi installed packages by @baszalmstra in prefix-dev#509

Full Changelog: https://github.com/prefix-dev/pixi/compare/v0.8.0...v0.9.0

[0.8.0] - 2023-11-27

Highlights

  • 🎉🐍[pypi-dependencies] ALPHA RELEASE🐍🎉, you can now add PyPI dependencies to your pixi project.
  • UX of pixi run has been improved with better errors and showing what task is run.

Note

[pypi-dependencies] support is still incomplete, missing functionality is listed here: https://github.com/orgs/prefix-dev/projects/6. Our intent is not to have 100% feature parity with pip, our goal is that you only need pixi for both conda and pypi packages alike.

Details

Added

Fixed

Miscellaneous

New Contributors

Full Changelog: https://github.com/prefix-dev/pixi/compare/v0.7.0...v0.8.0

[0.7.0] - 2023-11-14

Highlights

  • Channel priority: channels = ["conda-forge", "pytorch"] All packages found in conda-forge will not be taken from pytorch.
  • Channel specific dependencies: pytorch = { version="*", channel="pytorch"}
  • Autocompletion on pixi run <TABTAB>
  • Moved all pixi documentation into this repo, try it with pixi run docs!
  • Lots of new contributors!

Details

Added

  • Bump rattler to its newest version by @ruben-arts in prefix-dev#395
    • Some notable changes:
      • Add channel priority (If a package is found in the first listed channel it will not be looked for in the other channels).
      • Fix JLAP using wrong hash.
      • Lockfile forward compatibility error.
  • Add nushell support by @wolfv in prefix-dev#360
  • Autocomplete tasks on pixi run for bash and zsh by @ruben-arts in prefix-dev#390
  • Add prefix location file to avoid copy error by @ruben-arts in prefix-dev#422
  • Channel specific dependencies python = { version = "*" channel="conda-forge" } by @ruben-arts in prefix-dev#439

Changed

  • project.version as optional field in the pixi.toml by @ruben-arts in prefix-dev#400

Fixed

  • Deny unknown fields in pixi.toml to help users find errors by @ruben-arts in prefix-dev#396
  • install.sh to create dot file if not present by @humphd in prefix-dev#408
  • Ensure order of repodata fetches by @baszalmstra in prefix-dev#405
  • Strip Linux binaries by @baszalmstra in prefix-dev#414
  • Sort task list by @ruben-arts in prefix-dev#431
  • Fix global install path on windows by @ruben-arts in prefix-dev#449
  • Let PIXI_BIN_PATH use backslashes by @Hofer-Julian in prefix-dev#442
  • Print more informative error if created file is empty by @traversaro in prefix-dev#447

Docs

  • Move to mkdocs with all documentation by @ruben-arts in prefix-dev#435
  • Fix typing errors by @FarukhS52 in prefix-dev#426
  • Add social cards to the pages by @ruben-arts in prefix-dev#445
  • Enhance README.md: Added Table of Contents, Grammar Improvements by @adarsh-jha-dev in prefix-dev#421
  • Adding conda-auth to community examples by @travishathaway in prefix-dev#433
  • Minor grammar correction by @tylere in prefix-dev#406
  • Make capitalization of tab titles consistent by @tylere in prefix-dev#407

New Contributors

Full Changelog: https://github.com/prefix-dev/pixi/compare/v0.6.0...v0.7.0

[0.6.0] - 2023-10-17

Highlights

This release fixes some bugs and adds the --cwd option to the tasks.

Details

Fixed

Changed

Added

  • Add the current working directory (--cwd) in pixi tasks by @ruben-arts in prefix-dev#380

Full Changelog: https://github.com/prefix-dev/pixi/compare/v0.5.0...v0.6.0

[0.5.0] - 2023-10-03

Highlights

We rebuilt pixi shell, fixing the fact that your rc file would overrule the environment activation.

Details

Fixed

  • Change how shell works and make activation more robust by @wolfv in prefix-dev#316
  • Documentation: use quotes in cli by @pavelzw in prefix-dev#367

Added

Full Changelog: https://github.com/prefix-dev/pixi/compare/v0.4.0...v0.5.0

[0.4.0] - 2023-09-22

Highlights

This release adds the start of a new cli command pixi project which will allow users to interact with the project configuration from the command line.

Details

Fixed

  • Align with latest rattler version 0.9.0 by @ruben-arts in prefix-dev#350

Added

  • Add codespell (config, workflow) to catch typos + catch and fix some of those by @yarikoptic in prefix-dev#329
  • remove atty and use stdlib by @wolfv in prefix-dev#337
  • xtsci-dist to Community.md by @HaoZeke in prefix-dev#339
  • ribasim to Community.md by @Hofer-Julian in prefix-dev#340
  • LFortran to Community.md by @wolfv in prefix-dev#341
  • Give tip to resolve virtual package issue by @ruben-arts in prefix-dev#348
  • pixi project channel add subcommand by @baszalmstra and @ruben-arts in prefix-dev#347

New Contributors

Full Changelog: https://github.com/prefix-dev/pixi/compare/v0.3.0...v0.4.0

[0.3.0] - 2023-09-11

Highlights

This releases fixes a lot of issues encountered by the community as well as some awesome community contributions like the addition of pixi global list and pixi global remove.

Details

Fixed

  • Properly detect Cuda on linux using our build binaries, by @baszalmstra (#290)
  • Package names are now case-insensitive, by @baszalmstra (#285)
  • Issue with starts-with and compatibility operator, by @tdejager (#296)
  • Lock files are now consistently sorted, by @baszalmstra (#295 & #307)
  • Improved xonsh detection and powershell env-var escaping, by @wolfv (#307)
  • system-requirements are properly filtered by platform, by @ruben-arts (#299)
  • Powershell completion install script, by @chawyehsu (#325)
  • Simplified and improved shell quoting, by @baszalmstra (#313)
  • Issue where platform specific subdirs were required, by @baszalmstra (#333)
  • thread 'tokio-runtime-worker' has overflowed its stack issue, by @baszalmstra (#28)

Added

  • Certificates from the OS certificate store are now used, by @baszalmstra (#310)
  • pixi global list and pixi global remove commands, by @cjfuller (#318)

Changed

  • --manifest-path must point to a pixi.toml file, by @baszalmstra (#324)

[0.2.0] - 2023-08-22

Highlights

  • Added pixi search command to search for packages, by @Wackyator. (#244)
  • Added target specific tasks, eg. [target.win-64.tasks], by @ruben-arts. (#269)
  • Flaky install caused by the download of packages, by @baszalmstra. (#281)

Details

Fixed

  • Install instructions, by @baszalmstra. (#258)
  • Typo in getting started, by @RaulPL. (#266)
  • Don't execute alias tasks, by @baszalmstra. (#274)

Added

  • Rerun example, by @ruben-arts. (#236)
  • Reduction of pixi's binary size, by @baszalmstra (#256)
  • Updated pixi banner, including webp file for faster loading, by @baszalmstra. (#257)
  • Set linguist attributes for pixi.lock automatically, by @spenserblack. (#265)
  • Contribution manual for pixi, by @ruben-arts. (#268)
  • GitHub issue templates, by @ruben-arts. (#271)
  • Links to prefix.dev in readme, by @tdejager. (#279)

[0.1.0] - 2023-08-11

As this is our first Semantic Versioning release, we'll change from the prototype to the developing phase, as semver describes. A 0.x release could be anything from a new major feature to a breaking change where the 0.0.x releases will be bugfixes or small improvements.

Highlights

  • Update to the latest rattler version, by @baszalmstra. (#249)

Details

Fixed

  • Only add shebang to activation scripts on unix platforms, by @baszalmstra. (#250)
  • Use official crates.io releases for all dependencies, by @baszalmstra. (#252)

[0.0.8] - 2023-08-01

Highlights

  • Much better error printing using miette, by @baszalmstra. (#211)
  • You can now use pixi on aarch64-linux, by @pavelzw. (#233)
  • Use the Rust port of libsolv as the default solver, by @ruben-arts. (#209)

Details

Added

  • Add mention to condax in the docs, by @maresb. (#207)
  • Add brew installation instructions, by @wolfv. (#208)
  • Add activation.scripts to the pixi.toml to configure environment activation, by @ruben-arts. (#217)
  • Add pixi upload command to upload packages to prefix.dev, by @wolfv. (#127)
  • Add more metadata fields to the pixi.toml, by @wolfv. (#218)
  • Add pixi task list to show all tasks in the project, by @tdejager. (#228)
  • Add --color to configure the colors in the output, by @baszalmstra. (#243)
  • Examples, ROS2 Nav2, JupyterLab and QGIS, by @ruben-arts.

Fixed

  • Add trailing newline to pixi.toml and .gitignore, by @pavelzw. (#216)
  • Deny unknown fields and rename license-file in pixi.toml, by @wolfv. (#220)
  • Overwrite PS1 variable when going into a pixi shell, by @ruben-arts. (#201)

Changed

  • Install environment when adding a dependency using pixi add, by @baszalmstra. (#213)
  • Improve and speedup CI, by @baszalmstra. (#241)

[0.0.7] - 2023-07-11

Highlights

  • Transitioned the run subcommand to use the deno_task_shell for improved cross-platform functionality. More details in the Deno Task Runner documentation.
  • Added an info subcommand to retrieve system-specific information understood by pixi.

BREAKING CHANGES

  • [commands] in the pixi.toml is now called [tasks]. (#177)

Details

Added

  • The pixi info command to get more system information by @wolfv in (#158)
  • Documentation on how to use the cli by @ruben-arts in (#160)
  • Use the deno_task_shell to execute commands in pixi run by @baszalmstra in (#173)
  • Use new solver backend from rattler by @baszalmstra in (#178)
  • The pixi command command to the cli by @tdejager in (#177)
  • Documentation on how to use the pixi auth command by @wolfv in (#183)
  • Use the newest rattler 0.6.0 by @baszalmstra in (#185)
  • Build with pixi section to the documentation by @tdejager in (#196)

Fixed

  • Running tasks sequentially when using depends_on by @tdejager in (#161)
  • Don't add PATH variable where it is already set by @baszalmstra in (#169)
  • Fix README by @Hofer-Julian in (#182)
  • Fix Ctrl+C signal in pixi run by @tdejager in (#190)
  • Add the correct license information to the lockfiles by @wolfv in (#191)

[0.0.6] - 2023-06-30

Highlights

Improving the reliability is important to us, so we added an integration testing framework, we can now test as close as possible to the CLI level using cargo.

Details

Added

  • An integration test harness, to test as close as possible to the user experience but in rust. (#138, #140, #156)
  • Add different levels of dependencies in preparation for pixi build, allowing host- and build- dependencies (#149)

Fixed

  • Use correct folder name on pixi init (#144)
  • Fix windows cli installer (#152)
  • Fix global install path variable (#147)
  • Fix macOS binary notarization (#153)

[0.0.5] - 2023-06-26

Fixing Windows installer build in CI. (#145)

[0.0.4] - 2023-06-26

Highlights

A new command, auth which can be used to authenticate the host of the package channels. A new command, shell which can be used to start a shell in the pixi environment of a project. A refactor of the install command which is changed to global install and the install command now installs a pixi project if you run it in the directory. Platform specific dependencies using [target.linux-64.dependencies] instead of [dependencies] in the pixi.toml

Lots and lots of fixes and improvements to make it easier for this user, where bumping to the new version of rattler helped a lot.

Details

Added

  • Platform specific dependencies and helpful error reporting on pixi.toml issues(#111)
  • Windows installer, which is very useful for users that want to start using pixi on windows. (#114)
  • shell command to use the pixi environment without pixi run. (#116)
  • Verbosity options using -v, -vv, -vvv (#118)
  • auth command to be able to login or logout of a host like repo.prefix.dev if you're using private channels. (#120)
  • New examples: CPP sdl: #121, Opencv camera calibration #125
  • Apple binary signing and notarization. (#137)

Changed

  • pixi install moved to pixi global install and pixi install became the installation of a project using the pixi.toml (#124)

Fixed