跳到主要内容

2024 年 3 月发布

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

2024 年 3 月的发布包括 conda 和 conda-build 的更新!🎉 这些都已发布到 mainconda-forge

Conda 中的变更 24.3.0

要更新 conda,请运行

conda install -n base conda=24.3.0

✨ 新特性 ✨

  • 如果 repodata.json 引发 JSONDecodeError,则显示无法解码的响应的前几个字符。
  • 更新 conda.gateways.subprocess.subprocess_call 以使用 text=True,避免手动编码/解码。
  • 添加一个新的插件钩子,使插件作者能够定义新的设置。
  • 优化模块导入以加速 conda activate
  • conda env export 移动到 conda export,并将旧命令别名为新命令。
  • 在运行 conda install --revision <idx> 时报告进度。
  • 添加 conda.testing.tmp_channel pytest fixture 以创建用于测试的临时本地通道。
  • 在发布期间将稳定的发布工件上传到 GitHub 发布。

🔧 已修复的问题 🔧

  • 当启用 conda 调试日志时,在 KeyboardInterrupt 上打印回溯信息,而不是引发另一个 AttributeError 异常。
  • 将整数通道通知 ID 解析为 str 而不是引发异常。
  • 添加对 zstandard 的直接运行时依赖,以便在下载 repodata.json.zst 时使用。
  • 如果 repodata.json.zst 无法解压缩为 zstandard,则回退到 repodata.json
  • 当 conda 未激活时,conda rename 命令不再抛出错误。
  • 在大多数 4xx 错误代码上,从 repodata.json.zst 回退到 repodata.json
  • 修复获取 repodata 时日志处理导致的资源过度使用。
  • 重新启用 --subdir--platform 标志,使其可用于 conda env create 命令。
  • 修复 Windows 上的 __archspec 虚拟软件包以返回微架构,而不是默认的 x86_64

🌅 标记为 弃用 的内容 🌅

  • 停止使用自定义 docker 镜像。请改用 Anaconda Inc.conda-forge 提供的镜像。
  • conda.testing.integration.make_temp_channel 标记为即将弃用。请改用 conda.testing.tmp_channel fixture。
  • conda.testing.integration.running_a_python_capable_of_unicode_subprocessing 标记为即将弃用。
  • conda.testing.integration.set_tmpdir 标记为即将弃用。请改用 tmp_pathconda.testing.path_factoryconda.testing.tmp_env
  • conda.testing.integration._get_temp_prefix 标记为即将弃用。请改用 tmp_pathconda.testing.path_factoryconda.testing.tmp_env
  • conda.testing.integration.make_temp_prefix 标记为即将弃用。请改用 tmp_pathconda.testing.path_factoryconda.testing.tmp_env
  • conda.testing.integration.FORCE_temp_prefix 标记为即将弃用。请改用 tmp_pathconda.testing.path_factoryconda.testing.tmp_env
  • conda.testing.integration.create_temp_location 标记为即将弃用。请改用 tmp_pathconda.testing.path_factory
  • conda.testing.integration.tempdir 标记为即将弃用。请改用 tmp_pathconda.testing.path_factory
  • conda.testing.integration.reload_config 标记为即将弃用。请改用 conda.base.context.reset_context
  • 移除 conda.export.handle_proxy_407
  • 移除 vendored conda._vendor.boltons。请改用 boltons 包。
  • 移除 conda.auxlib.packaging。请改用现代构建系统;有关更多详细信息,请参阅 https://packaging.pythonlang.cn/en/latest/tutorials/packaging-projects#creating-pyproject-toml
  • 移除 conda env create --force。请改用 conda env create --yes
  • 移除 conda info PACKAGE。请改用 conda search PACKAGE --info
  • 移除 conda.core.subdir_data.fetch_repodata_remote_request。请改用 conda.core.subdir_data.SubdirData.repo_fetch.fetch_latest_parsed
  • 移除 conda.exports.memoized。请改用 functools.lru_cache
  • 移除 conda.gateways.disk.read._digest_path。请改用 conda.gateways.disk.read.compute_sum
  • 移除 conda.gateways.disk.read.compute_md5sum。请改用 conda.gateways.disk.read.compute_sum(path, "md5")
  • 移除 conda.gateways.disk.read.compute_sha256sum。请改用 conda.gateways.disk.read.compute_sum(path, "sha256")
  • 移除 conda.instructions.PREFIX
  • 移除 conda.instructions.PREFIX_CMD
  • 移除 conda.testing.encode_for_env_var
  • 移除 conda.testing.conda_check_versions_aligned
  • 移除 conda.testing.helpers.run_inprocess_conda_command。请改用 conda.testing.tmp_env
  • 移除 conda.testing.helpers.capture_json_with_argv
  • 移除 conda.testing.integration.get_conda_list_tuple。请改用 conda.core.prefix_data.PrefixData.get
  • 移除 conda.utils.md5_file。请改用 conda.gateways.disk.read.compute_sum(path, "md5")
  • 移除 conda.utils.hashsum_file。请改用 conda.gateways.disk.read.compute_sum
  • 移除 conda.utils.safe_open。请改用 open
  • 移除 python -m conda_env。请改用 conda envpython -m conda env
  • 移除 conda_env.env.load_from_directory
  • 移除 conda_env.pip_util.get_pip_version
  • 移除 conda_env.pip_util.PipPackage
  • 移除 conda_env.pip_util.installed
  • 移除 conda_env.pip_util._canonicalize_name
  • 移除 conda_env.pip_util.add_pip_installed
  • conda.base.context.Context.conda_exe 的弃用推迟到 conda 24.9
  • conda.testing.integration.run_command 的弃用推迟到 conda 25.3
  • 将从可执行文件加载子命令的弃用推迟到 conda 25.3

