Highlights: Sharded Repodata Support
This minor version includes the support for sharded repodata, significantly improving the UX of the project.
Geometric means of improvement factors between 2.5.0 and 2.6.0 across various specifications:
| Analysis | Cold cache (first installation) | Warm cache (subsequent installations) |
|---|---|---|
| Wall time speedup | 4.1979× | 9.7189× |
| Peak RSS reduction | 17.2994× | 16.1247× |
| Network I/O reduction | 21.1021× | N/A |
💡As of 2.6.0, sharded repodata are used by default if they are present on conda channel.
One can opt-out of this behavior by setting use_sharded_repodata to false in mamba’s configuration.
🔗 Read more about improvements on this blog post.
You can update micromamba to 2.6.0 using:
micromamba self-updateEnhancements:
- [libmamba] feat: Improve progress messages for flat repodata by @jjerphan in #4237
- [libmamba] feat: Improve Sharded Repodata Progress Message by @jjerphan in #4225
- [libmamba, micromamba] feat: Sharded Repodata Support for
repoqueryby @jjerphan in #4226 - [libmamba, micromamba] feat: Prefilter Shard Records on Python Minor Version by @jjerphan in #4214
- [libmamba] feat: Introduce
MatchSpec::extract_nameby @jjerphan in #4206 - [libmamba] feat: Optimize
PackageInfodescending sorts by @jjerphan in #4208 - [libmamba] feat: Shard Index Handling Adaptation by @jjerphan in #4190
- [libmamba] feat: Parse optional fields for
ShardPackageRecordby @jjerphan in #4195 - [libmamba] feat: Support
track_featuresforShardRecordby @jjerphan in #4192 - [libmamba] feat: Shard Caching by @jjerphan in #4174
- [libmamba, micromamba] feat: Do not warn for missing channels index by @jjerphan in #4189
- [all] build: Export
libmamba-spdlogtarget for building dependencies in tree by @opoplawski in #4172 - [libmamba] feat: Sharded Repodata by @jjerphan in #4162
- [libmamba] feat: Support
MSGPACK_OBJECT_ARRAYfor hashes by @jjerphan in #4167 - [libmamba, micromamba] feat: Redesign packages caches hierarchically on channels and platforms by @jjerphan in #4163
- [libmamba] feat: Consider
emscriptena UNIX platform by @jjerphan in #4168 - [libmamba] feat: Shard Traversal by @jjerphan in #4161
- [libmamba] feat: ShardIndexLoader by @jjerphan in #4149
- [libmamba] feat: Shards by @jjerphan in #4148
- [libmambapy, libmamba] feat: Shard types and utils by @jjerphan in #4145
- [libmamba, micromamba] feat: Support Prefix Data Interoperability by @jjerphan in #4123
Bug fixes:
- [libmamba] fix: Transitive dependencies across channels shards by @jjerphan in #4245
- [libmamba] fix: Make shards availability independent from local cache by @jjerphan in #4243
- [libmamba] fix: Support
update --allwith Sharded Repodata by @jjerphan in #4241 - [all] fix: Correct
repodata_record.jsonmetadata for installations using explicit specifications by @maresb in #4110 - [libmamba, micromamba] fix: Adapt
python_site_packages_pathon Windows by @jjerphan in #4232 - [libmamba] fix: Keep and use
RepoDataPackage's raw version by @jjerphan in #4238 - [libmamba] fix: Make
mamba clean --allclear the shards' cache by @jjerphan in #4236 - [libmamba] fix: python_binary_compatible by @chrisburr in #4234
- [libmamba] fix: Add
python_abias a root package withpythonby @jjerphan in #4233 - [libmamba] fix: Support mixture of flat and sharded repodata by @jjerphan in #4227
- [libmambapy, libmamba] fix: Adapt bindings for
UnresolvedChannel's readonly properties by @jjerphan in #4224 - [libmamba, micromamba] config sub-command output hides secrets by @Klaim in #4223
- [libmamba, micromamba] fix: Minor adaptations for sharded repodata support by @jjerphan in #4187
- [libmamba, micromamba] fix: JSON should be set to
"success": falsewhen any transactions failed by @Klaim in #4201 - [libmamba] fix: Skip non-executable matches in
which_in_one_implby @xsjk in #4197 - [libmamba] fix: Adapt Shards base URL to handle channel identifiers by @jjerphan in #4210
- [libmamba] fix: Treat sibling-subdir shard loads as successful by @jjerphan in #4209
- [libmamba] fix: Exclude Installed Packages from Root Packages by @jjerphan in #4205
- [libmamba] fix: Fallback on
uvfor listing installed packages ifpipis not available by @jjerphan in #4203 - [libmamba] fix: Respect thread affinity concurrency by @jjerphan in #4193
- [libmamba] fix: Pass priorities in
load_single_subdirby @jjerphan in #4188 - [micromamba] fix: Omit
--detachoption for run subcommand on Windows by @jjerphan in #4185 - [libmamba, micromamba] fix: Sort
mamba searchresults on version numerically by @jjerphan in #4160 - [micromamba] fix: Pretty print short result for
mamba searchby default by @kuepe-sl in #4066 - [libmamba, micromamba] fix: Show
pipanduvoutput by default by @jjerphan in #4155 - [libmamba, micromamba] Graceful handling of download cancel/interruption by @Klaim in #4146
- [libmamba, micromamba] fix: Do not show activation message for dry runs by @jjerphan in #4140
- [libmamba] fix: Only call
get_all_running_processes_infowhen needed by @mihaitodor in #4135 - [libmamba] Add #include for std::ref by @opoplawski in #4132
CI fixes and doc:
- [all] Fixed path in micromamba-installation.rst by @clausmichele in #4194
- [all] ci: Disable
mamba-content-trust and auth testsby @jjerphan in #4186 - [all] docs: Click to Copy code-blocks by @jjerphan in #4175
- [all] ci: Exclude C++ tests in code coverage by @jjerphan in #4147
- [all] ci: Use the
devbranch frommicromamba-feedstockby @jjerphan in #4144 - [all] ci: Free disk space for all linux workflows by @jjerphan in #4138
- [all] ci: Free disk space for linux workflows by @jjerphan in #4137
Maintenance:
- [libmamba] maint: Rename
repodata_use_shardstouse_sharded_repodataby @jjerphan in #4244 - [all] build(deps): bump actions/github-script from 8 to 9 by @app/dependabot in #4229
- [libmamba] maint: Retry for
updateby @jjerphan in #4220 - [libmamba] maint: Factorize common parts of the
install,updateandremovepaths by @jjerphan in #4215 - [all] build(deps): bump mamba-org/setup-micromamba from 2 to 3 by @app/dependabot in #4219
- [all] build(deps): bump codecov/codecov-action from 5 to 6 by @app/dependabot in #4218
- [micromamba] maint: Increase timeout of
test_env_logging_overhead_regressionto 1 minute by @jjerphan in #4217 - [libmamba] maint: Replace
ShardPackageRecordwithRepoDataPackageby @jjerphan in #4212 - [libmamba] maint: Reduce logging in
Shards::parse_shard_msgpackby @jjerphan in #4207 - [libmamba] maint: Split
load_channels_implinto several functions by @jjerphan in #4178 - [libmamba] maint: Adapt
Shardsownership model by @jjerphan in #4177 - [all] build(deps): bump actions/upload-artifact from 6 to 7 by @app/dependabot in #4180
- [micromamba] maint: Increase timeout of
test_env_logging_overhead_regressionby @jjerphan in #4173 - [libmamba] maint: Refactor Channel Loader by @jjerphan in #4169
- [libmamba] maint: Introduce
DownloadRequestComponentsby @jjerphan in #4164 - [libmamba] test: Changes for catch2 >3.8 by @jjerphan in #4134