2024 年 7 月版本
·阅读时间:7 分钟
2024 年 7 月版本包含对 conda、conda-build 和 conda-libmamba-solver 的更新!🎉 这些版本都已发布到 main
和 conda-forge
通道。
Conda 中的变更 24.7.0/24.7.1
要更新 conda,请运行
conda install -n base conda=24.7.1
✨ 新功能 ✨
- 添加一个新的
reporters
设置,用于配置输出。 - 在详细程度为 2 或更高(
-vv
或更多)的情况下,报告插件加载错误的回溯信息。 - 在
conda doctor
的“缺少文件”健康检查中,跳过对.pyc
和.pyo
文件的检查。 - 重大变更
conda list --explicit
默认情况下不会打印身份验证详细信息。已添加一个新标志--auth
,以便用户可以选择此行为。 - 打印
@EXPLICIT
锁定文件安装的交易报告。 - 如果
conda create
使用--dry-run
调用,则不需要-n/--name
或-p/--prefix
。 - 添加
envvars_force_uppercase
设置,该设置默认值为True
,将所有环境变量大写(从而证明conda
的当前行为合理);当envvars_force_uppercase
设置为False
时,conda 仅保存保留大小写的变量名称。 - 将
conda env list
命令别名为conda info --envs
。 - 将对
logger.warn
的调用替换为logger.warning
。
🔧 已修复的问题 🔧
- 改进对日志记录级别的处理。
- 在
conda-meta/*.json
元数据中屏蔽身份验证详细信息。 - 在详细日志中屏蔽 Anaconda.org 令牌。
- 修复历史记录文件仅包含单行注释时发生的解析错误。
- 将缺少的
emscripten
和wasi
条目添加到已识别的平台中,并将wasm32
添加到已识别的体系结构中。 - 修复
conda.gateways.connection.download.download()
中的校验和比较,使其不区分大小写。 - 修复
repodata.json
包含\r\n
行尾时发生的缓存问题。 - 修复
conda.core.portability.binary_replace
未匹配以\n
结尾的块的问题。 - (24.7.1) 撤销对允许的环境名称字符的限制增加。以前禁止的字符(^, %, !, =, (, ), )再次允许使用,直到评估其影响为止。
🌅 已标记为弃用的功能? 🌅
- 将
conda.gateways.logging.initialize_root_logger
标记为即将弃用。 - 将
conda.cli.main_env_list.execute
标记为即将弃用。请改用conda.cli.main_info.execute
。 - 撤销
conda info
中的--all
弃用。 - 将
conda.exports.iteritems
标记为即将弃用。请改用内置的dict.items()
。 - 将
conda.exports.Completer
标记为即将弃用。 - 将
conda.exports.InstalledPackages
标记为即将弃用。 - 将
conda.exports.KEYS
标记为即将弃用。 - 将
conda.exports.KEYS_DIR
标记为即将弃用。 - 将
conda.exports.hash_file
标记为即将弃用。 - 将
conda.exports.verify
标记为即将弃用。 - 将
conda.exports.symlink_conda
标记为即将弃用。请改用conda.activate
。 - 将
conda.exports._symlink_conda_hlp
标记为即将弃用。请改用conda.activate
。 - 将
conda.exports.win_conda_bat_redirect
标记为即将弃用。请改用conda.activate
。 - 将
conda.utils.win_path_to_cygwin
标记为即将弃用。请改用conda.common.path.win_path_to_unix
。 - 将
conda.utils.cygwin_path_to_win
标记为即将弃用。请改用conda.utils.unix_path_to_win
。 - 将
conda.utils.translate_stream
标记为即将弃用。 - 将
conda.utils.unix_shell_base
标记为即将弃用。请改用conda.activate
。 - 将
conda.utils.msys2_shell_base
标记为即将弃用。请改用conda.activate
。 - 将
conda.utils.shells
标记为即将弃用。请改用conda.activate
。
📄 文档中的新功能 📄
- 在文档中阐明代理服务器配置。
- 在
conda.core.envs_manager
中添加类型提示和文档字符串。 - 添加日志记录概述作为深入探讨内容。
- 更新 conda 速查表文本,并将其直接添加到速查表页面。
- 将更新后的速查表 PDF 下载添加到速查表页面。
- 在用户指南中添加
ssl_verify: truststore
。 - 修复
satisfied-skip-solve
标志的帮助文本。 - 添加一个部分,解释如何从插件中正确引发异常。
- 添加一篇新文章,介绍如何配置
envs_dirs
和pkgs_dirs
。
Conda-Build 中的变更 24.7.0/24.7.1
要更新 conda-build,请运行
conda install -n base conda-build=24.7.1
✨ 新功能 ✨
- 跳过为本地索引生成
repodata.json.bz2
;仅生成repodata.json
;要求conda-package-handling >=2.2.0
与 conda 匹配。 - 在多输出
outputs/files
中,为 glob 表达式添加新的包含/排除部分。 - 通过使用
pickle
而不是copy.deepcopy
来提高性能。 - 在构建过程开始之前,将完全渲染的配方报告到标准输出。
- 验证
run_constrained
依赖项,以防止错误的规范到达最终的 repodata。 - 在多输出配方中构建输出时,设置
PIP_*
环境变量。 - 减少日志记录的性能开销。
- 不要为常见异常生成 conda 错误报告。
- 添加
CondaBuildUserError
异常以替换sys.exit
调用。 - 更新了 CI,以下载 MacOSX 10.15 SDK。
🔧 已修复的问题 🔧
- 在生成文件哈希时,除了内容之外,还包括文件路径,以避免在链接分析期间发生意外的缓存。
LIEF
失败时的错误处理现在与patchelf
一致。- 确保交叉构建配方选择正确的 noarch 包变体。
- 在 Linux 平台上,交叉编译时优先使用与目标平台匹配的 sysroot。
- (24.7.1) 在调用
pathlib.Path.samefile
/os.stat
之前,检查 WSL 是否存在。
🌅 已标记为弃用的功能? 🌅
- 将
conda_build.build._construct_metadata_for_test_from_recipe
标记为已弃用。请改用测试构建的包,而不是配方(例如,conda build --test package
而不是conda build --test recipe/
)。 - 将
conda_build.build.check_external
标记为已弃用。patchelf
是 Linux 上显式的 conda-build 依赖项,因此它将始终安装。 - 删除以下弃用内容
conda_build.config.Config.override_channels
(请改用conda.base.context.context.channels
)。conda_build.config.noarch_python_build_age_default
.conda_build.conda_interface.add_parser_channels
(请改用conda.cli.helpers.add_parser_channels
)。conda_build.conda_interface.add_parser_prefix
(请改用conda.cli.helpers.add_parser_prefix
)。conda_build.conda_interface.ArgumentParser
(请改用conda.cli.conda_argparse.ArgumentParser
)。conda_build.conda_interface.binstar_upload
(请改用conda.base.context.context.binstar_upload
)。conda_build.conda_interface.cc_conda_build
(请改用conda.base.context.context.conda_build
)。conda_build.conda_interface.cc_platform
(请改用conda.base.context.context.platform
)。conda_build.conda_interface.Channel
(请改用conda.models.channel.Channel
)。conda_build.conda_interface.Completer
.conda_build.conda_interface.configparser
(请改用configparser
)。conda_build.conda_interface.CondaError
(请改用conda.exceptions.CondaError
)。conda_build.conda_interface.CondaHTTPError
(请改用conda.exceptions.CondaHTTPError
)。conda_build.conda_interface.CondaSession
(请改用conda.gateways.connection.session.CondaSession
)。conda_build.conda_interface.CONDA_VERSION
(请改用conda.__version__
)。conda_build.conda_interface.context
(请改用conda.base.context.context
)。conda_build.conda_interface.create_default_packages
(请改用conda.base.context.context.create_default_packages
)。conda_build.conda_interface.default_python
(请改用conda.base.context.context.default_python
)。conda_build.conda_interface.determine_target_prefix
(请改用conda.base.context.determine_target_prefix
)。conda_build.conda_interface.download
(请改用conda.gateways.connection.download.download
)。conda_build.conda_interface.env_path_backup_var_exists
.conda_build.conda_interface.envs_dirs
(请改用conda.base.context.context.envs_dirs
)。conda_build.conda_interface.EntityEncoder
(请改用conda.auxlib.entity.EntityEncoder
)。conda_build.conda_interface.FileMode
(请改用conda.models.enums.FileMode
)。conda_build.conda_interface.get_conda_build_local_url
(请改用conda.models.channel.get_conda_build_local_url
)。conda_build.conda_interface.get_conda_channel
(请改用conda.models.channel.Channel.from_value
)。conda_build.conda_interface.get_prefix
(请改用conda.base.context.context.target_prefix
)。conda_build.conda_interface.get_rc_urls
(请改用conda.base.context.context.channels
)。conda_build.conda_interface.human_bytes
(请改用conda.utils.human_bytes
)。conda_build.conda_interface.import_module
(请改用importlib.import_module
)。conda_build.conda_interface.input
(请改用input
)。conda_build.conda_interface.InstalledPackages
.conda_build.conda_interface.lchmod
(请改用conda.gateways.disk.link.lchmod
)。conda_build.conda_interface.LinkError
(请改用conda.exceptions.LinkError
)。conda_build.conda_interface.LockError
(请改用conda.exceptions.LockError
)。conda_build.conda_interface.MatchSpec
(请改用conda.models.match_spec.MatchSpec
)。conda_build.conda_interface.non_x86_linux_machines
(请改用conda.base.context.non_x86_machines
)。conda_build.conda_interface.NoPackagesFound
(请改用conda.exceptions.ResolvePackageNotFound
)。conda_build.conda_interface.NoPackagesFoundError
(请改用conda.exceptions.NoPackagesFoundError
)。conda_build.conda_interface.normalized_version
(请改用conda.models.version.normalized_version
)。conda_build.conda_interface.os
(请改用os
)。conda_build.conda_interface.PackageRecord
(请改用conda.models.records.PackageRecord
)。conda_build.conda_interface.PaddingError
(请改用conda.exceptions.PaddingError
)。conda_build.conda_interface.partial
(请改用functools.partial
)。conda_build.conda_interface.PathType
(请改用conda.models.enums.PathType
)。conda_build.conda_interface.pkgs_dirs
(请改用conda.base.context.context.pkgs_dirs
)。conda_build.conda_interface.prefix_placeholder
(请改用conda.base.constants.PREFIX_PLACEHOLDER
)。conda_build.conda_interface.ProgressiveFetchExtract
(请使用conda.core.package_cache_data.ProgressiveFetchExtract
代替)。conda_build.conda_interface.reset_context
(请使用conda.base.context.reset_context
代替)。conda_build.conda_interface.Resolve
(请使用conda.resolve.Resolve
代替)。conda_build.conda_interface.rm_rf
(请使用conda_build.utils.rm_rf
代替)。conda_build.conda_interface.root_dir
(请使用conda.base.context.context.root_prefix
代替)。conda_build.conda_interface.root_writable
(请使用conda.base.context.context.root_writable
代替)。conda_build.conda_interface.spec_from_line
(请使用conda.cli.common.spec_from_line
代替)。conda_build.conda_interface.specs_from_args
(请使用conda.cli.common.specs_from_args
代替)。conda_build.conda_interface.specs_from_url
(请使用conda.cli.common.specs_from_url
代替)。conda_build.conda_interface.StringIO
(请使用io.StringIO
代替)。conda_build.conda_interface.subdir
(请使用conda.base.context.context.subdir
代替)。conda_build.conda_interface.symlink_conda
.conda_build.conda_interface.TemporaryDirectory
(请使用conda.gateways.disk.create.TemporaryDirectory
代替)。conda_build.conda_interface.TmpDownload
(请使用conda.gateways.connection.download.TmpDownload
代替)。conda_build.conda_interface._toposort
(请使用conda.common.toposort._toposort
代替)。conda_build.conda_interface.unix_path_to_win
(请使用conda.utils.unix_path_to_win
代替)。conda_build.conda_interface.untracked
(请使用conda.misc.untracked
代替)。conda_build.conda_interface.Unsatisfiable
(请使用conda.exceptions.UnsatisfiableError
代替)。conda_build.conda_interface.UnsatisfiableError
(请使用conda.exceptions.UnsatisfiableError
代替)。conda_build.conda_interface.url_path
(请使用conda.utils.url_path
代替)。conda_build.conda_interface.VersionOrder
(请使用conda.models.version.VersionOrder
代替)。conda_build.conda_interface.walk_prefix
(请使用conda.misc.walk_prefix
代替)。conda_build.conda_interface.win_path_to_unix
(请使用conda.common.path.win_path_to_unix
代替)。conda_build.index.channel_data
;conda_build.index.get_build_index
中channel_data
的返回值现在始终为None
。conda_build.metadata.check_circular_dependencies
(请使用conda_build.metadata._check_circular_dependencies
代替)。conda_build.metadata.toposort
(请使用conda_build.metadata.toposort_outputs
代替)。conda_build.utils._convert_lists_to_sets
(请使用frozendict.deepfreeze
代替)。conda_build.utils.HashableDict
(请使用frozendict.deepfreeze
代替)。conda_build.utils.represent_hashabledict
(请使用frozendict.deepfreeze
代替)。conda_build.utils.rm_rf(config)
.conda_build.variants.get_vars(loop_only)
.
Conda-Libmamba-Solver 中的变更 24.7.0
要更新 conda-libmamba-solver,请运行
conda install -n base conda-libmamba-solver=24.7.0
✨ 新功能 ✨
- 使用 devcontainers 记录开发工作流程。
- 为本地开发工作流程添加 DevContainer 配置。
🔧 修复 🔧
- 允许在包名称中使用通配符来执行
conda remove
(例如conda remove "python-*"
)。 - 避免在使用频道固定规范(如
channel::package
)时重复列出频道。 - 修复了
.solv
repodata 缓存文件在可用时未加载导致的性能回归。 - 不要忽略虚拟包作为输入规范。
- 固定
libmambapy <2
以防御即将到来的 API 变更。
我们 ❤️ 我们的社区
总的来说,我们在本发布周期中有 9 位新贡献者!感谢我们所有开源社区成员,使这些改进成为可能。
- @carterbox 在 conda-build#5216 中做出了首次贡献
- @DerThorsten 在 conda#13962 中做出了首次贡献
- @erik-whiting 在 conda#13877 中做出了首次贡献
- @kelvinou01 在 conda#14044 中做出了首次贡献
- @padeoe 在 conda#12856 中做出了首次贡献
- @skupr-anaconda 在 conda#13946 中做出了首次贡献
- @timkpaine 在 conda-build#4821 中做出了首次贡献
- @tl-hbk 在 conda-libmamba-solver#449 中做出了首次贡献
- @zklaus 在 conda-build#5364 和 conda-libmamba-solver#476 中做出了首次贡献
如果您有任何想法或想帮助改进任何 conda 社区项目,我们很乐意看到新的(和回归的)贡献者!😄