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)
RepoDatais now clonable (#138)RunExportsJsonis 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::archfunction to return the architecture of a given platform (#166) - Extracted Python style JSON formatting into a separate crate (#163)
- Added feature to use
rustlswithrattler_package_streamingandrattler_repodata_gateway(#179 & #181) - Expose
version_specmodule (#183) NamelessMatchSpeca variant ofMatchSpecthat does not include a package name #185)ShellEnum- a dynamic shell type for dynamic discovery #187)- Exposed the
python_entry_point_templatefunction (#190) - Enable deserializing virtual packages (#198)
- Refactored CI to add macOS arm64 (#201)
- Support for JLAP when downloading repodata (#197 & #214)
Clone,Debug,PartialEq,Eqimplementations for conda lock types (#213)rattler_networkingto enable accessingrepodata.jsonand packages that require authentication (#191)
Changed
FileModeis now included withprefix_placeholderis set (#136)rattler_digestnow re-exports commonly used hash types and typed hashes are now used in more placed (instead of strings) [#137 & #153]- Use
Platformin to detect running operating system (#144) paths.jsonis now serialized in a deterministic fashion (#147)- Determine the
subdirfor theplatformandarchfields when creating aPackageRecordfrom anindex.json(#145 & #152) Activator::activationnow returns the newPATHin addition to the script (#151)- Use properly typed
chrono::DateTime<chrono::Utc>for timestamps instead ofu64(#157) - Made
ParseErrorpublic and reuseArchiveType(#167) - Allow setting timestamps when creating package archive (#171)
about.jsonandindex.jsonare 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)
VersionTreeparsing now usesnominstead of a complex regex (#206libcversion detection now useslld --versionto 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
Transactions (#186 - Missing
noarch: genericparsing inlinks.json(#189 - Ignore trailing .0 in version comparison (#196