Skip to content

v0.17.0

Compare
Choose a tag to compare
@baszalmstra baszalmstra released this 01 Feb 11:23
· 358 commits to main since this release

✨ Highlights

This release contains some big changes to rattler:

Consistent clobbering

Rattler installs packages in parallel but this was at the cost of not being able to resolve files properly that existed in multiple packages. With this release we fixed this issue by creating a consistent clobbering experience.
When a file is clobbered (installed by multiple packages) the last package in the topological ordering wins. This information is also recorded in the prefix itself which means that even if packages are added or removed from the environment the order remains consistent.

reqwest-middleware-client

The AuthenticatedClient has been rewritten by @vlad-ivanov-name. Instead of having a custom client for network requests we now use the reqwest-middleware crate. The rattler implementation adds a middleware that handles authentication. This changes makes it easier to integrate with other crates that use reqwest for network requests, and it allows users to add their own middleware.

Lock-file v4

The lock-file format has been updated to version 4. Originally our implementation was semi-compatible with conda-lock. We wanted to stay as close as possible to this format because it was already an established standard. However, with version 2 and 3 of our implementation, we started to diverge more and more.
We felt like the goals between both formats also started to diverge more and more so with version 4 we decided to completely abandon the conda-lock format and create our own. This allows us to support for instance multiple environments in a single file.

For more information about the lock-file format and the differences between conda-lock you can read the documentation.

Note that all old formats (including the original conda-lock format) can still be parsed by rattler.

📃 Details

Added

  • Add get_windows_launcher function by @wolfv (#477)
  • Expose get_windows_launcher function by @wolfv (#477)
  • Consistent clobbering & removal of __pycache__ by @wolfv (#437)
  • Add name() to Channel by @ruben-arts (#495)
  • Add timeout parameter to the solver by @wolfv (#499)
  • Add a very simple basic test to validate that we can at least parse netrc properly by @mariusvniekerk (#503)

Changed

Fixed

  • Copy over file permissions after reflink by @orhun (#485)
  • Fix clippy and deprecation warnings by @wolfv (#490)
  • Do not unwrap as much in clobberregistry by @wolfv (#489)
  • Fix warning for deref on a double reference by @wolfv (#493)
  • Fix self-clobbering when updating a package by @wolfv (#494)
  • Fix netrc parsing into BasicAuth by @wolfv (#506)

New Contributors