跳到主要内容

2024 年 1 月发布

·7 分钟阅读
Ken Odegard
Conda 维护者

2024 年 1 月的发布包括对四个 conda 社区项目的更新:conda、conda-build、conda-libmamba-solver 和 conda-index!🎉 这些都已发布到 mainconda-forge

Conda 中的更改 24.1.0/24.1.1/24.1.2

要更新 conda,请运行

conda install -n base conda=24.1.2

✨ 新增功能? ✨

  • 验证待安装软件包的签名,而不是所有软件包的签名。
  • 添加新的 pre-solvespost-solves 插件钩子。
  • 添加对 Python 3.12 的支持。
  • 检查 repodata.json.zst 以加快 repodata 下载速度。
  • conda search 中添加 --skip-flexible-search 选项以跳过灵活搜索。
  • 当尝试重命名不存在的前缀时,提供更有用的警告。
  • 添加一个新标志 --keep-env,与 conda remove --all 一起使用。它允许用户删除环境中的所有软件包,同时保留环境本身。
  • 添加 Y/N 提示,警告用户 conda env removeconda 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_zstconda.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_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)

📄 文档中的新增功能? 📄


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=versionname 之前发送给求解器)。
  • 在离线模式下调用时加载 pkgs_dirs 记录。

🔧 修复了什么? 🔧

  • 修复了 23.11.1 中引入的回归,其中某些求解会因给定的规范输入顺序而硬崩溃。
  • 正确传播自定义本地通道(conda-build 工作区)。需要 libmamba 1.5.6 或更高版本。
  • 如果可以安全地删除不受支持的 MatchSpec 字段,则不要引发错误。目前忽略 urlmd5sha256
  • 如果使用 --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 位(!)新的贡献者;感谢我们所有的开源社区成员,感谢你们帮助使这些改进成为可能。

如果您有想法或想帮助改进任何 conda 社区项目,我们很乐意看到新的(和回归的)贡献者! 😄