变更日志¶
有关 Conan 2 与 Conan 1.X 相比的主要更改的更详细说明,请阅读 Conan 2 中的新功能
2.9.1 (2024年10月30日)¶
2.9.0 (2024年10月29日)¶
功能:conan new 学习了默认值
-d name=mypkg -d version=0.1
以简化用户体验。 #17186 。文档 在此功能:当修补文件且配方具有 no_copy_source = True 时发出警告,这可能导致无法预见的问题 #17162
功能:为 tool_requires 添加 self.generators_info 以将生成器传播到其直接依赖项。 #17129 。文档 在此
功能:新的
tools.graph:skip_build
配置,以便能够跳过tool_requires
的扩展。 #17117 。文档 在此功能:新的
tools.graph:skip_test
配置,以便能够跳过test_requires
的扩展。 #17117 。文档 在此功能:为 ROS2(机器人操作系统)添加 ROSEnv 生成器集成。 #17110
功能:将配置文件参数信息添加到
conan graph build-order
以改善用户体验并在 CI 系统中使用。 #17102 。文档 在此功能:为 MSBuildDeps 属性表添加 Configuration 和 Platform 键。 #17076 。文档 在此
功能:新的
CMakeDeps
生成器由tools.cmake.cmakedeps:new
配置激活,其值为will_break_next
用于评估。此新生成器推断或使用cpp_info.location/link_location
来定义 STATIC;SHARED、INTERFACE 导入的目标。它还将定义 IMPORTED_LOCATION、IMPORTED_CONFIGURATION 等。 #16964功能:使用
cpp_info.languages
,默认为配方languages
,将“链接语言”要求传播到包的使用者。 #16964功能:仅为新的
CMakeDeps
生成器定义cpp_info.default_components
。 #16964功能:为可执行应用程序建模
cpp_info.exes
字段,仅由新的CMakeDeps
生成器使用,该生成器在CMakeDeps
中为cpp_info.exes
生成 IMPORTED 可执行目标。 #16964修复:在 Windows 上为 meson.configure() 使用有效的路径前缀,以避免 Python 3.13 中的失败。 #17206
修复:将启动选项添加到每个 Bazel 命令。 #17183
修复:将远程名称添加到登录提示。 #17178
修复:当过期的令牌给出 AuthenticationException 时获取凭据并重新进行身份验证。 #17127
修复:将异常从旧的
from conans.error
移动到已记录的from conan.error
。 #17126 。文档 在此修复:
Pacman
作为包管理器不应用于tools.microsoft.bash:subsystem=msys2
,而是在目标平台实际上是 msys2os.subsystem=msys2
(作为设置)时。 #17103修复:在 MSBuildToolchain 中正确推断来自配置文件的 RuntimeLibrary。 #17100
修复:将 C++20 标志设置为 {gnu}c++20 用于 gcc >= 10 而不是 c++2a 直到 gcc 12。 #17092 。文档 在此
修复:将 C++23 标志设置为 {gnu}c++23 用于 gcc >= 11 而不是 c++2b。 #17092 。文档 在此
修复:避免在凭据来自环境变量或
credentials.json
文件时对服务器进行重复的 401 登录尝试,仅对用户交互式提示进行重复的登录尝试。 #17083修复:将 CMakeToolchain 和 AutotoolsToolchain 对齐,以便在未定义时自动定义
cl
编译器用于compiler=msvc
(仅在必要时,例如在 CMake 中使用 Ninja 生成器时)。 #16875 。文档 在此修复:在 conan graph build-order -f=json 中引用 build_args 以避免带有空格的选项出现问题。 #16594
错误修复:改进了 bazeldeps._get_libs() 机制。 #17233
错误修复:改进了在配置文件加载时针对不同编译器版本的 cstd 检查。 #17157
错误修复:修复当 cppstd/cstd 未定义时的 variable_watch。 #17156
错误修复:修复当配方不支持所需版本时的 cstd 错误报告。 #17156
错误修复:删除
conan_server
中的用户权限验证绕过,这可能是一个潜在的安全问题。 #17132错误修复:列出根据语义版本规则但表示形式不同的相同版本(例如 1.0 和 1.0.0)的配方现在将返回两个引用。 #17121
错误修复:Conan Server:在搜索相同配方引用的每个修订版时,不要返回重复的引用。 #17121
错误修复:空版本范围导致空条件集。 #17116
错误修复:将 # do not sort 注释添加到 deps 部分。自 Conan 1.61 以来出现回归。 #17109
错误修复:在使用 Commands API 时恢复 ConanOutput 全局状态。 #17095
错误修复:build_args 选项在 graph build-order 中现在尊重引用的上下文。 #16594
2.8.1 (2024年10月17日)¶
错误修复:避免为
test_requires
的必需组件也作为传递性requires
要求时引发错误。 #17174
2.8.0 (2024年9月30日)¶
功能:添加对 iOS 18、watchOS 11、tvOS 18、visionOS 2 和 macOS 15 的支持。 #17012 。文档 在此
功能:新的
auth_remote.py
插件用于对 Conan 远程进行自定义用户身份验证。 #16942 。文档 在此功能:新的
auth_source.py
插件用于对源代码的通用下载进行自定义用户身份验证。 #16942 。文档 在此功能:将 –envs-generation={false} 添加到 conan install 和 conan build 以禁用虚拟环境的生成(
conanbuildenv.sh|bat
和conanrunenv.sh|bat
)。 #16935 。文档 在此特性:新的
tools.files.unzip:filter
配置,允许为 tgz 文件定义data
、tar
和fully_trusted
提取策略。 #16918 。文档 此处特性:
get()
和unzip()
工具,用于source()
学习了一个新的extract_filter
参数,用于为 tgz 文件定义data
、tar
和fully_trusted
提取策略。 #16918 。文档 此处特性:为大于 100MB 的大型上传添加每 10 秒的进度更新。 #16913
特性:实现
conan config install-pkg --url=<repo-url>
,用于在未定义远程时初始定义远程 URL。 #16876 。文档 此处特性:允许构建当前配置文件的兼容包。 #16871
特性:允许引导(依赖于自身的另一个变体),即使对于相同版本也是如此。 #16870
特性:允许
[replace_requires]
替换包名,并且self.dependencies
仍然可以使用旧名称。 #16443修复:即使定义了
user_toolchain
,也允许CMakeToolchain
定义CMAKE_SYSTEM_XXX
,但在工具链确实定义它们的情况下进行保护。 #17036 。文档 此处修复:替换生成的 CMake 和环境文件中 | 字符。 #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 时,在“构建”上下文中向下游传播 run 特性需求信息。 #16849 。文档 此处
特性:添加 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 。文档 此处特性:在 Bazel 新模板中添加 outputRootDir 作为可选定义。 #16620
特性:引入
core.scm:local_url=allow|block
以控制 conandatascm
中的本地文件夹 URL。 #16597 。文档 此处特性:在 GnuToolchain 的 extra_env 属性中添加 XXX_FOR_BUILD 标志和 Android 附加标志。 #16596
修复:避免
runtime_deployer
部署具有run=False
特性的依赖项。 #16724修复:改进传递不正确文件夹的
--deployer-folder=xxx
参数时的错误消息。 #16723修复:更改
requirements.txt
以便它也在 FreeBSD 中安装distro
包。 #16700修复:加载不存在或损坏的“包列表”文件时,提供更好的错误消息。 #16685
修复:从 tools.build:compiler_executables 中删除不受支持的 ld 和 ar 条目,它们在每个 Conan 集成中都没有效果。 #16647
修复:确保正确报告直接工具需求冲突,而不是挂起。 #16619
修复:更新
docker
依赖项版本以用于runners
功能 #16610错误修复:修复配置文件
include()
与每个包的[settings]
部分定义一起使用的问题。 #16720错误修复:当包包含组件时,
MakeDeps
生成器缺少一些聚合变量。 #16715错误修复:避免在推断兼容性时 settings.update_values() 失败。 #16642
错误修复:修复 Ninja 多配置 CMake 的 tools.build:defines 处理。 #16637
错误修复:使 Conan 图 <子命令> 成为真正的“安装”试运行。返回相同的错误并给出相同的消息 #16415
2.5.0 (2024年7月3日)¶
功能:新的
tools.cmake.cmaketoolchain:enabled_blocks
配置,用于定义CMakeToolchain
的哪些块应处于活动状态或非活动状态。 #16563 。文档 此处功能:允许在 conan list 中使用 –filter-options 使用 &: 范围引用所有正在列出的包。 #16559
功能:在计算依赖关系图时突出显示缺少的或无效的依赖项。 #16520
功能:尊重 tools.android:ndk_path 配置。设置跨构建 Android 所需的标志。 #16502 。文档 此处
功能:Qbs 助手现在自动调用 Conan 提供程序。 #16486
功能:在 tools.cmake.cmaketoolchain:extra_variables 中添加 force 选项。 #16481 。文档 此处
功能:如果在同一个 Conan 配置文件里重复了任何部分,则抛出 ConanException 异常。 #16454
功能:向 Qbs 工具链添加了 resolve() 方法。 #16449
功能:使使用部署程序生成的
MSBuildDeps
可重定位。 #16441功能:添加 QbsDeps 类,用于与 Qbs Conan 模块提供程序一起使用。 #16334
修复:修复提供冲突错误消息在命名引用匹配提供程序时不显示冲突提供的问题。 #16562
修复:为 pytest 设置正确的 testpaths。 #16530
修复:允许文件系统的根目录中存在
.conanrc
文件。 #16514修复:在 Conan 运行程序中添加对非默认 Docker 主机的支持 #16477
修复:在无法覆盖备份上传中的摘要文件时,不要失败。 #16452
修复:使
source_credentials.json
不应用于 Conan 服务器存储库协议。 #16425 。文档 此处修复:允许包具有空文件夹。 #16424
错误修复:修复
detect_api
中的detect_msvc_compiler()
以正确检测使用compiler.version=194
的 VS 17.10。 #16581错误修复:修复配方执行 package_id() info 清除并用作兼容性候选项时出现的意外错误。 #16575
错误修复:确保 msvc cppstd 兼容性回退不会忽略 194 二进制文件。 #16573
错误修复:如果使用了 –deployer-folder=xxxx 参数,则 XXXDeps 生成器在其生成的 文件中不包含绝对路径。 #16552
错误修复:修复包修订版本的 conan list … –format=compact。 #16490
错误修复:修复仅设置定义时的 XcodeToolchain。 #16429
2.4.1 (2024年6月10日)¶
2.4.0 (2024年6月5日)¶
功能:向 AutotoolsToolchain 添加了 CC_FOR_BUILD 和 CXX_FOR_BUILD 环境变量。 #16391 。文档 此处
功能:与 AutotoolsToolchain、CMakeToolchain 等其他工具链一样,向 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 。文档 此处
功能:允许在
CMakeToolchain
中定义 GNUInstallDirs,用于本地conan install/build
流程。 #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 。文档 在此
修复:为默认的
compatibility.py
插件实现向 <2.3 的回退迁移。 #16405修复:在配置文件的序列化/转储中添加缺失的 [replace_requires] 和 [platform_requires]。 #16401
修复:修复
Qbs
助手在路径中处理空格的问题。 #16382修复:使 cc 版本检测更加健壮 #16362
修复:允许
--build=missing:&
模式仅在缺少时构建使用者,而不构建其他。 #16344修复:允许“local-recipes-index”用于
conan list
命令,并带有自定义的user/channel
的包。 #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
错误修复:解决了
conan cache save/restore
tgz 文件中路径错误的问题,该问题在使用storage_path
自定义配置时会导致崩溃。 #16293错误修复:修复 conan list 中图文件不存在时的堆栈跟踪。 #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
错误修复:使兼容性检查理解更新标志模式。 #16252
错误修复:解决菱形结构情况下
lockfiles
中overrides
的错误。 #16235错误修复:允许将
export-pkg --version=xxx
传递给具有python_requires
的配方,这些配方从基类继承set_version
。 #16224
2.3.0 (2024年5月6日)¶
特性:运行 conan upload 时显示配方和包的大小。 #16103
特性:将主流编译器(如 gcc、msvc、clang)的
detect_xxxx_compiler()
添加到公共detect_api
中。 #16092 。文档 在此特性:添加对 .conanignore 文件的注释支持。 #16087
特性:在图 html 搜索栏中,现在可以输入用逗号分隔的多个搜索模式。 #16083
特性:在图 html 中添加了“过滤包”栏,该栏可以输入用逗号分隔的多个搜索模式,并隐藏从图中过滤它们。 #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 。文档 在此特性:将 tools.gnu:build_triplet 添加到配置中。 #15965
特性:向
conan profile detect
添加--exist-ok
参数,如果配置文件已存在则不会失败,也不会覆盖它。 #15933特性:如果 native=True,MesonToolchain 可以生成本地文件(仅在交叉编译时有意义)。 #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修复:打印关于 Python 3.6 用法的警告,该版本自 2021 年起已停止支持。 #16003
修复:删除
Autotools
助手重复打印命令行。 #15991修复:将响应错误消息输出添加到 FileDownloader 中的 HTTP 状态 401 错误。 #15983
修复:将 gcc 14 添加到默认的
settings.yml
中。 #15958修复:使
VCVars
使用compiler.update
指定工具集。 #15947修复:将
rc
添加到AutotoolsToolchain
的compiler_executables
映射中,用于交叉编译 Linux->Windows。 #15946修复:将
Pop!_OS
添加到使用apt-get
作为系统包管理器的发行版中。 #15931修复:不要对包含 - 字符的包名发出警告。 #15920
修复:修复新的
--format=html
图输出的 HTML 转义,并传递图序列化对象而不是字符串。 #15915Bug修复:使 MesonToolchain 监听 tools.build:defines 配置变量。 #16172 。文档 在此
Bug修复:不允许在 validate_build() 方法中访问 self.cpp_info。 #16135
Bug修复:当 .conanrc 的 conan_home 无效时,不要显示跟踪信息。 #16134
Bug修复:避免将
tool_requires
的传递依赖项传播到生成器信息,即使它们被标记为visible=True
。 #16077Bug修复:BazelDeps 现在使用 requirement.build 属性而不是 dependency.context 属性。 #16025
Bug修复:使 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日)¶
修复:添加 copytree_compat 方法,以兼容 distutils 删除后的 Python>=3.12。 #15906
2.2.0 (2024年3月20日)¶
特性:如果使用通用二进制语法,则为与 CMakeToolchain 不同的工具链引发异常。 #15896
特性:警告要求函数调用放置错误的位置 #15888
特性:将 macOS 版本 14.2、14.3、14.4 添加到 settings.yml 中。 #15859 。文档 在此
特性:向 conan cache clean 添加 –backup-sources 标志。 #15845
特性:添加 conan graph outdated 命令,该命令列出远程中具有更新版本的依赖项 #15838 。文档 在此
特性:从 CMakeToolchain 设置 CMAKE_VS_DEBUGGER_ENVIRONMENT 以指向使用 Visual Studio 时所有二进制目录。这消除了将 DLL 复制到从 Visual Studio IDE 启动可执行文件所需的步骤(需要 CMake 3.27 或更高版本)。 #15830 。文档 在此
特性:向 trim_conandata 添加一个参数,以避免在 conandata.yml 文件不存在时引发异常。 #15829 。文档 在此
特性:添加了 build_context_folder ` 到 PkgConfigDeps。 `#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 。文档 此处特性: (实验性) 在 Conan 包中添加
conan config install-pkg myconf/[*]
新配置,并使用新的package_type = "configuration"
。 #15748 。文档 此处特性: (实验性) 新的
core.package_id:config_mode
,允许配置包引用影响使用该配置构建的所有包的package_id
。 #15748 。文档 此处特性:允许在
build_folder_vars
属性和配置中使用self.name
和self.version
。 #15705 。文档 此处特性:添加
conan list --filter-xxx
参数,用于列出与设置+选项匹配的包二进制文件。 #15697 。文档 此处特性:将 detect_libc 添加到 detect_api 中,以获取 C 库的名称和版本。 #15683 。文档 此处
特性:在
ConanAPI
中添加新的CommandAPI
子 API,允许调用其他命令。 #15630 。文档 此处修复:避免在使用
--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
,以便不会破坏输出到stdout
的 JSON 数据。 #15704修复:修复获取 Linux x86 的 gnu 三元组。 #15699
错误修复:解决
conan_home_folder
在global.conf
中用于列表内部字符串时的反斜杠问题。 #15870错误修复:修复当存在对
build_type
的条件依赖项时的CMakeDeps
多配置问题。 #15853错误修复:将 get_backup_sources() 方法从 UploadAPI 移动到预期的 CacheAPI。 #15845
错误修复:避免当 conandata.yml 中的版本没有列出任何补丁时出现 TypeError。 #15842
错误修复:解决
package_type=build-scripts
与锁定文件和 conan create 相关的问题。 #15802错误修复:如果配方指定了
user
属性,则允许使用--channel
命令行参数。 #15794错误修复:修复使用
MesonToolchain
从 Windows 交叉编译到 Android 的问题。 #15790错误修复:修复当定义了
compiler.update
时,CMakeToolchain
的 GENERATOR_TOOLSET。 #15789错误修复:解决了当
conf
项与 Python 模块匹配时的评估问题 #15779错误修复:修复
PkgConfigDeps
为其tool_requires
生成 .pc 文件的问题,即使它已经在构建上下文中。 #15763错误修复:也将 VISIBILITY 标志添加到 CONAN_C_FLAGS 中。 #15762
错误修复:修复具有作用域配置的配置文件的 conan profile show –format=json。 #15747
错误修复:修复 Conan API 中 update 参数的遗留用法。 #15743
错误修复:解决当字符串包含 Windows 反斜杠时,配置文件
[conf]
损坏的问题。 #15727错误修复:修复元数据版本范围的版本优先级。 #15653
2.1.0 (2024年2月15日)¶
特性:在
CMakeToolchain
中实现多配置tools.build:xxxx
标志。 #15654特性:将 –format=json 格式化程序添加到 conan build。 #15651
特性:添加 tools.build.cross_building:cross_build 以决定是否进行交叉构建,而不管 Conan 内部机制如何。 #15616
特性:将 –format=json 选项添加到 conan cache path。 #15613
特性:提供新的
graph build-order --reduce
参数,以将顺序仅缩减为需要从源代码构建的包。 #15573 。文档 此处特性:添加配置以在 Visual Studio CMake 生成器中为 CMakeToolchain 指定所需的 CUDA 工具包。 #15572 。文档 此处
特性:调用 deactivate_conanvcvars 时显示消息。 #15557
特性:将
package_id
的self.info
信息显示到图的序列化输出中,并将其转发到包列表。 #15553 。文档 此处功能:在详细模式下运行时记录 Git 工具命令。 #15514
功能:为
conan.tools.files.copy()
调用添加详细调试信息(使用-vvv
)。 #15513功能:为
python_requires
的显式test_package
定义python_requires = "tested_reference_str"
。 #15485。文档 此处功能:添加 CMakeToolchain.presets_build/run_environment 以在 generate() 方法中修改 CMakePresets 环境。 #15470。文档 此处
功能:初始文档,使
RemotesAPI
公开可用(实验性)。 #15462功能:新的
Git(..., excluded=[])
功能,以避免在Git
助手出现“脏”错误。 #15457。文档 此处功能:新的
core.scm:excluded
功能,以避免在Git
助手和revision_mode = "scm"
中出现“脏”错误。 #15457。文档 此处功能:针对
python_requires
类型的 recipe,添加 recipe 级别的python_package_id_mode
,用于定义对使用者package_id
的影响。 #15453。文档 此处功能:添加新的
--core-conf
命令行参数,允许通过 CLI 传递 core. 配置。 #15441。文档 此处功能:将
detect_api.detect_msvc_update(version)
助手添加到detect_api
中。 #15435。文档 此处功能:
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。文档 此处功能:Intel oneAPI 编译器检测改进。 #15358
功能:显示长时间运行的
conan list
命令的进度。 #15354功能:添加 extension_properties 属性,以便从 recipe 中向扩展传递信息。 #15348。文档 此处
功能:在 extension_properties 中实现 compatibility_cppstd,以便
compatibility.py
插件可以禁用对 recipe 的其他 cppstd 的回退。 #15348。文档 此处功能:添加
Git.get_commit(..., repository=True)
以获取仓库提交,而不是文件夹提交。 #15304功能:确保
--build=editable
和--build=cascade
可以一起使用。 #15300。文档 此处功能:新的
conan graph build-order --order=configuration
用于输出不同的顺序,按包二进制文件/配置排序,而不是按 recipe 版本分组。 #15270。文档 此处功能:允许将带有时间戳的 recipe 版本从
--format=compact
复制粘贴到conan lock add
中。 #15262。文档 此处修复:保证 generators 属性执行的顺序。 #15678
修复:解决构建配置文件和上下文中
[platform_tool_requires]
的问题。丢弃构建配置文件中的[platform_requires]
。 #15665修复:修复 conda 环境中的 gcc 检测。 #15664
修复:改进上传备份源时处理 .dirty 下载文件的方式。 #15601
修复:修复生成文件中相对路径的问题。 #15592
修复:允许
CMakeToolchain.preprocessor_definitions
的值为None
,这将映射到没有值的定义。 #15545。文档 此处修复:修复 graph build-order –order=configuration 的文本格式输出。 #15538
修复:当用户想要在离线模式下工作时,如果远程不可访问,则抛出一个有帮助的错误。 #15516
修复:当源备份没有元数据时,避免缺少文件堆栈跟踪。 #15501
修复:删除
--lockfile-packages
参数,因为它没有记录,并且不打算供公众使用。 #15499。文档 此处修复:如果 check_type=int 且配置值设置为 bool,则抛出异常。 #15378
修复:由于 pkgconfig 条目从 Meson 1.3.0 开始已弃用,因此将 pkg-config 条目添加到由 MesonToolchain 生成的机器文件中。 #15369
修复:修复 graph explain 在缺少某些需求差异时不显示它们的问题。 #15355
修复:修复模式不匹配任何已定义的配置时 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。 #14780Bug修复:修复包含组件和跳过依赖项的
MSBuildDeps
。 #15626Bug修复:避免在包自
tool_requires
到自身以进行交叉构建时,provides
抛出错误。 #15575Bug修复:修复 tools.microsoft.visual.VCVars 中的构建范围操作系统检测。 #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 命令存储的 lockfile 排除了
test_package
,与 conan create 的行为相同。 #15504Bug修复:避免
python_requires
的 test-package 导致 conan test 失败。 #15485。文档 此处Bug修复:MesonToolchain 计算有效的 apple_min_version_flag。 #15465
修复:允许在
build_id()
和package_id()
方法中使用子设置来限制os
、compiler
和其他设置。 #15439修复:修复获取环境变量 CONAN_LOGIN_USERNAME_REMOTE。 #15388
修复:对于 tools.files.copy() 的 excludes 模式,不再考虑 . 文件夹。 #15349
修复:禁用创建没有名称和版本的可编辑包。 #15337
修复:修复某些 Git 配置导致 Git.get_url_and_commit 抛出异常的问题。 #15271
修复:构建包的“host”上下文中,不应该跳过直接依赖项。这允许在“host”上下文中使用非 C/C++ 库工件(如图像)作为构建时资源。 #15128
2.0.17 (2024年1月10日)¶
修复:如果
conan cache save --file=subfolder/file.tgz
中的子文件夹不存在,则自动创建该文件夹。 #15409修复:解决
CMakeToolchain
生成器中cmake_minimum_required(3.27)
的winsdk_version
问题。 #15373修复:修复使用
build=True
特性时的可见特性传播问题。 #15357修复:包含通过 tools.info.package_id:confs 传递的 conf 值时,修复 package_id 计算问题。 #15356
修复:转储 conf 项目时对其进行排序,以允许独立于 conf 声明顺序生成可重复的 package_id。 #15356
2.0.16 (2023年12月21日)¶
2.0.15 (2023年12月20日)¶
特性:新增
conan lock remove
命令,用于从 lockfile 中删除依赖项。 #15284。文档 在此特性:新增
CMake.ctest()
辅助方法,用于直接启动ctest
,而不是通过cmake --target=RUN_TEST
。 #15282特性:添加
tools.microsoft:winsdk_version
配置,使VCVars
生成器使用给定的winsdk_version
。 #15272。文档 在此特性:如果请求的文件夹不存在,则 conan cache path xxx –folder xxxx 会引发错误。 #15257
特性:为 ConanFile 的 self.dependencies 添加 in 运算符支持。 #15221。文档 在此
特性:使
CMakeDeps
生成器创建一个conandeps.cmake
文件,该文件以类似于cmake
生成器的样式聚合所有直接依赖项。 #15207。文档 在此特性:将构建环境信息添加到 CMake 配置预设,并将运行环境信息添加到 CMake 测试预设。 #15192。文档 在此
特性:删除了关于 Conan 迁移潜在问题的一则警告,该警告在每次构建失败时都会打印。 #15174
特性:允许从 ConfigAPI 访问 settings.yml(以及 settings_user!)的内容。 #15151
特性:从 ConfigAPI 添加内置配置访问。 #15151
特性:为 CMake 集成方法添加 redirect_stdout。 #15150
特性:添加 core:warnings_as_errors 配置选项,使 Conan 在出现警告和错误时抛出异常。 #15149。文档 在此
特性:在 ftp_download 中使用 secure 参数添加了 FTP_TLS 选项,用于安全通信。 #15137
特性:在配置文件中新增
[replace_requires]
和[replace_tool_requires]
,用于重新定义依赖项,这对包替换(如zlibng/zlib
)很有用,可以解决冲突,并用包含在另一个 Conan 包配方中的系统替代方案替换某些依赖项。 #15136。文档 在此特性:新增
[platform_requires]
配置文件定义,以便能够用平台提供的依赖项替换 Conan 依赖项。 #14871。文档 在此特性:新增
conan graph explain
命令,用于搜索、比较和解释丢失的二进制文件。 #14694。文档 在此特性:全局
cpp_info
可用于初始化组件值。 #13994修复:使 core:warnings_as_errors 接受列表 #15297
修复:未提供分隔符时,修复用户 conf 的包作用域问题 #15296
修复:修复涉及范围的冲突报告中的范围转义问题。 #15222
修复:允许硬
set_name()
和set_version()
修改命令行中提供的名称和版本。 #15211。文档 在此修复:使 conan graph info –format=text 打印到标准输出。 #15170
修复:避免由于 CMAKE_POLICY_DEFAULT_CMP0091 未使用变量导致 CMake 输出警告。 #15127
修复:弃用
[system_tools]
,转而使用[platform_tool_requires]
,以与常规依赖项的[platform_requires]
保持一致。将输出从“系统工具”更改为“平台”。 #14871。文档 在此修复:确保用户 conf 至少具有 1 个 : 分隔符 #15296
修复:
Git.is_dirty()
将使用git status . -s
以确保它只处理当前路径,而不是整个仓库,类似于其他Git
方法。 #15289修复:使
self.info.clear()
和仅限头文件的包删除python_requires
和tool_requires
。 #15285。文档 在此修复:使
conan cache save/restore
能够在 Windows 和其他操作系统之间移植。 #15253修复:不要在
deployers
中相对化绝对路径。 #15244修复:为
CMakePresets
添加architecture
,以避免在使用预设时 cmake 忽略工具链定义。 #15215修复:修复 conan graph info –format=html 报告误导性冲突节点的问题。 #15196
修复:修复 conan profile show –format=json 中 tool_requires 的序列化问题。 #15185
修复:修复 NMakeDeps 引用问题。 #15140
Bug修复:修复2.0.14迁移,在定义
storage_path
配置时将LRU数据添加到缓存中。 #15135Bug修复:修复conan export-pkg命令中
package_metadata_folder
的定义。 #15126Bug修复:由于无用的distutils导入,pyinstaller.py在Python 3.12中出现故障。 #15116
Bug修复:修复未设置core.sources:download_cache时备份源代码的错误。 #15109
2.0.14 (2023年11月14日)¶
功能:将
riscv64, riscv32
架构添加到默认的settings.yml
中,并在Meson和Autotools中管理它们。 #15053功能:只允许一个同时存在的数据库连接。 #15029
功能:添加conan cache backup-upload以上传缓存中的所有备份源代码,无论它们来自哪个引用 #15013 。文档 此处
功能:改进conan upload的输出消息 #14984
功能:计算版本范围的交集,以避免兼容范围的图形版本冲突 #14912
功能:CMake助手可以在target参数中使用多个目标。 #14883
功能:添加CMakeDeps和PkgConfigDeps生成器,侦听system_package_version属性。 #14808 。文档 此处
修复:避免
CMakeToolchain
在未定义布局或输出文件夹时覆盖用户CMakePresets.json
。 #15058修复:添加
astra
、elbrus
和altlinux
作为使用apt
的SystemPackageManager中的发行版。 #15051修复:使
Git()
即使对于浅克隆也检查远程服务器上的提交。 #15023修复:将新的Apple OS版本添加到settings.yml。 #15015
修复:从
conan --version
输出中删除颜色。 #15002修复:如果sqlite3版本不受支持(小于2012年的3.7.11),则添加错误消息。 #14950
修复:使缓存数据库始终对路径使用正斜杠,以便在Windows和Linux上保持一致。 #14940
修复:解决现有包修订版本的重新构建(例如强制重新构建现有的仅头文件包),同时其他项目仍在使用先前的文件夹。 #14938
修复:通过
Apt.install()
或PkgConfig.fill_cpp_info
(如xorg/system
)输出的系统包对Conan输出的干扰很大,使其更安静。 #14924修复:序列化
python_requires
的path
信息,这对于计算buildinfo是必要的。 #14886修复:在conan source命令中定义远程,以防配方具有需要从远程下载的
python_requires
。 #14852修复:修复xros和xros-simulator的最小目标标志。 #14776
Bug修复:
--build=missing
对不需要且可以跳过的包进行了不必要的构建,在tool_requires
具有传递依赖项的情况下。 #15082Bug修复:在‘conan export-pkg’命令中将包修订版本添加到format=json。 #15042
Bug修复:当存在可编辑包时,
tools.build:download_source=True
不会失败。 #15004 。文档 此处Bug修复:传递依赖项错误地添加到conandeps.xcconfig中。 #14898
Bug修复:修复完整性检查(
upload --check
或cache check-integrity
),当export_source
未下载时。 #14850Bug修复:正确锁定python requires的候选版本。 #14846
2.0.13 (2023年9月28日)¶
Bug修复:修复2.0.11中引入的针对较新apple-clang版本的错误cppstd检测。 #14837
2.0.12 (2023年9月26日)¶
功能:将host_tool添加到package_manager中的install()方法,以指示包是主机工具还是库。 #14752 。文档 此处
修复:在尝试
export-pkg
一个python-require
包时,提供更好的错误消息,并避免其被导出然后失败。 #14819修复:
CMakeDeps
允许对所有属性使用set_property()
。 #14813修复:当未提供<path>参数时,conan build命令更漂亮的错误提示。 #14787
Bug修复:修复
compatibility()
在settings_target
上的问题,使其不为None。 #14825Bug修复:兼容包首先在缓存中查找,只有在未找到时才查找服务器,以便在有兼容包时允许离线安装。 #14800
Bug修复:在ConanRequester中重用会话以加快请求速度。 #14795
Bug修复:修复
editable
包的相对路径,当它们的部分组件定义目录时。 #14782
2.0.11 (2023年9月18日)¶
功能:为‘conan build’命令添加新的–deployer –generators参数。 #14737 。文档 此处
特性:改进
CMakeToolchain
块的接口。添加了新的.blocks.select()
和.blocks.keys()
方法。 #14731。文档 在此特性:从下载缓存复制大文件时,添加提示信息,而不是从服务器下载。 #14716
特性:添加了机制,可以将 Meson 中声明的空格分隔字符串类型的 c、cpp 和/或 ld 二进制变量转换为列表。 #14676
特性:将 nobara 发行版添加到 dnf 包管理器映射中。 #14668
特性:确保 meson 工具链使用 clang-cl 设置 b_vscrt。 #14664
特性:支持用于 conf tools.info.package_id:confs 的正则表达式模式。 #14621。文档 在此
特性:MakeDeps:提供“require”信息,并进行更多样式调整。 #14605
特性:允许在兼容性方法中访问 settings_target。 #14532
修复:改进 ConanApi 初始化失败时的错误消息。 #14735
修复:CMakeDeps:删除有关重复别名的“目标名称…已存在”警告。 #14644
Bug 修复:修复
Git.run()
在win_bash=True
时出现的回归问题。 #14756Bug 修复:将 conan.tools.system.package_manager.Apt 中的默认 check=False 更改为 True,与其他包管理器工具保持一致。 #14728。文档 在此
Bug 修复:解决了具有菱形结构的
test_requires
的传递共享依赖项的传播问题。 #14721Bug 修复:解决 conan export-pkg 与
test_package
对远程进行调用时发生的崩溃问题。 #14712Bug 修复:不要跳过具有未跳过传递依赖项的包的二进制文件,否则构建系统到这些传递依赖项(如
CMakeDeps
生成的文件)的构建链将被破坏。 #14673Bug 修复:在原生 ARM64 Windows 上运行
conan profile detect
时修复检测到的 CPU 架构。 #14667Bug 修复:
conan lock create --update
现在可以正确更新来自服务器的引用,前提是它们比缓存中的新。 #14643Bug 修复:修复不必要地使用转义序列修饰命令标准输出的问题。 #14642
Bug 修复:
tools.info.package_id:confs
不应影响仅限头的库。 #14622
2.0.10 (2023年8月29日)¶
特性:允许在
conandata.yml
定义中使用patch_user
用于用户补丁,这些补丁不受apply_conandata_patches()
处理。 #14576。文档 在此特性:支持 Xcode 15、iOS 17、tvOS 17、watchOS 10 和 macOS 14。 #14538
特性:如果用户添加不正确的 ConanCenter 网址作为远程,则引发错误。 #14531
特性:使用
--format=json
对图形进行序列化时,会向python_requires
添加信息,以便conan list --graph
也可以列出python_requires
。 #14529特性:将
rrev
、rrev_timestamp
和prev_timestamp
添加到图形 JSON 序列化中。 #14526特性:允许
version-ranges
也解析到可编辑的包。 #14510特性:添加对 Apple visionOS 的支持。 #14504
特性:警告未知的版本范围选项。 #14493
特性:新的
tools.deployer:symlinks
配置,用于禁用部署程序中的符号链接复制。 #14461。文档 在此特性:允许远程在“editable add”中自动解析缺少的
python_requires
。 #14413。文档 在此特性:conan profile detect 现在可以在 Visual Studio 提示符内调用时检测 msvc 的版本,前提是已定义 CC 或 CXX 并指向 cl 编译器可执行文件。 #14364
特性:
conan create --build-test=missing
新参数用于控制作为test_package
文件夹的依赖项构建的内容。 #14347。文档 在此特性:提供新的
default_build_options
属性,用于在配方中定义tool_requires
的选项。 #14340。文档 在此修复:允许在 conan create 中使用 –format=json 用于 python-requires。 #14594
修复:删除 Conan v2 就绪的 Conan-Center 链接。 #14593
修复:允许版本预发布版中使用额外的连字符。 #14561
修复:即使定义了
tools.cmake.cmaketoolchain:user_toolchain
,也可以使用tools.cmake.cmaketoolchain
的 confs。 #14556。文档 在此修复:在图形的
--format=json
中,将dependencies
的布尔值序列化为布尔值,而不是字符串。 #14530。文档 在此修复:避免在
python_requires
不在缓存中且需要下载时,conan upload 出现错误。 #14511修复:改进
lock add
添加完整包引用而不是配方引用的错误检查。 #14491修复:不再将未捕获的堆栈跟踪打印到
stdout
,而是打印到stderr
。 #14444修复:在
--format=json
输出中序列化conf_info
。 #14442修复:MSBuildToolchain/MSBuildDeps:避免将C/C++编译器选项作为ResourceCompile的选项传递。 #14378
修复:插件文件删除后会显示更友好的错误消息,而不是堆栈跟踪。 #14376
修复:修复armv8/aarch64上CMake系统处理器名称。 #14362
修复:使备份源
core.sources
配置不再强制要求最终斜杠。 #14342修复:使用conanfile.run()调用XCRun,以便注入环境。 #14326
修复:对于
conan config install
使用abspath
以避免符号链接问题。 #14183错误修复:解决
build_id()
问题,当多个不同的package_ids
重用相同的构建文件夹时。 #14555错误修复:使用包列表时,在conan download未提供时间戳的情况下避免数据库错误。 #14526
错误修复:将异常堆栈跟踪(当设置-vtrace时)打印到stderr而不是stdout #14522
错误修复:仅在conan upload中打印交互确认的包。 #14512
错误修复:'conan remove'输出缓存中与过滤器匹配的所有条目,而不仅仅是用户确认的条目。 #14478
错误修复:在不使用–user的情况下传递–channel时显示更友好的错误。 #14443
错误修复:修复
settings_target
在“构建”上下文中计算工具依赖项包的计算。 #14441错误修复:当定义
core.download:parallel
时避免DB is locked
错误。 #14410错误修复:使用部署程序时,使生成的powershell环境脚本变为相对路径。 #14391
错误修复:修复配置文件[tool_requires]使用被忽略的版本。 #14337
2.0.9 (2023年7月19日)¶
特性:添加apple-clang 15。 #14302
修复:使用revision_mode = “scm_folder”时,允许存储库在conanfile.py文件夹之外处于脏状态。 #14330
修复:改进错误消息,并为compatibility.py和profile.py插件中的错误提供Conan跟踪。 #14322
修复:在每次消息写入后
flush()
输出流。 #14310错误修复:修复
CMakeUserPresets
由于拼写错误而继承自Conan生成的预设。 #14325错误修复:如果多个用户预设继承自同一个Conan预设,则ConanPresets.json包含重复的预设。 #14296
错误修复:Meson prefix参数作为UNIX路径传递。 #14295
错误修复:修复CMake Error: Invalid level specified for –loglevel,当tools.build:verbosity设置为quiet时。 #14289
2.0.8 (2023年7月13日)¶
特性:将GCC 10.5添加到默认的settings.yml中。 #14252
特性:允许pkg_config_custom_content覆盖PkgConfigDeps创建的默认*.pc变量。 #14233。文档 此处
特性:fix_apple_shared_install_name工具现在使用xcrun来解析otool和install_name_tool程序。 #14195
特性:新的
cpp_info.set_property("cmake_package_version_compat" , "AnyNewerVersion")
用于CMakeDeps
生成器。 #14176。文档 此处特性:元数据改进。 #14152
修复:使用conan test命令时,改进缺少二进制文件的错误消息。 #14272
修复:使conan download命令不再需要加载conanfile,对于1.X配方或缺少
python_requires
不会失败。 #14261修复:使用upload和–list参数现在允许空配方列表。 #14254
修复:保证
Options.rm_safe
永远不会引发异常。 #14238修复:允许tools.gnu:make_program影响每个CMake配置。 #14223
修复:将缺少的package_type添加到conan new lib模板中。 #14215
修复:在patch()函数中启用现有的状态消息代码。 #14177
修复:在
XcodeDeps
中使用configuration
而不是始终使用build_type
。 #14168修复:尊重缓存位置的符号链接路径。 #14164
修复:
PkgConfig
使用conanfile.run()
而不是内部运行器来获取来自配置文件和依赖项的完整Conan环境。 #13985错误修复:修复
CMakeDeps
CMAKE_FIND_LIBRARY_SUFFIXES
变量泄漏。 #14253错误修复:修复当检测到多个自定义全局生成器时,Conan无法按名称查找生成器的问题。 #14227
错误修复:改进html格式的conan graph info中图形冲突的显示。 #14190
错误修复:修复
CMakeToolchain
从Linux交叉构建到OSX。 #14187错误修复:修复在没有选择包时备份源代码中的KeyError。 #14185
2.0.7 (2023年6月21日)¶
特性:
conan remove --format
的输出包括文本(已删除内容的摘要)和json。 #14082。文档 此处特性:将core.sources:excluded_urls添加到备份源中。 #14020
特性:允许
pkg/[version-range]
表达式在conan list
(以及download、upload、remove)模式中。 #14004。文档 此处特性:添加
conan upload --dry-run
,相当于1.X中的conan upload --skip-upload
。 #14002。文档 此处特性:对下载大型文件时打印一些信息进行了小的用户体验改进。 #13989
特性:使用
PackagesList
作为conan upload --list=pkglist.json
的输入参数。 #13928。 文档 此处特性:使用
--graph
作为conan list
的输入,创建可用于 conan upload 输入的PackagesList
。 #13928。 文档 此处特性:与配方和包关联的新元数据文件,可以上传、下载并在包存在后添加。 #13918
修复:删除
conanfile.xxx_folder
中尾部的.
,该字符会破坏 msys2 等子系统。 #14061修复:避免图中某些中间包在某些依赖项上调用
aggregated_components()
时出现缓存问题,并使用--deployer
时,生成器仍然指向 Conan 缓存而不是部署的副本。 #14060修复:允许多次调用内部
Cli
对象。 #14053修复:对于 Python 3.10,强制使用
pyyaml>=6
,因为之前的版本已损坏。 #13990修复:当 Conan 无法显示其中一个冲突的配方时,改进图冲突消息。 #13946
错误修复:解决从服务器下载非最新版本时的日期时间戳错误。 #14110
错误修复:修复可编辑包中双基路径设置的问题。 #14109
错误修复:如果
conan graph build-order
图存在任何错误,则引发错误,而不是静默地不执行任何操作并输出空 JSON。 #14106错误修复:避免文件夹具有重叠匹配名称时,对于
editable
包的路径替换不正确。 #14095错误修复:将 clang 设置为 FreeBSD 检测到的默认编译器。 #14065
错误修复:将前缀变量和任何自定义内容(通过 pkg_config_custom_content 属性)添加到 PkgConfigDeps 为根 .pc 文件生成的 pkg-config 文件中。 #14051
错误修复:conan create 命令始终为
--format=json
结果图返回相同的输出,而不管 test_package 是否存在。 #14011。 文档 此处错误修复:修复定义
self.folders.root=".."
父目录时editable
包的问题。 #13983错误修复:删除 libdir1 和 includedir1 作为默认索引。现在,PkgConfigDeps 在 .pc 文件中默认创建 libdir 和 includedir 变量。 #13623。 文档 此处
2.0.6 (2023年5月26日)¶
特性:添加 tools.cmake:cmake_program 配置项,以允许指定所需的 CMake 可执行文件的路径。 #13940。 文档 此处
修复:修复层中自定义命令无法进行本地导入的问题。 #13944
修复:改进下载 + 解压缩的输出。 #13937
修复:在 conan config install 中为 package_manager:mode 添加缺失的值。 #13929
错误修复:确保 graph info、create、export-pkg 和 install 的图信息 JSON 输出相同。 #13967。 文档 此处
错误修复:
test_requires
会像常规requires
一样影响使用者的package_id
,但它们不应该这样做。 #13966错误修复:当
-c tools.build:download_source=True
时,在 JSON 输出中正确定义source_folder
。 #13953错误修复:修复并完善了 graph info xxxx –format json 输出,以便公开记录它。 #13934。 文档 此处
错误修复:修复 premakedeps 中“双重”绝对路径的问题。 #13926
错误修复:修复 2.0.5 的回归问题 https://github.com/conan-io/conan/pull/13898,其中包和组件规范的覆盖失败 #13923
2.0.5 (2023年5月18日)¶
特性:-v 参数默认为 VERBOSE 级别。 #13839
特性:避免显示不必要的跳过依赖项。现在,如果存在跳过的二进制文件,则仅显示参考名称列表。可以通过在当前命令中添加 -v(详细模式)来完全列出它们。 #13836
特性:允许使用
upload_policy="skip"
和build_policy="missing"
的不可重定位的本地构建包 #13833。 文档 此处特性:当计算
package-revision
时,不要移动缓存中的“build”文件夹,以便使用逐级调试定位依赖项的源代码 #13810特性:新的
settings.possible_values()
方法,用于查询设置的可能值的范围。 #13796。 文档 此处特性:优化并避免在
upload_policy=skip
时命中服务器以获取二进制文件 #13771特性:部分相对化生成的 env .sh shell 脚本 #13764
特性:改进 settings.yml 错误消息 #13748
特性:缓存中新的全局自定义生成器“extensions/generators”,可以使用名称引用。 #13718。 文档 此处
特性:改进 conan inspect 输出,它现在理解 set_name/set_version。 #13716。 文档 此处
特性:定义新的
self.tool_requires("pkg/<host_version>")
以允许某些 tool-requires 遵循并使用与“host”常规 requires 相同的版本。 #13712。 文档 此处特性:将 info_invalid 添加到图节点序列化中 #13688
特性:计算和报告图中的
overrides
,以及graph build-order
#13680特性:新的
revision_mode = "scm_folder"
,用于希望使用scm
修订版本的单仓库项目。 #13562。文档此处修复:修复XcodeDeps包含跳过的依赖项。 #13880
修复:不允许换行符进入
pkg/version
引用字段 #13870修复:修复
AutotoolsToolchain
对Windows子系统的tools.build:compiler_executable
的定义 #13867修复:加快CMakeDeps生成速度 #13857
修复:修复导入库配置后缀。 #13841
修复:在定义未知conf时失败 #13832
修复:修复在
conan install/create
命令中,当它们被其他一些依赖项使用时,"skipped"二进制文件的错误打印。 #13778修复:将缓存“deploy”文件夹重命名为“deployers”,并允许
-d, --deployer
cli参数。(“deploy”文件夹不会中断,但会发出弃用警告)。 #13740。文档此处修复:省略仅限头文件的库的
CMakeDeps
中的-L
libpaths。 #13704Bug修复:修复当
test_requires
也是一个常规的传递性“host”需求,并且使用者定义了组件时的问题。 #13898Bug修复:修复像
*:shared=True
这样的在配方中定义的选项的传播 #13855Bug修复:修复“graph build-order”和“test”命令的
--lockfile-out
路径 #13853Bug修复:确保在更多情况下上传备份源 #13846
Bug修复:修复
settings.yml
中intel-cc
cppstd=03
的定义 #13844Bug修复:修复使用备份源对仅导出配方执行conan upload #13779
Bug修复:修复包含别名的锁定文件的
conan lock merge
#13763Bug修复:修复具有版本范围的传递依赖项中的python_requires #13762
Bug修复:修复裸机情况下CMakeToolchain CMAKE_SYSTEM_NAME=Generic #13739
Bug修复:修复不正确的环境脚本停用顺序 #13707
Bug修复:解决当图中包含具有
override=True
的需求时,锁定文件失败的问题 #13597
2.0.4 (2023年4月11日)¶
特性:将
--build-require
扩展到更多命令(graph info
、lock create
、install
)和情况。 #13669。文档此处特性:使CMakeDeps、CMakeToolchain和环境(.bat,仅限Windows)生成的 文件具有相对路径。 #13607
特性:添加对premake5依赖项(PremakeDeps)的初步(未记录,仅限开发)支持。 #13390
修复:将旧的conan user引用更新为
conan remote login
。 #13671修复:改进
requirements()
中依赖项选项更改的错误消息。 #13668修复:[system_tools]没有报告正确的解析版本,而是仍然报告原始范围。 #13667
修复:改进provides冲突消息错误。 #13661
修复:当服务器对配方/包中1个文件的下载响应Forbidden时,确保清理其他文件和数据库。 #13626
修复:在使用–package-query但未提供与包匹配的模式时,在conan remove中添加错误。 #13622
修复:当模式未列出包修订版时,例如
conan list "*#*:*"
,修复html输出。 #13605Bug修复:
conan list -p <package-query>
当包没有设置或选项时失败。 #13662Bug修复:python_requires现在正确加载远程需求。 #13657
Bug修复:修复当在图的节点中使用
override
,而该节点也是菱形的结束节点时发生的崩溃。 #13631Bug修复:修复
--package-query
参数对options
的影响。 #13618Bug修复:为
full_deploy
部署程序添加full_deploy
子文件夹,以避免与“build”文件夹冲突。 #13612。文档此处Bug修复:使STATUS成为默认日志级别。 #13610
Bug修复:修复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
部署程序以及CMakeDeps
生成器学习创建相对路径部署,因此它们是可重定位的。 #13526特性:引入
conan remove *#!latest
(也适用于包修订版),以删除除最新修订版之外的所有修订版。 #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定义编译器标志,则将其设置为False可能很有用,以防止Android的遗留CMake工具链覆盖这些值。 #13459。文档此处
特性:将
tools.files.download:download_cache
默认为core.download:download_cache
,因此只需定义一个即可。 #13458修复:定义一种在
python_requires_extend
扩展中更新default_options
的方法。 #13487 。文档 此处修复:再次允许指定
self.options["mydep"].someoption=value
,等价于"mydep/*"
。 #13467修复:对于使用 Meson 和 VS2019 及 VS2022 的 C++20,生成 cpp_std=vc++20,而不是 vc++latest。 #13450
Bug修复:修复
CMakeDeps
在find_library()
中未清除CONAN_SHARED_FOUND_LIBRARY
变量的问题。 #13596Bug修复:不允许添加多个具有相同远程名称的远程仓库。 #13574
Bug修复:避免由于可编辑包的依赖项二进制文件被“跳过”而导致的生成器错误。 #13544
Bug修复:修复父命令包含下划线时子命令名称的问题。 #13516
Bug修复:修复在运行 conan export-pkg 时远程仓库中的
python-requires
问题。 #13496Bug修复:可编辑包现在也遵循
build_folder_vars
配置。 #13488Bug修复:修复
[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 配置项,用于控制版本范围是否可以解析为预发布版本 #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修复:当
settings_user.yml
定义了一个dict
时,允许将settings.yml
列表转换为dict
。 #13323修复:修复从 macOS 交叉编译到非 Apple 操作系统时,AutotoolsToolchain 传递的标志问题。 #13230
Bug修复:修复
MSBuild
在自定义配置中存在空格时的自定义配置问题。 #13435Bug修复:解决
conan profile path <nonexisting>
中导致崩溃的错误。 #13434Bug修复:添加全局详细程度配置 tools.build:verbosity,而不是单独的配置。 #13428 。文档 此处
Bug修复:避免对格式错误的自定义命令引发致命异常。 #13365
Bug修复:即使依赖项是仅包含头文件的,也不要省略依赖项中的
system_libs
。 #13364Bug修复:修复在实例化
MesonToolchain
时未创建VirtualBuildEnv
环境的问题。 #13346Bug修复:在兼容性插件中使用自定义编译器时提供更友好的错误信息。 #13328
Bug修复:添加 qcc cppstd 兼容性信息,以允许计算依赖关系图。 #13326
2.0.1 (2023年3月3日)¶
特性:在 config install 中添加 –insecure 到 –verify-ssl 的别名。 #13270 。文档 此处
特性:使异常时的详细跟踪信息在
-vv
和-vvv
时显示,而不是在 1.X 中使用的自定义环境变量。 #13226修复:对 conan install 和 2.0 就绪错误消息进行了一些小的改进。 #13299
修复:删除
vcvars.bat
VS 遥测环境变量,以避免 Conan 挂起。 #13293修复:删除
CMakeToolchain
对CMakePresets
schema2(用于CMakeUserPresets.json
)的遗留支持。 #13288 。文档 此处修复:如果
conan config list unexpected-arg
,则引发参数错误。 #13282修复:对于
msvc
,不自动检测compiler.runtime_type
,而是依赖于配置文件插件。 #13277修复:修复 conanfile.txt 选项解析错误消息。 #13266
修复:改进选项中统一模式的错误消息。 #13264
修复:允许
conan remote add --force
强制重新定义现有的远程名称。 #13249修复:恢复构建命令的配置文件打印。 #13214
修复:更改“path”的 conan build 参数描述,以指示它仅适用于 conanfile.py,并明确说明它不适用于 conanfile.txt。 #13211 。文档 此处
修复:当在
requirements()
方法中定义依赖项options
时,提供更好的错误消息。 #13207修复:修复错误消息和自述文件中的文档链接错误。 #13186
Bug修复:确保 topics 始终序列化为列表。 #13298
Bug修复:确保 provides 始终序列化为列表。 #13298
Bug修复:修复了某些 Visual C++ 安装的检测。 #13284
Bug修复:修复
msvc
编译器支持的cppstd
值。 #13278Bug修复:CMakeDeps 为
tool_requires
生成与“host”上下文具有相同build_type
的文件。 #13267Bug修复:修复在configure()中依赖项选项模式的定义。 #13263
Bug修复:修复当输出文件夹在不同的Win驱动器时,CMakeToolchain错误。 #13248
Bug修复:如果
test_requires
没有被组件.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
功能:允许在配方
layout()
中定义self.folders.build_folder_vars
。 #13109功能:阻止设置赋值。 #13099
功能:改进conan editable用户界面。 #13093
功能:为用户提供扩展Conan生成的CMakePresets的能力。 #13090
功能:添加错误消息以帮助将配方迁移到2.0,包括ConanCenter和用户仓库。 #13074
功能:在conan new模板中删除option.fPIC for shared。 #13066
功能:添加conan cache clean子命令来清理构建和源文件夹。 #13050
功能:实现可自定义的
CMakeToolchain.presets_prefix
,以便预设名称以此为前缀。 #13015功能:在配置文件中添加[system_tools]部分,以使用您自己安装的工具,而不是requires中声明的包。 #10166
修复:powershell转义中的修复。 #13084
修复:默认定义
CMakeToolchain.presets_prefix="conan"
,以避免与其他用户的预设冲突。 #13015
2.0.0-beta9 (2023年1月31日)¶
功能:在Conan缓存哈希路径中添加包名称。 #13011
功能:实现
tools.build:download_source
配置以强制在conan install或conan graph info
中安装源代码。 #13003功能:用户可以在settings_user.yml中定义自己的设置,这些设置将与Conan的settings.yml合并。 #12980
功能:列出禁用的远程。 #12937
修复:PkgConfiDeps正在使用依赖项中错误的
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}添加需求。 #12875
功能:允许
--no-remotes
强制临时禁用远程。 #12808功能:为conan new添加基本模板选项。 #12802
功能:如果传递了PkgID,则避免请求包配置。 #12801
功能:实现了conan list *#latest和conan list *:*#latest。基本上,此命令可以显示所有匹配引用的最新RREVs和PREVs。 #12781
功能:允许self.output写入方法的链接。 #12780
修复:使
graph info
过滤器也适用于json输出。 #12836Bug修复:修复在使用AutotoolsToolchain并在Windows上交叉构建时传递有效GNU三元组的错误。 #12881
Bug修复:如果ref.name相同但版本不同,则进行排序。 #12801
2.0.0-beta7 (2022年12月22日)¶
2.0.0-beta6 (2022年12月2日)¶
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,具有详细的方法(更新、保存等),而不是几个松散的方法。 #12502
功能:conan export也可以生成锁定文件,这对于执行两步(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对象传递给部署器,而不是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
修复:修复部署器未创建 output_folder 的问题。 #11977
修复:修复 build_id() 删除 require 的问题。 #12019
修复:如果 Conan 无法加载自定义命令,现在将以有用的错误消息失败。 #11720
Bug修复:如果在构建配置文件和配方中未指定“os”,并且在 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
命令和其他配置改进。 #11575功能:为所有命令添加了两个新参数:-v 用于控制输出的详细程度,以及 --logger 用于以 json 日志格式输出内容以供日志处理器使用。 #11522
2.0.0-beta1 (2022年6月20日)¶
功能:新的图模型,以更好地支持 C 和 C++ 二进制文件的关系、编译和链接。
功能:新的已记录的公共 Python API,用于用户自动化。
功能:新的构建系统集成,更加灵活和强大,并在可能的情况下提供透明的集成,例如
CMakeDeps
和CMakeToolchain
功能:新的自定义用户命令,可以使用公共 PythonAPI 构建,并可以使用
conan config install
共享和安装。功能:新的 CLI 接口,具有更清晰的命令和更结构化的输出。
功能:新的部署器机制,用于将工件从缓存复制到用户文件夹,并在构建时使用这些副本。
功能:改进了
package_id
计算,考虑了新的更详细的图模型。功能:添加了
compatibility.py
扩展机制,允许用户全局定义二进制兼容性。功能:更简单、更强大的
lockfiles
,以提供随时间的可重复性。功能:使用
[conf]
进行更好的配置,并使用新的conan.tools.env
工具进行更好的环境管理。功能:Conan 缓存现在可以同时存储多个修订版。
功能:新的扩展插件,用于实现配置文件检查、包签名和构建命令包装。
功能:使用包不变性来改进更新、安装和上传流程。