跳到主要内容

2023 年 11 月发布

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

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

Conda 23.11.0 的变更 23.11.0

要更新 conda,请运行

conda install -n base conda=23.11.0

📢 特别公告 📢

新的 menuinst v2 支持!

conda 长期以来一直支持 Windows 上的开始菜单项。 这使得用户可以在 CMD(命令提示符)中打开预先初始化了 conda 会话的 Miniconda 提示符。 此菜单项(或快捷方式)的创建逻辑由 menuinst 包提供。

随着 23.11.0 的发布,conda 现在支持 menuinst v2,这使得在 Windows、Linux 和 macOS 上拥有相同的体验成为可能。 这意味着软件包构建者将能够在所有操作系统上提供桌面图标,这对于 GUI 应用程序尤其有用。 有关更多详细信息,请参阅文档

如果您不希望 conda 创建快捷方式,您可以通过以下方式禁用它

  • 在您的 .condarc 配置文件中添加 shortcuts: false 条目
  • CONDA_SHORTCUTS=false 环境变量
  • --no-shortcuts 命令行标志

✨ 新增功能?✨

  • 引入一个新的插件钩子 CondaHealthCheck,作为 conda doctor 的一部分。
  • --help 命令列表中包含 activatedeactivate
  • 优先下载较大的软件包,以防止较小的软件包等待。
  • conda info 输出中显示使用的求解器,以用于调试目的。
  • 添加 __conda 虚拟软件包。
  • 为中断的软件包下载实现恢复功能。

🔧 修复了什么?🔧

  • info 级别记录预期的 JLAP 范围请求错误,这些错误在远程文件回滚时发生。
  • 修复了当使用 --debug 等选项但未指定命令时导致错误的错误。
  • 改进了并行下载线程的 CTRL-C(取消)处理。
  • 允许覆盖 CONDA_FETCH_THREADS/fetch_threads 以设置默认值 5 之外的并行软件包下载。
  • 需要 requests >=2.28 以增强 response.json() 异常处理。
  • conda.plan 中应用 callback=reset_context 以解决 conda-build + conda-libmamba-solver 的不兼容性。

🌅 标记为弃用的内容? 🌅

  • 删除 ruamel_yaml 回退; 仅使用 ruamel.yaml
  • 标记 conda.plugins.subcommands.doctor.health_checks.display_health_checks 为即将弃用。
  • 标记 conda.plugins.subcommands.doctor.health_checks.display_report_heading 为即将弃用。
  • 标记 conda.gateways.anaconda_client.EnvAppDirs 为即将弃用。 请改用 platformdirs
  • 标记 conda._vendor.cpuinfo 为即将弃用。
  • requests/pip 的 vendored chardet 切换到 charset_normalizer
  • conda._vendor.appdirs 切换到 platformdirs
  • conda._vendor.distro 切换到 distro

📄 文档新增功能?📄

https://docs.conda.org.cn/ 文档已进行了重大改版!🎉

去看看,让我们知道您的想法!🤩


Conda-Build 3.28.0/3.28.1 的变更

要更新 conda-build,请运行

conda install -n base conda-build=3.28.1

📢 特别公告 📢

在即将到来的 conda-build 2024 年 1 月版本中,正在进行重大更改。 我们将过渡到 CalVer 版本控制系统。 此外,我们将正式采用 CEP 8 来管理我们的发布时间表。 此外,将采用加速版的 CEP 9 来处理弃用,省略了待弃用阶段,并将从弃用到删除的期限缩短至仅 2 个月。

✨ 新增功能?✨

  • 添加类似于 compilerstblib jinja 函数,以显式定义 sysroot 依赖项。
  • 利用 conda-known 子目录进行选择器定义,使 conda_build 仅通过更新的 conda 版本即可支持新的架构。 新的操作系统支持需要额外的信息才能实现正确的 conda_build 功能,包括类似 UNIX 的平台指定、共享库前缀和平台的二进制存档格式。
  • 消除 conda_build.build.test 中不必要的缓存清除。
  • 整合 which_package 实现,并将 conda.models.dist.Dist 的用法替换为 conda.models.records.PrefixRecords

🔧 修复了什么?🔧

  • get_hash_input 中显示软件包文件名。
  • 回退到已解决的记录文件名,以在 get_upstream_pins 中定位下载的 tarball。
  • 防止在较低优先级的 cbc.yaml 中不存在时,覆盖高优先级 cbc.yaml 条目中的变体。
  • 更正对缺少 anaconda-client 的检查,以显示有用的错误消息。
  • 修复 conda_index.index 详细 DEBUG/INFO 消息日志记录。
  • (3.28.1)当定义了 outputs 时,放宽对 package/version 的元数据检查。

