跳至主要内容

2023 年 11 月发布

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

2023 年 11 月的版本包含对三个 Conda 社区项目的更新:Conda、Conda-Build 和 Conda-Libmamba-Solver!🎉 这些版本都已发布到 mainconda-forge

Conda 中的更改 23.11.0

要更新 Conda,请运行

conda install -n base conda=23.11.0

📢 特别公告 📢

新的 menuinst v2 支持!

conda 长期以来一直支持 Windows 上的开始菜单项。这允许用户在 CMD(命令提示符)上打开他们的 Miniconda 提示符,并使用已初始化的 conda 会话。此菜单项(或快捷方式)创建逻辑由 menuinst 包提供。

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

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

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

✨ 新功能 ✨

  • 作为 conda doctor 的一部分,引入了一个新的插件钩子 CondaHealthCheck
  • --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 的内置 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

📢 特别公告 📢

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

✨ 新功能 ✨

  • 添加 stblib jinja 函数,类似于 compiler,以明确定义系统根依赖项。
  • 利用 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) 确保规范、SolverInputState.installedSolverInputState.virtual 容器始终保持排序。

🔧 修复了什么 🔧

  • 不要使用 libmamba 的默认信号处理程序,以便用户可以从 condaCtrl-C
  • 将 Conda-Build 特定的异常定义和导入推迟到求解器需要它为止。
  • 将“被严格优先级排除”的求解器错误解释为适当的可满足性冲突,并避免打印相关但没有信息的警告。
  • 确保历史规范保留在环境中,即使这意味着引发冲突。
  • (23.11.1) 只配置一次固定规范,以避免与其持久性相关的求解器错误(即,如果存在固定规范并且需要删除瞬态依赖项,则无法降级环境)。
  • (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 社区项目,我们非常欢迎新(和回归)贡献者!😄