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检查;对应的repodata_use_zst: true/false设置用于.condarc。默认是检查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) 修复启用
repodata_use_zst时conda.core.subdir_data.fetch_repodata_remote_request失败的问题。
🌅 标记为弃用的内容? 🌅
conda_env.* 模块已合并到 conda 包中!
为了改进 conda env 子命令(以前是独立的)的集成,我们已将其代码移至 conda 包中,同时允许旧的 conda env 命令仍然可以通过 Python 导入重定向工作。这是改进与环境管理相关的 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以使用更新的 solver/transaction 逻辑。 - 当
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_indexconda_build.cli.main_build.mainconda_build.cli.main_convert.mainconda_build.cli.main_debug.mainconda_build.cli.main_develop.mainconda_build.cli.main_indexconda_build.cli.main_inspect.mainconda_build.cli.main_metapackage.mainconda_build.cli.main_render.mainconda_build.cli.main_skeleton.mainconda_build.conda_interface.IndexRecordconda_build.conda_interface.CrossPlatformStLinkconda_build.conda_interface.SignatureErrorconda_build.conda_interface.which_packageconda_build.conda_interface.which_prefixconda_build.conda_interface.get_installed_versionconda_build.config.python2_fs_encodeconda_build.config._ensure_dirconda_build.config.Config.CONDA_LUAconda_build.config.Config.CONDA_PYconda_build.config.Config.CONDA_NPYconda_build.config.Config.CONDA_PERLconda_build.config.Config.CONDA_Rconda_build.environ.clean_pkg_cacheconda_build.index.update_indexconda_build.inspect_pkg.dist_filesconda_build.inspect_pkg.which_package(avoid_canonical_channel_name)conda_build.inspect_pkg._installedconda_build.metadata.Metadata.name(fail_ok)conda_build.os_utils.ldd.get_package_filesconda_build.os_utils.liefldd.is_stringconda_build.os_utils.liefldd.codefile_type_lieflddconda_build.os_utils.liefldd.codefile_type_pylddconda_build.os_utils.liefldd.codefile_typeconda_build.os_utils.pyldd.mach_o_changeconda_build.os_utils.pyldd.is_codefileconda_build.os_utils.pyldd.codefile_typeconda_build.os_utils.pyldd.inspect_rpathsconda_build.os_utils.pyldd.get_runpathsconda_build.os_utils.pyldd.otool_sysconda_build.os_utils.pyldd.ldd_sysconda_build.plugin.indexconda_build.post.determine_package_natureconda_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_namesconda_build.post.FakeDistconda_build.post._get_fake_pkg_distconda_build.utils.relativeconda_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,而不仅仅是 stat 值,用于已索引的已更改软件包。
我们 ❤️ 我们的社区
总而言之,在这个发布周期中,我们有 2 位(!)新的贡献者;感谢我们所有的开源社区成员,感谢你们帮助使这些改进成为可能。
- @schuylermartin45 在 conda#13385 中做出了他们的首次贡献
- @samhaese 在 conda#13465 中做出了他们的首次贡献
如果您有想法或想帮助改进任何 conda 社区项目,我们很乐意看到新的(和回归的)贡献者! 😄
