2024 年 4 月和 5 月发布
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),预计每两个月发布一个正式版本;但有时,可能会添加一些非常重要的新功能,足以保证在双月节奏之间单独发布一个版本。conda 2024 年 4 月的发布为 Windows 用户引入了一项新增强功能。具体来说,由于 pull request #13721,用于软件包中 Python 入口点的 stub 可执行文件现在已进行代码签名。
在其他更新中,最新版本的 24.5.0 conda 使 MSYS2 软件包能够利用上游安装前缀,在 repodata.json 中增加了对 CEP-15 base_url 字段的支持,并允许在使用自定义通道设置中使用类似 glob 的通配符模式指定通道 URL(例如,对于具有身份验证处理程序插件的用户)。有关更多详细信息,请参阅下面的列表或发行说明。
✨ 新功能?✨
- 报告哪个
MatchSpec项导致Invalid*Spec异常,以获得更具信息性的错误消息。 - 删除
setuptools残留项(MANIFEST.in、wheel构建依赖项),自从在 pull request #12509 中迁移到hatch后不再需要这些项。 - 删除并更新 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_specsconda.plan.add_unlinkconda.plan.display_actionsconda.plan.execute_actionsconda.plan.execute_instructionsconda.plan.execute_planconda.plan._get_best_prec_match(请改用conda.misc._get_best_prec_match)conda.plan.get_blank_actionsconda.plan._handle_menuinstconda.plan._inject_UNLINKLINKTRANSACTIONconda.plan.install_actionsconda.plan._plan_from_actionsconda.plan.print_distsconda.plan.revert_actions(请改用conda.cli.install.revert_actions)conda.plan._update_old_planconda._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
conda-build 2024 年 5 月的发布增加了 conda_build.metadata._split_line_selector 以缓存行选择器解析的文本,专门为特定的 git_ref 获取 lfs 文件,并为选定的测试启用 CodSpeed 基准测试。有关更多详细信息,请参阅下面的列表或发行说明。
✨ 新功能?✨
- 添加
conda_build.render.open_recipe上下文管理器,以检测 recipe 类型(文件/meta.yaml、目录/recipe 或 tarball/package)并正确处理任何退出/关闭行为。 - 对于 Windows 用户,软件包中 Python 入口点使用的 stub 可执行文件现在已进行代码签名。
- 需要
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_defaultconda_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.Completerconda_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_existsconda_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.InstalledPackagesconda_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_condaconda_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_condaconda_build.build.have_prefix_filesconda_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_jsonconda_build.environ._load_jsonconda_build.environ.cached_actionsconda_build.environ.Environment(请改用conda.core.prefix_data.PrefixData)conda_build.environ.InvalidEnvironmentconda_build.environ.LINK_ACTIONconda_build.environ.PREFIX_ACTIONconda_build.index._apply_instructions(请改用conda_index._apply_instructions)conda_build.index.DummyExecutorconda_build.index.LOCK_TIMEOUT_SECSconda_build.index.LOCKFILE_NAMEconda_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 社区项目,我们欢迎新的(和回来的)贡献者!😄
