v0.3.0
Highlights
This release contains lots of fixes, small (breaking) changes, and new features.
The biggest highlights are:
JLAP support
JLAP is a file format to incrementally update a cached repodata.json
without downloading the entire file.
This can save a huge amount of bandwidth for large repodatas that change often (like those from conda-forge).
If you have a previously cached repodata.json
on your system only small JSON patches are downloaded to bring your cache up to date.
The format was initially proposed through a CEP and has been available in conda as an experimental feature since 23.3.0
.
When using rattler you get JLAP support out of the box.
No changes are needed.
Support for local file://
file://
based urls are now supported for all functions that use a Url to download certain data.
rattler_networking
A new crate has been added to facilitate authentication when downloading repodata or packages called rattler_networking
.
Details
Added
- Support for detecting more platforms (#135)
RepoData
is now clonable (#138)RunExportsJson
is now clonable (#169)file://
urls are now supported for package extraction functions (#157)file://
urls are now supported for repodata fetching (#158)- Getting started with rattler using micromamba (#163)
- Add
Platform::arch
function to return the architecture of a given platform (#166) - Extracted Python style JSON formatting into a separate crate (#163)
- Added feature to use
rustls
withrattler_package_streaming
andrattler_repodata_gateway
(#179 & #181) - Expose
version_spec
module (#183) NamelessMatchSpec
a variant ofMatchSpec
that does not include a package name #185)ShellEnum
- a dynamic shell type for dynamic discovery #187)- Exposed the
python_entry_point_template
function (#190) - Enable deserializing virtual packages (#198)
- Refactored CI to add macOS arm64 (#201)
- Support for JLAP when downloading repodata (#197 & #214)
Clone
,Debug
,PartialEq
,Eq
implementations for conda lock types (#213)rattler_networking
to enable accessingrepodata.json
and packages that require authentication (#191)
Changed
FileMode
is now included withprefix_placeholder
is set (#136)rattler_digest
now re-exports commonly used hash types and typed hashes are now used in more placed (instead of strings) [#137 & #153]- Use
Platform
in to detect running operating system (#144) paths.json
is now serialized in a deterministic fashion (#147)- Determine the
subdir
for theplatform
andarch
fields when creating aPackageRecord
from anindex.json
(#145 & #152) Activator::activation
now returns the newPATH
in addition to the script (#151)- Use properly typed
chrono::DateTime<chrono::Utc>
for timestamps instead ofu64
(#157) - Made
ParseError
public and reuseArchiveType
(#167) - Allow setting timestamps when creating package archive (#171)
about.json
andindex.json
are now serialized in a deterministic fashion (#180)- SHA256 and MD5 hashes are computed on the fly when extracting packages (#176
- Change blake2 hash to use blake2b instead of blake2s (#192
- LibSolv error messages are now passed through (#202 & #210)
VersionTree
parsing now usesnom
instead of a complex regex (#206libc
version detection now useslld --version
to properly detect the libc version on the host (#209- Improved version parse error messages (#211
- Parsing of some complex MatchSpecs (#217
Fixed
- MatchSpec bracket list parsing can now handle quoted values (#157)
- Typos and documentation (#164 & #188)
- Allow downloading of repodata.json to fail in some cases (only noarch is a required subdir) (#174)
- Missing feature when using the sparse index (#182)
- Several small issues or missing functionality (#184)
- Loosened strictness of comparing packages in
Transaction
s (#186 - Missing
noarch: generic
parsing inlinks.json
(#189 - Ignore trailing .0 in version comparison (#196