Py-rattler

Latest version: v0.8.2

Safety actively analyzes 685838 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 4

0.10.0

✨ Highlights

The solver has been renamed and moved to its own repository: [resolvo](https://github.com/mamba-org/resolvo).
With the latest changes to the python bindings you can now download repodata and solve environments!
Still no official release of the bindings though, but getting closer every day.

📃 Details

Added

* add initial nushell support by wolfv in [271](https://github.com/conda/rattler/pull/271)

Changed

* the solver has been extracted in its own package: resolvo by baszalmstra in [349](https://github.com/conda/rattler/pull/349) & [#350](https://github.com/conda/rattler/pull/350)

Fixed

* Change solver implementation doc comment by nichmor in [352](https://github.com/conda/rattler/pull/352)

🐍 Python

* add more py-rattler types by Wackyator in [348](https://github.com/conda/rattler/pull/348)
* add fetch repo data to py-rattler by Wackyator in [334](https://github.com/conda/rattler/pull/334)
* use SparseRepoData in fetch_repo_data by Wackyator in [359](https://github.com/conda/rattler/pull/359)
* add solver by Wackyator in [361](https://github.com/conda/rattler/pull/361)

🤗 New Contributors
* nichmor made their first contribution in [352](https://github.com/conda/rattler/pull/352)

**Full Changelog**: https://github.com/conda/rattler/compare/v0.9.0...v0.10.0

0.9.0

✨ Highlights

This is a pretty substantial release which includes many refactors to the solver (which we will pull out of this repository at some point), initial work on Python bindings, and many many fixes.

📃 Details

Added
* [pixi](https://github.com/prefix-dev/pixi) project to make contributing easier by YeungOnion in [#283](https://github.com/conda/rattler/pull/283), [#342](https://github.com/conda/rattler/pull/342)
* make rattler-package-streaming compile with wasm by wolfv in [287](https://github.com/conda/rattler/pull/287)
* implement base_url cep by baszalmstra in [322](https://github.com/conda/rattler/pull/322)
* use emscripten-wasm32 and wasi-wasm32 by wolfv in [333](https://github.com/conda/rattler/pull/333)
* add build_spec module by YeungOnion in [340](https://github.com/conda/rattler/pull/340), [#346](https://github.com/conda/rattler/pull/346)

Changed

* use normalized package names where applicable by baszalmstra in [285](https://github.com/conda/rattler/pull/285)
* new `StrictVersion` type for VersionSpec ranges. by tdejager in [296](https://github.com/conda/rattler/pull/296)
* refactored ratter_libsolv_rs to be conda agnostic by tdejager & baszalmstra in [316](https://github.com/conda/rattler/pull/316), [#309](https://github.com/conda/rattler/pull/309), [#317](https://github.com/conda/rattler/pull/317), [#320](https://github.com/conda/rattler/pull/320), [#319](https://github.com/conda/rattler/pull/319), [#323](https://github.com/conda/rattler/pull/323), [#324](https://github.com/conda/rattler/pull/324), [#328](https://github.com/conda/rattler/pull/328), [#325](https://github.com/conda/rattler/pull/325), [#326](https://github.com/conda/rattler/pull/326), [#335](https://github.com/conda/rattler/pull/335), [#336](https://github.com/conda/rattler/pull/336), [#338](https://github.com/conda/rattler/pull/338), [#343](https://github.com/conda/rattler/pull/343), [#337](https://github.com/conda/rattler/pull/337)
* feat: allow disabling jlap by baszalmstra in [327](https://github.com/conda/rattler/pull/327)
* test: added job to check for lfs links by tdejager in [331](https://github.com/conda/rattler/pull/331)
* hide implementation detail, version_spec::Constraint by YeungOnion in [341](https://github.com/conda/rattler/pull/341)

Fixed

* typo in solver error message by baszalmstra in [284](https://github.com/conda/rattler/pull/284)
* expose ParseMatchSpecError in rattler_conda_types by Wackyator in [286](https://github.com/conda/rattler/pull/286)
* use nvidia-smi on musl targets to detect Cuda by baszalmstra in [290](https://github.com/conda/rattler/pull/290)
* typo in snap file by wolfv in [291](https://github.com/conda/rattler/pull/291)
* Version::is_dev returning false for dev version (fix 289) by Wackyator in [293](https://github.com/conda/rattler/pull/293)
* workaround for `PIP_REQUIRE_VIRTUALENV` env variable by tusharsadhwani in [294](https://github.com/conda/rattler/pull/294)
* ensure consistent sorting of locked packages by baszalmstra in [295](https://github.com/conda/rattler/pull/295)
* updates to `NamelessMatchSpec` to allow deserializing by travishathaway in [299](https://github.com/conda/rattler/pull/299)
* update all dependencies and fix chrono deprecation by wolfv in [302](https://github.com/conda/rattler/pull/302)
* shell improvements for powershell env-var escaping and xonsh detection by wolfv in [307](https://github.com/conda/rattler/pull/307)
* also export strict version by wolfv in [312](https://github.com/conda/rattler/pull/312)
* make FetchRepoDataOptions clonable by Wackyator in [321](https://github.com/conda/rattler/pull/321)
* bump json-patch 1.1.0 to fix stack overflow by baszalmstra in [332](https://github.com/conda/rattler/pull/332)
* emscripten is a unix variant by wolfv in [339](https://github.com/conda/rattler/pull/339)
* authentication fallback storage location by ruben-arts in [347](https://github.com/conda/rattler/pull/347)

🐍 Python

Although this release doesn't include a formal release of the python bindings yet, a lot of work has been done to work towards a first version.

* initial version of rattler python bindings by baszalmstra in [279](https://github.com/conda/rattler/pull/279)
* bind `Version`, `MatchSpec`, `NamelessMatchSpec` by Wackyator in [292](https://github.com/conda/rattler/pull/292)
* add more tests, hash and repr changes by baszalmstra in [300](https://github.com/conda/rattler/pull/300)
* add license by Wackyator in [301](https://github.com/conda/rattler/pull/301)
* bind channel types to py-rattler by wolfv in [313](https://github.com/conda/rattler/pull/313)
* bind everything necessary for shell activation by wolfv in [298](https://github.com/conda/rattler/pull/298)
* add mypy checks by baszalmstra in [314](https://github.com/conda/rattler/pull/314)
* bind `AuthenticatedClient` by Wackyator in [315](https://github.com/conda/rattler/pull/315)
* add `py.typed` file by baszalmstra in [318](https://github.com/conda/rattler/pull/318)
* bind `VersionWithSource` by Wackyator in [304](https://github.com/conda/rattler/pull/304)

🤗 New Contributors
* Wackyator made their first contribution in [286](https://github.com/conda/rattler/pull/286)
* YeungOnion made their first contribution in [283](https://github.com/conda/rattler/pull/283)
* tusharsadhwani made their first contribution in [294](https://github.com/conda/rattler/pull/294)

To all contributors, thank you for your amazing work on Rattler. This project wouldn't exist without you! 🙏

0.8.0

Highlights

This release contains bug fixes.

Details

Added

- retry behavior when downloading package archives by baszalmstra in ([281](https://github.com/conda/rattler/pull/281))

Fixed

- parsing of local versions in `Constraint`s by baszalmstra in ([280](https://github.com/conda/rattler/pull/280))

0.7.0

Highlights

This release mostly contains bug fixes.

Details

Added

- Rattler is now also build for Linux aarch64 in CI by pavelzw in ([272](https://github.com/conda/rattler/pull/272))
- `FromStr` for `ShellEnum` by ruben-arts in ([258](https://github.com/conda/rattler/pull/258))

Changed

- Run activation scripts and capture their output by baszalmstra in ([239](https://github.com/conda/rattler/pull/239))
- If memory mapping fails during installation the entire file is read instead by baszalmstra in ([273](https://github.com/conda/rattler/pull/273))
- Constraints parsing to improve performance and error messages by baszalmstra in ([254](https://github.com/conda/rattler/pull/254))
- Added explicit error in case repodata does not exist on the server by ruben-arts in ([256](https://github.com/conda/rattler/pull/256))
- Code signing on apple platform now uses `codesign` binary instead of `apple-codesign` crate by wolfv in ([259](https://github.com/conda/rattler/pull/259))

Fixed

- `Shell::run_command` ends with a newline by baszalmstra in ([262](https://github.com/conda/rattler/pull/262))
- Formatting of environment variable in fish by ruben-arts in ([264](https://github.com/conda/rattler/pull/264))
- Suppress stderr and stdout from codesigning by wolfv in ([265](https://github.com/conda/rattler/pull/265))
- All crates have at least basic documentation by wolfv in ([268](https://github.com/conda/rattler/pull/268))
- Use `default_cache_dir` in the rattler binary by wolfv in ([269](https://github.com/conda/rattler/pull/269))
- Corrupted tar files generated by rattler-package-streaming by johnhany97 in ([276](https://github.com/conda/rattler/pull/276))
- Superfluous quotes in the `content-hash` of conda lock files by baszalmstra in ([277](https://github.com/conda/rattler/pull/277))
- `subdir` and `arch` fields when converting `RepoDataRecord` to a `LockedDependency` in conda-lock format by wolfv in ([255](https://github.com/conda/rattler/pull/255))

0.6.0

Highlights

New rust based solver implementation

This version of rattler includes a new solver implementation!
aochagavia worked hard on porting libsolv to rust and integrating that with `rattler_solve`.
The port performs slightly faster or similar to the original C code and does not contain unsafe code, is well documented, and thread-safe.
Our implementation (`rattler_libsolv_rs`) is specific to solving conda packages by leveraging `rattler_conda_types` for matching and parsing.

Some performance benchmarks taken on Apple M2 Max.

| | libsolv-c | libsolv-rs |
| ---------------------------------- |--------------|---------------|
| python=3.9 | 7.3734 ms | **4.5831 ms** |
| xtensor, xsimd | 5.7521 ms | **2.7643 ms** |
| tensorflow | 654.38 ms | **371.59 ms** |
| quetz | **1.2577 s** | 1.3807 s |
| tensorboard=2.1.1, grpc-cpp=1.39.1 | 474.76 ms | **132.79 ms** |

> Run `cargo bench libsolv` to check the results on your own machine.

Besides the much improved implementation the new solver also provides much better error messages based on the work from mamba.
When a conflict is detected the incompatibilities are analyzed and displayed with a more user-friendly error message.


The following packages are incompatible
|-- asdf can be installed with any of the following options:
|-- asdf 1.2.3 would require
|-- C >1, which can be installed with any of the following options:
|-- C 2.0.0
|-- C 1.0.0 is locked, but another version is required as reported above


`rattler-solve` has also been refactored to accommodate this change.
It is now more easily possible to switch between solvers add runtime by writing functions that are generic on the solver.
The solvers now live in a separate module `rattler_solve::libsolv_c` for the original libsolv C implementation and `rattler_solve::libsolv_rs` for the rust version.
Both solvers can be enabled with feature flags. The default features only select `libsolv_c`.

Caching of activation scripts

This release contains code to execute an activation script and capture the changes it made to the environment.
Caching the result of an activation script can be useful if you need to invoke multiple executables from the same environment.

Details

Added

- Run activation scripts and capture their output by baszalmstra in ([239](https://github.com/conda/rattler/pull/239))
- Support for sha256 and md5 field in matchspec by 0xbe7a in ([241](https://github.com/conda/rattler/pull/241))
- A rust port of libsolv as an additional solver backend by aochagavia, baszalmstra in ([243](https://github.com/conda/rattler/pull/243) & [#253](https://github.com/conda/rattler/pull/253))
- Test cases and benchmarks for solver implementations by baszalmstra in ([250](https://github.com/conda/rattler/pull/249) & [#250](https://github.com/conda/rattler/pull/249))
- The ability to add a dependency from `python` on `pip` while loading repodata wolfv in ([238](https://github.com/conda/rattler/pull/238))

Changed

- Completely refactored version parsing by baszalmstra in ([240](https://github.com/conda/rattler/pull/240))
- Refactored solver interface to allow generic use of solver implementations by baszalmstra in ([245](https://github.com/conda/rattler/pull/245))
- Also check if credentials stored under wildcard host by wolfv in ([252](https://github.com/conda/rattler/pull/252))

Fixed

- Compilation issues by wolfv in ([244](https://github.com/conda/rattler/pull/244))
- Add missing `From<VersionWithSource>` for `Version` by baszalmstra in ([246](https://github.com/conda/rattler/pull/246))
- Optimized libsolv port by removing redundant MatchSpec parsing by baszalmstra in ([246](https://github.com/conda/rattler/pull/246))
- Optimized libsolv port by caching matching Solvables by baszalmstra in ([251](https://github.com/conda/rattler/pull/251))

0.5.0

Highlights

A bug fix release

Details

Added

- More control over how the PATH is altered during activation ([232](https://github.com/conda/rattler/pull/232))

Fixed

- Reconstructing of RepoData from conda lock files for local channels ([231](https://github.com/conda/rattler/pull/231))
- Powershell on Linux ([234](https://github.com/conda/rattler/pull/234))
- Proper parsing of `>2.10*` as `>=2.10` ([237](https://github.com/conda/rattler/pull/237))

Page 3 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.