2024 年 1 月发布
·阅读时长:7 分钟
2024 年 1 月的版本发布包括对四个 Conda 社区项目进行的更新:Conda、Conda-Build、Conda-Libmamba-Solver 和 Conda-Index!🎉 这些项目都已发布到 main
和 conda-forge
中。
Conda 中的更改 24.1.0/24.1.1/24.1.2
要更新 Conda,请运行
conda install -n base conda=24.1.2
✨ 新功能 ✨
- 验证即将安装的软件包的签名,而不是所有软件包的签名。
- 添加新的
pre-solves
和post-solves
插件钩子。 - 添加对 Python 3.12 的支持。
- 检查
repodata.json.zst
以加快 repodata 下载速度。 - 在
conda search
中添加--skip-flexible-search
选项以跳过灵活搜索。 - 在尝试重命名不存在的前缀时提供更有用的警告。
- 添加一个新的标志
--keep-env
供conda remove --all
使用。它允许用户删除环境中的所有软件包,同时保留环境本身。 - 添加一个 Y/N 提示,警告用户
conda env remove
和conda remove --all
不仅会删除 Conda 软件包,还会删除指定环境的全部内容。 - 添加
--repodata-use-zst/--no-repodata-use-zst
标志来控制repodata.json.zst
检查;.condarc
中有相应的repodata_use_zst: true/false
设置。默认值为检查repodata.json.zst
。如果远程返回不可解析的repodata.json.zst
而不是正确的数据或 404,则禁用。
🔧 已修复问题 🔧
- 在尝试写入
environments.txt
文件之前创建~/.conda
目录。 - 确保
PackageRecord.timestamp
以毫秒为单位转储。 - 修复通过
CONDA_REPODATA_FNS
设置非默认 repodata 文件名时的错误。 - 修复集成 Anaconda 客户端网关从其加载用户配置的配置文件位置。这是在 Conda 23.11.0 中采用
platformdirs
库时引入的回归。 - 将缺少的
Cache-Control
标头解释为max-age=0
,而不是异常。 - (24.1.1) 如果
repodata.json.zst
无法作为 zstandard 解压缩,则回退到repodata.json
。 - (24.1.1) 在大多数 4xx 错误代码上从
repodata.json.zst
回退到repodata.json
。 - (24.1.2) 修复
conda.core.subdir_data.fetch_repodata_remote_request
在启用repodata_use_zst
时失败的问题。
🌅 已标记为 弃用 的内容? 🌅
conda_env.*
模块已合并到 conda
包中!
为了改进 conda env
子命令(以前是独立的)的集成,我们将它的代码移动到 conda
包中,同时允许通过 Python 导入重定向继续使用旧的 conda env
命令。这是改进 Conda 命令行界面与环境管理相关的用户体验的许多步骤中的第一步。
📄 文档中的新内容? 📄
- 更新用户指南中的 入门 文档。
- 添加 GoatCounter 以进行文档网站分析。
- 改进类型提示和文档字符串。
Conda-Build 中的更改 24.1.0/24.1.1/24.1.2
要更新 Conda-Build,请运行
conda install -n base conda-build=24.1.2
✨ 新功能 ✨
- 更新
conda inspect channels
以使用更新的求解器/事务逻辑。 - 在
script_env
中引用未定义的变量时,放松输出中的script_env
错误。这将当前行为与顶层构建统一起来。 - 添加对 Python 3.12 的支持。
- 根据 CEP-8 采用日历版本控制 (CalVer),以保持与 Conda 的一致性。
- 采用 CEP-9 的加速弃用政策。
🔧 已修复问题 🔧
- (24.1.1) 修复成功时的非零退出代码。
- (24.1.2) 修复对符号链接运行
rpaths
修补程序的问题。 - (24.1.2) 修复子包测试中输出的损坏的软件包缓存。
🌅 已标记为 弃用 的内容? 🌅
这是 Conda-Build 的第一个版本,它删除了先前根据 加速弃用时间表 标记为已弃用的代码。以下是已删除内容的列表
conda_build.api.update_index
conda_build.cli.main_build.main
conda_build.cli.main_convert.main
conda_build.cli.main_debug.main
conda_build.cli.main_develop.main
conda_build.cli.main_index
conda_build.cli.main_inspect.main
conda_build.cli.main_metapackage.main
conda_build.cli.main_render.main
conda_build.cli.main_skeleton.main
conda_build.conda_interface.IndexRecord
conda_build.conda_interface.CrossPlatformStLink
conda_build.conda_interface.SignatureError
conda_build.conda_interface.which_package
conda_build.conda_interface.which_prefix
conda_build.conda_interface.get_installed_version
conda_build.config.python2_fs_encode
conda_build.config._ensure_dir
conda_build.config.Config.CONDA_LUA
conda_build.config.Config.CONDA_PY
conda_build.config.Config.CONDA_NPY
conda_build.config.Config.CONDA_PERL
conda_build.config.Config.CONDA_R
conda_build.environ.clean_pkg_cache
conda_build.index.update_index
conda_build.inspect_pkg.dist_files
conda_build.inspect_pkg.which_package(avoid_canonical_channel_name)
conda_build.inspect_pkg._installed
conda_build.metadata.Metadata.name(fail_ok)
conda_build.os_utils.ldd.get_package_files
conda_build.os_utils.liefldd.is_string
conda_build.os_utils.liefldd.codefile_type_liefldd
conda_build.os_utils.liefldd.codefile_type_pyldd
conda_build.os_utils.liefldd.codefile_type
conda_build.os_utils.pyldd.mach_o_change
conda_build.os_utils.pyldd.is_codefile
conda_build.os_utils.pyldd.codefile_type
conda_build.os_utils.pyldd.inspect_rpaths
conda_build.os_utils.pyldd.get_runpaths
conda_build.os_utils.pyldd.otool_sys
conda_build.os_utils.pyldd.ldd_sys
conda_build.plugin.index
conda_build.post.determine_package_nature
conda_build.post.library_nature(subdir)
conda_build.post.library_nature(bldpkgs_dirs)
conda_build.post.library_nature(output_folder)
conda_build.post.library_nature(channel_urls)
conda_build.post.dists_from_names
conda_build.post.FakeDist
conda_build.post._get_fake_pkg_dist
conda_build.utils.relative
conda_build.utils.samefile
此外,我们继续努力删除所有剩余的旧版 conda.models.dist.Dist
对象的使用。
- 将
conda inspect channels --test-installable
标记为待弃用。 - 将
conda_build.inspect_pkg.check_install(package)
标记为待弃用,推荐使用conda_build.inspect_pkg.check_install(subdir)
。 - 将
conda_build.inspect_pkg.check_install(prepend)
标记为待弃用。 - 将
conda_build.inspect_pkg.check_install(minimal_hint)
标记为待弃用。 - 将
conda_build.conda_interface.Dist
标记为待弃用。 - 将
conda_build.conda_interface.display_actions
标记为待弃用。 - 将
conda_build.conda_interface.execute_actions
标记为待弃用。 - 将
conda_build.conda_interface.execute_plan
标记为待弃用。 - 将
conda_build.conda_interface.get_index
标记为待弃用。 - 将
conda_build.conda_interface.install_actions
标记为待弃用。 - 将
conda_build.conda_interface.linked
标记为待弃用。 - 将
conda_build.conda_interface.linked_data
标记为待弃用。 - 将
conda_build.utils.linked_data_no_multichannels
标记为待弃用。 - 将
conda_build.environ.get_install_actions
标记为待弃用,推荐使用conda_build.environ.get_package_records
。 - 将
conda_build.environ.create_env(specs_or_actions)
标记为待弃用,推荐使用conda_build.environ.create_env(specs_or_precs)
。 - 将
conda_build.index.channel_data
标记为待弃用。 - 将
conda_build.index._determine_namespace
标记为待弃用。 - 将
conda_build.index._make_seconds
标记为待弃用。 - 将
conda_build.index.REPODATA_VERSION
标记为待弃用。 - 将
conda_build.index.CHANNELDATA_VERSION
标记为待弃用。 - 将
conda_build.index.REPODATA_JSON_FN
标记为待弃用。 - 将
conda_build.index.REPODATA_FROM_PKGS_JSON_FN
标记为待弃用。 - 将
conda_build.index.CHANNELDATA_FIELDS
标记为待弃用。 - 将
conda_build.index._clear_newline_chars
标记为待弃用。 - 将
conda_build.index._apply_instructions
标记为待弃用。 - 将
conda_build.index._get_jinja2_environment
标记为待弃用。 - 将
conda_build.index._maybe_write
标记为待弃用。 - 将
conda_build.index._maybe_build_string
标记为待弃用。 - 将
conda_build.index._warn_on_missing_dependencies
标记为待弃用。 - 将
conda_build.index._cache_post_install_details
标记为待弃用。 - 将
conda_build.index._cache_recipe
标记为待弃用。 - 将
conda_build.index._cache_run_exports
标记为待弃用。 - 将
conda_build.index._cache_icon
标记为待弃用。 - 将
conda_build.index._make_subdir_index_html
标记为待弃用。 - 将
conda_build.index._make_channeldata_index_html
标记为待弃用。 - 将
conda_build.index._get_source_repo_git_info
标记为待弃用。 - 将
conda_build.index._cache_info_file
标记为待弃用。 - 将
conda_build.index._alternate_file_extension
标记为待弃用。 - 将
conda_build.index._get_resolve_object
标记为待弃用。 - 将
conda_build.index._get_newest_versions
标记为待弃用。 - 将
conda_build.index._add_missing_deps
标记为待弃用。 - 将
conda_build.index._add_prev_ver_for_features
标记为待弃用。 - 将
conda_build.index._shard_newest_packages
标记为待弃用。 - 将
conda_build.index._build_current_repodata
标记为待弃用。 - 将
conda_build.index.ChannelIndex
标记为待弃用。 - 将
conda_build.render.actions_to_pins
标记为待弃用。 - 将
conda_build.render.execute_download_actions(actions)
标记为待弃用,推荐使用conda_build.render.execute_download_actions(precs)
。 - 将
conda_build.render.get_upstream_pins(actions)
标记为待弃用,推荐使用conda_build.render.get_upstream_pins(precs)
。
📄 文档更新内容 📄
- 添加 GoatCounter 以进行文档网站分析。
Conda-Libmamba-Solver 的变更 24.1.0
要更新 conda-libmamba-solver,请运行
conda install -n base conda-libmamba-solver=24.1.0
✨ 新功能 ✨
- 优先考虑具有更严格约束的显式请求规范,而不是隐式规范或仅名称规范(例如,CLI 指定的
name=version=build
将在 CLI 指定的name=version
和name
之前发送到求解器)。 - 在离线模式下调用时加载
pkgs_dirs
记录。
🔧 问题修复 🔧
- 修复了在 23.11.1 中引入的回归,其中某些求解由于给定的规范输入顺序会导致程序崩溃。
- 正确传播自定义本地通道(conda-build 工作区)。需要
libmamba 1.5.6
或更高版本。 - 如果可以安全地删除不支持的
MatchSpec
字段,则不会引发错误。目前忽略url
、md5
和sha256
。 - 如果使用
--offline
或--use-index-cache
访问无状态 repodata 缓存,则不会崩溃。
Conda-Index 的变更 0.4.0
要更新 conda-index,请运行
conda install -n base conda-index=0.4.0
✨ 新功能 ✨
- 添加
--compact-json
/--no-compact-json
选项,默认值为 compact。 - 添加了一个使用 conda 的新子命令插件挂钩的
index
子命令,允许使用conda index
而不是python -m conda_index
。请注意,与旧的conda-index
相比,CLI 已经更改。如果安装了conda-build < 24.1.0
,则仍将使用旧的conda-index
代码而不是此插件。
🔧 问题修复 🔧
- 在决定要索引的包时,除了检查
mtime
之外还要检查大小。 - 更新缓存的
index.json
,而不仅仅是统计值,以用于已索引的已更改包。
我们 ❤️ 我们的社区
总的来说,我们在本次发布周期中新增了 2 位贡献者;感谢我们开源社区的所有成员,他们的帮助使这些改进成为可能。
- @schuylermartin45 在 conda#13385 中做出了首次贡献
- @samhaese 在 conda#13465 中做出了首次贡献
如果您有任何想法或想帮助改进任何 conda 社区项目,我们非常欢迎新(和回归)贡献者!😄