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
lockfile 安装打印事务报告。 - 如果使用
--dry-run
调用conda create
,则不需要-n/--name
或-p/--prefix
。 - 添加一个
envvars_force_uppercase
设置,其默认值为True
,将所有环境变量转换为大写(从而证明了 conda 当前行为的合理性);当envvars_force_uppercase
设置为False
时,conda 将仅保存保留大小写的变量名。 - 将
conda env list
命令别名为conda info --envs
。 - 将对
logger.warn
的调用替换为logger.warning
。
🔧 修复了什么? 🔧
- 改进了对 logger 级别的处理。
- 在
conda-meta/*.json
元数据中屏蔽身份验证详细信息。 - 在详细日志中屏蔽 Anaconda.org tokens。
- 修复了当历史文件仅包含单行注释行时的解析错误。
- 将缺少的
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 表达式添加了新的 include/exclude 部分。 - 通过使用
pickle
而不是copy.deepcopy
来提高性能。 - 在构建过程开始之前,将完全渲染的配方报告到 stdout。
- 验证
run_constrained
依赖项,以防止错误的规范到达最终的 repodata。 - 在多输出配方中构建输出时,将设置
PIP_*
环境变量。 - 减少日志记录的性能开销。
- 不要为常见异常生成 conda 错误报告。
- 添加
CondaBuildUserError
异常以替换sys.exit
调用。 - 更新了 CI 以下载 MacOSX 10.15 SDK。
🔧 修复了什么? 🔧
- 在生成文件哈希时,除了内容外,还包括文件路径,以避免在链接分析期间出现不必要的缓存。
- 当
LIEF
失败时的错误处理现在与patchelf
一致。 - 确保交叉构建配方选择正确的 noarch 包变体。
- 在 Linux 平台上,交叉编译时优先选择与 target_platform 匹配的 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 社区项目,我们非常欢迎新的(和回来的)贡献者! 😄