2023 年 11 月发布
2023 年 11 月的版本包含对三个 Conda 社区项目的更新:Conda、Conda-Build 和 Conda-Libmamba-Solver!🎉 这些版本都已发布到 main
和 conda-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
命令列表中包含activate
和deactivate
。 - 优先下载较大的包,以防止较小的包等待。
- 为了调试目的,在
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_dsos
和conda_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.relpath
或pathlib.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.installed
和SolverInputState.virtual
容器始终保持排序。
🔧 修复了什么 🔧
- 不要使用
libmamba
的默认信号处理程序,以便用户可以从conda
中Ctrl-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 位新的贡献者!感谢我们所有开源社区成员的帮助,使这些改进成为可能。
- @13rac1 在 conda#13191 中做出了他们的首次贡献
- @AniketP04 在 conda#13224 中做出了他们的首次贡献
- @danpetry 在 conda-build#5039 中做出了他们的首次贡献
- @gfggithubleet 在 conda#13270 中做出了他们的首次贡献
- @h-vetinari 在 conda-build#4999 中做出了他们的首次贡献
- @kennethlaskoski 在 conda#13322 中做出了他们的首次贡献
- @scruel 在 conda#13274 中做出了他们的首次贡献
如果您有任何想法或想帮助改进任何 conda 社区项目,我们非常欢迎新(和回归)贡献者!😄