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