更新日志¶
有关 Conan 2 相对于 Conan 1.X 的主要变更的更详细描述,请阅读Conan 2 的新特性
2.12.1 (2025 年 1 月 28 日)¶
2.12.0 (2025 年 1 月 27 日)¶
Feature:公开文档化(和实验性)
--build=compatible:[pattern]
构建模式,以便在当前配置无效且二进制兼容性定义了兼容的二进制文件时,允许构建与当前配置不同的其他配置。#17637 。文档此处Feature:定义新的
tools.cmake.cmaketoolchain:user_presets
以自定义生成的CMakeUserPresets.json
的名称,禁用其生成。也可以在子文件夹中生成。#17613 。文档此处Feature:在
--format=json
图形输出中序列化原始需求版本范围,而不仅仅是解析后的版本范围。#17603Feature:添加 cycloneDX 作为 Conan 工具,并为 conanfile 实现子图。#17559 。文档此处
Feature:初始
conan workspace build
命令,用于基于products
的定义构建完整的工作区。#17538 。文档此处Feature:允许从外部集中文件夹为类似 conan-center-index 的布局在“create”时应用补丁。#17520 。文档此处
Feature:添加解压缩 tarball 文件时报告进度的功能。#17519
Feature:conan profile show 现在可以选择要显示哪个上下文的 profile。#17518
Feature:更好的日志记录,打印仓库的用户名、成功的身份验证事件和包含完整 URL 请求的跟踪级别消息。#17517
Feature:添加 conan config clean 命令,该命令将从 conan home 中删除所有自定义配置,但不包括生成的包。#17514 。文档此处
Feature:向 ConanApi 添加 reinit 方法,该方法重新初始化每个 subapi。#17514 。文档此处
Feature:允许定义
--out-file=file.ext
而不是--format=ext > file.ext
以直接写入文件,并避免重定向问题。#17507 。文档此处Feature:在 API 调用之间缓存 HTTP 请求会话。#17455
Feature:在
Remote
对象中为RemoteManager
调用实现缓存,从而在 Remote 对象的生命周期内节省重复的服务器调用。#17449 。文档此处Fix:将 arch_flag 作为公共属性添加到 MesonToolchain 生成器。#17629
Fix:将 sqlite 超时时间从 10 秒增加到 20 秒,以应对负载非常重的 CI 服务器。#17616
Fix:使
remotes.json
保存具有事务性,以避免进程硬杀死导致损坏。#17588Fix:改进 conan create 在
test_package
缺少二进制文件时的错误消息。#17581Fix:修复 Git is_dirty 检测具有路径的排除文件。#17571
Fix:允许最新的 bottle 0.13 版本
conan_server
与 Python 3.13 一起使用。#17534Fix:GnuToolchain 的 make_args 正确处理空值。#17532
Fix:修复
replace_in_file
中的不一致性,如果未找到模式(且 strict 关闭),则返回 False,否则返回 None。#17531Fix:conan profile show 不会用信息标题污染 stdout。#17518
Fix:当在 languages 属性中使用未知语言时报错。#17512
Fix:修复使用
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 日)¶
Feature:仅在启用时警告冻结的 conan v1 远程仓库。#17482
Feature:AutotoolsToolchain 在首次进行 Android 交叉编译时使用用户的变量。#17470 。文档此处
Feature:AutotoolsToolchain 检查 Android 交叉编译路径是否存在。#17470 。文档此处
Feature:将 Conan 缓存“profiles”文件夹添加到 jinja2 搜索路径,以便即使对于父文件夹和兄弟文件夹,也可以从 jinja 语法中包含/导入 profile。#17432 。文档此处
Feature:更新 tools.env.virtualenv:powershell conf,以允许指定 PowerShell 可执行文件(例如,powershell.exe 或 pwsh)并传递其他参数。#17416 。文档此处
Feature:弃用 tools.env.virtualenv:powershell=True/False 的使用。#17416 。文档此处
Fix:如果值为 None,则不显示 powershell 弃用消息。#17500
Fix:修复调用
editable_add
时LocalAPI
对 editables 的定义。#17498Fix:澄清 CMakeDeps 中的调试消息。#17453
Fix:在 BazelDeps 中为 glob() 函数显式添加 allow_empty = True(与 bazel 8.x 兼容)。#17444
Fix:修复由于未清理的正则表达式导致的 cpp_info.location 推导中断。#17430
Fix:信任来自符号链接的真实路径是一个好方法。#17421
Fix:修复在本地 recipe 索引中搜索模式时的 user/channel。#17408
Fix:为空版本范围添加警告。#17405
Bugfix:修复组件属性的虚假重复。#17503
Bugfix:修复在 powershell 中使用单引号运行命令的问题。#17487
Bugfix:修复取消设置某些类型的 confs 的问题。#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 日)¶
Fix:解决在大型图中计算“skip”二进制文件时的性能问题。#17436
2.10.1 (2024 年 12 月 4 日)¶
Bugfix:修复相同引用名称替换的 [replace_requires]。#17409
2.10.0 (2024 年 12 月 2 日)¶
Feature:向 conan remote auth 添加 –force 选项,即使对于启用了匿名访问的远程仓库也强制进行身份验证。#17377 。文档此处
Feature:向 conan new 命令添加 –output 选项。#17359
Feature:让新的
CMakeDeps
始终定义组件并使用find_package( COMPONENTS)
检查它们,监听新的属性cmake_components
。#17302Feature:允许
tools.microsoft.msbuild:max_cpu_count=0
使用/m
以使用所有可用的核心。#17301 。文档此处Feature:改进的自动推导位置功能。#17296
Feature:BazelDeps 使用新的 deduce_location 机制来查找库。#17296
Feature:初始
conan workspace
初始提案,用于管理本地 editable 集合。仅作为开发/维护人员功能引入,隐藏在环境变量后面。#17272 。文档此处Feature:允许在
conan config install-pkg
中使用--settings
,以在不同平台上创建和安装不同的配置。#17217 。文档此处Feature:为 Docker runners 将 network 添加到 configfile。#17069 。文档此处
Fix:修复了在子文件夹中使用 conan.tools.scm.Git.fetch_commit() 时发生的错误。#17369
Fix:为选项冲突添加“风险”警告,以便用户可以进行 warn-as-error 以在发生冲突时引发错误。#17366
Fix:新的
CMakeDeps
生成器允许fooConfig.cmake
用于包内文件,以及foo-config.cmake
。#17330Fix:在缓存中构建时,为 editable 依赖项添加警告。#17325
Fix:如果源补丁在 export_conandata_patches 中不存在,则引发 ConanException。#17294
Fix:改进 CONAN_LOG_LEVEL 环境变量不正确值的 UX。#17280
Fix:Meson 与其他构建系统保持一致,将 x86_64->`x86` 视为交叉构建。#17266
Fix:避免
colorama
错误导致大型输出崩溃。#17259Bugfix:当
compiler=clang
和compiler_executables={"c": "clang-cl"}
时添加正确的标志,以避免从 Linux 交叉构建到 Windows 时注入不正确的标志。#17387Bugfix:解决
Choco().check()
错误,该错误使用旧版choco search --local-only
,已替换为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
中的正确值的问题。#17292Bugfix:修复
cpp_info
属性覆盖而不是合并具有列表值的属性的问题。对于editable
模式下cmake_build_modules
的工作是必要的。#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 日)¶
Feature:conan new 学习了默认值
-d name=mypkg -d version=0.1
,以实现更简单的 UX。#17186 。文档此处Feature:当修补文件且 recipe 具有 no_copy_source = True 时发出警告,这可能会导致无法预见的问题。#17162
Feature:为 tool_requires 添加 self.generator_info,以将生成器传播到其直接依赖项。#17129 。文档此处
Feature:新的
tools.graph:skip_build
conf,用于能够跳过tool_requires
的扩展。#17117 。文档此处Feature:新的
tools.graph:skip_test
conf,用于能够跳过test_requires
的扩展。#17117 。文档此处Feature:为 ROS2(机器人操作系统)添加 ROSEnv 生成器集成。#17110
Feature:向
conan graph build-order
添加 profile 参数信息,以改进 CI 系统中的 UX 和用法。#17102 。文档此处Feature:为 MSBuildDeps 属性表添加 Configuration 和 Platform 键。#17076 。文档此处
Feature:新的
CMakeDeps
生成器,通过tools.cmake.cmakedeps:new
conf 以及值will_break_next
激活以进行评估。这个新的生成器推导或使用cpp_info.location/link_location
来定义 STATIC;SHARED,INTERFACE 导入的目标。它还将定义 IMPORTED_LOCATION、IMPORTED_CONFIGURATION 等。#16964Feature:使用
cpp_info.languages
,默认为 recipelanguages
,以将“link-language”需求传播到包的使用者。#16964Feature:仅为新的
CMakeDeps
生成器定义cpp_info.default_components
。#16964Feature:为可执行应用程序建模
cpp_info.exes
字段,仅由新的CMakeDeps
生成器使用,该生成器在CMakeDeps
中为cpp_info.exes
生成 IMPORTED 可执行目标。#16964Fix:在 Windows 上为 meson.configure() 使用有效的 prefix path,以避免 Python 3.13 中的失败。#17206
Fix:将启动选项添加到每个 Bazel 命令。#17183
Fix:将远程仓库名称添加到登录提示符。#17178
Fix:当过期的令牌给出 AuthenticationException 时,获取凭据并重新进行身份验证。#17127
Fix:将异常从旧版
from conans.error
移动到文档化的from conan.error
。#17126 。文档此处Fix:
Pacman
作为包管理器不应用于tools.microsoft.bash:subsystem=msys2
,而应在目标平台实际上是 msys2os.subsystem=msys2
(作为设置)时使用。#17103Fix:在 MSBuildToolchain 中从 profile 正确推导 RuntimeLibrary。#17100
Fix:对于 gcc >= 10,将 C++20 标志设置为 {gnu}c++20,而不是 c++2a,直到 gcc 12。#17092 。文档此处
Fix:对于 gcc >= 11,将 C++23 标志设置为 {gnu}c++23,而不是 c++2b。#17092 。文档此处
Fix:避免对 401 服务器重复登录尝试,当凭据来自 env-vars 或
credentials.json
文件时,仅对用户交互式提示重复登录尝试。#17083Fix:使 CMakeToolchain 和 AutotoolsToolchain 自动为
compiler=msvc
定义cl
编译器(如果未定义)(仅在必要时,例如在 CMake 中使用 Ninja 生成器时)。#16875 。文档此处Fix:在 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 规则下表示不同的 recipe(即 1.0 和 1.0.0)将返回两个引用。#17121
Bug修复:Conan Server:搜索时,对于同一配方引用的每个修订版本,不要返回重复的引用。#17121
Bug修复:空的版本范围导致空的条件集合。#17116
Bug修复:在 deps 部分添加 # do not sort 注释。自 Conan 1.61 以来的回归。#17109
Bug修复:使用 Commands API 时,恢复 ConanOutput 全局状态。#17095
Bug修复:graph build-order 中的 build_args 选项现在尊重引用的上下文。#16594
2.8.1 (2024年10月17日)¶
Bug修复:避免为
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 远程仓库的身份验证。#16942。文档 here特性:为 conan install 和 conan build 添加 –envs-generation={false},以禁用虚拟环境的生成 (
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特性:为大于 100MB 的大型上传每 10 秒添加进度更新。#16913
特性:实现
conan config install-pkg --url=<repo-url>
,用于在尚未定义远程仓库时初始定义远程仓库 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>
文件存在问题时,提供更好的错误消息。#16936Bug修复:PkgConfigDeps.set_property() 未正确设置所有可用的属性。#17051
Bug修复:BazelDeps 未找到 DLL 文件,因为 Conan 未在 Windows 平台中对其建模。#17045
Bug修复:如果由于
tools.graph:skip_binaries=False
而不跳过软件包,则不要跳过该软件包的依赖项。#17033Bug修复:在菱形依赖情况下,允许
requires(..., package_id_mode)
特性始终使用配方定义的特性,而与requires()
顺序无关。#16987Bug修复:将 include_prerelease 标志传播到 VersionRange 的交集。#16986
Bug修复:如果传递给 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 特性为 True 时,在 “build” 上下文中向下游传播 run 特性需求信息。#16849。文档 here
特性:为 PkgConfigDeps 添加 set_property,以设置来自消费者配方的需求属性。#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
修复:改进锁定文件未能锁定需求时的错误消息,指定其类型。#16841
修复:更新 patch-ng 1.18.0 以避免 SyntaxWarning 垃圾信息。#16766
Bug修复:避免由于缺少空格,在同时定义架构标志和
tools.build:linker_scripts
时出现CMakeToolchain
错误。#16883Bug修复:当使用 Visual Studio 的 llvm-clang 时,在 MSBuildToolchain 中设置正确的平台工具集。#16844
Bug修复:修复本地配方索引中不存在的配方的 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
修复:避免
runtime_deployer
部署具有run=False
特性的依赖项。#16724修复:改进传递错误文件夹的
--deployer-folder=xxx
参数时的错误消息。#16723修复:更改
requirements.txt
,使其也在 FreeBSD 中安装distro
软件包。#16700修复:加载不存在或损坏的 “package list” 文件时,提供更好的错误消息。#16685
修复:从 tools.build:compiler_executables 中删除不受支持的 ld 和 ar 条目,它们在每个 Conan 集成中都没有效果。#16647
修复:确保正确报告直接工具需求冲突,而不是挂起。#16619
修复:更新
runners
功能的docker
依赖项版本。#16610修复:当尝试上传在
conandata
scm
中具有本地文件夹 URL 的软件包时,引发错误。#16597。文档 hereBug修复:修复 profile
include()
与具有部分定义的按软件包[settings]
的问题。#16720Bug修复:当软件包具有组件时,
MakeDeps
生成器缺少一些聚合变量。#16715Bug修复:避免 settings.update_values() 在推断兼容性时失败。#16642
Bug修复:修复 Ninja Multi-Config CMake 的 tools.build:defines 处理。#16637
Bug修复:使 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
特性:在计算依赖关系图时,高亮显示缺失或无效的需求。#16520
特性:遵守 tools.android:ndk_path conf。设置 Android 交叉编译所需的标志。#16502。文档 here
特性:Qbs 助手现在自动调用 Conan provider。#16486
特性:为 tools.cmake.cmaketoolchain:extra_variables 添加 force 选项。#16481。文档 here
特性:如果在同一 Conan profile 文件中存在重复的 section,则引发 ConanException。#16454
特性:为 Qbs toolchain 添加 resolve() 方法。#16449
特性:使使用 deployer 可重定位的
MSBuildDeps
生成。#16441特性:添加 QbsDeps 类,以便与 Qbs Conan 模块 provider 一起使用。#16334
修复:修复 provides 冲突错误消息在命名引用与 provider 匹配时未显示冲突的 provides 的问题。#16562
修复:为 pytest 设置正确的 testpaths。#16530
修复:允许在文件系统的根目录中使用
.conanrc
文件。#16514修复:在 conan runners 中添加对非默认 docker 主机的支持。#16477
修复:当无法覆盖备份上传中的 summary 文件时,不要失败。#16452
修复:使
source_credentials.json
不适用于 Conan server repos 协议。#16425。文档 here修复:允许软件包具有空文件夹。#16424
Bug修复:修复
detect_api
中的detect_msvc_compiler()
,以正确检测compiler.version=194
的 VS 17.10。#16581Bug修复:修复当配方执行 package_id() info 擦除并用作兼容性候选时出现的意外错误。#16575
Bug修复:确保 msvc cppstd 兼容性回退不会忽略 194 二进制文件。#16573
Bug修复:如果使用了 –deployer-folder=xxxx 参数,XXXDeps 生成器未在其生成的文件中包含绝对路径。#16552
Bug修复:修复软件包修订的 conan list … –format=compact。#16490
Bug修复:修复仅设置 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 等其他 toolchain 一样,为 MesonToolchain 添加了 extra_xxxx 标志。#16389
特性:为 conan new 命令添加新的
qbs_lib
模板。#16382特性:允许使用多个
--build=missing:~pattern1 --build=missing:~pattern2
模式。#16327特性:弃用在 ConanFile 中使用路径访问器。#16247
特性:添加对设置 tools.cmake.cmaketoolchain:extra_variables 的支持。#16242。文档 here
特性:为 CMakeDeps 生成器添加 cmake_additional_variables_prefixes 变量,以允许为声明的 CMake 变量添加额外的名称。#16231。文档 here
特性:也允许在本地
conan install/build
流程中定义CMakeToolchain
中的 GNUInstallDirs。#16214特性:让
conan cache save
监听core.gzip:compresslevel
conf。#16211特性:添加新的
revision_mode
,包括一直到recipe-revision
的所有内容,但不包括package_id
。#16195。文档 here特性:允许配方
requires(..., visible=False)
自身之前的版本,而不会引发循环错误。#16132特性:实现
check_min_cstd
、check_max_cstd
、valid_max_cstd
、valid_min_cstd
、supported_cstd
工具。#16028。文档 here特性:新的
languages = "C", "C++"
类属性,用于进一步自动化设置管理。#16028。文档 here特性:将 CONAN_RUNTIME_LIB_DIRS 变量添加到 conan_toolchain.cmake。#15914。文档 here
修复:为默认
compatibility.py
插件实现向后迁移到 <2.3 版本。#16405修复:将缺少的 [replace_requires] 和 [platform_requires] 添加到 profile 的序列化/转储中。#16401
修复:修复
Qbs
助手中的路径空格处理。#16382修复:使 cc 版本检测更健壮。#16362
修复:允许
--build=missing:&
模式仅在 consumer 缺失时构建它,而不构建其他项。#16344修复:允许 “local-recipes-index” 使用自定义
user/channel
的conan list
软件包。#16342修复:修复
cppstd
函数的文档字符串。#16341修复:更改 `CMAKE_SYSTEM_VERSION` 的自动检测以使用 Darwin 版本。 #16335 。文档 此处
修复:修复 `graph build-order` 输出中 `require` 语法的问题。 #16308
修复:通过添加双引号,改进一些命令帮助文档字符串。 #16292
修复:为不正确的版本范围定义提供更友好的错误消息。 #16289
修复:仅在缓存的 recipe 修订版本确实更新时才打印相关信息。 #16275
修复:当使用不带模式作用域的 `
options
` 时发出警告,以改善期望 `-o shared=True
` 应用于依赖项的用户的用户体验。 #16233 。文档 此处修复:修复非 Conan 自定义命令使用 CommandAPI 的问题。 #16213
修复:避免在 Python 3.12 中使用 `
datetime
` 已弃用的调用。 #16095Bugfix: 修复 VS 17.10 更新后,最新 `
v14.4
` 工具集版本中 `LLVM/Clang
` 对 `vcvars
` 的启用。 #16374 。文档 此处Bugfix: 修复使用 `type=shared` 的 docker runner 时出现的 profile 错误。 #16364
Bugfix: `
conan graph info .. --build=pkg
` 不会下载 `pkg
` 源码,除非定义了 `tools.build:download_source
`。 #16349Bugfix: 解决了 CMakeToolchain 和 CMakeDeps 中路径相对化的问题。 #16316
Bugfix: 避免在 MesonToolchain 中清理 `tools.build:compiler_executables` 值。 #16307
Bugfix: 解决了 `
conan cache save/restore
` tgz 文件中不正确的路径问题,该问题在使用 `storage_path
` 自定义配置时会导致崩溃。 #16293Bugfix: 修复 `conan list` 中不存在的 graph 文件导致的堆栈跟踪。 #16291
Bugfix: 允许 `
CMakeDeps
` 生成器在 `xxxConfig.cmake
` 已存在时覆盖它。 #16279Bugfix: 禁止在 `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
`。 #16332Bugfix: 允许默认 `
compatibility.py
` 插件从 MSVC `compiler.version=194->193
` 回退到其他 `cppstd
` 值。 #16346Bugfix: 跳过本地 recipe 索引布局中的点文件夹。 #16345
Bugfix: 删除生成的 `conanvcvars.ps1` 中多余的反斜杠。 #16322
2.3.1 (2024 年 5 月 16 日)¶
特性:允许选择退出 `
CMakeToolchain
` 默认使用绝对路径作为 CMakeUserPresets->CMakePreset 和 CMakePresets->toolchainFile 路径。 #16244 。文档 此处修复:修复 Docker runner 的配置容器名称。 #16243
Bugfix: 使兼容性检查能够理解 update 标志模式。 #16252
Bugfix: 解决钻石结构中来自 `
lockfiles
` 的 `overrides
` 导致的错误。 #16235Bugfix: 允许将 `
export-pkg --version=xxx
` 传递给具有 `python_requires
` 的 recipe,这些 recipe 从基类继承 `set_version
`。 #16224
2.3.0 (2024 年 5 月 6 日)¶
特性:运行 conan upload 时显示 recipe 和包大小。 #16103
特性:扩展 `conan version` 以报告当前的 python 和系统信息,用于问题排查。 #16102 。文档 此处
特性:为主流编译器(如 gcc、msvc、clang)向公共 `
detect_api
` 添加 `detect_xxxx_compiler()
`。 #16092 。文档 此处特性:为 `.conanignore` 文件添加注释支持。 #16087
特性:在 graph `html` 搜索栏中,现在可以使用逗号分隔的多个搜索模式。 #16083
特性:在 graph `html` 中添加了“过滤包”栏,该栏可以使用逗号分隔的多个搜索模式,并将包从 graph 中隐藏。 #16083
特性:为 Git 操作添加了参数 `hide_url`,以允许记录仓库 URL。默认情况下,URL 将保持 `<hidden>`,但用户可以选择退出此行为。 #16038
特性:允许在 `
export()
` 和 `export_sources()
` 方法中访问 `.conf
`(仅限于 `global.conf
` 信息,而非 profile 信息)。 #16034 。文档 此处特性:避免在 `
copy()
` 中复制相同的现有文件。 #16031特性:新的 `
conan pkglist find-remote
` 命令,用于在 remotes 中查找与缓存中包列表匹配的包。 #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
` 参数,以便在 profile 已存在时不会失败,且不会覆盖它。 #15933特性:如果 native=True,MesonToolchain 可以生成 native 文件(仅在交叉编译时有意义)。 #15919 。文档 此处
特性:如果 native 文件和 cross 文件都存在,Meson helper 会注入它们。 #15919 。文档 此处
修复:允许为 `
conan profile detect
` 自动检测定义 `CC=/usr/bin/cc
`(和 CXX)。 #16187修复:解决 `
pyinstaller.py
` 脚本中的问题,它将不再安装 `pip install pyinstaller
`,安装它将成为一个前提条件。 #16186修复:在 `
CMake
` helper 中为 CMakeLists.txt 文件夹使用反斜杠,修复了项目位于驱动器根目录(如 `X:
`)时的问题。 #16180修复:即使路径已被删除,也允许 `
conan editable remove <path>
`。 #16170修复:修复 `conan new –help` 格式问题。 #16155
修复:改进 graph 中存在冲突时的错误消息。 #16137
修复:改进当一个 URL 不是有效服务器但在 Conan “ping” API 调用下仍然返回 200-ok 时的错误消息。 #16126
修复:解决 FreeBSD 中由于带双引号的查询导致的 `
sqlite3
` 问题。 #16123修复:清理 `
conan cache restore <non-existing-file>
` 的错误消息。 #16113修复:改进当缓存中的 remotes 或 credentials 文件无效/为空时的用户体验和错误消息。 #16091
修复:在 Linux 系统中使用 `
cc
` 可执行文件进行自动检测编译器(`conan profile detect
` 和 `detect_api
`)。 #16074修复:通过为无效的 `
==, ~=, ^=
` 运算符提供更好的错误消息,改进版本范围定义的用户体验。 #16069修复:改进不正确的 `
settings.yml
` 或 `settings_user.yml
` 时的错误消息用户体验。 #16065修复:为自 2021 年以来已 EOL 的 Python 3.6 使用情况打印警告。 #16003
修复:删除 `
Autotools
` helper 中重复打印命令行的问题。 #15991修复:将响应错误消息输出添加到 FileDownloader 中的 HTTP 状态 401 错误。 #15983
修复:将 gcc 14 添加到默认的 `
settings.yml
`。 #15958修复:使 `
VCVars
` 使用 `compiler.update
` 来指定工具集。 #15947修复:为跨构建 Linux->Windows 向 `
AutotoolsToolchain
` 的 `compiler_executables
` 映射添加 `rc
`。 #15946修复:将 `
Pop!_OS
` 添加到使用 `apt-get
` 作为系统包管理器的发行版。 #15931修复:不警告包含 `-` 字符的包名称。 #15920
修复:修复新的 `
--format=html
` graph 输出的 html 转义问题,并传递 graph 序列化对象而不是字符串。 #15915Bugfix: 使 MesonToolchain 监听 `tools.build:defines` conf 变量。 #16172 。文档 此处
Bugfix: 禁止在 `validate_build()` 方法中访问 `self.cpp_info`。 #16135
Bugfix: 当 `.conanrc` 的 `conan_home` 无效时,不显示跟踪信息。 #16134
Bugfix: 避免将 `
tool_requires
` 的传递依赖项传播到生成器信息,即使它们被标记为 `visible=True
`。 #16077Bugfix: `BazelDeps` 现在使用 `requirement.build` 属性而不是 `dependency.context` 属性。 #16025
Bugfix: 使 `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
特性:将 macOS 版本 14.2、14.3、14.4 添加到 `settings.yml`。 #15859 。文档 此处
特性:新的 graph `
html
`:更多信息、test-requires、隐藏/显示不同的包(build、test)。 #15846 。文档 此处特性:为 `conan cache clean` 添加 `–backup-sources` 标志。 #15845
特性:添加 `conan graph outdated` 命令,该命令列出在 remotes 中具有更新版本的依赖项。 #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
` 本地 build-folder。 #15767 。文档 此处特性:新的 `
tools.cmake.cmake_layout:test_folder
` 配置,允许为 `test_package
` 重新定义 `cmake_layout
` 输出 build 文件夹,包括一个 `$TMP
` 占位符,用于在系统 `tmp
` 中创建临时文件夹。 #15767 。文档 此处特性:(实验性)在新的 `
package_type = "configuration"
` 的 Conan 包中添加 `conan config install-pkg myconf/[*]
` 新配置。 #15748 。文档 此处特性:(实验性)新的 `
core.package_id:config_mode
`,允许配置包引用影响使用该配置构建的所有包的 `package_id
`。 #15748 。文档 此处特性:公开 `cppstd_flag`,以返回基于 settings 的相应 C++ 标准标志。 #15710 。文档 此处
特性:允许在 `
build_folder_vars
` 属性和 conf 中使用 `self.name
` 和 `self.version
`。 #15705 。文档 此处特性:添加 `
conan list --filter-xxx
` 参数,以列出与 settings+options 匹配的包二进制文件。 #15697 。文档 此处特性:向 `detect_api` 添加 `detect_libc`,以获取 C 库的名称和版本。 #15683 。文档 此处
特性:在 `
ConanAPI
` 中新的 `CommandAPI
` 子 api,允许调用其他命令。 #15630 。文档 此处修复:当 `
--build=missing
` 和重复的 `tool_requires
` 时,避免不必要的 `tool_requires
` 构建。 #15885修复:修复 `
CMakeDeps
` `set_property(... APPEND
` 参数顺序。 #15877修复:当在 install graph 中发现无限循环时(循环的格式错误的依赖关系图)引发错误。 #15835
修复:确保 `detect_default_compiler()` 始终返回一个 3 元组。 #15832
修复:当某个修订版本不存在二进制文件时,为 `
conan graph explain
` 打印清晰的消息。 #15823修复:将 `
package_type="static-library"
` 添加到 `conan new msbuild_lib
` 模板。 #15807修复:避免 `
platform_requires
` 在通过 `requires(.., options={})
` 传递显式选项时失败。 #15804修复:使 `
CMakeToolchain
` 以换行符结尾。 #15788修复:如果未提供二进制模式,则不允许 `
conan list
` 二进制过滤器或包查询。 #15781修复:避免 `
CMakeToolchain.preprocessor_definition
` 定义在没有值(Python `None
`)时使用 `"None"
` 字面量字符串。 #15756修复:改进了 `
conan install <path> --deployer-package=*
` 在使用 `self.package_folder
` 时崩溃的情况。 #15737修复:修复大型依赖关系图的 `conan graph info –format=html`。 #15724
修复:使所有 recipe 和插件 python 文件 `
print()
` 输出到 `stderr
`,以便 json 输出到 `stdout
` 不会被破坏。 #15704修复:修复获取 Linux x86 的 gnu triplet。 #15699
Bugfix: 解决在列表内部的字符串中使用 `
global.conf
` 中的 `conan_home_folder
` 时的反斜杠问题。 #15870Bugfix: 修复当 `
build_type
` 上存在条件依赖项时 `CMakeDeps
` multi-config 的问题。 #15853Bugfix: 将 `get_backup_sources()` 方法从 `UploadAPI` 移动到预期的 `CacheAPI`。 #15845
Bugfix: 避免 conandata.yml 中的版本列表不包含补丁时出现 TypeError。 #15842
Bugfix: 解决 `
package_type=build-scripts
` 与 lockfiles 和 conan create 的问题。 #15802Bugfix: 如果 recipe 指定了 `
user
` 属性,则允许 `--channel
` 命令行参数。 #15794Bugfix: 修复从 Windows 交叉编译到 Android 时使用 `
MesonToolchain
` 的问题。 #15790Bugfix: 修复当定义了 `
compiler.update
` 时的 `CMakeToolchain
` GENERATOR_TOOLSET。 #15789Bugfix: 解决了当 `
conf
` 项与 Python 模块匹配时的评估问题。 #15779Bugfix: 修复 `
PkgConfigDeps
` 为其 `tool_requires
` 生成 .pc 文件的问题,当它已在 build 上下文中时。 #15763Bugfix: 向 `CONAN_C_FLAGS` 添加 `VISIBILITY` 标志。 #15762
Bugfix: 修复带有作用域 conf 的 profile 的 `conan profile show –format=json`。 #15747
Bugfix: 修复 Conan API 中 `update` 参数的遗留用法。 #15743
Bugfix: 解决当字符串包含 Windows 反斜杠时,profile `
[conf]
` 损坏的问题。 #15727Bugfix: 修复元数据版本范围的版本优先级。 #15653
2.1.0 (2024 年 2 月 15 日)¶
特性:在 `
CMakeToolchain
` 中实现 multi-config `tools.build:xxxx
` 标志。 #15654特性:为 conan build 添加 `–format=json` 格式化程序。 #15651
特性:添加了 `tools.build.cross_building:cross_build`,以决定是否进行交叉编译,而无需考虑 Conan 内部机制。 #15616
特性:为 `conan cache path` 添加 `–format=json` 选项。 #15613
功能:提供一个新的
graph build-order --reduce
参数,用于将构建顺序仅限定于需要从源代码构建的软件包。#15573 . 文档 here功能:在 CMakeToolchain 中为 Visual Studio CMake 生成器添加配置以指定所需的 CUDA 工具包。#15572 . 文档 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 以限制远程仓库可以提供的引用。#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
recipe,用于定义每个 recipe 对消费者package_id
的影响。#15453 . 文档 here功能:添加新的
--core-conf
命令行参数,以允许通过 CLI 传递 core. 配置。#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 属性,以从 recipe 向扩展传递信息。#15348 . 文档 here
功能:在 extension_properties 中为
compatibility.py
插件实现 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
修复:解决构建 profile 和上下文中
[platform_tool_requires]
的问题。丢弃构建 profile 中的[platform_requires]
。#15665修复:修复 conda 环境中的 gcc 检测。#15664
修复:改进上传备份源时对 .dirty 下载文件的处理。#15601
修复:修复生成文件中的相对路径。#15592
修复:允许
CMakeToolchain.preprocessor_definitions
的None
值,这将映射到没有值的定义。#15545 . 文档 here修复:修复 graph build-order –order=configuration 文本格式输出。#15538
修复:当用户想要在离线模式下工作时,如果远程仓库无法访问,则引发有用的错误。#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
以仅下载 recipe。#15312修复:允许
cmake.build(build_type="Release")
用于使用多配置系统构建但没有build_type
设置的 recipe。#14780缺陷修复:修复带有组件和跳过依赖项的
MSBuildDeps
。#15626缺陷修复:避免
provides
为自tool_requires
到自身以进行交叉构建的软件包引发错误。#15575缺陷修复:修复 tools.microsoft.visual.VCVars 中的构建范围 OS 检测。#15568
缺陷修复:修复当依赖项仅为头文件时,通过
visible=False
的错误传播。#15564缺陷修复:将临时缓存文件夹存储在
core.cache:storage_path
中,以便conan cache clean
也能正确找到并清理它们。#15505缺陷修复:
conan export-pkg --format=json
输出现在返回recipe = "cache"
状态,因为在命令执行后 recipe 位于缓存中。#15504缺陷修复:conan export-pkg 命令存储 lockfile 时排除
test_package
,与 conan create 的行为相同。#15504缺陷修复:避免 conan test 为
python_requires
test-package 失败。#15485 . 文档 here缺陷修复:MesonToolchain 计算有效的 apple_min_version_flag。#15465
缺陷修复:允许在
build_id()
和package_id()
方法中使用子设置限制os
、compiler
和其他设置。#15439缺陷修复:修复获取环境变量 CONAN_LOGIN_USERNAME_REMOTE。#15388
缺陷修复:在 tools.files.copy() excludes 模式中,不要将 . 文件夹考虑在内。#15349
缺陷修复:禁用创建没有名称和版本的 editable。#15337
缺陷修复:修复 Git.get_url_and_commit 对某些 Git 配置引发错误的问题。#15271
缺陷修复:不应跳过正在构建的软件包的 “host” 上下文中的直接依赖项。这允许在 “host” 上下文中使用非 C/C++ 库工件(如图像)作为构建时资源。#15128
2.0.17 (2024 年 1 月 10 日)¶
修复:如果
conan cache save --file=subfolder/file.tgz
子文件夹不存在,则自动创建文件夹。#15409缺陷修复:解决
cmake_minimum_required(3.27)
的CMakeToolchain
生成器中的winsdk_version
错误。#15373缺陷修复:修复带有
build=True
trait 的 visible trait 传播。#15357缺陷修复:修复通过 tools.info.package_id:confs 包含 conf 值时的 package_id 计算。#15356
缺陷修复:在转储 conf 条目时对其进行排序,以允许可重现的 package_id,而与声明 conf 的顺序无关。#15356
2.0.16 (2023 年 12 月 21 日)¶
2.0.15 (2023 年 12 月 20 日)¶
功能:新的
conan lock remove
命令,用于从 lockfile 中删除 requires。#15284 . 文档 here功能:新的
CMake.ctest()
助手方法,用于直接启动ctest
,而不是通过cmake --target=RUN_TEST
启动。#15282功能:添加
tools.microsoft:winsdk_version
conf,使VCVars
生成器使用给定的winsdk_version
。#15272 . 文档 here功能:conan cache path xxx –folder xxxx 如果请求的文件夹不存在,则引发错误。#15257
功能:为 ConanFile 的 self.dependencies 添加 in 运算符支持。#15221 . 文档 here
功能:使
CMakeDeps
生成器创建一个conandeps.cmake
,该文件以类似cmake
的生成器风格聚合所有直接依赖项。#15207 . 文档 here功能:将构建环境信息添加到 CMake configure preset,并将运行环境信息添加到 CMake test preset。#15192 . 文档 here
功能:移除了一个关于 conan 迁移潜在问题的警告,该警告会在每次构建失败时打印。#15174
功能:recipes 中新的
deploy()
方法,用于显式的每个 recipe 部署。#15172 . 文档 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
功能:profile 中新的
[replace_requires]
和[replace_tool_requires]
,用于重新定义 requires,对于软件包替换(如zlibng/zlib
)很有用,以解决冲突,并将某些依赖项替换为包装在另一个 Conan 软件包 recipe 中的系统替代方案。#15136 . 文档 here功能:新的
[platform_requires]
profile 定义,以便能够用平台提供的依赖项替换 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 输出中由于 CMAKE_POLICY_DEFAULT_CMP0091 未使用的变量而产生的警告。#15127
修复:弃用
[system_tools]
,转而使用[platform_tool_requires]
,以与常规依赖项的[platform_requires]
对齐。将输出从 “System tool” 更改为 “Platform”。#14871 . 文档 here缺陷修复:确保 user confs 至少有 1 个 : 分隔符 #15296
缺陷修复:
Git.is_dirty()
将使用git status . -s
来确保它仅处理当前路径,而不是整个仓库,与其他Git
方法类似。#15289缺陷修复:使
self.info.clear()
和仅头文件的软件包移除python_requires
和tool_requires
。#15285 . 文档 here缺陷修复:使
conan cache save/restore
在 Windows 和其他操作系统之间可移植。#15253缺陷修复:不要在
deployers
中相对化绝对路径。#15244缺陷修复:将
architecture
添加到CMakePresets
,以避免在使用 preset 时 cmake 忽略 toolchain 定义。#15215缺陷修复:修复 conan graph info –format=html 报告误导性冲突节点的问题。#15196
缺陷修复:修复 conan profile show –format=json 中 tool_requires 的序列化。#15185
缺陷修复:修复 NMakeDeps 引用问题。#15140
缺陷修复:修复 2.0.14 迁移,以便在定义
storage_path
conf 时向缓存添加 LRU 数据。#15135缺陷修复:修复 conan export-pkg 命令的
package_metadata_folder
定义。#15126缺陷修复:由于无用的 distutils 导入,pyinstaller.py 在 Python 3.12 中已损坏。#15116
缺陷修复:修复未设置 core.sources:download_cache 时的备份源错误。#15109
2.0.14 (2023 年 11 月 14 日)¶
功能:将
riscv64, riscv32
架构添加到默认settings.yml
,并在 Meson 和 Autotools 中对其进行管理。#15053功能:仅允许一个同步数据库连接。#15029
功能:添加 conan cache backup-upload 以上传缓存中的所有备份源,无论它们来自哪个引用 #15013 . 文档 here
功能:新的
conan list --format=compact
,以获得更好的用户体验。#15011 . 文档 here功能:conan upload 中更好的输出消息 #14984
功能:计算版本范围交集,以避免兼容范围的图版本冲突 #14912
功能:CMake 助手可以在 target 参数中使用多个目标。#14883
功能:添加 CMakeDeps 和 PkgConfigDeps 生成器,以监听 system_package_version 属性。#14808 . 文档 here
修复:避免
CMakeToolchain
在未定义 layout 和 output-folder 时覆盖用户CMakePresets.json
。#15058修复:在 SystemPackageManager 中,将
astra
、elbrus
和altlinux
添加为使用apt
的发行版。#15051修复:使
Git()
即使对于浅克隆也检查远程服务器中的 commit。#15023修复:将新的 Apple OS 版本添加到 settings.yml。#15015
修复:从
conan --version
输出中删除颜色。#15002修复:如果 sqlite3 版本不受支持(低于 2012 年的 3.7.11),则添加错误消息。#14950
修复:使缓存 DB 始终对路径使用正斜杠,以在 Windows 和 Linux 之间保持一致。#14940
修复:解决现有软件包修订版本的重新构建问题(例如强制重新构建现有的仅头文件软件包),而之前的文件夹仍被其他项目使用。#14938
修复:通过
Apt.install()
或PkgConfig.fill_cpp_info
输出的系统包(如xorg/system
)在 Conan 输出中非常冗余,使其更加简洁。#14924修复:序列化
python_requires
的path
信息,这对于计算 buildinfo 是必要的。#14886修复:在 conan source 命令中定义远端仓库,以防 recipe 具有需要从远端仓库下载的
python_requires
。#14852修复:修复 xros 和 xros-simulator 的最小目标标志。#14776
缺陷修复:在
tool_requires
具有传递依赖的情况下,--build=missing
会不必要地构建不需要且可以跳过的包。#15082缺陷修复:在 ‘conan export-pkg’ 命令中为 format=json 添加 package revision。#15042
缺陷修复:当存在 editable 包时,
tools.build:download_source=True
不会失败。#15004 。文档 here缺陷修复:传递依赖被错误地添加到 conandeps.xcconfig 中。#14898
缺陷修复:当
export_source
未下载时,修复完整性检查(upload --check
或cache check-integrity
)。#14850缺陷修复:正确锁定 python requires 的发布候选版本。#14846
2.0.13 (2023 年 9 月 28 日)¶
缺陷修复:修复 2.0.11 中引入的较新 apple-clang 版本的错误 cppstd 检测。#14837
2.0.12 (2023 年 9 月 26 日)¶
特性:在 package_manager 的 install() 方法中添加 host_tool,以指示包是主机工具还是库。#14752 。文档 here
修复:当尝试
export-pkg
python-require
包时,提供更好的错误消息,并避免导出后失败。#14819修复:
CMakeDeps
允许对所有属性使用set_property()
。#14813修复:当未提供 <path> 参数时,conan build 命令提供更友好的错误提示。#14787
缺陷修复:修复
compatibility()
对settings_target
的操作,使其变为 None。#14825缺陷修复:
compatible
包首先在缓存中查找,只有在未找到时才在服务器中查找,以便在存在 compatible 包时允许离线安装。#14800缺陷修复:在 ConanRequester 中重用会话以加速请求。#14795
缺陷修复:修复当
editable
包具有部分定义目录的组件时的相对路径。#14782
2.0.11 (2023 年 9 月 18 日)¶
特性:为
conan profile show
命令添加--format=json
格式化器。#14743 。文档 here特性:为 ‘conan build’ cmd 添加新的 –deployer –generators 参数。#14737 。文档 here
特性:改进
CMakeToolchain
块接口。添加新的.blocks.select()
,.blocks.keys()
。#14731 。文档 here特性:当从下载缓存复制大文件而不是从服务器下载时,添加消息提示。#14716
特性:添加机制,如果将 Meson 中的 c、cpp 和/或 ld 二进制变量声明为空格分隔的字符串,则将其转换为列表。#14676
特性:将 nobara 发行版添加到 dnf 包管理器映射中。#14668
特性:确保 meson toolchain 为 clang-cl 设置 b_vscrt。#14664
特性:支持 conf tools.info.package_id:confs 的正则表达式模式。#14621 。文档 here
特性:MakeDeps:提供 “require” 信息,以及更多样式调整。#14605
特性:允许在 compatibility 方法中访问 settings_target。#14532
修复:改进 ConanApi 初始化失败时的错误消息。#14735
修复:CMakeDeps:移除关于重复别名的 “Target name … already exists” 警告。#14644
缺陷修复:修复
Git.run()
在win_bash=True
时的回归问题。#14756缺陷修复:将 conan.tools.system.package_manager.Apt 中的默认 check=False 更改为 True,与其他包管理器工具保持一致。#14728 。文档 here
缺陷修复:解决带有菱形依赖的
test_requires
的传递共享依赖项的传播问题。#14721缺陷修复:解决 conan export-pkg 与
test_package
调用远端仓库时发生的崩溃问题。#14712缺陷修复:不要二进制跳过具有未跳过的传递依赖项的包,否则会破坏构建系统到这些传递依赖项的构建链,例如
CMakeDeps
生成的文件。#14673缺陷修复:修复在原生 ARM64 Windows 上运行
conan profile detect
时检测到的 CPU 架构。#14667缺陷修复:如果服务器上的引用比缓存中的新,
conan lock create --update
现在可以正确更新服务器上的引用。#14643缺陷修复:修复不必要地用转义序列装饰命令 stdout 的问题。#14642
缺陷修复:
tools.info.package_id:confs
不应影响 header-only 库。#14622
2.0.10 (2023 年 8 月 29 日)¶
特性:允许在
conandata.yml
定义中为用户补丁添加patch_user
,这不由apply_conandata_patches()
处理。#14576 。文档 here特性:支持 Xcode 15、iOS 17、tvOS 17、watchOS 10、macOS 14。#14538
特性:如果用户添加了不正确的 ConanCenter web URL 作为远端仓库,则引发错误。#14531
特性:使用
--format=json
序列化图时,会将信息添加到python_requires
,以便conan list --graph
也可以列出python_requires
。#14529特性:将
rrev
、rrev_timestamp
和prev_timestamp
添加到图 json 序列化中。#14526特性:允许
version-ranges
也解析为 editable 包。#14510特性:添加对 Apple visionOS 的支持。#14504
特性:警告未知的版本范围选项。#14493
特性:新的
tools.deployer:symlinks
配置,用于禁用 deployer 中的符号链接复制。#14461 。文档 here特性:允许远端仓库在 ‘editable add’ 中自动解析缺少的
python_requires
。#14413 。文档 here特性:新的
credentials.json
文件,用于存储 Conan 远端仓库的凭据。#14392 。文档 here特性:当在 Visual Studio 提示符中调用 conan profile detect 且 CC 或 CXX 已定义并指向 cl 编译器可执行文件时,可以检测 msvc 的版本。#14364
特性:
conan create --build-test=missing
新参数,用于控制作为test_package
文件夹的依赖项构建的内容。#14347 。文档 here特性:为在 recipe 中定义
tool_requires
的选项提供新的default_build_options
属性。#14340 。文档 here修复:允许在 conan create 中为 python-requires 使用 –format=json。#14594
修复:移除 conan v2 ready conan-center 链接。#14593
修复:允许在版本预发布版本中使用额外的连字符。#14561
修复:即使定义了
tools.cmake.cmaketoolchain:user_toolchain
,也允许使用为tools.cmake.cmaketoolchain
定义的 confs。#14556 。文档 here修复:在图的
--format=json
中将dependencies
的布尔值序列化为布尔值,而不是字符串。#14530 。文档 here修复:避免在 conan upload 时,当
python_requires
不在缓存中且需要下载时发生错误。#14511修复:改进错误检查,防止
lock add
添加完整的包引用而不是 recipe 引用。#14491修复:不要将未捕获的堆栈跟踪打印到
stdout
,而是打印到stderr
。#14444修复:在
--format=json
输出中序列化conf_info
。#14442修复:MSBuildToolchain/MSBuildDeps:避免将 C/C++ 编译器选项作为 ResourceCompile 的选项传递。#14378
修复:移除插件文件时,提供更好的错误消息,而不是堆栈跟踪。#14376
修复:修复 armv8/aarch64 上的 CMake 系统处理器名称。#14362
修复:使备份源
core.sources
conf 不强制要求尾部斜杠。#14342修复:正确地将 recipe
default_options
中定义的选项传播到test_requires
。#14340 。文档 here修复:使用 conanfile.run() 调用 XCRun,以便注入环境。#14326
修复:为
conan config install
使用abspath
以避免符号链接问题。#14183缺陷修复:解决当多个不同的
package_ids
重用相同的构建文件夹时,build_id()
的问题。#14555缺陷修复:当使用包列表时,避免在 conan download 中未提供时间戳时出现 DB 错误。#14526
缺陷修复:将异常堆栈跟踪(当设置 -vtrace 时)打印到 stderr 而不是 stdout。#14522
缺陷修复:仅在 conan upload 中交互确认的包。#14512
缺陷修复:‘conan remove’ 输出缓存中与过滤器匹配的所有条目,而不仅仅是用户确认的条目。#14478
缺陷修复:当在没有 –user 的情况下传递 –channel 时,提供更好的错误提示。#14443
缺陷修复:修复已在 “build” 上下文中的包的
tool_requires
的settings_target
计算。#14441缺陷修复:当定义
core.download:parallel
时,避免DB is locked
错误。#14410缺陷修复:当使用 deployer 时,使生成的 powershell 环境脚本为相对路径。#14391
缺陷修复:修复 profile [tool_requires] 使用被忽略的 revisions 的问题。#14337
2.0.9 (2023 年 7 月 19 日)¶
特性:在 ConanFile 中添加 implements 属性,以提供对某些选项和设置的自动管理。#14320 。文档 here
特性:添加 apple-clang 15。#14302
修复:当使用 revision_mode = “scm_folder” 时,允许仓库在 conanfile.py 文件夹外部处于 dirty 状态。#14330
修复:改进 compatibility.py 和 profile.py 插件中错误的错误消息,并提供 Conan 跟踪信息。#14322
修复:在每次消息写入后
flush()
输出流。#14310缺陷修复:修复
CMakeUserPresets
由于拼写错误而继承自 conan 生成的 presets 的问题。#14325缺陷修复:如果多个用户 presets 继承自相同的 conan presets,则 ConanPresets.json 包含重复的 presets。#14296
缺陷修复:Meson prefix 参数作为 UNIX 路径传递。#14295
缺陷修复:当 tools.build:verbosity 设置为 quiet 时,修复 CMake Error: Invalid level specified for –loglevel 错误。#14289
2.0.8 (2023 年 7 月 13 日)¶
特性:将 GCC 10.5 添加到默认 settings.yml。#14252
特性:允许 pkg_config_custom_content 覆盖 PkgConfigDeps 创建的默认 *.pc 变量。#14233 。文档 here
特性:允许 pkg_config_custom_content 也是类似 dict 的对象。#14233 。文档 here
特性:fix_apple_shared_install_name 工具现在使用 xcrun 来解析 otool 和 install_name_tool 程序。#14195
特性:
CMakeDeps
生成器的新cpp_info.set_property("cmake_package_version_compat" , "AnyNewerVersion")
。#14176 。文档 here特性:元数据改进。#14152
修复:改进 conan test 命令中缺少二进制文件时的错误消息。#14272
修复:使 conan download 命令不再需要加载 conanfile,并且不会因 1.X recipes 或缺少
python_requires
而失败。#14261修复:使用带有 –list 参数的 upload 现在允许空 recipe 列表。#14254
修复:保证
Options.rm_safe
永远不会引发异常。#14238修复:允许 tools.gnu:make_program 影响每个 CMake 配置。#14223
修复:为 conan new lib 模板添加缺少的 package_type。#14215
修复:在 patch() 函数中启用现有的状态消息代码。#14177
修复:在
XcodeDeps
中使用configuration
而不是始终使用build_type
。#14168修复:尊重缓存位置的符号链接路径。#14164
修复:
PkgConfig
使用conanfile.run()
而不是内部 runner 来从 profiles 和依赖项中获取完整的 Conan 环境。#13985缺陷修复:修复
CMakeDeps
CMAKE_FIND_LIBRARY_SUFFIXES
变量泄漏的问题。#14253缺陷修复:修复当检测到多个自定义全局生成器时,conan 无法按名称查找生成器的问题。#14227
缺陷修复:改进 conan graph info 在 html 格式中图冲突的显示效果。#14190
缺陷修复:修复
CMakeToolchain
从 Linux 到 OSX 的交叉编译。#14187缺陷修复:修复未选择任何包时备份源中的 KeyError。#14185
2.0.7 (2023 年 6 月 21 日)¶
特性: 添加新的
arm64ec
架构,用于定义 CMAKE_GENERATOR_PLATFORM。 #14114 . 文档 此处特性: 使
CppInfo
成为公共的、有文档记录的、可导入的工具,供需要聚合它们的生成器使用。 #14101 . 文档 此处特性:
conan remove --format
的输出同时支持文本(已删除内容的摘要)和 json 格式。 #14082 . 文档 此处特性: 添加 core.sources:excluded_urls 以备份源。 #14020
特性: 允许在
conan list
(以及 download, upload, remove) 模式中使用pkg/[version-range]
表达式。 #14004 . 文档 此处特性: 添加
conan upload --dry-run
,等效于 1.X 版本的conan upload --skip-upload
。 #14002 . 文档 此处特性: 小的 UX 改进,在下载大文件时打印一些信息。 #13989
特性: 使用
PackagesList
作为conan upload --list=pkglist.json
的输入参数。 #13928 . 文档 此处特性: 为
conan list
使用--graph
输入,以创建一个PackagesList
,该列表可以用作 conan upload 的输入。 #13928 . 文档 此处特性: 与 recipe 和 package 关联的新元数据文件,可以在 package 存在后上传、下载和添加。 #13918
特性: 在 PkgConfigDeps 中,将 bindir 添加到生成的 .pc 文件。 #13623 . 文档 此处
修复: 删除
conanfile.xxx_folder
中破坏 msys2 等子系统的尾随.
。 #14061修复: 避免当 graph 中的一些中间 package 调用
aggregated_components()
跨越某些依赖项并使用--deployer
时出现缓存问题,生成器仍然指向 Conan 缓存而不是已部署的副本。 #14060修复: 允许内部
Cli
对象被多次调用。 #14053修复: 强制 Python 3.10 使用
pyyaml>=6
,因为之前的版本已损坏。 #13990修复: 当 Conan 无法显示其中一个冲突的 recipe 时,改进 graph 冲突消息。 #13946
Bugfix: 解决从服务器下载非最新修订版本时的时间戳错误。 #14110
Bugfix: 修复可编辑 package 中的双重基本路径设置。 #14109
Bugfix: 如果
conan graph build-order
graph 有任何错误,则引发异常,而不是静默地不执行任何操作并输出空 json。 #14106Bugfix: 当文件夹具有重叠的匹配名称时,避免
editable
package 的不正确的路径替换。 #14095Bugfix: 将 clang 设置为默认的 FreeBSD 检测到的编译器。 #14065
Bugfix: 通过 PkgConfigDeps 将前缀变量和任何自定义内容(通过 pkg_config_custom_content 属性)添加到已生成的 pkg-config 根 .pc 文件中。 #14051
Bugfix: conan create 命令始终为
--format=json
结果 graph 返回相同的输出,而与 test_package 是否存在无关。 #14011 . 文档 此处Bugfix: 修复当定义
self.folders.root=".."
父目录时,editable
package 的问题。 #13983Bugfix: 删除 libdir1 和 includedir1 作为默认索引。现在,PkgConfigDeps 默认在 .pc 文件中创建 libdir 和 includedir 变量。 #13623 . 文档 此处
2.0.6 (2023 年 5 月 26 日)¶
特性: 添加 tools.cmake:cmake_program 配置项,以允许指定所需的 CMake 可执行文件的位置。 #13940 . 文档 此处
修复: 在 graph json 输出中将 “id” 属性输出为 str 而不是 int。 #13964 . 文档 此处
修复: 修复 layer 中的自定义命令无法进行本地导入的问题。 #13944
修复: 改进下载 + 解压缩的输出。 #13937
修复: 在 conan config install 中为 package_manager:mode 添加缺失的值。 #13929
Bugfix: 确保 graph info、create、export-pkg 和 install 的 graph-info JSON 输出相同。 #13967 . 文档 此处
Bugfix:
test_requires
像常规requires
一样影响使用者的package_id
,但不应该这样。 #13966Bugfix: 当
-c tools.build:download_source=True
时,在 json 输出中正确定义source_folder
。 #13953Bugfix: 修复并完善了 graph info xxxx –format json 输出,以便公开记录。 #13934 . 文档 此处
Bugfix: 修复 premakedeps 中的 “double” 绝对路径。 #13926
Bugfix: 修复 2.0.5 https://github.com/conan-io/conan/pull/13898 中的回归,其中 package 和组件规范的覆盖失败 #13923
2.0.5 (2023 年 5 月 18 日)¶
特性: -v 参数默认为 VERBOSE 级别。 #13839
特性: 避免显示不必要的跳过依赖项。现在,如果存在跳过的二进制文件,则仅显示引用名称列表。可以通过在当前命令中添加 -v (verbose 模式) 来完全列出它们。 #13836
特性: 允许对使用
--build
本地构建的 package 进行 step-into 依赖项调试 #13833 . 文档 此处特性: 允许使用
upload_policy="skip"
和build_policy="missing"
的不可重定位的本地构建的 package #13833 . 文档 此处特性: 当计算
package-revision
时,不要在缓存中移动 “build” 文件夹,以允许使用 step-into 定位依赖项的可调试源 #13810特性: 新的
settings.possible_values()
方法,用于查询设置的可能值范围。 #13796 . 文档 此处特性: 当
upload_policy=skip
时,优化并避免访问服务器获取二进制文件 #13771特性: 部分相对化生成的环境 .sh shell 脚本 #13764
特性: 改进 settings.yml 错误消息 #13748
特性: 自动创建空的
global.conf
以改进在 home 目录中查找文件的 UX。 #13746 . 文档 此处特性: 缓存 “extensions/generators” 中的新全局自定义生成器,可以通过名称使用。 #13718 . 文档 此处
特性: 改进 conan inspect 输出,现在它理解 set_name/set_version。 #13716 . 文档 此处
特性: 定义新的
self.tool_requires("pkg/<host_version>")
,以允许某些 tool-requires 跟随并使用与 “host” 常规 requires 相同的版本。 #13712 . 文档 此处特性: 将 info_invalid 添加到 graph 节点序列化中 #13688
特性: 计算和报告 graph 中的
overrides
,以及graph build-order
中的overrides
#13680特性: 用于想要使用
scm
修订版本的单代码仓库项目的新revision_mode = "scm_folder"
。 #13562 . 文档 此处修复: 修复 XcodeDeps 包含跳过的依赖项的问题。 #13880
修复: 不允许在
pkg/version
引用字段中换行。 #13870修复: 修复 Windows 子系统的
AutotoolsToolchain
的tools.build:compiler_executable
定义。 #13867修复: 加速 CMakeDeps 的生成。 #13857
修复: 修复导入的库配置后缀。 #13841
修复: 当定义未知的 conf 时失败。 #13832
修复: 修复
conan install/create
命令中 “skipped” 二进制文件的不正确打印,当它们被其他一些依赖项使用时。 #13778修复: 将缓存 “deploy” 文件夹重命名为 “deployers”,并允许使用
-d, --deployer
cli 参数。(“deploy” 文件夹不会中断,但会警告已弃用)。 #13740 . 文档 此处修复: 为仅标头的库在
CMakeDeps
中省略-L
libpath。 #13704Bugfix: 修复当
test_requires
也Regular 的传递 “host” requires,并且使用者定义组件时的问题。 #13898Bugfix: 修复在 recipe 中定义的选项 (如
*:shared=True
) 的传播。 #13855Bugfix: 修复 ‘graph build-order’ 和 ‘test’ 命令的
--lockfile-out
路径。 #13853Bugfix: 确保在更多情况下上传备份源。 #13846
Bugfix: 修复
settings.yml
中intel-cc
cppstd=03
的定义。 #13844Bugfix: 修复 conan upload,使其可以用于仅导出的 recipe 的备份源。 #13779
Bugfix: 修复包含别名的 lockfile 的
conan lock merge
。 #13763Bugfix: 修复具有版本范围的传递依赖项中的 python_requires。 #13762
Bugfix: 修复 baremetal 的 CMakeToolchain CMAKE_SYSTEM_NAME=Generic。 #13739
Bugfix: 修复不正确的环境脚本停用顺序。 #13707
Bugfix: 解决当 graph 具有
override=True
的 requirements 时 lockfile 失败的问题。 #13597
2.0.4 (2023 年 4 月 11 日)¶
特性: 将
--build-require
扩展到更多命令(graph info
,lock create
,install
)和用例。 #13669 . 文档 此处特性: 使 CMakeDeps、CMakeToolchain 和 Environment (.bat, 仅限 Windows) 生成的文件具有相对路径。 #13607
特性: 添加对 premake5 依赖项 (PremakeDeps) 的初步(未记录,仅限开发人员)支持。 #13390
修复: 将旧的 conan user 引用更新为
conan remote login
。 #13671修复: 改进
requirements()
错误消息中依赖项选项已更改的消息。 #13668修复: [system_tools] 没有报告正确的已解析版本,但仍然是原始范围。 #13667
修复: 改进 provides 冲突消息错误。 #13661
修复: 当服务器响应 Forbidden 以下载 recipe/package 中的 1 个文件时,确保其他文件和 DB 已清理。 #13626
修复: 当使用 –package-query 但未提供与 package 匹配的模式时,在 conan remove 中添加错误。 #13622
修复: 为
direct_deploy
deployer 添加direct_deploy
子文件夹。 #13612 . 文档 此处修复: 修复当模式未列出 package 修订版本时的 html 输出,例如:
conan list "*#*:*"
。 #13605Bugfix: 当 package 没有设置或选项时,
conan list -p <package-query>
失败。 #13662Bugfix: python_requires 现在正确加载远程 requirements。 #13657
Bugfix: 修复当
override
用于 graph 的节点中,该节点也是菱形的闭合节点时发生的崩溃。 #13631Bugfix: 修复
options
的--package-query
参数。 #13618Bugfix: 为
full_deploy
deployer 添加full_deploy
子文件夹,以避免与 “build” 文件夹冲突。 #13612 . 文档 此处Bugfix: 将 STATUS 设置为默认日志级别。 #13610
Bugfix: 修复 conan cache clean 中的双重删除错误。 #13601
2.0.3 (2023 年 4 月 3 日)¶
特性:
conan cache clean
学习了--all
和--temp
来清理所有内容(源、构建)以及临时文件夹。 #13581 . 文档 此处特性: 支持 MacOS SDK 13.1 (在 Xcode 14.2 中可用)。 #13531
特性:
full_deploy
deployer 与CMakeDeps
生成器一起学习创建相对路径部署,因此它们是可重定位的。 #13526特性: 引入
conan remove *#!latest
(也适用于 package-revisions),以删除除最新修订版本之外的所有修订版本。 #13505 . 文档 此处特性: 新的
conan cache check-integrity
命令,用于替换 1.X 版本的旧conan upload --skip-upload --check
。 #13502 . 文档 此处特性: 在 conan list html 输出中添加选项和设置的过滤。 #13470
特性: 自动服务器端源备份,适用于第三方。 #13461
特性: 添加 tools.android:cmake_legacy_toolchain 配置,在为 Android 构建 CMake 项目时很有用。如果已定义,这将设置 ANDROID_USE_LEGACY_TOOLCHAIN_FILE 的值。如果通过 tools.build:cflags 或 tools.build:cxxflags 定义了编译器标志以防止 Android 的旧版 CMake 工具链覆盖这些值,则将其设置为 False 可能很有用。 #13459 . 文档 此处
特性: 默认
tools.files.download:download_cache
为core.download:download_cache
,因此只需要定义一个。 #13458修复: 定义一种在
python_requires_extend
扩展中更新default_options
的方法。 #13487 . 文档 此处修复: 再次允许指定
self.options["mydep"].someoption=value
,等效于"mydep/*"
。 #13467修复: 为使用 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 日)¶
特性: 向 Autotools 类的 autoreconf 方法添加可选的 “build_script_folder” 参数。它镜像了同一类的 configure 方法的相同参数和行为。也就是说,它允许用户覆盖工具的运行位置(默认情况下在 source_folder 中运行)。 #13403
特性: 创建缓存内容的摘要。 #13386
特性: 允许
global.conf
jinja2 包含其他文件。 #13336特性: 添加
conan export-pkg --skip-binaries
以允许在不导出依赖项二进制文件的情况下导出。 #13324 . 文档 此处特性: 添加 core.version_ranges:resolve_prereleases conf 以控制版本范围是否可以解析为预发布版本 #13321
修复: 允许在 conan create 中自动处理
package_type = "build-scripts"
作为--build-require
。 #13433修复: 改进服务器端 package 损坏的检测和消息。 #13432
修复: 修复 conan download help 中的错别字。 #13430
修复: 修复 _detect_compiler_version 中的错别字。 #13396
修复: 修复
conan profile detect
在 OSX 上检测clang
编译器的libc++
。 #13359修复: 允许内部
vswhere
调用以检测和使用 VS 预发布版本。 #13355修复: 当
settings_user.yml
定义dict
时,允许将settings.yml
列表转换为dict
。 #13323修复: 修复 AutotoolsToolchain 在从 macOS 交叉编译到非 Apple 操作系统时传递的标志。 #13230
BugFix: 修复
MSBuild
中自定义配置包含空格时的问题。 #13435Bugfix: 解决
conan profile path <nonexisting>
崩溃的 bug。 #13434Bugfix: 添加全局详细程度 conf tools.build:verbosity 而不是单独的 conf。 #13428 . 文档 此处
Bugfix: 避免为格式错误的自定义命令引发致命异常。 #13365
Bugfix: 即使依赖项是仅标头的,也不要从依赖项中省略
system_libs
。 #13364Bugfix: 修复在实例化
MesonToolchain
时未创建VirtualBuildEnv
环境的问题。 #13346Bugfix: 兼容性插件中对于自定义编译器更友好的错误提示。 #13328
Bugfix: 添加 qcc cppstd 兼容性信息以允许计算依赖项 graph。 #13326
2.0.1 (2023 年 3 月 3 日)¶
特性:在 config install 中为 –verify-ssl 添加 –insecure 别名。 #13270 。文档 此处
特性:在
-vv
和-vvv
中显示详细的回溯信息,取代 1.X 中使用的自定义环境变量。 #13226修复:对 conan install 和 2.0-ready 错误消息的细微改进。 #13299
修复:移除
vcvars.bat
VS 遥测环境变量,以避免 Conan 卡顿。 #13293修复:移除
CMakeToolchain
对CMakePresets
schema2 为CMakeUserPresets.json
的旧版支持。 #13288 。文档 此处修复:如果
conan config list unexpected-arg
,则引发参数错误。 #13282修复:对于
msvc
,不自动检测compiler.runtime_type
,依赖于 profile 插件。 #13277修复:修复 conanfile.txt 选项解析错误消息。 #13266
修复:改进选项中统一模式的错误消息。 #13264
修复:允许
conan remote add --force
强制重新定义现有远程名称。 #13249修复:恢复构建命令配置文件的打印。 #13214
修复:更改 conan build 参数 "path" 的描述,以指示它仅适用于 conanfile.py,并明确声明它不适用于 conanfile.txt。 #13211 。文档 此处
修复:改进在
requirements()
方法中定义依赖项options
时的错误消息。 #13207修复:修复来自错误消息和 readme 的文档链接损坏的问题。 #13186
Bugfix: 确保 topics 始终序列化为列表。 #13298
Bugfix: 确保 provides 始终序列化为列表。 #13298
Bugfix: 修复了某些 visual c++ 安装的检测。 #13284
Bugfix: 修复
msvc
编译器支持的cppstd
值。 #13278Bugfix: CMakeDeps 为
tool_requires
生成的文件与 “host” 上下文具有相同的build_type
。 #13267Bugfix: 修复配置中依赖项选项的模式定义。 #13263
Bugfix: 修复 CMakeToolchain 在不同的 Win 驱动器中输出文件夹时的错误。 #13248
Bugfix: 如果组件
.requires
未使用test_requires
,则不引发错误。 #13191
2.0.0 (2023 年 2 月 22 日)¶
2.0.0-beta10 (2023 年 2 月 16 日)¶
特性:为 conan list 命令添加基本的 html 输出。 #13135
特性:允许
test_package
处理--build
参数(为主图,非 test_package 图计算 –build=never)。 #13117特性:为 remote add 添加 –force 参数。 #13112
特性:验证输入配置是否存在,以避免拼写错误。 #13110
特性:允许在 recipe 的
layout()
中定义self.folders.build_folder_vars
。 #13109特性:阻止 settings 分配。 #13099
特性:改进 conan editable 用户界面。 #13093
特性:为用户提供扩展 Conan 生成的 CMakePresets 的能力。 #13090
特性:添加错误消息以帮助将 recipe 迁移到 2.0,包括来自 ConanCenter 和用户仓库的 recipe。 #13074
特性:在 conan new 模板中移除 shared 的 option.fPIC。 #13066
特性:添加 conan cache clean 子命令以清理 build 和 source 文件夹。 #13050
特性:实现可自定义的
CMakeToolchain.presets_prefix
,以便 presets 名称预先添加此前缀。 #13015特性:在配置文件中添加 [system_tools] 部分,以使用您自己安装的工具,而不是 requirements 中声明的包。 #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
修复:PkgConfigDeps 正在使用来自 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 函数,用于在需要与 Conan 1.x 兼容的 recipe 的 package_info 中使用的情况。在 Conan 2 中,不应在 package_info 方法中执行路径转换。 #12886
特性:新的序列化 json 和
conan list
的打印。 #12883特性:将 requirements 添加到 conan new cmake_{lib,exe} #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 三元组的错误。 #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 命令不需要默认配置文件 #12475
特性:创建了适当的 LockfileAPI,具有详细的方法(update、save 等),而不是几个松散的方法 #12502
特性:conan export 也可以生成 lockfile,这对于执行 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 对象传递给 deployer,而不是 ConanFile #12243
特性:为 conan.tools.scm.Git 添加 included_files 方法 #12246
特性:改进 clang libcxx 的检测 #12251
特性:移除旧的配置文件变量系统,转而支持配置文件中的 Jinja2 语法 #12152
修复:更新命令以遵循关于 CLI 输出的 Conan 2.0 约定 #12235
修复:修复钻石图中 test 特性的聚合 #12080
2.0.0-beta3 (2022 年 9 月 12 日)¶
特性:将 test_package 与 create 解耦。 #12046
特性:如果导出的引用中有特殊字符,则发出警告。 #12053
特性:MSBuildDeps 特性的改进。 #12032
特性:添加了对 CLICOLOR_FORCE 环境变量的支持,如果该值已声明且不为 0,则将激活输出中的颜色。 #12028
修复:对所有配置仅调用一次 source()。 #12050
修复:修复 deployer 未创建 output_folder 的问题。 #11977
修复:修复 build_id() 移除 require 的问题。 #12019
修复:如果 Conan 无法加载自定义命令,现在将显示有用的错误消息。 #11720
Bugfix: 如果 ‘os’ 未在构建配置文件和 recipe 中指定,在 Windows 中,想要运行命令。 #11728
2.0.0-beta2 (2022 年 7 月 27 日)¶
特性:在 MSBuildDeps 中添加特性支持。 #11680
特性:在 XcodeDeps 中添加特性支持。 #11615
特性:让依赖项定义 package_id 模式。 #
特性:添加
conan.conanrc
文件以设置 conan 用户主目录。 #11675特性:添加
core.cache:storage_path
以声明要存储 Conan 包的绝对路径。 #11672特性:添加用于检查最大 cppstd 版本的工具。 #11610
特性:添加在构建失败时调用的
post_build_fail
钩子。 #11593特性:添加
pre_generate
和post_generate
钩子,涵盖围绕generate()
方法调用生成文件的过程。 #11593特性:带回
conan config list
命令和其他 conf 改进。 #11575特性:为所有命令添加了两个新参数 -v 用于控制输出的详细程度,–logger 用于以 json 日志格式输出内容以供日志处理器使用。 #11522
2.0.0-beta1 (2022 年 6 月 20 日)¶
特性:新的图模型,以更好地支持 C 和 C++ 二进制关系、编译和链接。
特性:新的文档化的公共 Python API,用于用户自动化
特性:新的构建系统集成,更加灵活和强大,并在可能的情况下提供透明集成,例如
CMakeDeps
和CMakeToolchain
特性:新的自定义用户命令,可以使用公共 PythonAPI 构建,并且可以使用
conan config install
共享和安装特性:新的 CLI 界面,具有更简洁的命令和更结构化的输出
特性:新的 deployer 机制,用于将工件从缓存复制到用户文件夹,并在构建时使用这些副本。
特性:改进的
package_id
计算,考虑了新的更详细的图模型。特性:添加了
compatibility.py
扩展机制,以允许用户全局定义二进制兼容性。特性:更简单、更强大的
lockfiles
,以提供随时间推移的可重现性。特性:通过
[conf]
更好的配置,以及通过新的conan.tools.env
工具更好的环境管理。特性:Conan 缓存现在可以同时存储多个修订版本。
特性:新的扩展插件,用于实现配置文件检查、包签名和构建命令包装。
特性:使用包不可变性来改进更新、安装和上传流程。