2024 年 4 月和 5 月版本
·阅读时长:6 分钟
2024 年 4 月和 5 月版本包含对 conda 和 conda-build 的更新!🎉 所有这些新版本都已发布到 main
和 conda-forge
。
Conda 中的更改 24.4.0 和 24.5.0
要将 conda 更新到最新版本,请运行
conda install -n base conda=24.5.0
根据 conda 的发布计划 (CEP 8),预计每两个月发布一次官方版本;但是,偶尔会添加一些重要的新功能,这些功能足以保证在双月刊发布节奏之间进行单独发布。2024 年 4 月发布的 conda 版本为 Windows 用户引入了一项新的增强功能。具体而言,用于包中 Python 入口点的存根可执行文件现在已进行代码签名,这是由于 拉取请求 #13721 导致的。
除了其他更新外,最新的 conda 24.5.0
版本使 MSYS2 包能够利用上游安装前缀,添加了对 repodata.json
中 CEP-15 base_url
字段的支持,并允许在自定义频道设置中使用类似通配符的模式指定频道 URL(例如,对于具有身份验证处理程序插件的用户)。有关更多详细信息,请查看下面的列表或 发行说明。
✨ 新功能 ✨
- 报告哪个
MatchSpec
项导致了Invalid*Spec
异常,以提供更多信息量更大的错误消息。 - 删除
setuptools
遗留内容(MANIFEST.in
,wheel
构建依赖项),因为自从迁移到hatch
以来,这些内容不再需要了,如 拉取请求 #12509 中所述。 - 删除和更新 conda 内部的任何导入,这些导入来自
conda/exports.py
。
🔧 已修复问题 🔧
- 修复
conda notices --json
以正确输出 JSON。 - 修复 Unix 上 Windows
subdir
的前缀替换。
🌅 被标记为 弃用 的内容? 🌅
conda.activate._Activator.add_export_unset_vars
(改用conda.activate._Activator.get_export_unset_vars
)conda.activate._Activator.get_scripts_export_unset_vars
(改用test_activate.py
中的get_scripts_export_unset_vars
辅助函数)conda.activate._Activator._get_path_dirs(extra_library_bin)
conda.activate.JSONFormatMixin.get_scripts_export_unset_vars
(改用conda.activate._Activator.get_export_unset_vars
)conda.auxlib.collection.make_immutable
(改用frozendict.deepfreeze
)conda.gateways.logging.trace
(改用Logger.log(conda.common.constants.TRACE, msg)
)conda.plan
作为入口点conda.plan.add_defaults_to_specs
conda.plan.add_unlink
conda.plan.display_actions
conda.plan.execute_actions
conda.plan.execute_instructions
conda.plan.execute_plan
conda.plan._get_best_prec_match
(改用conda.misc._get_best_prec_match
)conda.plan.get_blank_actions
conda.plan._handle_menuinst
conda.plan._inject_UNLINKLINKTRANSACTION
conda.plan.install_actions
conda.plan._plan_from_actions
conda.plan.print_dists
conda.plan.revert_actions
(改用conda.cli.install.revert_actions
)conda.plan._update_old_plan
conda._vendor.frozendict
(改用frozendict
)conda create --mkdir
命令conda install --mkdir
(改用conda create
)
📄 文档中的新功能 📄
- 向
conda.core.index
添加类型提示和文档字符串。
Conda-Build 中的更改 24.5.0
要更新 conda-build,请运行
conda install -n base conda-build=24.5.0
2024 年 5 月发布的 conda-build 添加了 conda_build.metadata._split_line_selector
来缓存行选择器解析的文本,专门为特定 git_ref
获取 lfs
文件,并为选定测试启用 CodSpeed 基准测试。有关更多详细信息,请查看下面的列表或 发行说明。
✨ 新功能 ✨
- 添加
conda_build.render.open_recipe
上下文管理器以检测食谱类型(文件/meta.yaml
、目录/食谱或压缩包/包)并正确处理任何退出/关闭行为。 - 对于 Windows 用户,用于包中 Python 入口点的存根可执行文件现在已进行代码签名。
- 要求
conda >=23.7.0
。
🔧 已修复问题 🔧
- 修复所有 CLI 参数,以使用解析后的参数正确初始化
conda.base.context.context
。修复了未处理参数的问题(例如,--override-channels
以前被忽略)。
🌅 被标记为 弃用 的内容? 🌅
- 推迟
conda_build.index.channel_data
的弃用。
以下代码被标记为已弃用
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.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.TempDirectory
(改用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.Unsatisfiable
(请使用conda.exceptions.UnsatisfiableError
代替)conda_build.conda_interface.untracked
(请使用conda.misc.untracked
代替)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.utils.HashableDict
(请使用frozendict.deepfreeze
代替)conda_build.utils._convert_lists_to_sets
(请使用frozendict.deepfreeze
代替)conda_build.utils.represent_hashabledict
(请使用frozendict.deepfreeze
代替)conda_build.variants.get_vars(loop_only)
以下代码已移除
conda_build.api.get_output_file_path
(请使用conda_build.api.get_output_file_paths
代替)conda_build.bdist_conda
conda_build.build.have_prefix_files
conda_build.conda_interface.get_index
(请使用conda.core.index.get_index
代替)conda_build.conda_interface.get_version_from_git_tag
(请使用conda_build.environ.get_version_from_git_tag
代替)conda_build.conda_interface.handle_proxy_407
由conda.gateways.connection.session.CondaSession
处理conda_build.conda_interface.hashsum_file
(请使用conda.gateways.disk.read.compute_sum
代替)conda_build.conda_interface.md5_file
(请使用conda.gateways.disk.read.compute_sum(path, 'md5')
代替)conda_build.environ._load_all_json
conda_build.environ._load_json
conda_build.environ.cached_actions
conda_build.environ.Environment
(请使用conda.core.prefix_data.PrefixData
代替)conda_build.environ.InvalidEnvironment
conda_build.environ.LINK_ACTION
conda_build.environ.PREFIX_ACTION
conda_build.index._apply_instructions
(请使用conda_index._apply_instructions
代替)conda_build.index.DummyExecutor
conda_build.index.LOCK_TIMEOUT_SECS
conda_build.index.LOCKFILE_NAME
conda_build.index.MAX_THREADS_DEFAULT
我们 ❤️ 我们的社区
总共,我们在这个发布周期有 6 位新贡献者;感谢我们所有开源社区成员,帮助实现这些改进。
- @Callek 在 conda #13721 中做出了首次贡献
- @dwr-psandhu 在 conda #13770 中做出了首次贡献
- @ifitchet 在 conda #13649 中做出了首次贡献
- @Nathann03 在 conda #13816 中做出了首次贡献
- @Tobias-Fischer 在 conda-build #5202 中做出了首次贡献
- @ytausch 在 conda-build #5214 中做出了首次贡献
如果您有想法或想帮助改进任何 conda 社区项目,我们非常欢迎新(和返回)贡献者!😄