📄 文档中的新特性 📄

  • 更新 Miniconda 的导航链接。

Conda-Build 中的变更 24.3.0

要更新 conda-build,请运行

conda install -n base conda-build=24.3.0

✨ 新特性 ✨

  • 添加对 LIEF=0.14 的兼容性。
  • msvc_env_cmd 中,当 bits 为 "arm64" 时,添加一个检查以打印额外的警告并返回空字符串。

🔧 已修复的问题 🔧

  • 修复在变体哈希输入中识别 stdlib 的问题。

🌅 标记为 弃用 的内容 🌅

  • conda_build.bdist_conda 模块标记为即将弃用。
  • conda_build.build.have_prefix_files 标记为已弃用。
  • 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.PREFIX_ACTION 标记为已弃用。
  • conda_build.environ.LINK_ACTION 标记为已弃用。
  • conda_build.environ.cache_actions 标记为已弃用。
  • conda_build.index.DummyExecutor 标记为已弃用。
  • conda_build.index.MAX_THREADS_DEFAULT 标记为已弃用。
  • conda_build.index.LOCK_TIMEOUT_SECS 标记为已弃用。
  • conda_build.index.LOCKFILE_NAME 标记为已弃用。
  • conda_build.api.get_output_file_path 标记为已弃用。请改用 conda_build.api.get_output_file_paths
  • conda_build.environ.Environment 标记为已弃用。请改用 conda.core.prefix_data.PrefixData
  • conda_build.conda_interface.get_version_from_git_tag 标记为已弃用。请改用 conda_build.environ.get_version_from_git_tag
  • 重命名 conda_build.environ.create_env('specs_or_actions' -> 'specs_or_precs')
  • 重命名 conda_build.environ._execute_actions('actions' -> 'precs')
  • 重命名 conda_build.environ._display_actions('actions' -> 'precs')
  • 重命名 conda_build.inspect.check_install('platform' -> 'subdir')
  • 重命名 conda_build.render.execute_download_actions('actions' -> 'precs')
  • 重命名 conda_build.render.get_upstream_pins('actions' -> 'precs')
  • 移除 conda_build.cli.main_render.execute(print_results)
  • 移除 conda_build.conda_interface.Dist
  • 移除 conda_build.conda_interface.display_actions
  • 移除 conda_build.conda_interface.execute_actions
  • 移除 conda_build.conda_interface.execute_plan
  • 移除 conda_build.conda_interface.install_actions
  • 移除 conda_build.conda_interface.linked
  • 移除 conda_build.conda_interface.linked_data
  • 移除 conda_build.conda_interface.package_cache
  • 移除 conda_build.environ.get_install_actions。请改用 conda_build.environ.get_package_records
  • 移除 conda_build.index._determine_namespace
  • 移除 conda_build.index._make_seconds
  • 移除 conda_build.index.REPODATA_VERSION
  • 移除 conda_build.index.CHANNELDATA_VERSION
  • 移除 conda_build.index.REPODATA_JSON_FN
  • 移除 conda_build.index.REPODATA_FROM_PKGS_JSON_FN
  • 移除 conda_build.index.CHANNELDATA_FIELDS
  • 移除 conda_build.index._clear_newline_chars
  • 移除 conda_build.index._get_jinja2_environment
  • 移除 conda_build.index._maybe_write
  • 移除 conda_build.index._make_build_string
  • 移除 conda_build.index._warn_on_missing_dependencies
  • 移除 conda_build.index._cache_post_install_details
  • 移除 conda_build.index._cache_recipe
  • 移除 conda_build.index._cache_run_exports
  • 移除 conda_build.index._cache_icon
  • 移除 conda_build.index._make_subdir_index_html
  • 移除 conda_build.index._make_channeldata_index_html
  • 移除 conda_build.index._get_source_repo_git_info
  • 移除 conda_build.index._cache_info_file
  • 移除 conda_build.index._alternate_file_extension
  • 移除 conda_build.index._get_resolve_object
  • 移除 conda_build.index._get_newest_versions
  • 移除 conda_build.index._add_missing_deps
  • 移除 conda_build.index._add_prev_ver_for_features
  • 移除 conda_build.index._shard_newest_packages
  • 移除 conda_build.index._build_current_repodata
  • 移除 conda_build.index.ChannelIndex
  • 移除 conda_build.inspect.check_install('prepend')
  • 移除 conda_build.inspect.check_install('minimal_hint')
  • 移除 conda_build.noarch_python.ISWIN。请改用 conda_build.utils.on_win
  • 移除 conda_build.noarch_python._force_dir。请改用 os.makedirs(exist_ok=True)
  • 移除 conda_build.noarch_python._error_exit
  • 移除 conda_build.render.actions_to_pins
  • 移除 conda_build.utils.linked_data_no_multichannels
  • 推迟 conda_build.index.channel_data 弃用。

📄 文档中的新特性 📄

  • 更新关于将 conda-build 安装到 base 环境的建议。

我们 ❤️ 我们的社区

在这个发布周期中,我们总共有 2 位新的贡献者;感谢我们所有的开源社区成员,感谢他们帮助使这些改进成为可能。

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