跳至主要内容

2024 年 4 月和 5 月版本

·阅读时长:6 分钟
Bianca Henderson
Conda 维护者 🐍📦

2024 年 4 月和 5 月版本包含对 conda 和 conda-build 的更新!🎉 所有这些新版本都已发布到 mainconda-forge

Conda 中的更改 24.4.024.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.inwheel 构建依赖项),因为自从迁移到 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_407conda.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 位新贡献者;感谢我们所有开源社区成员,帮助实现这些改进。

如果您有想法或想帮助改进任何 conda 社区项目,我们非常欢迎新(和返回)贡献者!😄