更新日志¶
有关 Conan 2 相较于 Conan 1.X 的主要变更的更详细描述,请阅读 Conan 2 的新特性
2.15.0 (2025年3月31日)¶
特性: 改进处理不正确的 JSON 输入文件格式时的错误消息。 #18037
特性: 添加了版本范围模式,使用
[1.2.3.4.*]
定义,其中*
位于字符串末尾。 #18012 。 文档 此处特性: 如果在 Apple 操作系统之间进行交叉编译,则在 MesonToolchain 中添加了 subsystem 字段。 #17985
特性: 为 is_apple_os 辅助函数添加了新的 kwarg build_context。 #17985
修复: 在调用 conan cache clean 时,从未知引用中删除备份源。 #18018
修复: 修复 SBOM 作者字段。 #18014
修复: 如果符号链接路径与库名称匹配,则默认避免解析符号链接路径。 #17964
修复: 将
CLI
命令中一些from conan.internal
和from conans
的用法设为私有,并移至 ConanAPI。 #17961修复: 改进生成器中的相对路径,使其尽可能短。 #17945
修复: _Component() 没有 package_type 属性。 #17943
Bugfix: 修复
global.conf
优先级高于 profile[conf]
以及每个软件包模式 conf 的顺序更改的问题。 #18028Bugfix: 解决
update_policy=legacy
和使用锁定文件时的问题。 #18009Bugfix: 如果目录具有更严格的模式,untargz() 方法会失败。 #17998
Bugfix: CppInfo.auto_deduce_location 方法为精确匹配赋予更高的优先级。 #17975
Bugfix: 避免在工具需求内部的自定义生成器通过类而不是名称引用时,
--format=json
序列化崩溃。 #17954BugFix: 在元数据中添加正确的信息 + 防止在没有组件与 root_node 关联时崩溃。 #17925
2.14.0 (2025年3月12日)¶
特性: 允许工作区的局部
workspace install <path1> ... <pathN>
安装。 #17887 。 文档 此处特性: 为 validate 方法添加 hook:pre_validate 和 post_validate。 #17856 。 文档 此处
特性: 为 CMakeConfigDeps 添加了完整的 Apple Frameworks 管理。 #17725 。 文档 此处
特性: 为 cpp_info 添加了新的 cpp_info.package_framework。 #17725 。 文档 此处
特性: 修复了 docker runner 中的几个 bug,添加了新的配置选项并改进了日志记录系统 #17542 。 文档 此处
修复: 当由于意外语法导致
jinja2
profile 渲染失败时,改进错误消息。 #17940修复: 对于精确的库匹配,不要在自动推导位置时发出警告。 #17923
修复:
cmake_set_interface_link_directories
属性在CMakeDeps
中完全不是必需的,并且在CMakeConfigDeps
中变为无效,因为它将需要完整的package_info()
定义。 #17917 。 文档 此处修复: 不要在
MSBuildDeps
生成器中将\\
转换为/
,因为某些 MSBuild 功能需要 Windows\\
路径。 #17901修复: 避免工作区错误地定义 “local-recipes-index” 辅助缓存。 #17883
修复: 改进 profile 环境转储的输出,并具有正确的前置顺序。 #17863
修复: 如果 OS 设置为 WindowsStore,则修复 VCVars vcvarsall.bat 生成。 #17849
Bugfix: 当构建 profile 中的
[tool_requires]
依赖于自身且具有版本范围时,避免自依赖和循环。 #17931Bugfix: 修复
conan graph build-order --reduce --order-by=recipe
未过滤所有 != “Build” 包的问题。 #17909Bugfix: 解决当版本范围具有不同的用户时,未引发冲突的问题。 #17877
2.13.0 (2025年2月26日)¶
特性:
CMakeDeps
生成的Findxxxx.cmake
文件现在可以为cmake_additional_variables_prefixes
定义{prefix}_FOUND
和{prefix}_VERSION
。 #17838特性: 在 conanfile 中提供新的孵化
CMakeConfigDeps
生成器,该生成器仍处于孵化 “conf” 功能标志下。 #17831 。 文档 此处特性: 如果向
local-recipes-index
远程请求了与当前版本不同的特定修订版本,则添加警告。 #17819特性: 将存储库参数(具有相同的默认值)从 coordinates_to_conandata() 转发到 get_url_and_commit()。 #17722
特性: 为
gcc
MinGW 编译器 settings.yml 添加mcf
线程。 #17704特性: 改进
conanws.py
文件定义,使其遵循与ConanFile
相同的模式。 #17688 。 文档 此处特性: 工作区新的
workspace install
命令,用于包含多个editables
的单体超级项目。 #17675 。 文档 此处特性: 新的
conan new workspace
模板包含基于 CMake 的单体超级项目,该项目与conan workspace install
一起使用。 #17675 。 文档 此处特性: 将 CMAKE_LIBRARY_PATH 添加到 conan_cmakedeps_paths.cmake (新的 CMakeDeps)。 #17668
特性: 将 CMAKE_INCLUDE_PATH 添加到 conan_cmakedeps_paths.cmake (新的 CMakeDeps)。 #17668
特性: 为 conanfile 依赖项添加 extension_properties 访问。 #17659 。 文档 此处
特性: 在 Version 中引入 in_range 方法,该方法允许与版本范围进行比较。 #17658 。 文档 此处
特性: 将依赖项
urllib3
升级到2.0
。 #17655特性: 增强的
Premake
CLI 包装器,具有可配置的 Lua 文件路径,并支持自定义命令行参数。 #17398 。 文档 此处修复: 关于 CONAN_LOGIN 环境变量的
conan remote auth
的文档字符串。 #17834修复: 关于来自工具需求的
target_link_libraries()
,为孵化 CMakeDeps 提供更好的消息。 #17821修复: 修复 _calculate_licenses SBOM 方法 bug 并添加一个小测试。 #17801
修复: 允许
AutotoolsToolchain
中来自conf
的构建上下文信息。 #17794修复: 允许 msys2 子系统路径从环境变量继承 #17781
修复: 改进组件定义错误和运行时冲突的错误消息。 #17771
修复: 更新客户端迁移的消息。 #17751
修复: 提高 untar 性能。 #17708
修复: 保护对
required_components
属性错误赋值cpp_info/components.required_components = xxx
的情况。现在它将引发正确的错误。 #17692修复: 新的
CMakeDeps
共享库的传递链接。 #17459Bugfix: 修复自包含的
pyinstaller
可执行文件,使其也包含新的conan.tools.sbom
工具。 #17809
2.12.2 (2025年2月12日)¶
2.12.1 (2025年1月28日)¶
2.12.0 (2025年1月27日)¶
特性: 公开记录(和实验性)
--build=compatible:[pattern]
构建模式,以允许在当前配置无效且二进制兼容性定义兼容二进制文件时,构建与当前配置不同的其他配置。 #17637 。 文档 此处特性: 定义新的
tools.cmake.cmaketoolchain:user_presets
以自定义生成的CMakeUserPresets.json
的名称,禁用其生成。也可以在子文件夹中生成它。 #17613 。 文档 此处特性: 在
--format=json
图形输出中序列化原始需求版本范围,而不仅仅是解析后的版本范围。 #17603特性: 将 cycloneDX 添加为 Conan 工具,并为 conanfile 实现子图。 #17559 。 文档 此处
特性: 初始
conan workspace build
命令,用于基于products
的定义构建完整的工作区。 #17538 。 文档 此处特性: 允许从外部集中文件夹为类似 conan-center-index 的布局在 “create” 时应用补丁。 #17520 。 文档 此处
特性: 在解压 tarball 文件时添加报告进度。 #17519
特性: conan profile show 现在可以选择要显示的上下文的 profile。 #17518
特性: 更好的日志记录,打印存储库的用户名、成功的身份验证事件和跟踪级别消息,包括完整的 URL 请求。 #17517
特性: 添加 conan config clean 命令,该命令将从 conan home 中删除所有自定义配置,但不包括生成的软件包。 #17514 。 文档 此处
特性: 向 ConanApi 添加 reinit 方法,该方法重新初始化每个 subapi。 #17514 。 文档 此处
特性: 允许定义
--out-file=file.ext
而不是--format=ext > file.ext
,以直接写入文件并避免重定向问题。 #17507 。 文档 此处特性: 在 API 调用之间缓存 HTTP 请求会话。 #17455
特性: 在
Remote
对象中为RemoteManager
调用实现缓存,从而在 Remote 对象的生命周期内节省重复的服务器调用。 #17449 。 文档 此处修复: 将 arch_flag 作为公共属性添加到 MesonToolchain 生成器。 #17629
修复: 对于负载非常重的 CI 服务器,将 sqlite 超时时间从 10 秒增加到 20 秒。 #17616
修复: 使
remotes.json
保存具有事务性,以避免硬终止进程导致损坏。 #17588修复: 当
test_package
缺少二进制文件时,改进 conan create 的错误消息。 #17581修复: 修复 Git is_dirty 检测具有路径的排除文件的问题。 #17571
修复: 允许最新的 bottle 0.13 版本用于
conan_server
以与 Python 3.13 一起工作。 #17534修复: GnuToolchain 的 make_args 正确处理空值。 #17532
修复: 修复
replace_in_file
中的不一致性,如果未找到模式(在 strict off 的情况下),则返回 False,否则返回 None。 #17531修复: conan profile show 不会用信息标题污染 stdout。 #17518
修复: 当在 languages 属性中使用未知语言时报错。 #17512
修复: 修复当使用
workspace_api.load()
并在set_version()
内部使用self.run()
时的Workspace
。 #17501Bugfix: conf_build 不存在于 cli 和 conanfile.txt 上下文中。 #17640
Bugfix: 使 pattern 和 strip_root 可以同时用于 conan.tools.files.unzip()。 #17591
Bugfix: 解决孵化
CMakeDeps
在传递[replace_requires]
方面的问题。 #17566Bugfix: 解决
PkgConfigDeps
在传递[replace_requires]
方面的问题。 #17566
2.11.0 (2024年12月18日)¶
特性: 仅在启用时警告冻结的 conan v1 远程。 #17482
特性: AutotoolsToolchain 在首次进行 Android 交叉编译时使用用户的变量。 #17470 。 文档 此处
特性: AutotoolsToolchain 检查 Android 交叉编译路径是否存在。 #17470 。 文档 此处
特性: 将 Conan 缓存 “profiles” 文件夹添加到 jinja2 搜索路径,以便即使对于父文件夹和同级文件夹,也可以从 jinja 语法中包含/导入 profile。 #17432 。 文档 此处
特性: 更新了 tools.env.virtualenv:powershell conf,以允许指定 PowerShell 可执行文件(例如,powershell.exe 或 pwsh)并传递其他参数。 #17416 。 文档 此处
特性: 弃用 tools.env.virtualenv:powershell=True/False 的使用。 #17416 。 文档 此处
修复: 如果值为 None,则不显示 powershell 弃用消息。 #17500
修复: 修复调用
editable_add
时LocalAPI
对 editables 的定义。 #17498修复: 澄清 CMakeDeps 中的调试消息。 #17453
修复: 在 BazelDeps 的 glob() 函数中显式添加了 allow_empty = True (兼容 bazel 8.x)。 #17444
修复: 修复由于未清理的正则表达式导致的 cpp_info.location 推导中断的问题。 #17430
修复: 信任来自符号链接的真实路径是一个好的做法。 #17421
修复: 修复在 local-recipes-index 中搜索模式时的用户/频道问题。 #17408
修复: 为空版本范围添加警告。 #17405
Bugfix: 修复组件属性的虚假重复 #17503
Bugfix: 修复在 powershell 中使用单引号运行命令的问题。 #17487
Bugfix: 修复取消设置某些类型的 conf 的问题。 #17445
2.10.3 (2024年12月18日)¶
Bugfix: 集成 Conan 2.9.3 缺失的修复 https://github.com/conan-io/conan/pull/17338 #17496
2.10.2 (2024年12月10日)¶
修复: 解决大型图中计算 “skip” 二进制文件的性能问题。 #17436
2.10.1 (2024年12月4日)¶
Bugfix: 修复相同引用名称替换的 [replace_requires]。 #17409
2.10.0 (2024年12月2日)¶
特性: 为 conan remote auth 添加 –force 选项,即使对于已启用匿名访问的远程仓库,也强制进行身份验证。 #17377 。 文档 此处
特性: 为 conan new 命令添加 –output 选项。 #17359
特性: 让新的
CMakeDeps
始终定义组件,并使用find_package( COMPONENTS)
检查它们,监听新的属性cmake_components
。 #17302特性: 允许
tools.microsoft.msbuild:max_cpu_count=0
使用/m
来使用所有可用的核心。 #17301 。 文档 此处特性: 改进了自动推导位置函数。 #17296
特性: BazelDeps 使用新的 deduce_location 机制来查找库。 #17296
特性: 初始
conan workspace
初始提案,用于管理本地 editables 集。仅作为开发/维护人员功能引入,位于环境变量之后。 #17272 。 文档 此处特性: 允许在
conan config install-pkg
中使用--settings
,以便在不同的平台上创建和安装不同的配置。 #17217 。 文档 此处修复: 修复了在子文件夹中使用 conan.tools.scm.Git.fetch_commit() 时发生的错误。 #17369
修复: 为选项冲突添加 “risk” 警告,以便用户可以在发生冲突时执行 warn-as-error 来引发错误。 #17366
修复: 新的
CMakeDeps
生成器允许用于包内文件的fooConfig.cmake
,除了foo-config.cmake
之外。 #17330修复: 在缓存中构建时,为可编辑的依赖项添加警告。 #17325
修复: 如果源补丁在 export_conandata_patches 中不存在,则引发 ConanException。 #17294
修复: 改进 CONAN_LOG_LEVEL 环境变量不正确值的用户体验。 #17280
修复: Meson 与其他构建系统保持一致,将 x86_64->`x86` 视为交叉构建。 #17266
修复: 避免
colorama
bug 在大型输出时崩溃。 #17259Bugfix: 当
compiler=clang
和compiler_executables={"c": "clang-cl"}
时添加正确的标志,以避免在从 Linux 到 Windows 的交叉构建时注入不正确的标志。 #17387Bugfix: 解决使用旧版
choco search --local-only
导致的Choco().check()
bug,已替换为choco list
。 #17382Bugfix: 修复添加路径中带有空格的 tools.android:ndk_path 的问题。 #17379
Bugfix: 解决
&
模式的消费者包误检测问题。 #17346Bugfix: 修复 Safari 中 conan graph info … -f=html 的问题。 #17335
Bugfix: 允许同一依赖项的多个
[replace_requires]
。 #17326Bugfix: BazelDeps 无法找到 OpenSSL 共享库。 #17296
Bugfix: 解决
CMake
未使用tools.microsoft.msbuild:max_cpu_count
中的正确值的 bug。 #17292Bugfix: 修复列表值属性的
cpp_info
属性覆盖而不是合并的问题。对于使cmake_build_modules
在editable
模式下工作是必要的。 #17214
2.9.3 (2024年11月21日)¶
Bugfix: 修复影响组件检查的
is_test
计算。 #17338
2.9.2 (2024年11月7日)¶
2.9.1 (2024年10月30日)¶
2.9.0 (2024年10月29日)¶
特性:conan new 命令学习了默认值
-d name=mypkg -d version=0.1
,以简化用户体验。#17186 。文档 here特性:当修补文件且 recipe 具有 no_copy_source = True 时发出警告,这可能会导致不可预见的问题 #17162
特性:为 tool_requires 添加 self.generator_info,以便将 generators 传播到其直接依赖项。#17129 。文档 here
特性:新的
tools.graph:skip_build
conf,能够跳过tool_requires
的扩展。#17117 。文档 here特性:新的
tools.graph:skip_test
conf,能够跳过test_requires
的扩展。#17117 。文档 here特性:为 ROS2(机器人操作系统)添加 ROSEnv generator 集成。#17110
特性:向
conan graph build-order
添加 profile 参数信息,以改善用户体验和在 CI 系统中的使用。#17102 。文档 here特性:新的
CMakeDeps
generator 通过tools.cmake.cmakedeps:new
conf 激活,值为will_break_next
用于评估。这个新的 generator 推断或使用cpp_info.location/link_location
来定义 STATIC; SHARED, INTERFACE 导入的目标。它还将定义 IMPORTED_LOCATION、IMPORTED_CONFIGURATION 等。#16964特性:使用
cpp_info.languages
,默认为 recipe 的languages
,以将 “link-language” requirements 传播给包的使用者。#16964特性:仅为新的
CMakeDeps
generator 定义cpp_info.default_components
。#16964特性:为可执行应用程序建模
cpp_info.exes
字段,仅由新的CMakeDeps
generator 使用,该 generator 在CMakeDeps
中为cpp_info.exes
生成导入的可执行目标。#16964修复:在 Windows 上为 meson.configure() 使用有效的前缀路径,以避免在 Python 3.13 中出现故障。#17206
修复:将启动选项添加到每个 Bazel 命令。#17183
修复:将远程名称添加到登录提示符。#17178
修复:当过期的 token 给出 AuthenticationException 时,获取凭据并重新进行身份验证。#17127
修复:将异常从旧的
from conans.error
移动到有文档记录的from conan.error
。#17126 。文档 here修复:
Pacman
作为包管理器不应用于tools.microsoft.bash:subsystem=msys2
,而应在目标平台实际上是 msys2os.subsystem=msys2
(作为设置)时使用。#17103修复:在 MSBuildToolchain 中从 profile 正确推断 RuntimeLibrary。#17100
修复:对于 gcc >= 10,将 C++20 标志设置为 {gnu}c++20,而不是 c++2a,直到 gcc 12。#17092 。文档 here
修复:对于 gcc >= 11,将 C++23 标志设置为 {gnu}c++23,而不是 c++2b。#17092 。文档 here
修复:避免对来自 env-vars 或
credentials.json
文件的凭据的 401 服务器进行重复登录尝试,仅对用户交互式提示重复登录尝试。#17083修复:使 CMakeToolchain 和 AutotoolsToolchain 自动为
compiler=msvc
定义cl
编译器(如果未定义)(仅在必要时,例如在 CMake 中使用 Ninja generator 时)。#16875 。文档 here修复:在 conan graph build-order -f=json 中引用 build_args,以避免选项中带有空格的问题。#16594
Bugfix: 改进了 bazeldeps._get_libs() 机制。#17233
Bugfix: 改进了在 profile 加载时对不同编译器版本的 cstd 检查。#17157
Bugfix: 修复了未定义 cppstd/cstd variable_watch 的问题。#17156
Bugfix: 修复了 recipe 不支持所需的版本时 cstd 错误报告的问题。#17156
Bugfix: 在
conan_server
中删除用户名权限验证绕过,这可能是一个潜在的安全问题。#17132Bugfix: 现在,列出 semver 规则下版本相等但表示形式不同(即 1.0 & 1.0.0)的 recipes 将返回两个引用。#17121
Bugfix: Conan Server: 搜索 recipe 引用时,不要为同一 recipe 引用的每个修订版本返回重复的引用。#17121
Bugfix: 空版本范围导致空条件集。#17116
Bugfix: 将 # do not sort 注释添加到 deps 部分。Conan 1.61 以来的回归。#17109
Bugfix: 使用 Commands API 时恢复 ConanOutput 全局状态。#17095
Bugfix: graph build-order 中的 build_args 选项现在尊重引用的上下文。#16594
2.8.1 (2024 年 10 月 17 日)¶
Bugfix: 避免为
test_requires
所需的组件引发错误,这些组件也作为传递性requires
被需要。#17174
2.8.0 (2024 年 9 月 30 日)¶
特性:添加对 iOS 18、watchOS 11、tvOS 18、visionOS 2 & macos 15 的支持。#17012 。文档 here
特性:新的
auth_remote.py
插件,用于自定义用户对 Conan remotes 的身份验证。#16942 。文档 here特性:新的
auth_source.py
插件,用于自定义用户对通用 sources 下载的身份验证。#16942 。文档 here特性:向 conan install 和 conan build 添加 –envs-generation={false},以禁用 virtualenvs 的生成 (
conanbuildenv.sh|bat
和conanrunenv.sh|bat
)。#16935 。文档 here特性:新的
tools.files.unzip:filter
conf,允许为 tgz 文件定义data
、tar
和fully_trusted
解压缩策略。#16918 。文档 here特性:
source()
的get()
和unzip()
工具学习了一个新的extract_filter
参数,用于为 tgz 文件定义data
、tar
和fully_trusted
解压缩策略。#16918 。文档 here特性:为大于 100Mbs 的大型上传添加每 10 秒的进度更新。#16913
特性:实现
conan config install-pkg --url=<repo-url>
,用于在尚未定义 remotes 时初始定义远程 URL。#16876 。文档 here特性:允许构建与当前 profile 兼容的包。#16871
特性:允许引导启动(依赖于自身的另一个变体),即使对于同一版本也是如此。#16870
特性:允许
[replace_requires]
替换包名称,并且self.dependencies
仍然可以使用旧名称。#16443修复:即使定义了
user_toolchain
,也让CMakeToolchain
定义CMAKE_SYSTEM_XXX
,但在 toolchain 真正定义它们的情况下受到保护。#17036 。文档 here修复:替换生成的 CMake 和 Environment 文件中的 | 字符。#17024
修复:将
PkgConfig
stderr
重定向到引发的异常。#17020修复:始终在 Windows 子系统
bash
路径中使用正斜杠。#16997修复:当
conan list --graph=<graph-json-file>
文件存在问题时,提供更好的错误消息。#16936Bugfix: PkgConfigDeps.set_property() 未正确设置所有可用的属性。#17051
Bugfix: BazelDeps 未找到 DLL 文件,因为 Conan 未在 Windows 平台中对其进行建模。#17045
Bugfix: 如果由于
tools.graph:skip_binaries=False
而不跳过包,则不要跳过该包的依赖项。#17033Bugfix: 允许在 diamonds 的情况下使用
requires(..., package_id_mode)
trait,以始终使用 recipe 定义的 trait,而与requires()
顺序无关。#16987Bugfix: 将 include_prerelease 标志传播到 VersionRange 的交集。#16986
Bugfix: 如果传递给 conf.get(check_type=bool) 的值无效,则引发错误。#16976
2.7.1 (2024 年 9 月 11 日)¶
2.7.0 (2024 年 8 月 28 日)¶
特性:添加
Git.is_dirty(repository=False)
新参数 #16892特性:在 conan_toolchain.cmake 中为 CMAKE_{C,CXX}_STANDARD 添加 variable_watch。#16879
特性:当 visible trait 为 True 时,在 “build” 上下文中向下游传播 run trait requirement 信息。#16849 。文档 here
特性:为 PkgConfigDeps 添加 set_property,以设置来自使用者 recipes 的 requirements 的属性。#16789
特性:在 CMakePresets.json 中定义 CMAKE_<LANG>_COMPILER 变量。#16762
特性:添加 gcc 14.2 支持。#16760
特性:重做 QbsProfile 以支持 Conan 2。#16742
修复:将
repository
参数从Git.get_url_and_commit(repository=True)
传播到Git.is_dirty()
。#16892修复:改进访问 cpp_info 简写方法时的错误。#16847
修复:改进 lockfile 无法锁定 requirement 时的错误消息,指定其类型。#16841
修复:更新 patch-ng 1.18.0 以避免 SyntaxWarning 垃圾信息。#16766
Bugfix: 避免由于缺少空格,在同时定义了架构标志和
tools.build:linker_scripts
时CMakeToolchain
错误。#16883Bugfix: 当使用 Visual Studio 的 llvm-clang 时,在 MSBuildToolchain 中设置正确的平台工具集。#16844
Bugfix: 修复本地 recipes 索引中不存在的 recipes 的 export_sources。#16776
2.6.0 (2024 年 8 月 1 日)¶
特性:添加
build_folder_vars=["const.myvalue"]
以创建用户 “myvalue” 任意值的预设。#16633 。文档 here特性:在 Bazel 新模板中添加 outputRootDir 作为可选定义。#16620
特性:为 graph build-order 和 graph build-order-merge 添加 html 输出 #16611 。文档 here
特性:引入
core.scm:local_url=allow|block
以控制 conandatascm
中的本地文件夹 URL。#16597 。文档 here特性:在 GnuToolchain 的 extra_env 属性中添加 XXX_FOR_BUILD 标志和 Android 额外的标志。#16596
特性:在
local-recipes-index
中支持python_requires
。#16420 。文档 here修复:避免
runtime_deployer
部署带有run=False
trait 的依赖项。#16724修复:改进当传递错误文件夹的
--deployer-folder=xxx
参数时的错误消息。#16723修复:更改
requirements.txt
,以便它也在 FreeBSD 中安装distro
包。#16700修复:加载不存在或损坏的 “package list” 文件时,提供更好的错误消息。#16685
修复:从 tools.build:compiler_executables 中删除不支持的 ld 和 ar 条目,它们在每个 Conan 集成中都没有效果。#16647
修复:确保正确报告直接 tool requires 冲突,而不是挂起。#16619
修复:更新
runners
功能的docker
依赖项版本 #16610修复:当尝试在
conandata
scm
中上传具有本地文件夹 URL 的包时,引发错误。#16597 。文档 hereBugfix: 修复带有部分定义的每个包
[settings]
的 profileinclude()
。#16720Bugfix: 当包具有组件时,
MakeDeps
generator 缺少一些聚合变量。#16715Bugfix: 避免在推断兼容性时 settings.update_values() 失败。#16642
Bugfix: 修复 Ninja Multi-Config CMake 的 tools.build:defines 处理。#16637
Bugfix: 使 conan graph <subcommand> 成为真正的 “install” dry-run。返回相同的错误并给出相同的消息 #16415
2.5.0 (2024 年 7 月 3 日)¶
特性:新的
tools.cmake.cmaketoolchain:enabled_blocks
配置,用于定义CMakeToolchain
的哪些块应处于活动状态或不活动状态。#16563 。文档 here特性:允许在 conan list 中使用 –filter-options 以使用 &: 作用域来引用正在列出的所有包。#16559
特性:在计算依赖关系图时突出显示缺失或无效的 requirements。#16520
特性:新的
conan lock update
子命令,用于在同一命令中删除 + 添加引用。#16511 。文档 here特性:遵循 tools.android:ndk_path conf。设置 Android 交叉构建所需的标志。#16502 。文档 here
特性:Qbs helper 现在自动调用 Conan provider。#16486
特性:为 tools.cmake.cmaketoolchain:extra_variables 添加 force 选项。#16481 。文档 here
特性:如果同一 Conan profile 文件中存在任何重复的部分,则引发 ConanException。#16454
特性:为 Qbs toolchain 添加 resolve() 方法。#16449
特性:使
MSBuildDeps
生成与 deployer 可重定位。#16441特性:添加 QbsDeps 类,以便与 Qbs Conan 模块 provider 一起使用。#16334
修复:修复了当命名引用与 provider 匹配时,provides 冲突错误消息未显示冲突 provides 的问题。#16562
修复:为 pytest 设置正确的 testpaths。#16530
修复:允许文件系统的根目录中存在
.conanrc
文件。#16514修复:在 conan runners 中添加对非默认 docker hosts 的支持 #16477
修复:当我们无法覆盖备份上传中的摘要文件时,不要失败。#16452
修复:使
source_credentials.json
不适用于 Conan server repos 协议。#16425 。文档 here修复:允许包具有空文件夹。#16424
Bugfix: 修复
detect_api
中的detect_msvc_compiler()
,以正确检测compiler.version=194
的 VS 17.10。#16581Bugfix: 修复了当 recipe 执行 package_id() info 擦除并用作兼容性候选对象时出现的意外错误。#16575
Bugfix: 确保 msvc cppstd 兼容性回退不会忽略 194 二进制文件。#16573
Bugfix: 如果使用了 –deployer-folder=xxxx 参数,XXXDeps generators 未在其生成的文件中包含绝对路径。#16552
Bugfix: 修复 package revisions 的 conan list … –format=compact。#16490
Bugfix: 修复仅设置了 defines 时的 XcodeToolchain。#16429
2.4.1 (2024 年 6 月 10 日)¶
2.4.0 (2024 年 6 月 5 日)¶
特性:为 AutotoolsToolchain 添加 CC_FOR_BUILD 和 CXX_FOR_BUILD 环境变量。#16391 。文档 here
特性:像 AutotoolsToolchain、CMakeToolchain 等其他 toolchains 一样,为 MesonToolchain 添加 extra_xxxx 标志。#16389
特性:为 conan new 命令添加新的
qbs_lib
模板。#16382特性:允许使用多个
--build=missing:~pattern1 --build=missing:~pattern2
模式。 #16327特性:弃用在 ConanFile 中使用路径访问器。 #16247
特性:添加对设置 tools.cmake.cmaketoolchain:extra_variables 的支持 #16242 。文档 此处
特性:为 CMakeDeps 生成器添加 cmake_additional_variables_prefixes 变量,以允许为声明的 CMake 变量添加额外的名称。 #16231 。文档 此处
特性:允许在本地
conan install/build
流程的CMakeToolchain
中定义 GNUInstallDirs 。 #16214特性:让
conan cache save
监听core.gzip:compresslevel
配置。 #16211特性:添加新的
revision_mode
,包括所有内容,直至recipe-revision
,但不包括package_id
。 #16195 。文档 此处特性:允许配方
requires(..., visible=False)
自身之前的版本,而不会引发循环错误。 #16132特性:实现
check_min_cstd
,check_max_cstd
,valid_max_cstd
,valid_min_cstd
,supported_cstd
工具 #16028 。文档 此处特性:向 conan_toolchain.cmake 添加 CONAN_RUNTIME_LIB_DIRS 变量。 #15914 。文档 此处
修复:为 <2.3 版本的默认
compatibility.py
插件实现向后迁移。 #16405修复:将缺失的 [replace_requires] 和 [platform_requires] 添加到配置文件的序列化/转储中。 #16401
修复:修复
Qbs
助手处理路径中空格的问题。 #16382修复:使 cc 版本检测更加健壮 #16362
修复:允许
--build=missing:&
模式仅在缺失时构建消费者,而不构建其他项。 #16344修复:允许 “local-recipes-index” 使用自定义
user/channel
的conan list
包。 #16342修复:修复
cppstd
函数的文档字符串。 #16341修复:更改 CMAKE_SYSTEM_VERSION 的自动检测以使用 Darwin 版本。 #16335 。文档 此处
修复:修复 graph build-order 输出中 require 语法。 #16308
修复:通过添加双引号,改进一些命令帮助文档字符串。 #16292
修复:针对不正确的版本范围定义,提供更好的错误消息。 #16289
修复:仅在缓存的配方修订版本确实较新时,才打印相关信息。 #16275
修复:在使用没有模式范围的
options
时发出警告,以改善期望-o shared=True
应用于依赖项的用户的用户体验。 #16233 。文档 此处修复:修复非 Conan 自定义命令使用 CommandAPI 时的问题。 #16213
修复:避免在 Python 3.12 中使用已弃用的
datetime
调用。 #16095缺陷修复:修复在 VS 17.10 更新后,最新的
v14.4
工具集版本中LLVM/Clang
启用vcvars
的问题 #16374 。文档 此处缺陷修复:修复使用 type=shared 的 docker 运行器时出现的配置文件错误 #16364
缺陷修复:
conan graph info .. --build=pkg
不会下载pkg
源码,除非定义了tools.build:download_source
。 #16349缺陷修复:解决 CMakeToolchain 和 CMakeDeps 中路径相对化的问题。 #16316
缺陷修复:避免在 MesonToolchain 中清理 tools.build:compiler_executables 值。 #16307
缺陷修复:解决使用
storage_path
自定义配置时,conan cache save/restore
tgz 文件中不正确的路径导致崩溃的问题。 #16293缺陷修复:修复 conan list 中不存在的 graph 文件导致的堆栈跟踪。 #16291
缺陷修复:允许
CMakeDeps
生成器在xxxConfig.cmake
已经存在时覆盖它。 #16279缺陷修复:禁止在 source() 方法中访问 self.info 。 #16272
2.3.2 (2024 年 5 月 28 日)¶
特性:新的
tools.microsoft:msvc_update
配置,用于定义 MSVC 编译器update
,即使未定义compiler.update
。可用于在使用 VS2022 更新到 17.10 后使用compiler.version=193
,这会将默认编译器更改为compiler.version=194
。 #16332缺陷修复:允许默认
compatibility.py
插件从 MSVCcompiler.version=194->193
回退到其他cppstd
值。 #16346缺陷修复:跳过本地配方索引布局中的点文件夹。 #16345
缺陷修复:移除生成的 conanvcvars.ps1 中多余的反斜杠。 #16322
2.3.1 (2024 年 5 月 16 日)¶
特性:允许选择退出
CMakeToolchain
默认对 CMakeUserPresets->CMakePreset 和 CMakePresets->toolchainFile 路径使用绝对路径。 #16244 。文档 此处修复:修复 Docker 运行器的配置容器名称。 #16243
缺陷修复:使兼容性检查能够理解 update 标志模式。 #16252
缺陷修复:解决菱形结构中
lockfiles
的overrides
导致的错误。 #16235缺陷修复:允许将
export-pkg --version=xxx
传递给具有从基类继承set_version
的python_requires
的配方。 #16224
2.3.0 (2024 年 5 月 6 日)¶
特性:在运行 conan upload 时显示配方和包大小。 #16103
特性:扩展 conan version 以报告当前的 python 和系统信息,用于故障排除。 #16102 。文档 此处
特性:为主流编译器(如 gcc、msvc、clang)向公共
detect_api
添加detect_xxxx_compiler()
。 #16092 。文档 此处特性:为 .conanignore 文件添加注释支持。 #16087
特性:在 graph html 搜索栏中,现在可以输入以逗号分隔的多个搜索模式。 #16083
特性:在 graph html 中添加了 “filter packages” 栏,该栏接受以逗号分隔的多个搜索模式,并从 graph 中隐藏过滤器。 #16083
特性:为 Git 操作添加参数 hide_url ,以允许记录仓库 URL。默认情况下,URL 将保持 <hidden>,但用户可以选择退出此设置。 #16038
特性:允许在
export()
和export_sources()
方法中访问.conf
(仅限于global.conf
信息,而不是配置文件信息)。 #16034 。文档 此处特性:避免在
copy()
中复制相同的现有文件。 #16031特性:新的
conan pkglist find-remote
命令,用于在远程仓库中查找与缓存中包列表匹配的包。 #16022 。文档 此处特性:在 CMakePresets 生成中相对化路径。 #16015
特性:向
conanfile.py
添加新的test_package_folder
属性,以定义与默认test_package
不同的自定义位置和名称。 #16013 。文档 此处特性:新的
conan create --test-missing
语法,用于在实际创建包时选择性地运行test_package
(与--build=missing
一起使用时很有用)。 #15999 。文档 此处特性:向 conf 添加 tools.gnu:build_triplet 。 #15965
特性:为
conan profile detect
添加--exist-ok
参数,以便在配置文件已存在时不会失败,而不会覆盖它。 #15933特性:如果 native=True,MesonToolchain 可以生成 native 文件(仅在交叉编译时才有意义)。 #15919 。文档 此处
修复:允许为
conan profile detect
自动检测定义CC=/usr/bin/cc
(和 CXX)。 #16187修复:解决
pyinstaller.py
脚本中的问题,它将不再安装pip install pyinstaller
,安装它将成为前提条件 #16186修复:在
CMake
助手中使用反斜杠处理 CMakeLists.txt 文件夹,修复了项目位于驱动器根目录(如X:
)时的问题 #16180修复:允许
conan editable remove <path>
,即使该路径已被删除。 #16170修复:修复 conan new –help 格式问题。 #16155
修复:改进了图中存在冲突时的错误消息。 #16137
修复:改进了当 URL 不是有效的服务器但在 Conan “ping” API 调用下仍返回 200-ok 时,出现的错误消息。 #16126
修复:解决 FreeBSD 中由于带有双引号的查询导致的
sqlite3
问题。 #16123修复:清理
conan cache restore <non-existing-file>
的错误消息。 #16113修复:改进当缓存中的远程仓库或凭据文件无效/为空时的用户体验和错误消息。 #16091
修复:在 Linux 系统中使用
cc
可执行文件进行自动检测编译器(conan profile detect
和detect_api
)。 #16074修复:通过针对无效的
==, ~=, ^=
运算符提供更好的错误消息,改进版本范围定义的用户体验。 #16069修复:改进当
settings.yml
或settings_user.yml
不正确时的错误消息用户体验。 #16065修复:针对自 2021 年以来已 EOL 的 Python 3.6 用法打印警告。 #16003
修复:移除
Autotools
助手中的重复命令行打印。 #15991修复:向 FileDownloader 中的 HTTP 状态 401 错误添加响应错误消息输出。 #15983
修复:将 gcc 14 添加到默认
settings.yml
。 #15958修复:使
VCVars
使用compiler.update
来指定工具集。 #15947修复:为跨构建 Linux->Windows 的
compiler_executables
的AutotoolsToolchain
映射添加rc
。 #15946修复:将
Pop!_OS
添加到使用apt-get
作为系统包管理器的发行版中。 #15931修复:不要警告包含 - 字符的包名称。 #15920
修复:修复新的
--format=html
graph 输出的 html 转义,并传递 graph 序列化对象而不是字符串。 #15915缺陷修复:使 MesonToolchain 监听 tools.build:defines 配置变量。 #16172 。文档 此处
缺陷修复:禁止在 validate_build() 方法中访问 self.cpp_info 。 #16135
缺陷修复:当 .conanrc 的 conan_home 无效时,不显示跟踪。 #16134
缺陷修复:避免将
tool_requires
的传递依赖项传播到生成器信息,即使它们被标记为visible=True
。 #16077缺陷修复: BazelDeps 现在使用 requirement.build 属性而不是 dependency.context 属性。 #16025
缺陷修复:使 conan cache restore 在恢复到本地缓存中已有的包上时正常工作。 #15950
2.2.3 (2024 年 4 月 17 日)¶
修复:修复使用 settings_user 中的架构时 to_apple_archs 方法。 #16090
2.2.2 (2024 年 3 月 25 日)¶
2.2.1 (2024 年 3 月 20 日)¶
修复:在 distutils 移除后,为与 Python>=3.12 兼容性添加 copytree_compat 方法。 #15906
2.2.0 (2024 年 3 月 20 日)¶
特性:如果使用通用二进制语法,则为 CMakeToolchain 以外的工具链引发异常。 #15896
特性:警告位置不当的 requirement 函数调用 #15888
特性:新的 graph
html
:更多信息,test-requires,隐藏/显示不同的包(build,test)。 #15846 。文档 此处特性:为 conan cache clean 添加 –backup-sources 标志。 #15845
特性:添加 conan graph outdated 命令,该命令列出在远程仓库中具有较新版本的依赖项 #15838 。文档 此处
特性:使用 Visual Studio 时,从 CMakeToolchain 设置 CMAKE_VS_DEBUGGER_ENVIRONMENT 以指向所有二进制目录。这消除了将 DLL 复制到从 Visual Studio IDE 启动可执行文件的需要(需要 CMake 3.27 或更高版本)。 #15830 。文档 此处
特性:为 trim_conandata 添加一个参数,以避免在 conandata.yml 文件不存在时引发异常。 #15829 。文档 此处
特性:为 PkgConfigDeps 添加了 build_context_folder ` 。 `#15813 。文档 此处
特性:在 MesonToolchain 模板的内置选项部分中包含 build.pkg_config_path ` 。 `#15813 。文档 此处
特性:更新 _meson_cpu_family_map 以支持 arm64ec 。 #15812
特性:新的
tools.cmake.cmake_layout:build_folder
配置,允许重新定义cmake_layout
本地构建文件夹。 #15767 。文档 此处特性:新的
tools.cmake.cmake_layout:test_folder
配置,允许重新定义cmake_layout
输出构建文件夹以用于test_package
,包括$TMP
占位符,以在系统tmp
中创建临时文件夹。 #15767 。文档 此处特性:(实验性)在具有新的
package_type = "configuration"
的 Conan 包内添加conan config install-pkg myconf/[*]
新配置。 #15748 。文档 此处特性:(实验性)新的
core.package_id:config_mode
,允许配置包引用影响使用该配置构建的所有包的package_id
。 #15748 。文档 此处特性:允许在
build_folder_vars
属性和配置中使用self.name
和self.version
。 #15705 。文档 此处特性:添加
conan list --filter-xxx
参数以列出与设置+选项匹配的包二进制文件。 #15697 。文档 此处修复:当
--build=missing
和重复的tool_requires
时,避免不必要的tool_requires
构建。 #15885修复:修复
CMakeDeps
set_property(... APPEND
参数顺序。 #15877修复:在安装图中发现无限循环时引发错误(循环中格式错误的依赖关系图)。 #15835
修复:确保 detect_default_compiler() 始终返回 3 元组。 #15832
修复:当一个修订版本不存在二进制文件时,为
conan graph explain
打印清晰的消息。 #15823修复:将
package_type="static-library"
添加到conan new msbuild_lib
模板。 #15807修复:避免当通过
requires(.., options={})
传递显式选项时,platform_requires
失败。 #15804修复:使
CMakeToolchain
以换行符结尾。 #15788修复:如果不提供二进制模式,则不允许
conan list
二进制过滤器或包查询。 #15781修复:避免
CMakeToolchain.preprocessor_definition
定义在没有值时(PythonNone
)为"None"
字面字符串。 #15756修复:改进了
conan install <path> --deployer-package=*
在使用self.package_folder
时崩溃的情况。 #15737修复:修复大型依赖关系图的 conan graph info –format=html 。 #15724
修复:使所有配方和插件 python 文件
print()
到stderr
,以便 json 输出到stdout
不会被破坏。 #15704修复:修复获取 Linux x86 的 gnu 三元组。 #15699
Bug修复: 解决在列表内部的字符串中使用时,
global.conf
中的conan_home_folder
反斜杠问题。 #15870Bug修复: 修复当
build_type
上存在条件依赖时,CMakeDeps
多配置的问题。 #15853Bug修复: 将 get_backup_sources() 方法从 UploadAPI 移动到预期的 CacheAPI。 #15845
Bug修复: 避免当 conandata.yml 中的版本列表没有补丁时出现 TypeError。 #15842
Bug修复: 解决
package_type=build-scripts
与锁文件和 conan create 命令一起使用时的问题。 #15802Bug修复: 如果 recipe 指定了
user
属性,则允许使用--channel
命令行参数。 #15794Bug修复: 修复从 Windows 交叉编译到 Android 时使用
MesonToolchain
的问题。 #15790Bug修复: 当定义了
compiler.update
时,修复CMakeToolchain
GENERATOR_TOOLSET。 #15789Bug修复: 解决当
conf
条目与 Python 模块匹配时的评估问题。 #15779Bug修复: 修复
PkgConfigDeps
为其tool_requires
生成 .pc 文件的问题,当它已经在构建上下文中时。 #15763Bug修复: 将 VISIBILITY 标志添加到 CONAN_C_FLAGS。 #15762
Bug修复: 修复具有作用域 conf 的配置文件的 conan profile show –format=json 命令。 #15747
Bug修复: 修复 Conan API 中 update 参数的遗留用法。 #15743
Bug修复: 解决当字符串包含 Windows 反斜杠时,配置文件
[conf]
损坏的问题。 #15727Bug修复: 修复元数据版本范围的版本优先级。 #15653
2.1.0 (2024年2月15日)¶
新功能: 在
CMakeToolchain
中实现多配置tools.build:xxxx
标志。 #15654新功能: 为 conan build 添加 –format=json 格式化器。 #15651
新功能: 添加 tools.build.cross_building:cross_build 以决定是否进行交叉编译,而无需考虑 Conan 内部机制。 #15616
新功能: 为 conan cache path 添加 –format=json 选项。 #15613
新功能: 为 conan graph build-order 添加 –order-by 参数。 #15602 . 文档 here
新功能: 提供一个新的
graph build-order --reduce
参数,以将顺序专门减少到需要从源代码构建的包。 #15573 . 文档 here新功能: 添加配置以在 Visual Studio CMake 生成器中的 CMakeToolchain 中指定所需的 CUDA 工具包。 #15572 . 文档 here
新功能: 新的 “important” 选项值定义,比常规选项值定义具有更高的优先级。 #15571 . 文档 here
新功能: 调用 deactivate_conanvcvars 时显示消息。 #15557
新功能: 将
package_id
的self.info
信息添加到图中的序列化输出,并将其转发到包列表。 #15553 . 文档 here新功能: 在详细模式下运行时记录 Git 工具命令。 #15514
新功能: 为
conan.tools.files.copy()
调用添加详细调试信息 (使用-vvv
)。 #15513新功能: 为
python_requires
的显式test_package
定义python_requires = "tested_reference_str"
。 #15485 . 文档 here新功能: 添加 CMakeToolchain.presets_build/run_environment 以在 generate() 方法中修改 CMakePresets 环境。 #15470 . 文档 here
新功能: 为 remotes 添加 –allowed-packges 以限制 remote 可以提供的引用。 #15464 . 文档 here
新功能: 使
RemotesAPI
公开可用的初始文档 (实验性)。 #15462新功能: 新的
Git(..., excluded=[])
功能,以避免Git
助手中的 “dirty” 错误。 #15457 . 文档 here新功能: 新的
core.scm:excluded
功能,以避免Git
助手和revision_mode = "scm"
中的 “dirty” 错误。 #15457 . 文档 here新功能: recipe
python_package_id_mode
用于python_requires
recipes,以定义每个 recipe 对消费者package_id
的影响。 #15453 . 文档 here新功能: 添加新的
--core-conf
命令行参数,以允许通过 CLI 传递 core. confs。 #15441 . 文档 here新功能: 将
detect_api.detect_msvc_update(version)
助手添加到detect_api
。 #15435 . 文档 here新功能:
CMakeToolchain
在生成的CMakePresets.json
buildPresets 中定义jobs
。 #15422新功能: 助手
Git().coordinates_to_conandata()
和Git().checkout_from_conandata_coordinates()
简化基于 scm 的流程。 #15377新功能:
AutotoolsToolchain
自动为 VS 注入-FS
。 #15375新功能: 新的 conan upload
core.upload:parallel
用于更快的并行上传。 #15360 . 文档 here新功能: Intel oneAPI 编译器检测改进。 #15358
新功能: 显示长时间运行的
conan list
命令的进度。 #15354新功能: 添加 extension_properties 属性以将信息从 recipes 传递到 extensions。 #15348 . 文档 here
新功能: 在
compatibility.py
插件的 extension_properties 中实现 compatibility_cppstd,以禁用 recipe 回退到其他 cppstd。 #15348 . 文档 here新功能: 添加
Git.get_commit(..., repository=True)
以获取仓库 commit,而不是文件夹 commit。 #15304新功能: 确保
--build=editable
和--build=cascade
一起工作。 #15300 . 文档 here新功能: 新的
conan graph build-order --order=configuration
输出不同的顺序,按包二进制文件/配置排序,而不是按 recipe 修订版本分组。 #15270 . 文档 here新功能: 允许从
--format=compact
复制粘贴带有时间戳的 recipe 修订版本到conan lock add
中。 #15262 . 文档 here修复: 保证 generators 属性执行的顺序。 #15678
修复: 解决构建配置文件和上下文中
[platform_tool_requires]
的问题。 在构建配置文件中丢弃[platform_requires]
。 #15665修复: 修复 conda 环境中的 gcc 检测。 #15664
修复: 改进上传备份源时对 .dirty 下载文件的处理。 #15601
修复: 修复生成文件中的相对路径。 #15592
修复: 允许
CMakeToolchain.preprocessor_definitions
的None
值,这将映射到没有值的定义。 #15545 . 文档 here修复: 修复 graph build-order –order=configuration 文本格式输出。 #15538
修复: 如果用户想要在离线模式下工作,当 remote 不可访问时,引发有用的错误。 #15516
修复: 当源备份不存在元数据时,避免缺少文件堆栈跟踪。 #15501
修复: 删除
--lockfile-packages
参数,它没有被记录在案,因为它不打算公开使用。 #15499 . 文档 here修复: 如果 check_type=int 且 conf 值设置为 bool,则引发错误。 #15378
修复: 由于 pkgconfig 条目自 Meson 1.3.0 起已弃用,因此将 pkg-config 条目添加到 MesonToolchain 生成的 machine 文件中。 #15369
修复: 修复 graph explain 在缺少需求时未显示某些差异的问题。 #15355
修复: 修复当模式与任何定义的 conf 都不匹配时,tools.info.package_id:confs 的问题。 #15353
修复: 修复
upload_policy=skip
与--build=missing
一起使用时的问题。 #15336修复: 接受
conan download/upload --list=.. --only-recipe
仅下载 recipes。 #15312修复: 允许为使用多配置系统构建但没有
build_type
设置的 recipes 使用cmake.build(build_type="Release")
。 #14780Bug修复: 修复
MSBuildDeps
与组件和跳过的依赖项一起使用时的问题。 #15626Bug修复: 避免
provides
为自身tool_requires
以进行交叉构建的包引发错误。 #15575Bug修复: 修复 tools.microsoft.visual.VCVars 中构建范围 OS 检测。 #15568
Bug修复: 修复当依赖项为仅标头时,
visible=False
的错误传播。 #15564Bug修复: 将临时缓存文件夹存储在
core.cache:storage_path
中,以便conan cache clean
也能正确找到并清理它们。 #15505Bug修复:
conan export-pkg --format=json
输出现在返回recipe = "cache"
状态,因为 recipe 在命令后位于缓存中。 #15504Bug修复: conan export-pkg 命令存储锁文件时,排除了
test_package
,与 conan create 的行为相同。 #15504Bug修复: 避免 conan test 对
python_requires
test-package 失败。 #15485 . 文档 hereBug修复: MesonToolchain 计算有效的 apple_min_version_flag。 #15465
Bug修复: 允许在
build_id()
和package_id()
方法中使用子设置限制os
、compiler
和其他设置。 #15439Bug修复: 修复获取环境变量 CONAN_LOGIN_USERNAME_REMOTE。 #15388
Bug修复: 不要将 . 文件夹考虑在 tools.files.copy() excludes 模式中。 #15349
Bug修复: 禁用创建没有名称和版本的 editables。 #15337
Bug修复: 修复 Git.get_url_and_commit 为某些 Git 配置引发错误的问题。 #15271
Bug修复: 不应跳过正在构建的包的 “host” 上下文中的直接依赖项。 这允许将 “host” 上下文中的非 C/C++ 库工件(如图像)用作构建时资源。 #15128
2.0.17 (2024年1月10日)¶
修复: 如果
conan cache save --file=subfolder/file.tgz
子文件夹不存在,则自动创建文件夹。 #15409Bug修复: 解决
cmake_minimum_required(3.27)
的CMakeToolchain
生成器中的winsdk_version
错误。 #15373Bug修复: 修复带有
build=True
trait 的可见 trait 传播。 #15357Bug修复: 修复通过 tools.info.package_id:confs 包含 conf 值时的 package_id 计算。 #15356
Bug修复: 对 conf 条目进行排序,以便在转储它们时允许可重现的 package_id,而与 confs 的声明顺序无关。 #15356
2.0.16 (2023年12月21日)¶
2.0.15 (2023年12月20日)¶
新功能: 新的
conan lock remove
命令,用于从锁文件中删除 requires。 #15284 . 文档 here新功能: 新的
CMake.ctest()
助手方法,用于直接启动ctest
,而不是通过cmake --target=RUN_TEST
。 #15282新功能: 添加
tools.microsoft:winsdk_version
conf,使VCVars
生成器使用给定的winsdk_version
。 #15272 . 文档 here新功能: 定义
CONAN_LOG_LEVEL
环境变量,以便能够在全局级别更改详细程度。 #15263 . 文档 here新功能: 如果请求的文件夹不存在,conan cache path xxx –folder xxxx 会引发错误。 #15257
新功能: 为 ConanFile 的 self.dependencies 添加 in 运算符支持。 #15221 . 文档 here
新功能: 使
CMakeDeps
生成器创建一个conandeps.cmake
,它以类似cmake
-like 生成器样式聚合所有直接依赖项。 #15207 . 文档 here新功能: 将构建环境信息添加到 CMake 配置预设,并将运行环境信息添加到 CMake 测试预设。 #15192 . 文档 here
新功能: 删除了一个关于 conan 迁移的潜在问题的警告,该警告会在每次构建失败时打印。 #15174
新功能: recipes 中用于显式每个 recipe 部署的新
deploy()
方法。 #15172 . 文档 here新功能: 允许在
source()
方法中使用tool-requires
注入环境。 #15153 . 文档 here新功能: 允许从 ConfigAPI 访问 settings.yml (和 settings_user!) 的内容。 #15151
新功能: 从 ConfigAPI 添加内置 conf 访问。 #15151
新功能: 将 redirect_stdout 添加到 CMake 集成方法。 #15150
新功能: 添加 core:warnings_as_errors 配置选项,使 Conan 在警告和错误时引发异常。 #15149 . 文档 here
新功能: 在 ftp_download 中使用 secure 参数添加 FTP_TLS 选项,以实现安全通信。 #15137
新功能: 配置文件中新的
[replace_requires]
和[replace_tool_requires]
用于重新定义 requires,对于包替换(如zlibng/zlib
)非常有用,以解决冲突,并将某些依赖项替换为包装在另一个 Conan 包 recipe 中的系统替代方案。 #15136 . 文档 here新功能: 将 stderr 捕获参数添加到 conanfile 的 run() 方法。 #15121 . 文档 here
新功能: 新的
[platform_requires]
配置文件定义,以便能够用平台提供的依赖项替换 Conan 依赖项。 #14871 . 文档 here新功能: 新的
conan graph explain
命令,用于搜索、比较和解释缺少的二进制文件。 #14694 . 文档 here新功能: 全局
cpp_info
可用于初始化组件值。 #13994修复: 使 core:warnings_as_errors 接受列表 #15297
修复: 修复当没有给出分隔符时,user confs 包作用域。 #15296
修复: 修复涉及范围的冲突报告中的范围转义。 #15222
修复: 允许硬
set_name()
和set_version()
突变命令行中提供的名称和版本。 #15211 . 文档 here修复: 使 conan graph info –format=text 打印到 stdout。 #15170
修复: 避免由于 CMAKE_POLICY_DEFAULT_CMP0091 未使用变量而在 CMake 输出中发出警告。 #15127
修复: 弃用
[system_tools]
,转而使用[platform_tool_requires]
,以便与常规依赖项的[platform_requires]
对齐。 将输出从 “System tool” 更改为 “Platform”。 #14871 . 文档 hereBug修复: 确保 user confs 至少有 1 个 : 分隔符 #15296
Bug修复:
Git.is_dirty()
将使用git status . -s
以确保它仅处理当前路径,而不是整个 repo,与其他Git
方法类似。 #15289Bug修复: 使
self.info.clear()
和仅标头包删除python_requires
和tool_requires
。 #15285 . 文档 hereBug修复: 使
conan cache save/restore
在 Windows 和其他操作系统之间可移植。 #15253Bug修复: 不要在
deployers
中相对化绝对路径。 #15244Bug修复: 将
architecture
添加到CMakePresets
,以避免在使用预设时 cmake 忽略工具链定义。 #15215Bug修复: 修复 conan graph info –format=html 报告误导性冲突节点的问题。 #15196
Bug修复: 修复 conan profile show –format=json 中 tool_requires 的序列化。 #15185
Bugfix: 修复 NMakeDeps 引用问题。 #15140
Bugfix: 修复 2.0.14 迁移,在定义
storage_path
配置时,向缓存添加 LRU 数据。 #15135Bugfix: 修复 conan export-pkg 命令的
package_metadata_folder
定义。 #15126Bugfix: pyinstaller.py 因无用的 distutils 导入而在 Python 3.12 中损坏。 #15116
Bugfix: 修复未设置 core.sources:download_cache 时的备份源错误。 #15109
2.0.14 (11 月 14 日 - 2023 年)¶
Feature: 在默认
settings.yml
中添加了riscv64, riscv32
架构,并在 Meson 和 Autotools 中对其进行管理。 #15053Feature: 允许仅建立一个同时进行的数据库连接。 #15029
Feature: 添加 conan cache backup-upload 以上传缓存中的所有备份源,无论它们来自哪个引用 #15013 。文档 此处
Feature: 新的
conan list --format=compact
,以获得更好的用户体验。 #15011 。文档 此处Feature: conan upload 中更好的输出消息 #14984
Feature: 计算版本范围交集,以避免兼容范围的版本图冲突 #14912
Feature: CMake 助手可以在 target 参数中使用多个目标。 #14883
Feature: 添加 CMakeDeps 和 PkgConfigDeps 生成器,以监听 system_package_version 属性。 #14808 。文档 此处
Fix: 避免在未定义布局或 output-folder 时,
CMakeToolchain
覆盖用户CMakePresets.json
#15058Fix: 在 SystemPackageManager 中添加
astra
、elbrus
和altlinux
作为使用apt
的发行版 #15051Fix: 使
Git()
即使对于浅克隆也检查远程服务器中的提交。 #15023Fix: 向 settings.yml 添加新的 Apple 操作系统版本 #15015
Fix: 从
conan --version
输出中删除颜色 #15002Fix: 如果 sqlite3 版本不受支持(低于 2012 年的 3.7.11),则添加错误消息 #14950
Fix: 使缓存 DB 始终对路径使用正斜杠,以便在 Windows 和 Linux 上保持一致 #14940
Fix: 解决现有包修订版本的重新构建问题(例如强制重新构建现有的仅标头包),而先前的文件夹仍被其他项目使用。 #14938
Fix: 通过
Apt.install()
或PkgConfig.fill_cpp_info
输出的系统包(如xorg/system
)对 Conan 输出来说非常嘈杂,使其更安静 #14924Fix: 序列化
python_requires
的path
信息,这对于计算 buildinfo 是必要的 #14886Fix: 在配方具有需要从远程下载的
python_requires
的情况下,在 conan source 命令中定义远程仓库。 #14852Fix: 修复 xros 和 xros-simulator 的最小目标标志。 #14776
Bugfix: 在
tool_requires
具有传递依赖项的情况下,--build=missing
正在对不需要且可以跳过的包进行不必要的构建。 #15082BugFix: 在 ‘conan export-pkg’ 命令中为 format=json 添加包修订版本 #15042
Bugfix: 当存在可编辑包时,
tools.build:download_source=True
不会失败。 #15004 。文档 此处Bugfix: 传递依赖项被错误地添加到 conandeps.xcconfig。 #14898
Bugfix: 当未下载
export_source
时,修复完整性检查(upload --check
或cache check-integrity
)。 #14850Bugfix: 正确锁定 python requires 的候选版本。 #14846
2.0.13 (9 月 28 日 - 2023 年)¶
Bugfix: 修复 2.0.11 中引入的较新 apple-clang 版本的错误 cppstd 检测。 #14837
2.0.12 (9 月 26 日 - 2023 年)¶
Feature: 在 package_manager 中的 install() 方法中添加 host_tool,以指示包是主机工具还是库。 #14752 。文档 此处
Fix: 尝试
export-pkg
python-require
包时,提供更好的错误消息,并避免导出然后失败。 #14819Fix:
CMakeDeps
允许在所有属性上set_property()
。 #14813Fix: 当未提供 <path> 参数时,conan build 命令提供更漂亮的错误信息。 #14787
Bugfix: 修复
compatibility()
对settings_target
的覆盖,使其变为 None #14825Bugfix:
compatible
包首先在缓存中查找,只有在未找到时才在服务器中查找,以便在存在兼容包时允许离线安装。 #14800BugFix: 重用 ConanRequester 中的会话以加速请求。 #14795
Bugfix: 修复
editable
包在部分定义目录时的相对路径。 #14782
2.0.11 (9 月 18 日 - 2023 年)¶
Feature: 向
conan profile show
命令添加--format=json
格式化程序 #14743 。文档 此处Feature: 向 ‘conan build’ cmd 添加新的 –deployer –generators 参数 #14737 。文档 此处
Feature: 更好的
CMakeToolchain
块接口。添加了新的.blocks.select()
、.blocks.keys()
。 #14731 。文档 此处Feature: 添加从下载缓存复制大文件而不是从服务器下载时的消息。 #14716
Feature: 添加了机制,如果将 c、cpp 和/或 ld 二进制变量声明为空格分隔的字符串,则将其从 Meson 转换为列表。 #14676
Feature: 向 dnf 包管理器映射添加 nobara 发行版。 #14668
Feature: 确保 meson toolchain 使用 clang-cl 设置 b_vscrt。 #14664
Feature: 支持 conf tools.info.package_id:confs 的正则表达式模式 #14621 。文档 此处
Feature: MakeDeps:提供 “require” 信息和更多样式调整。 #14605
Feature: 允许在 compatibility 方法中访问 settings_target。 #14532
Fix: 改进 ConanApi 初始化失败时的错误消息, #14735
Fix: CMakeDeps:删除关于重复别名的 “目标名称 … 已存在” 警告。 #14644
Bugfix: 修复当
win_bash=True
时Git.run()
中的回归。 #14756Bugfix: 将 conan.tools.system.package_manager.Apt 中的默认 check=False 更改为 True,与其他包管理器工具一样。 #14728 。文档 此处
Bugfix: 解决了带有菱形结构的
test_requires
的传递共享依赖项的传播问题。 #14721Bugfix: 解决 conan export-pkg 与
test_package
调用远程仓库时的崩溃问题。 #14712Bugfix: 不要二进制跳过具有未跳过的传递依赖项的包,否则构建系统到这些传递依赖项的构建链(如
CMakeDeps
生成的文件)将被破坏。 #14673Bugfix: 修复在原生 ARM64 Windows 上运行
conan profile detect
时检测到的 CPU 架构。 #14667Bugfix: 如果
conan lock create --update
现在正确更新来自服务器的引用,如果它们比缓存中的更新。 #14643Bugfix: 修复不必要地用转义序列装饰命令 stdout。 #14642
Bugfix:
tools.info.package_id:confs
不应影响仅标头的库。 #14622
2.0.10 (8 月 29 日 - 2023 年)¶
Feature: 允许在
conandata.yml
定义中使用patch_user
来表示用户补丁,这些补丁不由apply_conandata_patches()
处理。 #14576 。文档 此处Feature: 支持 Xcode 15、iOS 17、tvOS 17、watchOS 10、macOS 14。 #14538
Feature: 如果用户添加不正确的 ConanCenter web URL 作为远程仓库,则引发错误。 #14531
Feature: 使用
--format=json
序列化图时,向python_requires
添加信息,以便conan list --graph
也可以列出python_requires
。 #14529Feature: 向图 json 序列化添加
rrev
、rrev_timestamp
和prev_timestamp
。 #14526Feature: 允许
version-ranges
也解析为可编辑包。 #14510Feature: 添加对 Apple visionOS 的支持。 #14504
Feature: 警告未知的版本范围选项。 #14493
Feature: 添加 tools.graph:skip_binaries 以控制图中的二进制跳过。 #14466 。文档 此处
Feature: 新的
tools.deployer:symlinks
配置,用于禁用部署器中的符号链接复制。 #14461 。文档 此处Feature: 允许远程仓库自动解析 ‘editable add’ 中缺少的
python_requires
。 #14413 。文档 此处Feature: 新的
credentials.json
文件,用于存储 Conan 远程仓库的凭据。 #14392 。文档 此处Feature: 当在 Visual Studio 提示符中调用 conan profile detect 时,如果定义了 CC 或 CXX 并指向 cl 编译器可执行文件,则现在可以检测 msvc 的版本 #14364
Feature: 新的
conan create --build-test=missing
参数,用于控制作为test_package
文件夹的依赖项构建的内容。 #14347 。文档 此处Feature: 为在配方中定义
tool_requires
的选项提供新的default_build_options
属性。 #14340 。文档 此处Fix: 允许在 conan create 中为 python-requires 使用 –format=json #14594
Fix: 删除 conan v2 ready conan-center 链接。 #14593
Fix: 允许在版本预发布版本中使用额外的连字符。 #14561
Fix: 即使定义了
tools.cmake.cmaketoolchain:user_toolchain
,也允许使用为tools.cmake.cmaketoolchain
定义的 confs。 #14556 。文档 此处Fix: 在
--format=json
中将图的dependencies
中的布尔值序列化为布尔值,而不是字符串。 #14530 。文档 此处Fix: 避免在 conan upload 中出现错误,当
python_requires
不在缓存中且需要下载时。 #14511Fix: 改进
lock add
的错误检查,添加完整的包引用而不是配方引用。 #14491Fix: 不要将未捕获的堆栈跟踪打印到
stdout
,而是打印到stderr
。 #14444Fix: 在
--format=json
输出中序列化conf_info
。 #14442Fix: MSBuildToolchain/MSBuildDeps:避免将 C/C++ 编译器选项作为 ResourceCompile 的选项传递。 #14378
Fix: 删除插件文件会导致更好的错误消息,而不是堆栈跟踪。 #14376
Fix: 修复 armv8/aarch64 上的 CMake 系统处理器名称。 #14362
Fix: 使备份源
core.sources
conf 不强制要求最终斜杠。 #14342Fix: 正确地将配方
default_options
中定义的选项传播到test_requires
。 #14340 。文档 此处Fix: 使用 conanfile.run() 调用 XCRun,以便注入环境。 #14326
Fix: 为
conan config install
使用abspath
,以避免符号链接问题。 #14183Bugfix: 解决当多个不同的
package_ids
重用相同的构建文件夹时,build_id()
问题。 #14555Bugfix: 避免在使用包列表时,未向 conan download 提供时间戳时出现 DB 错误。 #14526
Bugfix: 将异常堆栈跟踪(当设置 -vtrace 时)打印到 stderr 而不是 stdout #14522
Bugfix: 仅打印在 conan upload 中以交互方式确认的包。 #14512
Bugfix: ‘conan remove’ 输出缓存中与过滤器匹配的所有条目,而不仅仅是用户确认的条目。 #14478
Bugfix: 当没有 –user 时传递 –channel 时,提供更好的错误。 #14443
Bugfix: 修复已在“build” 上下文中的包的
tool_requires
的settings_target
计算。 #14441Bugfix: 避免在定义
core.download:parallel
时出现DB is locked
错误。 #14410Bugfix: 在使用部署器时,使生成的 powershell 环境脚本相对化。 #14391
Bugfix: 修复 profile [tool_requires] 使用被忽略的修订版本的问题。 #14337
2.0.9 (7 月 19 日 - 2023 年)¶
Feature: 在 ConanFile 中添加 implements 属性,以提供对某些选项和设置的自动管理。 #14320 。文档 此处
Feature: 添加 apple-clang 15。 #14302
Fix: 当使用 revision_mode = “scm_folder” 时,允许存储库在 conanfile.py 文件夹外部为脏状态。 #14330
Fix: 改进 compatibility.py 和 profile.py 插件中错误的错误消息并提供 Conan 跟踪信息。 #14322
Fix: 在每次消息写入后
flush()
输出流。 #14310Bugfix: 修复
CMakeUserPresets
由于拼写错误而从 conan 生成的预设继承。 #14325Bugfix: 如果多个用户预设从同一 conan 预设继承,则 ConanPresets.json 包含重复的预设。 #14296
Bugfix: Meson prefix 参数作为 UNIX 路径传递。 #14295
Bugfix: 修复当 tools.build:verbosity 设置为 quiet 时,CMake Error: Invalid level specified for –loglevel 错误。 #14289
2.0.8 (7 月 13 日 - 2023 年)¶
Feature: 向默认 settings.yml 添加 GCC 10.5。 #14252
Feature: 让 pkg_config_custom_content 覆盖由 PkgConfigDeps 创建的默认 *.pc 变量。 #14233 。文档 此处
Feature: 让 pkg_config_custom_content 也是类似字典的对象。 #14233 。文档 此处
Feature: fix_apple_shared_install_name 工具现在使用 xcrun 来解析 otool 和 install_name_tool 程序。 #14195
Feature: 用于
CMakeDeps
生成器的新cpp_info.set_property("cmake_package_version_compat" , "AnyNewerVersion")
。 #14176 。文档 此处Feature: 元数据改进。 #14152
Fix: 改进使用 conan test 命令时缺少二进制文件的错误消息。 #14272
Fix: 使 conan download 命令不再需要加载 conanfile,不会因 1.X 配方或缺少的
python_requires
而失败。 #14261Fix: 现在使用带有 –list 参数的 upload 允许空配方列表。 #14254
Fix: 保证
Options.rm_safe
永远不会引发异常。 #14238Fix: 允许 tools.gnu:make_program 影响每个 CMake 配置。 #14223
Fix: 向 conan new lib 模板添加缺少的 package_type。 #14215
Fix: 启用 patch() 函数中现有的状态消息代码。 #14177
Fix: 在
XcodeDeps
中使用configuration
而不是始终使用build_type
。 #14168Fix: 尊重缓存位置的符号链接路径。 #14164
Fix:
PkgConfig
使用conanfile.run()
而不是内部运行器来从配置文件和依赖项中获取完整的 Conan 环境。 #13985Bugfix: 修复
CMakeDeps
CMAKE_FIND_LIBRARY_SUFFIXES
变量的泄漏。 #14253Bugfix: 修复当检测到多个自定义全局生成器时,conan 无法按名称查找生成器的问题。 #14227
Bugfix: 改进 conan graph info 在 html 格式中图形冲突的显示效果。 #14190
Bugfix: 修复从 Linux 到 OSX 的
CMakeToolchain
交叉编译问题。 #14187Bugfix: 修复当未选择任何软件包时备份源中的 KeyError 错误。 #14185
2.0.7 (2023年6月21日)¶
Feature: 添加新的
arm64ec
架构,用于定义 CMAKE_GENERATOR_PLATFORM。 #14114 . 文档 hereFeature: 使
CppInfo
成为公共的、有文档记录的、可导入的工具,供需要聚合它们的生成器使用。 #14101 . 文档 hereFeature: 允许
conan remove --list=pkglist
删除软件包列表。 #14082 . 文档 hereFeature:
conan remove --format
的输出同时支持文本(已删除内容的摘要)和 json 格式。 #14082 . 文档 hereFeature: 添加 core.sources:excluded_urls 以备份源。 #14020
Feature: conan test 命令学习了
--format=json
格式化程序。 #14011 . 文档 hereFeature: 允许在
conan list
(以及 download、upload、remove)模式中使用pkg/[version-range]
表达式。 #14004 . 文档 hereFeature: 添加等效于 1.X
conan upload --skip-upload
的conan upload --dry-run
命令。 #14002 . 文档 hereFeature: 改进下载大文件时打印一些信息的 UX。 #13989
Feature: 将
PackagesList
用作conan upload --list=pkglist.json
的输入参数。 #13928 . 文档 hereFeature: 使用
--graph
输入conan list
以创建一个PackagesList
,该列表可用作 conan upload 的输入。 #13928 . 文档 hereFeature: 与 recipes 和 packages 关联的新元数据文件,可以在 package 存在后上传、下载和添加。 #13918
Feature: 在 PkgConfigDeps 中,将 bindir 添加到生成的 .pc 文件中。 #13623 . 文档 here
Fix: 删除
conanfile.xxx_folder
中破坏 msys2 等子系统的尾随句点.
。 #14061Fix: 避免在图中某个中间 package 调用
aggregated_components()
且使用--deployer
时出现缓存问题,生成器仍然指向 Conan 缓存而不是部署副本。 #14060Fix: 允许内部
Cli
对象被多次调用。 #14053Fix: 强制 Python 3.10 使用
pyyaml>=6
,因为之前的版本已损坏。 #13990Fix: 改进当 Conan 无法显示其中一个冲突 recipe 时,图形冲突消息。 #13946
Bugfix: 解决从服务器下载非最新修订版本时时间戳中的错误。 #14110
Bugfix: 修复可编辑 package 中的双重基本路径设置。 #14109
Bugfix: 如果
conan graph build-order
图形有任何错误,则引发异常,而不是静默地无所作为并输出空 json。 #14106Bugfix: 当文件夹具有重叠的匹配名称时,避免
editable
package 的不正确路径替换。 #14095Bugfix: 将 clang 设置为 FreeBSD 检测到的默认编译器。 #14065
Bugfix: 将前缀变量和任何自定义内容(通过 pkg_config_custom_content 属性)添加到 PkgConfigDeps 已生成的 pkg-config 根 .pc 文件中。 #14051
Bugfix: conan create 命令对于
--format=json
结果图始终返回相同的输出,而与 test_package 是否存在无关。 #14011 . 文档 hereBugfix: 修复定义
self.folders.root=".."
父目录时editable
package 的问题。 #13983Bugfix: 删除了 libdir1 和 includedir1 作为默认索引。现在,PkgConfigDeps 默认在 .pc 文件中创建 libdir 和 includedir 变量。 #13623 . 文档 here
2.0.6 (2023年5月26日)¶
Feature: 添加 tools.cmake:cmake_program 配置项,以允许指定所需 CMake 可执行文件的位置。 #13940 . 文档 here
Fix: 修复图层中的自定义命令无法执行本地导入的问题。 #13944
Fix: 改进下载 + 解压缩的输出。 #13937
Fix: 在 conan config install 中为 package_manager:mode 添加缺失的值。 #13929
Bugfix: 确保 graph info、create、export-pkg 和 install 的图形信息 JSON 输出相同。 #13967 . 文档 here
Bugfix:
test_requires
像常规requires
一样影响消费者的package_id
,但它们不应该这样做。 #13966Bugfix: 当
-c tools.build:download_source=True
时,在 json 输出中正确定义source_folder
。 #13953Bugfix: 修复并完善了 graph info xxxx –format json 输出,以便公开记录它。 #13934 . 文档 here
Bugfix: 修复 premakedeps 中的 “double” 绝对路径。 #13926
Bugfix: 修复了 2.0.5 https://github.com/conan-io/conan/pull/13898 中的回归问题,其中 package 和组件规范的覆盖失败 #13923
2.0.5 (2023年5月18日)¶
Feature: -v 参数默认为 VERBOSE 级别。 #13839
Feature: 避免显示不必要的跳过依赖项。现在,如果存在跳过的二进制文件,则仅显示引用名称列表。可以通过向当前命令添加 -v(verbose 模式)来完全列出它们。 #13836
Feature: 允许对本地构建的 package 使用
--build
进行依赖项步入式调试 #13833 . 文档 hereFeature: 允许使用
upload_policy="skip"
和build_policy="missing"
构建不可重定位的本地 package #13833 . 文档 hereFeature: 当计算
package-revision
时,不要移动缓存中的 “build” 文件夹,以允许使用步入式调试来定位依赖项的源 #13810Feature: 新的
settings.possible_values()
方法,用于查询 setting 的可能值范围。 #13796 . 文档 hereFeature: 当
upload_policy=skip
时,优化并避免访问服务器以获取二进制文件 #13771Feature: 部分相对化生成的环境 .sh shell 脚本 #13764
Feature: 改进 settings.yml 错误消息 #13748
Feature: 自动创建空的
global.conf
,以改进在 home 中查找文件的 UX。 #13746 . 文档 hereFeature: 缓存 “extensions/generators” 中的新全局自定义生成器,可以通过名称使用。 #13718 . 文档 here
Feature: 改进 conan inspect 输出,现在它理解 set_name/set_version。 #13716 . 文档 here
Feature: 定义新的
self.tool_requires("pkg/<host_version>")
,以允许某些 tool_requires 跟随并使用与 “host” 常规 requires 相同的版本。 #13712 . 文档 hereFeature: 引入新的
core:skip_warns
配置,以便能够静默输出中的某些警告。 #13706 . 文档 hereFeature: 将 info_invalid 添加到图形节点序列化 #13688
Feature: 计算和报告图形中的
overrides
,以及graph build-order
中的 overrides #13680Feature: 用于单仓库项目的新
revision_mode = "scm_folder"
,这些项目想要使用scm
修订版本。 #13562 . 文档 hereFeature: 演示可以
tool_requires
同一 package 的不同版本。 #13529 . 文档 hereFix: 修复 XcodeDeps 包含跳过的依赖项的问题。 #13880
Fix: 不允许在
pkg/version
引用字段中换行。 #13870Fix: 修复 Windows 子系统的
AutotoolsToolchain
的tools.build:compiler_executable
定义。 #13867Fix: 加快 CMakeDeps 的生成速度。 #13857
Fix: 修复导入的库配置后缀。 #13841
Fix: 当定义未知的 conf 时失败。 #13832
Fix: 修复
conan install/create
命令中 “skipped” 二进制文件的不正确打印,当它们被其他一些依赖项使用时。 #13778Fix: 将缓存 “deploy” 文件夹重命名为 “deployers”,并允许使用
-d, --deployer
cli 参数。(“deploy” 文件夹不会中断,但会警告为已弃用)。 #13740 . 文档 hereFix: 省略 header-only 库的
CMakeDeps
中的-L
libpaths。 #13704Bugfix: 修复当
test_requires
也是常规传递 “host” requires 并且消费者定义组件时的问题。 #13898Bugfix: 修复在 recipes 中定义的选项(如
*:shared=True
)的传播。 #13855Bugfix: 修复 ‘graph build-order’ 和 ‘test’ 命令的
--lockfile-out
路径。 #13853Bugfix: 确保在更多情况下上传备份源。 #13846
Bugfix: 修复
settings.yml
中intel-cc
cppstd=03
的定义。 #13844Bugfix: 修复 conan upload 对仅导出的 recipes 使用备份源的问题。 #13779
Bugfix: 修复包含别名的 lockfile 的
conan lock merge
。 #13763Bugfix: 修复具有版本范围的传递依赖项中的 python_requires。 #13762
Bugfix: 修复 baremetal 的 CMakeToolchain CMAKE_SYSTEM_NAME=Generic。 #13739
Bugfix: 修复不正确的环境脚本停用顺序。 #13707
Bugfix: 解决当图形具有
override=True
的 requirements 时 lockfile 失败的问题。 #13597
2.0.4 (2023年4月11日)¶
Feature: 将
--build-require
扩展到更多命令(graph info
、lock create
、install
)和用例。 #13669 . 文档 hereFeature: 使 CMakeDeps、CMakeToolchain 和 Environment (.bat, 仅限 Windows) 生成的文件具有相对路径。 #13607
Feature: 添加对 premake5 deps (PremakeDeps) 的初步(未记录,仅限开发人员)支持。 #13390
Fix: 将旧的 conan user 引用更新为
conan remote login
。 #13671Fix: 改进
requirements()
错误消息中依赖项选项已更改的提示。 #13668Fix: [system_tools] 没有报告正确的已解析版本,但仍然是原始范围。 #13667
Fix: 改进 provides 冲突消息错误。 #13661
Fix: 当服务器响应禁止下载 recipe/package 中的 1 个文件时,确保其他文件和数据库已清理。 #13626
Fix: 当使用 –package-query 但未提供与 package 匹配的模式时,在 conan remove 中添加错误提示。 #13622
Fix: 为
direct_deploy
部署器添加direct_deploy
子文件夹。 #13612 . 文档 hereFix: 修复当模式未列出 package 修订版本时,例如:
conan list "*#*:*"
的 html 输出。 #13605Bugfix: 当 package 没有 settings 或 options 时,
conan list -p <package-query>
失败。 #13662Bugfix: python_requires 现在正确加载远程 requirements。 #13657
Bugfix: 修复当
override
在图形节点中使用,并且该节点也是菱形图的闭合节点时发生的崩溃。 #13631Bugfix: 修复
options
的--package-query
参数。 #13618Bugfix: 为
full_deploy
部署器添加full_deploy
子文件夹,以避免与 “build” 文件夹冲突。 #13612 . 文档 hereBugfix: 将 STATUS 设置为默认日志级别。 #13610
Bugfix: 修复 conan cache clean 中的双重删除错误。 #13601
2.0.3 (2023年4月3日)¶
Feature:
conan cache clean
学习了--all
和--temp
以清理所有内容(源、构建)以及临时文件夹。 #13581 . 文档 hereFeature: 支持 MacOS SDK 13.1 (在 Xcode 14.2 中可用)。 #13531
Feature:
full_deploy
部署器与CMakeDeps
生成器一起学习创建相对路径部署,因此它们是可重定位的。 #13526Feature: 引入
conan remove *#!latest
(也适用于 package 修订版本),以删除除最新版本外的所有修订版本。 #13505 . 文档 hereFeature: 新的
conan cache check-integrity
命令,以替换 1.X 旧版conan upload --skip-upload --check
。 #13502 . 文档 hereFeature: 在 conan list html 输出中添加选项和 settings 的筛选。 #13470
Feature: 自动服务器端第三方源备份。 #13461
Feature: 添加 tools.android:cmake_legacy_toolchain 配置,在为 Android 构建 CMake 项目时很有用。如果已定义,这将设置 ANDROID_USE_LEGACY_TOOLCHAIN_FILE 的值。如果通过 tools.build:cflags 或 tools.build:cxxflags 定义了编译器标志,则将其设置为 False 可能很有用,以防止 Android 的旧版 CMake 工具链覆盖这些值。 #13459 . 文档 here
Feature: 默认
tools.files.download:download_cache
为core.download:download_cache
,因此只需定义一个即可。 #13458Fix: 定义一种在
python_requires_extend
扩展中更新default_options
的方法。 #13487 . 文档 hereFix: 再次允许指定
self.options["mydep"].someoption=value
,等效于"mydep/*"
。 #13467Fix: 为使用 VS2019 和 VS2022 的 meson 生成 c++20 的 cpp_std=vc++20,而不是 vc++latest。 #13450
Bugfix: 修复
CMakeDeps
未清除find_library()
中的CONAN_SHARED_FOUND_LIBRARY
变量。 #13596Bugfix: 不允许添加超过 1 个具有相同远程名称的远程仓库。 #13574
Bugfix: 避免由于可编辑 package 的依赖项二进制文件为 “skip” 而导致的生成器错误。 #13544
Bugfix: 修复父命令带有下划线时的子命令名称。 #13516
Bugfix: 修复运行 conan export-pkg 时远程仓库中的
python-requires
。 #13496Bugfix: 可编辑 package 现在也遵循
build_folder_vars
配置。 #13488Bugfix: 修复
[system_tools]
配置文件组合。 #13468
2.0.2 (2023年3月15日)¶
Feature: 允许
global.conf
中相对于 Conan home 文件夹的相对路径。 #13415 . 文档 hereFeature: 向 Autotools 类的 autoreconf 方法添加了一个可选的 “build_script_folder” 参数。它镜像了同一类的 configure 方法的相同参数和行为。也就是说,它允许覆盖工具的运行位置(默认情况下在 source_folder 中运行)。 #13403
Feature: 创建缓存内容的摘要。 #13386
功能: 允许
global.conf
jinja2 包含其他文件。 #13336功能: 添加
conan export-pkg --skip-binaries
以允许导出时不包含依赖项的二进制文件。 #13324 。 文档 here功能: 添加 core.version_ranges:resolve_prereleases conf 以控制版本范围是否可以解析为预发布版本 #13321
修复: 允许在 conan create 中自动处理
package_type = "build-scripts"
作为--build-require
。 #13433修复: 改进服务器端软件包损坏的检测和消息。 #13432
修复: 修复 conan download 帮助中的错别字。 #13430
修复: 修复 _detect_compiler_version 中的错别字。 #13396
修复: 修复
conan profile detect
在 OSX 上对clang
编译器检测libc++
的问题。 #13359修复: 允许内部
vswhere
调用检测和使用 VS 预发布版本。 #13355修复: 允许 conan export-pkg 使用远程仓库来安装缓存中缺少的依赖项。 #13324 。 文档 here
修复: 允许在
settings_user.yml
定义dict
时,将settings.yml
列表转换为dict
。 #13323修复: 修复从 macOS 交叉编译到非 Apple OS 时 AutotoolsToolchain 传递的标志。 #13230
BugFix: 修复自定义配置包含空格时
MSBuild
中的问题。 #13435Bugfix: 解决
conan profile path <nonexisting>
崩溃的错误。 #13434Bugfix: 添加全局详细级别 conf tools.build:verbosity,而不是单独的级别。 #13428 。 文档 here
Bugfix: 避免为格式错误的自定义命令引发致命异常。 #13365
Bugfix: 不要从依赖项中省略
system_libs
,即使它们是仅头文件的。 #13364Bugfix: 修复实例化
MesonToolchain
时未创建VirtualBuildEnv
环境的问题。 #13346Bugfix: 在兼容性插件中,使用自定义编译器时提供更友好的错误信息。 #13328
Bugfix: 添加 qcc cppstd 兼容性信息以允许计算依赖关系图。 #13326
2.0.1 (2023年3月3日)¶
功能: 在 config install 中为 –verify-ssl 添加 –insecure 别名。 #13270 。 文档 here
功能: 为 conan config install 添加 .conanignore 支持。 #13269 。 文档 here
功能: 使异常的详细回溯信息显示在
-vv
和-vvv
中,而不是 1.X 中使用的自定义环境变量。 #13226修复: 对 conan install 和 2.0 准备就绪错误消息进行小幅改进。 #13299
修复: 删除
vcvars.bat
VS 遥测环境变量,以避免 Conan 挂起。 #13293修复: 删除
CMakeToolchain
对CMakeUserPresets.json
的旧版CMakePresets
schema2 支持。 #13288 。 文档 here修复: 如果
conan config list unexpected-arg
,则引发 arg 错误。 #13282修复: 不要为
msvc
自动检测compiler.runtime_type
,依赖于 profile 插件。 #13277修复: 修复 conanfile.txt 选项解析错误消息。 #13266
修复: 改进选项中统一模式的错误消息。 #13264
修复: 允许
conan remote add --force
强制重新定义现有远程仓库名称。 #13249修复: 恢复打印 build 命令的 profile。 #13214
修复: 更改 conan build 参数 “path” 的描述,以表明它仅适用于 conanfile.py,并明确声明它不适用于 conanfile.txt。 #13211 。 文档 here
修复: 当依赖项
options
在requirements()
方法中定义时,提供更好的错误消息。 #13207修复: 修复来自错误消息和 readme 的断开的文档链接。 #13186
Bugfix: 确保 topics 始终序列化为列表。 #13298
Bugfix: 确保 provides 始终序列化为列表。 #13298
Bugfix: 修复了某些 visual c++ 安装的检测。 #13284
Bugfix: 修复
msvc
编译器支持的cppstd
值。 #13278Bugfix: CMakeDeps 为
tool_requires
生成文件时,使用与 “host” 上下文相同的build_type
。 #13267Bugfix: 修复 configure() 中依赖项选项模式的定义。 #13263
Bugfix: 修复 CMakeToolchain 在不同 Win 驱动器中输出文件夹时的错误。 #13248
Bugfix: 如果组件
.requires
未使用test_requires
,则不引发错误。 #13191
2.0.0 (2023年2月22日)¶
功能: 将 apple-clang 的默认 profile cppstd 更改为 gnu17。 #13185
功能: 新的
conan remote auth
命令,用于强制远程仓库进行身份验证 #13180修复: 允许在
test_requires(..., options={})
中定义 options trait #13178修复: 统一 Conan 命令帮助消息。 #13176
Bugfix: 修复 MesonToolchain 在 apple-clang 中错误的 cppstd #13172
功能: 改进的全局 Conan 输出消息(create、install、export 等)。 #12746
2.0.0-beta10 (2023年2月16日)¶
功能: 为 conan list 命令添加基本 html 输出。 #13135
功能: 允许
test_package
处理--build
参数(为主图,非 test_package 图计算 –build=never)。 #13117功能: 为 remote add 添加 –force 参数。 #13112
功能: 验证输入配置是否存在,以避免拼写错误。 #13110
功能: 允许在 recipes
layout()
中定义self.folders.build_folder_vars
。 #13109功能: 阻止 settings 分配。 #13099
功能: 改进 conan editable ui。 #13093
功能: 为用户提供扩展 Conan 生成的 CMakePresets 的能力。 #13090
功能: 添加错误消息,以帮助将 recipes 迁移到 2.0,包括来自 ConanCenter 和用户仓库的 recipes。 #13074
功能: 在 conan new 模板中为 shared 删除 option.fPIC。 #13066
功能: 添加 conan cache clean 子命令以清理 build 和 source 文件夹。 #13050
功能: 实现可自定义的
CMakeToolchain.presets_prefix
,以便 presets 名称预先添加此前缀。 #13015功能: 在 profiles 中添加 [system_tools] 部分,以使用您自己安装的工具,而不是在 requires 中声明的软件包。 #10166
修复: 修复 powershell 转义中的问题。 #13084
修复: 默认定义
CMakeToolchain.presets_prefix="conan"
,以避免与其他用户 presets 冲突。 #13015
2.0.0-beta9 (2023年1月31日)¶
功能: 在 Conan 缓存哈希路径中添加软件包名称。 #13011
功能: 实现
tools.build:download_source
conf,以强制在 conan install 或conan graph info
中安装源文件。 #13003功能: 用户可以在 settings_user.yml 中定义自己的 settings,这些 settings 将与 Conan settings.yml 合并。 #12980
功能: 也列出禁用的远程仓库。 #12937
修复: PkgConfiDeps 正在使用 dependencies 中的错误
dependencies.host
,而不是get_transitive_requires()
计算。 #13013修复: 修复 CMakeDeps 中传递共享 linux 库的问题。 #13010
修复: 修复 test_package 输出文件夹的问题。 #12992
修复: 改进错误方法的错误消息。 #12962
修复: 修复由于数据库并发问题导致的并行软件包下载失败。 #12930
修复: 启用对禁用远程仓库的身份验证。 #12913
修复: 改进 system_requirements。 #12912
修复: 将 tar 格式更改为 PAX,这是 Python3.8 的默认格式。 #12899
2.0.0-beta8 (2023年1月12日)¶
功能: 添加 unix_path_package_info_legacy 函数,用于需要在 package_info 中使用该函数以兼容 Conan 1.x 的情况。 在 Conan 2 中,不应在 package_info 方法中执行路径转换。 #12886
功能:
conan list
的新序列化 json 和打印输出。 #12883功能: 向 conan new cmake_{lib,exe} 添加 requirements。 #12875
功能: 允许使用
--no-remotes
强制临时禁用远程仓库 #12808功能: 向 conan new 添加 barebones 模板选项。 #12802
功能: 如果传递了 PkgID,则避免请求软件包配置。 #12801
功能: 实现了 conan list *#latest 和 conan list *:*#latest。 基本上,此命令可以显示所有匹配引用的最新 RREV 和 PREV。 #12781
功能: 允许链接 self.output write 方法 #12780
修复: 使
graph info
过滤器也适用于 json 输出 #12836Bugfix: 修复在使用 AutotoolsToolchain 并在 Windows 上交叉构建时传递有效 GNU triplet 的错误。 #12881
Bugfix: 如果 ref.name 相同但版本不同,则进行排序。 #12801
2.0.0-beta7 (2022年12月22日)¶
2.0.0-beta6 (2022年12月2日)¶
功能: 使用
--confirm
在删除时无需请求确认,而不是--force
#12636功能: 简化加载 conaninfo.txt 以获取搜索结果 #12616
功能: 将 ConanAPIV2 重命名为 ConanAPI #12615
功能: 重构 ConanAPI #12615
功能: 改进 conan cache path 命令 #12554
功能: 改进从 remove/upload/download 中选择 #latest 和模式 #12572
功能: 添加 build_modules 到提供的已弃用警告,以允许从 1.x 迁移 #12578
功能: Lockfiles 别名支持 #12525
2.0.0-beta5 (2022年11月11日)¶
功能: 改进远程仓库管理和 API #12468
功能: 在 Conan 2.0 中将 env_info 和 user_info 实现为伪属性 #12351
功能: 改进 settings.rm_safe() #12379
功能: 新的 RecipeReference 相等性 #12506
功能: 简化 .tgz 文件的压缩和解压缩 #12378
功能: conan source 命令不需要默认 profile #12475
功能: 创建了适当的 LockfileAPI,具有详细的方法(update、save 等),而不是几个松散的方法 #12502
功能: conan export 也可以生成 lockfiles,对于执行 2 步流程(export + install–build)的用户是必需的 #12502
功能: 删除 compat_app #12484
修复: 修复 transitive_headers=True 的传递传播 #12508
修复: 修复静态库的 transitive_libs=False 的传递传播 #12508
修复: 修复 python_requires 的 test_package #12508
2.0.0-beta4 (2022年10月11日)¶
功能: 不允许使用 revision_mode=scm 对未提交的更改执行 conan create/export #12267
功能: 简化 conan inspect 命令,删除 path 子命令 #12263
功能: 向 graph info 命令添加 –deploy 参数 #12243
功能: 将 graph 对象传递给 deployers,而不是 ConanFile #12243
功能: 向 conan.tools.scm.Git 添加 included_files 方法 #12246
功能: 改进 clang libcxx 的检测 #12251
功能: 删除旧的 profile 变量系统,转而支持 profiles 中的 Jinja2 语法 #12152
修复: 更新 command 以遵循关于 CLI 输出的 Conan 2.0 约定 #12235
修复: 修复 diamonds 中 test trait 的聚合 #12080
2.0.0-beta3 (2022年9月12日)¶
功能: 将 test_package 与 create 解耦。 #12046
功能: 如果导出的 refs 中有特殊字符,则发出警告。 #12053
功能: MSBuildDeps traits 的改进。 #12032
功能: 添加了对 CLICOLOR_FORCE 环境变量的支持,如果该值已声明且不为 0,则将激活输出中的颜色。 #12028
修复: 为所有配置仅调用一次 source()。 #12050
修复: 修复 deployers 未创建 output_folder 的问题。 #11977
修复: 修复 build_id() 删除 require 的问题。 #12019
修复: 如果 Conan 未能加载自定义命令,则现在会抛出有用的错误消息。 #11720
Bugfix: 如果在 build profile 中未指定 ‘os’,并且在 Windows 中,recipe 想要运行命令。 #11728
2.0.0-beta2 (2022年7月27日)¶
功能: 在 MSBuildDeps 中添加 traits 支持。 #11680
功能: 在 XcodeDeps 中添加 traits 支持。 #11615
功能: 让依赖项定义 package_id 模式。 #
功能: 添加
conan.conanrc
文件以设置 conan 用户主目录。 #11675功能: 添加
core.cache:storage_path
以声明要存储 Conan 软件包的绝对路径。 #11672功能: 添加用于检查最大 cppstd 版本的工具。 #11610
功能: 添加一个
post_build_fail
hook,在构建失败时调用。 #11593功能: 添加
pre_generate
和post_generate
hook,涵盖围绕generate()
方法调用生成文件的过程。 #11593功能: 带回
conan config list
命令和其他 conf 改进。 #11575功能: 为所有命令添加了两个新参数:-v 用于控制输出的详细程度,–logger 用于以 json 日志格式输出内容以供日志处理器使用。 #11522
2.0.0-beta1 (2022年6月20日)¶
功能: 新的 graph 模型,更好地支持 C 和 C++ 二进制文件关系、编译和链接。
功能: 新的文档化的公共 Python API,用于用户自动化
功能: 新的构建系统集成,更灵活、更强大,并在可能的情况下提供透明集成,例如
CMakeDeps
和CMakeToolchain
功能: 新的自定义用户命令,可以使用公共 PythonAPI 构建,并可以使用
conan config install
共享和安装功能: 新的 CLI 界面,具有更简洁的命令和更结构化的输出
功能: 新的 deployers 机制,用于将工件从缓存复制到用户文件夹,并在构建时使用这些副本。
功能: 改进的
package_id
计算,考虑了新的更详细的 graph 模型。功能: 添加了
compatibility.py
扩展机制,以允许用户全局定义二进制兼容性。功能: 更简单、更强大的
lockfiles
,以提供随时间推移的可重现性。功能: 通过
[conf]
更好的配置,以及通过新的conan.tools.env
工具更好的环境管理。功能: Conan 缓存现在可以同时存储多个修订版本。
功能: 新的扩展插件,用于实现 profile 检查、软件包签名和构建命令包装。
功能: 使用软件包不变性来改进更新、安装和上传流程。