🌅 标记为弃用的内容? 🌅

  • 标记 conda_build.environ.clean_pkg_cache 为即将弃用。
  • 标记 conda_build.conda_interface.IndexRecord 为即将弃用。 请改用 conda.models.records.PackageRecord
  • 标记 conda_build.os_utils.pyldd.is_string 为即将弃用。 请改用 isinstance(value, str)
  • 标记 conda_build.os_utils.pyldd.is_codefile 为即将弃用。 请改用 conda_build.os_utils.pyldd.codefile_class
  • 标记 conda_build.os_utils.pyldd.codefile_type 为即将弃用。 请改用 conda_build.os_utils.pyldd.codefile_class
  • 标记 conda_build.inspect_pkg.dist_files 为即将弃用。
  • 标记 conda_build.inspect_pkg.which_package(avoid_canonical_channel_name) 为即将弃用。
  • 标记 conda_build.inspect_pkg._installed 为即将弃用。
  • 标记 conda_build.os_utils.ldd.get_package_files 为即将弃用。
  • 标记 conda_build.os_utils.pyldd.mach_o_change 为即将弃用。
  • 标记 conda_build.os_utils.pyldd.inspect_rpath 为即将弃用。
  • 标记 conda_build.os_utils.pyldd.get_runpaths 为即将弃用。
  • 标记 conda_build.os_utils.pyldd.otool_sys 为即将弃用。
  • 标记 conda_build.os_utils.pyldd.ldd_sys 为即将弃用。
  • 标记 conda_build.post.determine_package_nature 为即将弃用。 请改用 conda_build.post.get_dsosconda_build.post.get_run_exports
  • 标记 conda_build.post.library_nature(subdir, bldpkgs_dirs, output_folder, channel_urls) 为即将弃用。
  • 标记 conda_build.post.dist_from_names 为即将弃用。 请查询 conda.core.prefix_data.PrefixData
  • 标记 conda_build.post.FakeDist 为即将弃用。 请改用 conda.models.records.PrefixRecord
  • 标记 conda_build.post._get_fake_pkg_dist 为即将弃用。 请改用 conda.models.records.PrefixRecord
  • 标记 conda_build.utils.relative 为即将弃用。 请改用 os.path.relpathpathlib.Path.relative_to

📄 文档新增功能?📄

https://docs.conda.org.cn/ 文档已进行了重大改版!🎉

去看看,让我们知道您的想法!🤩


Conda-Libmamba-Solver 23.11.0/23.11.1 的变更

要更新 conda-libmamba-solver,请运行

conda install -n base conda-libmamba-solver=23.11.1

✨ 新增功能?✨

  • (23.11.1)当 libmamba 检测到配置的求解器作业中存在问题时,引发更友好的 InvalidSpec 错误,而不是 RuntimeError
  • (23.11.1)确保 specs、SolverInputState.installedSolverInputState.virtual 容器始终排序。

🔧 修复了什么?🔧

  • 不要使用 libmamba 的默认信号处理程序,以便用户可以从 conda 中使用 Ctrl-C
  • 推迟 conda-build 特定的异常定义和导入,直到求解器需要它。
  • 将“被严格优先级排除”的求解器错误解释为适当的满足性冲突,并避免打印相关但无信息的警告。
  • 确保历史 specs 保留在环境中,即使这意味着引发冲突。
  • (23.11.1)仅配置一次 pinned specs,以避免与它们的持久性相关的求解器错误(即,如果存在 pinned specs 并且需要删除瞬态依赖项,则无法降级环境)。
  • (23.11.1)检测通道是否是多通道的一部分,以便后者用于 conda-build 的 PackageRecord 条目中。 修复了 conda-build 和自定义多通道的问题。
  • (23.11.1)允许在 default_channels 和其他多通道中使用经过身份验证的 URL。
  • (23.11.1)在重新加载本地通道时保留身份验证。

📄 文档新增功能?📄

https://conda.github.io/conda-libmamba-solver/ 文档已进行了重大改版!🎉

去看看,让我们知道您的想法!🤩


我们 ❤️ 我们的社区

总而言之,在这个发布周期中,我们有 7 位(!)新贡献者; 感谢我们所有的开源社区成员帮助使这些改进成为可能。

如果您有任何想法或想帮助改进任何 conda 社区项目,我们非常欢迎新的(和回归的)贡献者!😄