更新日志

有关 Conan 2 相较于 Conan 1.X 的主要变更的更详细描述,请阅读 Conan 2 的新特性

2.15.0 (2025年3月31日)

  • 特性: 改进处理不正确的 JSON 输入文件格式时的错误消息。 #18037

  • 特性: 为 conan list 命令添加了新的 –graph-context#18015 。 文档 此处

  • 特性: 添加了版本范围模式,使用 [1.2.3.4.*] 定义,其中 * 位于字符串末尾。 #18012 。 文档 此处

  • 特性: 如果在 Apple 操作系统之间进行交叉编译,则在 MesonToolchain 中添加了 subsystem 字段。 #17985

  • 特性: 为 is_apple_os 辅助函数添加了新的 kwarg build_context#17985

  • 特性: 在 tools.files 中集成了 chmod 功能。 #17800 。 文档 此处

  • 修复: 在调用 conan cache clean 时,从未知引用中删除备份源。 #18018

  • 修复: 修复 SBOM 作者字段。 #18014

  • 修复: 如果符号链接路径与库名称匹配,则默认避免解析符号链接路径。 #17964

  • 修复: 将 CLI 命令中一些 from conan.internalfrom conans 的用法设为私有,并移至 ConanAPI。 #17961

  • 修复: 为 recipe 中的 deprecated 属性添加警告。 #17957 。 文档 此处

  • 修复: 改进生成器中的相对路径,使其尽可能短。 #17945

  • 修复: _Component() 没有 package_type 属性。 #17943

  • Bugfix: 修复 global.conf 优先级高于 profile [conf] 以及每个软件包模式 conf 的顺序更改的问题。 #18028

  • Bugfix: 解决 update_policy=legacy 和使用锁定文件时的问题。 #18009

  • Bugfix: 如果目录具有更严格的模式,untargz() 方法会失败。 #17998

  • Bugfix: CppInfo.auto_deduce_location 方法为精确匹配赋予更高的优先级。 #17975

  • Bugfix: 避免在工具需求内部的自定义生成器通过类而不是名称引用时,--format=json 序列化崩溃。 #17954

  • BugFix: 在元数据中添加正确的信息 + 防止在没有组件与 root_node 关联时崩溃。 #17925

2.14.0 (2025年3月12日)

  • 特性: 添加 clang 20 支持。 #17920 。 文档 此处

  • 特性: 允许工作区的局部 workspace install <path1> ... <pathN> 安装。 #17887 。 文档 此处

  • 特性: 为 validate 方法添加 hook:pre_validatepost_validate#17856 。 文档 此处

  • 特性: 为 CMakeConfigDeps 添加了完整的 Apple Frameworks 管理。 #17725 。 文档 此处

  • 特性: 为 cpp_info 添加了新的 cpp_info.package_framework#17725 。 文档 此处

  • 特性: 修复了 docker runner 中的几个 bug,添加了新的配置选项并改进了日志记录系统 #17542 。 文档 此处

  • 修复: 当由于意外语法导致 jinja2 profile 渲染失败时,改进错误消息。 #17940

  • 修复: 对于精确的库匹配,不要在自动推导位置时发出警告。 #17923

  • 修复: cmake_set_interface_link_directories 属性在 CMakeDeps 中完全不是必需的,并且在 CMakeConfigDeps 中变为无效,因为它将需要完整的 package_info() 定义。 #17917 。 文档 此处

  • 修复: 不要在 MSBuildDeps 生成器中将 \\ 转换为 /,因为某些 MSBuild 功能需要 Windows \\ 路径。 #17901

  • 修复: 避免工作区错误地定义 “local-recipes-index” 辅助缓存。 #17883

  • 修复: 改进 profile 环境转储的输出,并具有正确的前置顺序。 #17863

  • 修复: 如果 OS 设置为 WindowsStore,则修复 VCVars vcvarsall.bat 生成。 #17849

  • Bugfix: 当构建 profile 中的 [tool_requires] 依赖于自身且具有版本范围时,避免自依赖和循环。 #17931

  • Bugfix: 修复 conan graph build-order --reduce --order-by=recipe 未过滤所有 != “Build” 包的问题。 #17909

  • Bugfix: 解决当版本范围具有不同的用户时,未引发冲突的问题。 #17877

2.13.0 (2025年2月26日)

  • 特性: CMakeDeps 生成的 Findxxxx.cmake 文件现在可以为 cmake_additional_variables_prefixes 定义 {prefix}_FOUND{prefix}_VERSION#17838

  • 特性: 在 conanfile 中提供新的孵化 CMakeConfigDeps 生成器,该生成器仍处于孵化 “conf” 功能标志下。 #17831 。 文档 此处

  • 特性: 如果向 local-recipes-index 远程请求了与当前版本不同的特定修订版本,则添加警告。 #17819

  • 特性: 将存储库参数(具有相同的默认值)从 coordinates_to_conandata() 转发到 get_url_and_commit()#17722

  • 特性: 为 gcc MinGW 编译器 settings.yml 添加 mcf 线程。 #17704

  • 特性: 改进 conanws.py 文件定义,使其遵循与 ConanFile 相同的模式。 #17688 。 文档 此处

  • 特性: 工作区新的 workspace install 命令,用于包含多个 editables 的单体超级项目。 #17675 。 文档 此处

  • 特性: 新的 conan new workspace 模板包含基于 CMake 的单体超级项目,该项目与 conan workspace install 一起使用。 #17675 。 文档 此处

  • 特性: 将 CMAKE_LIBRARY_PATH 添加到 conan_cmakedeps_paths.cmake (新的 CMakeDeps)。 #17668

  • 特性: 将 CMAKE_INCLUDE_PATH 添加到 conan_cmakedeps_paths.cmake (新的 CMakeDeps)。 #17668

  • 特性: 为 conanfile 依赖项添加 extension_properties 访问。 #17659 。 文档 此处

  • 特性: 在 Version 中引入 in_range 方法,该方法允许与版本范围进行比较。 #17658 。 文档 此处

  • 特性: 将依赖项 urllib3 升级到 2.0#17655

  • 特性: 新的 lock upgrade 命令,用于自动升级所需的依赖项并解析依赖图。 #17577 。 文档 此处

  • 特性: 增强的 Premake CLI 包装器,具有可配置的 Lua 文件路径,并支持自定义命令行参数。 #17398 。 文档 此处

  • 修复: 关于 CONAN_LOGIN 环境变量的 conan remote auth 的文档字符串。 #17834

  • 修复: runtime_deploy 保留符号链接及其库。 #17824 。 文档 此处

  • 修复: 关于来自工具需求的 target_link_libraries(),为孵化 CMakeDeps 提供更好的消息。 #17821

  • 修复: 修复 _calculate_licenses SBOM 方法 bug 并添加一个小测试。 #17801

  • 修复: 允许 AutotoolsToolchain 中来自 conf 的构建上下文信息。 #17794

  • 修复: 允许 msys2 子系统路径从环境变量继承 #17781

  • 修复: 改进组件定义错误和运行时冲突的错误消息。 #17771

  • 修复: 更新客户端迁移的消息。 #17751

  • 修复: 提高 untar 性能。 #17708

  • 修复: 保护对 required_components 属性错误赋值 cpp_info/components.required_components = xxx 的情况。现在它将引发正确的错误。 #17692

  • 修复: 新的 CMakeDeps 共享库的传递链接。 #17459

  • Bugfix: 修复自包含的 pyinstaller 可执行文件,使其也包含新的 conan.tools.sbom 工具。 #17809

2.12.2 (2025年2月12日)

  • 修复: 修复默认名称并允许 cycloneDX 定义自定义名称。 #17760 。 文档 此处

  • 修复: 添加 cycloneDX add_testsadd_build 参数。 #17760 。 文档 此处

  • Bugfix: 修复 cycloneDX 工具参数。 #17760 。 文档 此处

2.12.1 (2025年1月28日)

  • Bugfix: 修复 conan config clean 未重新生成每个必要文件的问题。 #17649

  • Bugfix: 如果任何文件被用户修改,则避免 compatibility.py 迁移。 #17647

2.12.0 (2025年1月27日)

  • 特性: 公开记录(和实验性) --build=compatible:[pattern] 构建模式,以允许在当前配置无效且二进制兼容性定义兼容二进制文件时,构建与当前配置不同的其他配置。 #17637 。 文档 此处

  • 特性: 定义新的 tools.cmake.cmaketoolchain:user_presets 以自定义生成的 CMakeUserPresets.json 的名称,禁用其生成。也可以在子文件夹中生成它。 #17613 。 文档 此处

  • 特性: 在 --format=json 图形输出中序列化原始需求版本范围,而不仅仅是解析后的版本范围。 #17603

  • 特性: 将 cycloneDX 添加为 Conan 工具,并为 conanfile 实现子图。 #17559 。 文档 此处

  • 特性: 初始 conan workspace build 命令,用于基于 products 的定义构建完整的工作区。 #17538 。 文档 此处

  • 特性: 允许从外部集中文件夹为类似 conan-center-index 的布局在 “create” 时应用补丁。 #17520 。 文档 此处

  • 特性: 在解压 tarball 文件时添加报告进度。 #17519

  • 特性: conan profile show 现在可以选择要显示的上下文的 profile。 #17518

  • 特性: 更好的日志记录,打印存储库的用户名、成功的身份验证事件和跟踪级别消息,包括完整的 URL 请求。 #17517

  • 特性: 添加 conan config clean 命令,该命令将从 conan home 中删除所有自定义配置,但不包括生成的软件包。 #17514 。 文档 此处

  • 特性: 向 ConanApi 添加 reinit 方法,该方法重新初始化每个 subapi#17514 。 文档 此处

  • 特性: 允许定义 --out-file=file.ext 而不是 --format=ext > file.ext,以直接写入文件并避免重定向问题。 #17507 。 文档 此处

  • 特性: 在 API 调用之间缓存 HTTP 请求会话。 #17455

  • 特性: 在 Remote 对象中为 RemoteManager 调用实现缓存,从而在 Remote 对象的生命周期内节省重复的服务器调用。 #17449 。 文档 此处

  • 修复: 将 arch_flag 作为公共属性添加到 MesonToolchain 生成器。 #17629

  • 修复: 对于负载非常重的 CI 服务器,将 sqlite 超时时间从 10 秒增加到 20 秒。 #17616

  • 修复: 使 remotes.json 保存具有事务性,以避免硬终止进程导致损坏。 #17588

  • 修复: 当 test_package 缺少二进制文件时,改进 conan create 的错误消息。 #17581

  • 修复: 修复 Git is_dirty 检测具有路径的排除文件的问题。 #17571

  • 修复: 允许最新的 bottle 0.13 版本用于 conan_server 以与 Python 3.13 一起工作。 #17534

  • 修复: GnuToolchain 的 make_args 正确处理空值。 #17532

  • 修复: 修复 replace_in_file 中的不一致性,如果未找到模式(在 strict off 的情况下),则返回 False,否则返回 None#17531

  • 修复: conan profile show 不会用信息标题污染 stdout。 #17518

  • 修复: 当在 languages 属性中使用未知语言时报错。 #17512

  • 修复: 修复当使用 workspace_api.load() 并在 set_version() 内部使用 self.run() 时的 Workspace#17501

  • Bugfix: conf_build 不存在于 cliconanfile.txt 上下文中。 #17640

  • Bugfix: 使 patternstrip_root 可以同时用于 conan.tools.files.unzip()#17591

  • Bugfix: 解决孵化 CMakeDeps 在传递 [replace_requires] 方面的问题。 #17566

  • Bugfix: 解决 PkgConfigDeps 在传递 [replace_requires] 方面的问题。 #17566

2.11.0 (2024年12月18日)

  • 特性: 仅在启用时警告冻结的 conan v1 远程。 #17482

  • 特性: AutotoolsToolchain 在首次进行 Android 交叉编译时使用用户的变量。 #17470 。 文档 此处

  • 特性: AutotoolsToolchain 检查 Android 交叉编译路径是否存在。 #17470 。 文档 此处

  • 特性: 将 Conan 缓存 “profiles” 文件夹添加到 jinja2 搜索路径,以便即使对于父文件夹和同级文件夹,也可以从 jinja 语法中包含/导入 profile。 #17432 。 文档 此处

  • 特性: 更新了 tools.env.virtualenv:powershell conf,以允许指定 PowerShell 可执行文件(例如,powershell.exe 或 pwsh)并传递其他参数。 #17416 。 文档 此处

  • 特性: 弃用 tools.env.virtualenv:powershell=True/False 的使用。 #17416 。 文档 此处

  • 修复: 如果值为 None,则不显示 powershell 弃用消息。 #17500

  • 修复: 修复调用 editable_addLocalAPI 对 editables 的定义。 #17498

  • 修复: 澄清 CMakeDeps 中的调试消息。 #17453

  • 修复: 在 BazelDeps 的 glob() 函数中显式添加了 allow_empty = True (兼容 bazel 8.x)。 #17444

  • 修复: 修复由于未清理的正则表达式导致的 cpp_info.location 推导中断的问题。 #17430

  • 修复: 信任来自符号链接的真实路径是一个好的做法。 #17421

  • 修复: 修复在 local-recipes-index 中搜索模式时的用户/频道问题。 #17408

  • 修复: 为空版本范围添加警告。 #17405

  • Bugfix: 修复组件属性的虚假重复 #17503

  • Bugfix: 修复在 powershell 中使用单引号运行命令的问题。 #17487

  • Bugfix: 修复取消设置某些类型的 conf 的问题。 #17445

2.10.3 (2024年12月18日)

2.10.2 (2024年12月10日)

  • 修复: 解决大型图中计算 “skip” 二进制文件的性能问题。 #17436

2.10.1 (2024年12月4日)

  • Bugfix: 修复相同引用名称替换的 [replace_requires]#17409

2.10.0 (2024年12月2日)

  • 特性: 为 conan remote auth 添加 –force 选项,即使对于已启用匿名访问的远程仓库,也强制进行身份验证。 #17377 。 文档 此处

  • 特性: 为 conan new 命令添加 –output 选项。 #17359

  • 特性: 让新的 CMakeDeps 始终定义组件,并使用 find_package( COMPONENTS) 检查它们,监听新的属性 cmake_components#17302

  • 特性: 允许 tools.microsoft.msbuild:max_cpu_count=0 使用 /m 来使用所有可用的核心。 #17301 。 文档 此处

  • 特性: 如果没有为 conan list 指定参数,则将 * 定义为默认参数。 #17300 。 文档 此处

  • 特性: 改进了自动推导位置函数。 #17296

  • 特性: BazelDeps 使用新的 deduce_location 机制来查找库。 #17296

  • 特性: 初始 conan workspace 初始提案,用于管理本地 editables 集。仅作为开发/维护人员功能引入,位于环境变量之后。 #17272 。 文档 此处

  • 特性: 允许在 conan config install-pkg 中使用 --settings,以便在不同的平台上创建和安装不同的配置。 #17217 。 文档 此处

  • 特性: 为 Docker runner 的配置文件添加网络配置。 #17069 。 文档 此处

  • 修复: 修复 PowerShell conf 的帮助消息。 #17389 。 文档 此处

  • 修复: 修复了在子文件夹中使用 conan.tools.scm.Git.fetch_commit() 时发生的错误。 #17369

  • 修复: 为选项冲突添加 “risk” 警告,以便用户可以在发生冲突时执行 warn-as-error 来引发错误。 #17366

  • 修复: 新的 CMakeDeps 生成器允许用于包内文件的 fooConfig.cmake,除了 foo-config.cmake 之外。 #17330

  • 修复: 在缓存中构建时,为可编辑的依赖项添加警告。 #17325

  • 修复: 如果源补丁在 export_conandata_patches 中不存在,则引发 ConanException。 #17294

  • 修复: 改进 CONAN_LOG_LEVEL 环境变量不正确值的用户体验。 #17280

  • 修复: Meson 与其他构建系统保持一致,将 x86_64->`x86` 视为交叉构建。 #17266

  • 修复: 避免 colorama bug 在大型输出时崩溃。 #17259

  • 修复: 修复 docker runner 测试的 arch。 #17069 。 文档 此处

  • Bugfix: 当 compiler=clangcompiler_executables={"c": "clang-cl"} 时添加正确的标志,以避免在从 Linux 到 Windows 的交叉构建时注入不正确的标志。 #17387

  • Bugfix: 解决使用旧版 choco search --local-only 导致的 Choco().check() bug,已替换为 choco list#17382

  • Bugfix: 修复添加路径中带有空格的 tools.android:ndk_path 的问题。 #17379

  • BugFix: 修复 Premake 集成。 #17350 。 文档 此处

  • Bugfix: 解决 & 模式的消费者包误检测问题。 #17346

  • Bugfix: 修复 Safari 中 conan graph info … -f=html 的问题。 #17335

  • Bugfix: 允许同一依赖项的多个 [replace_requires]#17326

  • Bugfix: BazelDeps 无法找到 OpenSSL 共享库。 #17296

  • Bugfix: 解决 CMake 未使用 tools.microsoft.msbuild:max_cpu_count 中的正确值的 bug。 #17292

  • Bugfix: 修复列表值属性的 cpp_info 属性覆盖而不是合并的问题。对于使 cmake_build_moduleseditable 模式下工作是必要的。 #17214

2.9.3 (2024年11月21日)

  • Bugfix: 修复影响组件检查的 is_test 计算。 #17338

2.9.2 (2024年11月7日)

  • 特性: 使用 center2.conan.io 作为新的默认远程仓库,并警告用户拥有旧的远程仓库。 #17284 。 文档 此处

  • Bugfix: 修复 CMAKE_TOOLCHAIN_FILE 变量的 ROSEnv 引号。 #17270

2.9.1 (2024年10月30日)

  • Bugfix: 修复当 scope=Nonededuce_subsystem 假设 scope 为 build 的问题。 #17251

  • Bugfix: 修复了针对最新编译器版本的 c++26 的 profile.py 插件检查的误报。 #17250

2.9.0 (2024年10月29日)

  • 特性:在 settings.yml 中添加缺失的主要操作系统/编译器版本支持。#17240 。文档 here

  • 特性:conan new 命令学习了默认值 -d name=mypkg -d version=0.1,以简化用户体验。#17186 。文档 here

  • 特性:当修补文件且 recipe 具有 no_copy_source = True 时发出警告,这可能会导致不可预见的问题 #17162

  • 特性:为 tool_requires 添加 self.generator_info,以便将 generators 传播到其直接依赖项。#17129 。文档 here

  • 特性:添加对包含 .conanignore 中忽略的路径的支持。#17123 。文档 here

  • 特性:新的 tools.graph:skip_build conf,能够跳过 tool_requires 的扩展。#17117 。文档 here

  • 特性:新的 tools.graph:skip_test conf,能够跳过 test_requires 的扩展。#17117 。文档 here

  • 特性:为 ROS2(机器人操作系统)添加 ROSEnv generator 集成。#17110

  • 特性:向 conan graph build-order 添加 profile 参数信息,以改善用户体验和在 CI 系统中的使用。#17102 。文档 here

  • 特性:为 gccclangapple-clang 添加 C++26 支持。#17092 。文档 here

  • 特性:为 MSBuildDeps 属性表添加配置和平台键。#17076 。文档 here

  • 特性:新的 CMakeDeps generator 通过 tools.cmake.cmakedeps:new conf 激活,值为 will_break_next 用于评估。这个新的 generator 推断或使用 cpp_info.location/link_location 来定义 STATIC; SHARED, INTERFACE 导入的目标。它还将定义 IMPORTED_LOCATION、IMPORTED_CONFIGURATION 等。#16964

  • 特性:使用 cpp_info.languages,默认为 recipe 的 languages,以将 “link-language” requirements 传播给包的使用者。#16964

  • 特性:仅为新的 CMakeDeps generator 定义 cpp_info.default_components#16964

  • 特性:为可执行应用程序建模 cpp_info.exes 字段,仅由新的 CMakeDeps generator 使用,该 generator 在 CMakeDeps 中为 cpp_info.exes 生成导入的可执行目标。#16964

  • 修复:在 Windows 上为 meson.configure() 使用有效的前缀路径,以避免在 Python 3.13 中出现故障。#17206

  • 修复:允许在 CMakeDeps 中设置 cmake_target_aliases#17200 。文档 here

  • 修复:将启动选项添加到每个 Bazel 命令。#17183

  • 修复:将远程名称添加到登录提示符。#17178

  • 修复:当过期的 token 给出 AuthenticationException 时,获取凭据并重新进行身份验证。#17127

  • 修复:将异常从旧的 from conans.error 移动到有文档记录的 from conan.error#17126 。文档 here

  • 修复:Pacman 作为包管理器不应用于 tools.microsoft.bash:subsystem=msys2,而应在目标平台实际上是 msys2 os.subsystem=msys2(作为设置)时使用。#17103

  • 修复:在 MSBuildToolchain 中从 profile 正确推断 RuntimeLibrary。#17100

  • 修复:对于 gcc >= 10,将 C++20 标志设置为 {gnu}c++20,而不是 c++2a,直到 gcc 12。#17092 。文档 here

  • 修复:对于 gcc >= 11,将 C++23 标志设置为 {gnu}c++23,而不是 c++2b#17092 。文档 here

  • 修复:避免对来自 env-vars 或 credentials.json 文件的凭据的 401 服务器进行重复登录尝试,仅对用户交互式提示重复登录尝试。#17083

  • 修复:使 CMakeToolchain 和 AutotoolsToolchain 自动为 compiler=msvc 定义 cl 编译器(如果未定义)(仅在必要时,例如在 CMake 中使用 Ninja generator 时)。#16875 。文档 here

  • 修复:在 conan graph build-order -f=json 中引用 build_args,以避免选项中带有空格的问题。#16594

  • Bugfix: 改进了 bazeldeps._get_libs() 机制。#17233

  • Bugfix: 改进了在 profile 加载时对不同编译器版本的 cstd 检查。#17157

  • Bugfix: 修复了未定义 cppstd/cstd variable_watch 的问题。#17156

  • Bugfix: 修复了 recipe 不支持所需的版本时 cstd 错误报告的问题。#17156

  • Bugfix: 在 conan_server 中删除用户名权限验证绕过,这可能是一个潜在的安全问题。#17132

  • Bugfix: 现在,列出 semver 规则下版本相等但表示形式不同(即 1.0 & 1.0.0)的 recipes 将返回两个引用。#17121

  • Bugfix: Conan Server: 搜索 recipe 引用时,不要为同一 recipe 引用的每个修订版本返回重复的引用。#17121

  • Bugfix: 空版本范围导致空条件集。#17116

  • Bugfix: 将 # do not sort 注释添加到 deps 部分。Conan 1.61 以来的回归。#17109

  • Bugfix: 使用 Commands API 时恢复 ConanOutput 全局状态。#17095

  • Bugfix: graph build-order 中的 build_args 选项现在尊重引用的上下文。#16594

2.8.1 (2024 年 10 月 17 日)

  • Bugfix: 避免为 test_requires 所需的组件引发错误,这些组件也作为传递性 requires 被需要。#17174

2.8.0 (2024 年 9 月 30 日)

  • 特性:添加对 iOS 18、watchOS 11、tvOS 18、visionOS 2 & macos 15 的支持。#17012 。文档 here

  • 特性:添加 Clang 19 支持。#17010 。文档 here

  • 特性:conan config list <pattern> 用于过滤可用配置。#17000 。文档 here

  • 特性:新的 auth_remote.py 插件,用于自定义用户对 Conan remotes 的身份验证。#16942 。文档 here

  • 特性:新的 auth_source.py 插件,用于自定义用户对通用 sources 下载的身份验证。#16942 。文档 here

  • 特性:向 conan installconan build 添加 –envs-generation={false},以禁用 virtualenvs 的生成 (conanbuildenv.sh|batconanrunenv.sh|bat)。#16935 。文档 here

  • 特性:新的 tools.files.unzip:filter conf,允许为 tgz 文件定义 datatarfully_trusted 解压缩策略。#16918 。文档 here

  • 特性:source()get()unzip() 工具学习了一个新的 extract_filter 参数,用于为 tgz 文件定义 datatarfully_trusted 解压缩策略。#16918 。文档 here

  • 特性:为大于 100Mbs 的大型上传添加每 10 秒的进度更新。#16913

  • 特性:实现 conan config install-pkg --url=<repo-url>,用于在尚未定义 remotes 时初始定义远程 URL。#16876 。文档 here

  • 特性:允许构建与当前 profile 兼容的包。#16871

  • 特性:允许引导启动(依赖于自身的另一个变体),即使对于同一版本也是如此。#16870

  • 特性:允许 [replace_requires] 替换包名称,并且 self.dependencies 仍然可以使用旧名称。#16443

  • 修复:即使定义了 user_toolchain,也让 CMakeToolchain 定义 CMAKE_SYSTEM_XXX,但在 toolchain 真正定义它们的情况下受到保护。#17036 。文档 here

  • 修复:替换生成的 CMake 和 Environment 文件中的 | 字符。#17024

  • 修复:将 PkgConfig stderr 重定向到引发的异常。#17020

  • 修复:始终在 Windows 子系统 bash 路径中使用正斜杠。#16997

  • 修复:当 conan list --graph=<graph-json-file> 文件存在问题时,提供更好的错误消息。#16936

  • Bugfix: PkgConfigDeps.set_property() 未正确设置所有可用的属性。#17051

  • Bugfix: BazelDeps 未找到 DLL 文件,因为 Conan 未在 Windows 平台中对其进行建模。#17045

  • Bugfix: 如果由于 tools.graph:skip_binaries=False 而不跳过包,则不要跳过该包的依赖项。#17033

  • Bugfix: 允许在 diamonds 的情况下使用 requires(..., package_id_mode) trait,以始终使用 recipe 定义的 trait,而与 requires() 顺序无关。#16987

  • Bugfix: 将 include_prerelease 标志传播到 VersionRange 的交集。#16986

  • Bugfix: 如果传递给 conf.get(check_type=bool) 的值无效,则引发错误。#16976

  • Bugfix: 允许 remote_login 接受模式。#16942 。文档 here

2.7.1 (2024 年 9 月 11 日)

  • 特性:添加 apple-clang 16 支持。#16972

  • 修复:为 #19960 添加测试。#16974

  • Bugfix: 还原 “在 CMakePresets.json 中定义编译器变量” 提交 60df72cf75254608ebe6a447106e60be4d8c05a4。#16971

2.7.0 (2024 年 8 月 28 日)

  • 特性:添加 Git.is_dirty(repository=False) 新参数 #16892

  • 特性:在 conan_toolchain.cmake 中为 CMAKE_{C,CXX}_STANDARD 添加 variable_watch。#16879

  • 特性:为 CMakeDeps 的 get_property 添加 check_type#16854 。文档 here

  • 特性:当 visible trait 为 True 时,在 “build” 上下文中向下游传播 run trait requirement 信息。#16849 。文档 here

  • 特性:在组件 get_property 上添加 check_type#16848 。文档 here

  • 特性:为 PkgConfigDeps 添加 set_property,以设置来自使用者 recipes 的 requirements 的属性。#16789

  • 特性:在 CMakePresets.json 中定义 CMAKE_<LANG>_COMPILER 变量。#16762

  • 特性:添加 gcc 14.2 支持。#16760

  • 特性:重做 QbsProfile 以支持 Conan 2。#16742

  • 特性:为包的本地缓存最终调整添加 finalize() 方法。#16646 。文档 here

  • 特性:添加 tricore 编译器架构支持。#16317 。文档 here

  • 特性:在此处描述您的 pull request #16317 。文档 here

  • 修复:将 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_scriptsCMakeToolchain 错误。#16883

  • Bugfix: 当使用 Visual Studio 的 llvm-clang 时,在 MSBuildToolchain 中设置正确的平台工具集。#16844

  • Bugfix: 修复本地 recipes 索引中不存在的 recipes 的 export_sources#16776

2.6.0 (2024 年 8 月 1 日)

  • 特性:添加 build_folder_vars=["const.myvalue"] 以创建用户 “myvalue” 任意值的预设。#16633 。文档 here

  • 特性:在 Bazel 新模板中添加 outputRootDir 作为可选定义。#16620

  • 特性:MakeDeps generator 为依赖项及其组件生成 make 变量。#16613 。文档 here

  • 特性:为 graph build-order 和 graph build-order-merge 添加 html 输出 #16611 。文档 here

  • 特性:引入 core.scm:local_url=allow|block 以控制 conandata scm 中的本地文件夹 URL。#16597 。文档 here

  • 特性:在 GnuToolchainextra_env 属性中添加 XXX_FOR_BUILD 标志和 Android 额外的标志。#16596

  • 特性:在 local-recipes-index 中支持 python_requires#16420 。文档 here

  • 修复:避免 runtime_deployer 部署带有 run=False trait 的依赖项。#16724

  • 修复:改进当传递错误文件夹的 --deployer-folder=xxx 参数时的错误消息。#16723

  • 修复:更改 requirements.txt,以便它也在 FreeBSD 中安装 distro 包。#16700

  • 修复:加载不存在或损坏的 “package list” 文件时,提供更好的错误消息。#16685

  • 修复:从 tools.build:compiler_executables 中删除不支持的 ldar 条目,它们在每个 Conan 集成中都没有效果。#16647

  • 修复:确保正确报告直接 tool requires 冲突,而不是挂起。#16619

  • 修复:更新 runners 功能的 docker 依赖项版本 #16610

  • 修复:当尝试在 conandata scm 中上传具有本地文件夹 URL 的包时,引发错误。#16597 。文档 here

  • Bugfix: 修复带有部分定义的每个包 [settings] 的 profile include()#16720

  • Bugfix: 当包具有组件时,MakeDeps generator 缺少一些聚合变量。#16715

  • Bugfix: 避免在推断兼容性时 settings.update_values() 失败。#16642

  • Bugfix: 修复 Ninja Multi-Config CMake 的 tools.build:defines 处理。#16637

  • Bugfix: 使 conan graph <subcommand> 成为真正的 “install” dry-run。返回相同的错误并给出相同的消息 #16415

2.5.0 (2024 年 7 月 3 日)

  • 特性:新的 tools.cmake.cmaketoolchain:enabled_blocks 配置,用于定义 CMakeToolchain 的哪些块应处于活动状态或不活动状态。#16563 。文档 here

  • 特性:允许在 conan list 中使用 –filter-options 以使用 &: 作用域来引用正在列出的所有包。#16559

  • 特性:在计算依赖关系图时突出显示缺失或无效的 requirements。#16520

  • 特性:新的 conan lock update 子命令,用于在同一命令中删除 + 添加引用。#16511 。文档 here

  • 特性:添加对 GCC 12.4 的支持。#16506 。文档 here

  • 特性:遵循 tools.android:ndk_path conf。设置 Android 交叉构建所需的标志。#16502 。文档 here

  • 特性:为 Android 添加 os.ndk_version#16494 。文档 here

  • 特性:Qbs helper 现在自动调用 Conan provider。#16486

  • 特性:为 tools.cmake.cmaketoolchain:extra_variables 添加 force 选项。#16481 。文档 here

  • 特性:如果同一 Conan profile 文件中存在任何重复的部分,则引发 ConanException。#16454

  • 特性:为 Qbs toolchain 添加 resolve() 方法。#16449

  • 特性:使 MSBuildDeps 生成与 deployer 可重定位。#16441

  • 特性:添加 QbsDeps 类,以便与 Qbs Conan 模块 provider 一起使用。#16334

  • 特性:添加内置 runtime_deploy deployer。#15382 。文档 here

  • 修复:修复了当命名引用与 provider 匹配时,provides 冲突错误消息未显示冲突 provides 的问题。#16562

  • 修复:为 pytest 设置正确的 testpaths#16530

  • 修复:允许文件系统的根目录中存在 .conanrc 文件。#16514

  • 修复:在 conan runners 中添加对非默认 docker hosts 的支持 #16477

  • 修复:当我们无法覆盖备份上传中的摘要文件时,不要失败。#16452

  • 修复:使 source_credentials.json 不适用于 Conan server repos 协议。#16425 。文档 here

  • 修复:允许包具有空文件夹。#16424

  • Bugfix: 修复 detect_api 中的 detect_msvc_compiler(),以正确检测 compiler.version=194 的 VS 17.10。#16581

  • Bugfix: 修复了当 recipe 执行 package_id() info 擦除并用作兼容性候选对象时出现的意外错误。#16575

  • Bugfix: 确保 msvc cppstd 兼容性回退不会忽略 194 二进制文件。#16573

  • Bugfix: 如果使用了 –deployer-folder=xxxx 参数,XXXDeps generators 未在其生成的文件中包含绝对路径。#16552

  • Bugfix: 修复 package revisions 的 conan list … –format=compact#16490

  • Bugfix: 修复仅设置了 defines 时的 XcodeToolchain。#16429

2.4.1 (2024 年 6 月 10 日)

  • 修复:避免 cmake_lib 模板生成的 test_package 上对传递依赖项的 find_package#16451

  • 修复:修复从全新安装的默认 compatibility.py 的向后迁移。#16417

  • Bugfix: 解决 setuptools(Python 中的分布式 Conan 包)打包 “test” 文件夹的问题。#16446

  • Bugfix: 修复了 CMakeToolchain 中使用 --deployer=full_deploy 创建错误转义的回归。#16434

2.4.0 (2024 年 6 月 5 日)

  • 特性:添加对 MacOS sdk_version 14.5 的支持。#16400 。文档 here

  • 特性:为 AutotoolsToolchain 添加 CC_FOR_BUILDCXX_FOR_BUILD 环境变量。#16391 。文档 here

  • 特性:像 AutotoolsToolchain、CMakeToolchain 等其他 toolchains 一样,为 MesonToolchain 添加 extra_xxxx 标志。#16389

  • 特性:为 conan new 命令添加新的 qbs_lib 模板。#16382

  • 特性:新的 detect_api.detect_sdk_version() 方法 #16355 。文档 此处

  • 特性:为 tools.files.rm 添加 excludes 参数,以避免移除模式。 #16350 。文档 此处

  • 特性:允许使用多个 --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

  • 特性:添加对 Bazel >= 7.1 的支持。 #16196 。文档 此处

  • 特性:添加新的 revision_mode ,包括所有内容,直至 recipe-revision,但不包括 package_id#16195 。文档 此处

  • 特性:允许配方 requires(..., visible=False) 自身之前的版本,而不会引发循环错误。 #16132

  • 特性:新的 vendor=True 包创建和构建隔离策略 #16073 。文档 此处

  • 特性:新的 C 标准 compiler.cstd 设置 #16028 。文档 此处

  • 特性:为不同的 C 标准实现了 compatibility.py 默认兼容性 #16028 。文档 此处

  • 特性:实现 check_min_cstd, check_max_cstd, valid_max_cstd, valid_min_cstd, supported_cstd 工具 #16028 。文档 此处

  • 特性:新的 languages = "C", "C++" 类属性,以进一步自动化设置管理 #16028 。文档 此处

  • 特性:向 conan_toolchain.cmake 添加 CONAN_RUNTIME_LIB_DIRS 变量。 #15914 。文档 此处

  • 修复:为 <2.3 版本的默认 compatibility.py 插件实现向后迁移。 #16405

  • 修复:将缺失的 [replace_requires][platform_requires] 添加到配置文件的序列化/转储中。 #16401

  • 修复:修复 Qbs 助手处理路径中空格的问题。 #16382

  • 修复:使 cc 版本检测更加健壮 #16362

  • 修复:允许 --build=missing:& 模式仅在缺失时构建消费者,而不构建其他项。 #16344

  • 修复:允许 “local-recipes-index” 使用自定义 user/channelconan list 包。 #16342

  • 修复:修复 cppstd 函数的文档字符串。 #16341

  • 修复:更改 CMAKE_SYSTEM_VERSION 的自动检测以使用 Darwin 版本。 #16335 。文档 此处

  • 修复:修复 graph build-order 输出中 require 语法。 #16308

  • 修复:通过添加双引号,改进一些命令帮助文档字符串。 #16292

  • 修复:针对不正确的版本范围定义,提供更好的错误消息。 #16289

  • 修复:仅在缓存的配方修订版本确实较新时,才打印相关信息。 #16275

  • 修复:在使用没有模式范围的 options 时发出警告,以改善期望 -o shared=True 应用于依赖项的用户的用户体验。 #16233 。文档 此处

  • 修复:修复非 Conan 自定义命令使用 CommandAPI 时的问题。 #16213

  • 修复:避免在 Python 3.12 中使用已弃用的 datetime 调用。 #16095

  • 修复:处理 Meson 工具链上的 tools.build:sysroot#16011 。文档 此处

  • 缺陷修复:修复在 VS 17.10 更新后,最新的 v14.4 工具集版本中 LLVM/Clang 启用 vcvars 的问题 #16374 。文档 此处

  • 缺陷修复:修复使用 type=shared 的 docker 运行器时出现的配置文件错误 #16364

  • 缺陷修复: conan graph info .. --build=pkg 不会下载 pkg 源码,除非定义了 tools.build:download_source#16349

  • 缺陷修复:解决 CMakeToolchain 和 CMakeDeps 中路径相对化的问题。 #16316

  • 缺陷修复:避免在 MesonToolchain 中清理 tools.build:compiler_executables 值。 #16307

  • 缺陷修复:解决使用 storage_path 自定义配置时, conan cache save/restore tgz 文件中不正确的路径导致崩溃的问题。 #16293

  • 缺陷修复:修复 conan list 中不存在的 graph 文件导致的堆栈跟踪。 #16291

  • 缺陷修复:允许 CMakeDeps 生成器在 xxxConfig.cmake 已经存在时覆盖它。 #16279

  • 缺陷修复:禁止在 source() 方法中访问 self.info#16272

2.3.2 (2024 年 5 月 28 日)

  • 特性:新的 tools.microsoft:msvc_update 配置,用于定义 MSVC 编译器 update,即使未定义 compiler.update 。可用于在使用 VS2022 更新到 17.10 后使用 compiler.version=193 ,这会将默认编译器更改为 compiler.version=194#16332

  • 缺陷修复:允许默认 compatibility.py 插件从 MSVC compiler.version=194->193 回退到其他 cppstd 值。 #16346

  • 缺陷修复:跳过本地配方索引布局中的点文件夹。 #16345

  • 缺陷修复:移除生成的 conanvcvars.ps1 中多余的反斜杠。 #16322

2.3.1 (2024 年 5 月 16 日)

  • 特性:添加 GCC 13.3 支持。 #16246 。文档 此处

  • 特性:允许选择退出 CMakeToolchain 默认对 CMakeUserPresets->CMakePreset 和 CMakePresets->toolchainFile 路径使用绝对路径。 #16244 。文档 此处

  • 修复:修复 Docker 运行器的配置容器名称。 #16243

  • 缺陷修复:使兼容性检查能够理解 update 标志模式。 #16252

  • 缺陷修复:解决菱形结构中 lockfilesoverrides 导致的错误。 #16235

  • 缺陷修复:允许将 export-pkg --version=xxx 传递给具有从基类继承 set_versionpython_requires 的配方。 #16224

2.3.0 (2024 年 5 月 6 日)

  • 特性:允许在 rm_safe 中使用 * 通配符作为子集。 #16105 。文档 此处

  • 特性:在运行 conan upload 时显示配方和包大小。 #16103

  • 特性:扩展 conan version 以报告当前的 python 和系统信息,用于故障排除。 #16102 。文档 此处

  • 特性:为主流编译器(如 gcc、msvc、clang)向公共 detect_api 添加 detect_xxxx_compiler()#16092 。文档 此处

  • 特性:为 .conanignore 文件添加注释支持。 #16087

  • 特性:在 graph html 搜索栏中,现在可以输入以逗号分隔的多个搜索模式。 #16083

  • 特性:在 graph html 中添加了 “filter packages” 栏,该栏接受以逗号分隔的多个搜索模式,并从 graph 中隐藏过滤器。 #16083

  • 特性:为 Git 操作添加参数 hide_url ,以允许记录仓库 URL。默认情况下,URL 将保持 <hidden>,但用户可以选择退出此设置。 #16038

  • 特性:允许在 export()export_sources() 方法中访问 .conf (仅限于 global.conf 信息,而不是配置文件信息)。 #16034 。文档 此处

  • 特性:避免在 copy() 中复制相同的现有文件。 #16031

  • 特性:新的 conan pkglist merge 命令,用于合并多个包列表。 #16022 。文档 此处

  • 特性:新的 conan pkglist find-remote 命令,用于在远程仓库中查找与缓存中包列表匹配的包。 #16022 。文档 此处

  • 特性:在 CMakePresets 生成中相对化路径。 #16015

  • 特性:向 conanfile.py 添加新的 test_package_folder 属性,以定义与默认 test_package 不同的自定义位置和名称。 #16013 。文档 此处

  • 特性:新的 conan create --test-missing 语法,用于在实际创建包时选择性地运行 test_package (与 --build=missing 一起使用时很有用)。 #15999 。文档 此处

  • 特性:向 conf 添加 tools.gnu:build_triplet#15965

  • 特性:为 conan profile detect 添加 --exist-ok 参数,以便在配置文件已存在时不会失败,而不会覆盖它。 #15933

  • 特性:如果 native=True,MesonToolchain 可以生成 native 文件(仅在交叉编译时才有意义)。 #15919 。文档 此处

  • 特性:如果 native 和 cross 文件都存在,Meson 助手会注入它们。 #15919 。文档 此处

  • 特性:添加对 meson 子项目的支持。 #15916 。文档 此处

  • 特性:添加了对在 Docker 容器中透明运行 Conan 的支持。 #15856 。文档 此处

  • 修复:允许为 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 detectdetect_api )。 #16074

  • 修复:通过针对无效的 ==, ~=, ^= 运算符提供更好的错误消息,改进版本范围定义的用户体验。 #16069

  • 修复:改进当 settings.ymlsettings_user.yml 不正确时的错误消息用户体验。 #16065

  • 修复:针对自 2021 年以来已 EOL 的 Python 3.6 用法打印警告。 #16003

  • 修复:移除 Autotools 助手中的重复命令行打印。 #15991

  • 修复:向 FileDownloader 中的 HTTP 状态 401 错误添加响应错误消息输出。 #15983

  • 修复:将 gcc 14 添加到默认 settings.yml#15958

  • 修复:使 VCVars 使用 compiler.update 来指定工具集。 #15947

  • 修复:为跨构建 Linux->Windows 的 compiler_executablesAutotoolsToolchain 映射添加 rc#15946

  • 修复:将 Pop!_OS 添加到使用 apt-get 作为系统包管理器的发行版中。 #15931

  • 修复:不要警告包含 - 字符的包名称。 #15920

  • 修复:修复新的 --format=html graph 输出的 html 转义,并传递 graph 序列化对象而不是字符串。 #15915

  • 缺陷修复:使 MesonToolchain 监听 tools.build:defines 配置变量。 #16172 。文档 此处

  • 缺陷修复:禁止在 validate_build() 方法中访问 self.cpp_info#16135

  • 缺陷修复:当 .conanrcconan_home 无效时,不显示跟踪。 #16134

  • 缺陷修复:避免将 tool_requires 的传递依赖项传播到生成器信息,即使它们被标记为 visible=True#16077

  • 缺陷修复: BazelDeps 现在使用 requirement.build 属性而不是 dependency.context 属性。 #16025

  • 缺陷修复:使 conan cache restore 在恢复到本地缓存中已有的包上时正常工作。 #15950

2.2.3 (2024 年 4 月 17 日)

  • 修复:修复使用 settings_user 中的架构时 to_apple_archs 方法。 #16090

2.2.2 (2024 年 3 月 25 日)

  • 修复:避免配方 print(..., file=fileobj) 出现问题。 #15934

  • 修复:修复使用重复关键字参数对 print(x, file=y) 的错误调用。 #15912

  • 缺陷修复:修复多配置 CMake 的 tools.build:defines 处理。 #15924

2.2.1 (2024 年 3 月 20 日)

  • 修复:在 distutils 移除后,为与 Python>=3.12 兼容性添加 copytree_compat 方法。 #15906

2.2.0 (2024 年 3 月 20 日)

  • 特性:如果使用通用二进制语法,则为 CMakeToolchain 以外的工具链引发异常。 #15896

  • 特性:警告位置不当的 requirement 函数调用 #15888

  • 特性:打印由不同分支配方定义选项值引起的图中选项冲突。 #15876 。文档 此处

  • 特性:向 settings.yml 添加 macOS 版本 14.2、14.3、14.4。 #15859 。文档 此处

  • 特性:新的 graph html :更多信息,test-requires,隐藏/显示不同的包(build,test)。 #15846 。文档 此处

  • 特性:为 conan cache clean 添加 –backup-sources 标志。 #15845

  • 特性:添加 conan graph outdated 命令,该命令列出在远程仓库中具有较新版本的依赖项 #15838 。文档 此处

  • 特性:使用 Visual Studio 时,从 CMakeToolchain 设置 CMAKE_VS_DEBUGGER_ENVIRONMENT 以指向所有二进制目录。这消除了将 DLL 复制到从 Visual Studio IDE 启动可执行文件的需要(需要 CMake 3.27 或更高版本)。 #15830 。文档 此处

  • 特性:为 trim_conandata 添加一个参数,以避免在 conandata.yml 文件不存在时引发异常。 #15829 。文档 此处

  • 特性:为 PkgConfigDeps 添加了 build_context_folder ` 。 `#15813 。文档 此处

  • 特性:在 MesonToolchain 模板的内置选项部分中包含 build.pkg_config_path ` 。 `#15813 。文档 此处

  • 特性:更新 _meson_cpu_family_map 以支持 arm64ec#15812

  • 特性:添加了对 Clang 18 的支持。 #15806 。文档 此处

  • 特性:在 CMakeToolchain 中添加了对通用二进制文件的基本支持。 #15775 。文档 此处

  • 特性:新的 tools.cmake.cmake_layout:build_folder 配置,允许重新定义 cmake_layout 本地构建文件夹。 #15767 。文档 此处

  • 特性:新的 tools.cmake.cmake_layout:test_folder 配置,允许重新定义 cmake_layout 输出构建文件夹以用于 test_package ,包括 $TMP 占位符,以在系统 tmp 中创建临时文件夹。 #15767 。文档 此处

  • 特性:(实验性)在具有新的 package_type = "configuration" 的 Conan 包内添加 conan config install-pkg myconf/[*] 新配置。 #15748 。文档 此处

  • 特性:(实验性)新的 core.package_id:config_mode ,允许配置包引用影响使用该配置构建的所有包的 package_id#15748 。文档 此处

  • 特性:公开 cppstd_flag 以基于设置返回相应的 C++ 标准标志。 #15710 。文档 此处

  • 特性:允许在 build_folder_vars 属性和配置中使用 self.nameself.version#15705 。文档 此处

  • 特性:添加 conan list --filter-xxx 参数以列出与设置+选项匹配的包二进制文件。 #15697 。文档 此处

  • 特性:向 detect_api 添加 detect_libc 以获取 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 定义在没有值时(Python None )为 "None" 字面字符串。 #15756

  • 修复:改进了 conan install <path> --deployer-package=* 在使用 self.package_folder 时崩溃的情况。 #15737

  • 修复:修复大型依赖关系图的 conan graph info –format=html#15724

  • 修复:使所有配方和插件 python 文件 print()stderr ,以便 json 输出到 stdout 不会被破坏。 #15704

  • 修复:修复获取 Linux x86 的 gnu 三元组。 #15699

  • Bug修复: 解决在列表内部的字符串中使用时,global.conf 中的 conan_home_folder 反斜杠问题。 #15870

  • Bug修复: 修复当 build_type 上存在条件依赖时,CMakeDeps 多配置的问题。 #15853

  • Bug修复: 将 get_backup_sources() 方法从 UploadAPI 移动到预期的 CacheAPI#15845

  • Bug修复: 避免当 conandata.yml 中的版本列表没有补丁时出现 TypeError。 #15842

  • Bug修复: 解决 package_type=build-scripts 与锁文件和 conan create 命令一起使用时的问题。 #15802

  • Bug修复: 如果 recipe 指定了 user 属性,则允许使用 --channel 命令行参数。 #15794

  • Bug修复: 修复从 Windows 交叉编译到 Android 时使用 MesonToolchain 的问题。 #15790

  • Bug修复: 当定义了 compiler.update 时,修复 CMakeToolchain GENERATOR_TOOLSET。 #15789

  • Bug修复: 解决当 conf 条目与 Python 模块匹配时的评估问题。 #15779

  • Bug修复: 修复 PkgConfigDeps 为其 tool_requires 生成 .pc 文件的问题,当它已经在构建上下文中时。 #15763

  • Bug修复: 将 VISIBILITY 标志添加到 CONAN_C_FLAGS#15762

  • Bug修复: 修复具有作用域 conf 的配置文件的 conan profile show –format=json 命令。 #15747

  • Bug修复: 修复 Conan API 中 update 参数的遗留用法。 #15743

  • Bug修复: 解决当字符串包含 Windows 反斜杠时,配置文件 [conf] 损坏的问题。 #15727

  • Bug修复: 修复元数据版本范围的版本优先级。 #15653

2.1.0 (2024年2月15日)

  • 新功能: 在 CMakeToolchain 中实现多配置 tools.build:xxxx 标志。 #15654

  • 新功能: 添加将模式传递给 –update 标志的能力。 #15652 . 文档 here

  • 新功能: 为 conan build 添加 –format=json 格式化器。 #15651

  • 新功能: 添加 tools.build.cross_building:cross_build 以决定是否进行交叉编译,而无需考虑 Conan 内部机制。 #15616

  • 新功能: 为 conan cache path 添加 –format=json 选项。 #15613

  • 新功能: 为 conan graph build-order 添加 –order-by 参数。 #15602 . 文档 here

  • 新功能: 提供一个新的 graph build-order --reduce 参数,以将顺序专门减少到需要从源代码构建的包。 #15573 . 文档 here

  • 新功能: 添加配置以在 Visual Studio CMake 生成器中的 CMakeToolchain 中指定所需的 CUDA 工具包。 #15572 . 文档 here

  • 新功能: 新的 “important” 选项值定义,比常规选项值定义具有更高的优先级。 #15571 . 文档 here

  • 新功能: 调用 deactivate_conanvcvars 时显示消息。 #15557

  • 新功能: 将 package_idself.info 信息添加到图中的序列化输出,并将其转发到包列表。 #15553 . 文档 here

  • 新功能: 在详细模式下运行时记录 Git 工具命令。 #15514

  • 新功能: 为 conan.tools.files.copy() 调用添加详细调试信息 (使用 -vvv)。 #15513

  • 新功能: 为 python_requires 的显式 test_package 定义 python_requires = "tested_reference_str"#15485 . 文档 here

  • 新功能: 添加 CMakeToolchain.presets_build/run_environment 以在 generate() 方法中修改 CMakePresets 环境。 #15470 . 文档 here

  • 新功能: 为 remotes 添加 –allowed-packges 以限制 remote 可以提供的引用。 #15464 . 文档 here

  • 新功能: 使 RemotesAPI 公开可用的初始文档 (实验性)。 #15462

  • 新功能: 添加从 powershell 调用时使用 vcvars 环境变量的支持。 #15461 . 文档 here

  • 新功能: 新的 Git(..., excluded=[]) 功能,以避免 Git 助手中的 “dirty” 错误。 #15457 . 文档 here

  • 新功能: 新的 core.scm:excluded 功能,以避免 Git 助手和 revision_mode = "scm" 中的 “dirty” 错误。 #15457 . 文档 here

  • 新功能: recipe python_package_id_mode 用于 python_requires recipes,以定义每个 recipe 对消费者 package_id 的影响。 #15453 . 文档 here

  • 新功能: 将 cmakeExecutable 添加到配置预设。 #15447 . 文档 here

  • 新功能: 添加新的 --core-conf 命令行参数,以允许通过 CLI 传递 core. confs。 #15441 . 文档 here

  • 新功能: 将 detect_api.detect_msvc_update(version) 助手添加到 detect_api#15435 . 文档 here

  • 新功能: CMakeToolchain 在生成的 CMakePresets.json buildPresets 中定义 jobs#15422

  • 新功能: 允许在 settings.yml 中嵌套 “ANY” 定义。 #15415 . 文档 here

  • 新功能: 助手 Git().coordinates_to_conandata()Git().checkout_from_conandata_coordinates() 简化基于 scm 的流程。 #15377

  • 新功能: AutotoolsToolchain 自动为 VS 注入 -FS#15375

  • 新功能: 新的 conan upload core.upload:parallel 用于更快的并行上传。 #15360 . 文档 here

  • 新功能: Intel oneAPI 编译器检测改进。 #15358

  • 新功能: 显示长时间运行的 conan list 命令的进度。 #15354

  • 新功能: 添加 extension_properties 属性以将信息从 recipes 传递到 extensions。 #15348 . 文档 here

  • 新功能: 在 compatibility.py 插件的 extension_properties 中实现 compatibility_cppstd,以禁用 recipe 回退到其他 cppstd。 #15348 . 文档 here

  • 新功能: 添加 Git.get_commit(..., repository=True) 以获取仓库 commit,而不是文件夹 commit。 #15304

  • 新功能: 确保 --build=editable--build=cascade 一起工作。 #15300 . 文档 here

  • 新功能: 新的 conan graph build-order --order=configuration 输出不同的顺序,按包二进制文件/配置排序,而不是按 recipe 修订版本分组。 #15270 . 文档 here

  • 新功能: 允许从 --format=compact 复制粘贴带有时间戳的 recipe 修订版本到 conan lock add 中。 #15262 . 文档 here

  • 修复: 保证 generators 属性执行的顺序。 #15678

  • 修复: 解决构建配置文件和上下文中 [platform_tool_requires] 的问题。 在构建配置文件中丢弃 [platform_requires]#15665

  • 修复: 修复 conda 环境中的 gcc 检测。 #15664

  • 修复: 改进上传备份源时对 .dirty 下载文件的处理。 #15601

  • 修复: 修复生成文件中的相对路径。 #15592

  • 修复: 允许 CMakeToolchain.preprocessor_definitionsNone 值,这将映射到没有值的定义。 #15545 . 文档 here

  • 修复: 修复 graph build-order –order=configuration 文本格式输出。 #15538

  • 修复: 如果用户想要在离线模式下工作,当 remote 不可访问时,引发有用的错误。 #15516

  • 修复: 当源备份不存在元数据时,避免缺少文件堆栈跟踪。 #15501

  • 修复: 删除 --lockfile-packages 参数,它没有被记录在案,因为它不打算公开使用。 #15499 . 文档 here

  • 修复: 如果 check_type=int 且 conf 值设置为 bool,则引发错误。 #15378

  • 修复: 由于 pkgconfig 条目自 Meson 1.3.0 起已弃用,因此将 pkg-config 条目添加到 MesonToolchain 生成的 machine 文件中。 #15369

  • 修复: 修复 graph explain 在缺少需求时未显示某些差异的问题。 #15355

  • 修复: 修复当模式与任何定义的 conf 都不匹配时,tools.info.package_id:confs 的问题。 #15353

  • 修复: 修复 upload_policy=skip--build=missing 一起使用时的问题。 #15336

  • 修复: 接受 conan download/upload --list=.. --only-recipe 仅下载 recipes。 #15312

  • 修复: 允许为使用多配置系统构建但没有 build_type 设置的 recipes 使用 cmake.build(build_type="Release")#14780

  • Bug修复: 修复 MSBuildDeps 与组件和跳过的依赖项一起使用时的问题。 #15626

  • Bug修复: 避免 provides 为自身 tool_requires 以进行交叉构建的包引发错误。 #15575

  • Bug修复: 修复 tools.microsoft.visual.VCVars 中构建范围 OS 检测。 #15568

  • Bug修复: 修复当依赖项为仅标头时,visible=False 的错误传播。 #15564

  • Bug修复: 将临时缓存文件夹存储在 core.cache:storage_path 中,以便 conan cache clean 也能正确找到并清理它们。 #15505

  • Bug修复: conan export-pkg --format=json 输出现在返回 recipe = "cache" 状态,因为 recipe 在命令后位于缓存中。 #15504

  • Bug修复: conan export-pkg 命令存储锁文件时,排除了 test_package,与 conan create 的行为相同。 #15504

  • Bug修复: 避免 conan testpython_requires test-package 失败。 #15485 . 文档 here

  • Bug修复: MesonToolchain 计算有效的 apple_min_version_flag#15465

  • Bug修复: 允许在 build_id()package_id() 方法中使用子设置限制 oscompiler 和其他设置。 #15439

  • Bug修复: 修复获取环境变量 CONAN_LOGIN_USERNAME_REMOTE。 #15388

  • Bug修复: 不要将 . 文件夹考虑在 tools.files.copy() excludes 模式中。 #15349

  • Bug修复: 禁用创建没有名称和版本的 editables。 #15337

  • Bug修复: 修复 Git.get_url_and_commit 为某些 Git 配置引发错误的问题。 #15271

  • Bug修复: 不应跳过正在构建的包的 “host” 上下文中的直接依赖项。 这允许将 “host” 上下文中的非 C/C++ 库工件(如图像)用作构建时资源。 #15128

2.0.17 (2024年1月10日)

  • 修复: 如果 conan cache save --file=subfolder/file.tgz 子文件夹不存在,则自动创建文件夹。 #15409

  • Bug修复: 修复使用 CC/CXX 环境变量时的 libcxx 检测。 #15418 . 文档 here

  • Bug修复: 解决 cmake_minimum_required(3.27)CMakeToolchain 生成器中的 winsdk_version 错误。 #15373

  • Bug修复: 修复带有 build=True trait 的可见 trait 传播。 #15357

  • Bug修复: 修复通过 tools.info.package_id:confs 包含 conf 值时的 package_id 计算。 #15356

  • Bug修复: 对 conf 条目进行排序,以便在转储它们时允许可重现的 package_id,而与 confs 的声明顺序无关。 #15356

2.0.16 (2023年12月21日)

  • Bug修复: 恢复 source_buildenv 的默认值,默认情况下将其设置为 False#15319 . 文档 here

2.0.15 (2023年12月20日)

  • 新功能: 新的 conan lock remove 命令,用于从锁文件中删除 requires。 #15284 . 文档 here

  • 新功能: 新的 CMake.ctest() 助手方法,用于直接启动 ctest,而不是通过 cmake --target=RUN_TEST#15282

  • 新功能: 在 <host_version> 中为不同的引用添加跟踪语法。 #15274 . 文档 here

  • 新功能: 添加 tools.microsoft:winsdk_version conf,使 VCVars 生成器使用给定的 winsdk_version#15272 . 文档 here

  • 新功能: 为 conan export 命令添加 pkglist 格式化器。 #15266 . 文档 here

  • 新功能: 定义 CONAN_LOG_LEVEL 环境变量,以便能够在全局级别更改详细程度。 #15263 . 文档 here

  • 新功能: 如果请求的文件夹不存在,conan cache path xxx –folder xxxx 会引发错误。 #15257

  • 新功能: 为 ConanFile 的 self.dependencies 添加 in 运算符支持。 #15221 . 文档 here

  • 新功能: 使 CMakeDeps 生成器创建一个 conandeps.cmake,它以类似 cmake-like 生成器样式聚合所有直接依赖项。 #15207 . 文档 here

  • 新功能: 将构建环境信息添加到 CMake 配置预设,并将运行环境信息添加到 CMake 测试预设。 #15192 . 文档 here

  • 新功能: 删除了一个关于 conan 迁移的潜在问题的警告,该警告会在每次构建失败时打印。 #15174

  • 新功能: recipes 中用于显式每个 recipe 部署的新 deploy() 方法。 #15172 . 文档 here

  • 新功能: 允许在 source() 方法中使用 tool-requires 注入环境。 #15153 . 文档 here

  • 新功能: 允许从 ConfigAPI 访问 settings.yml (和 settings_user!) 的内容。 #15151

  • 新功能: 从 ConfigAPI 添加内置 conf 访问。 #15151

  • 新功能: 将 redirect_stdout 添加到 CMake 集成方法。 #15150

  • 新功能: 添加 core:warnings_as_errors 配置选项,使 Conan 在警告和错误时引发异常。 #15149 . 文档 here

  • 新功能: 在 ftp_download 中使用 secure 参数添加 FTP_TLS 选项,以实现安全通信。 #15137

  • 新功能: 配置文件中新的 [replace_requires][replace_tool_requires] 用于重新定义 requires,对于包替换(如 zlibng/zlib)非常有用,以解决冲突,并将某些依赖项替换为包装在另一个 Conan 包 recipe 中的系统替代方案。 #15136 . 文档 here

  • 新功能: 将 stderr 捕获参数添加到 conanfile 的 run() 方法。 #15121 . 文档 here

  • 新功能: 新的 [platform_requires] 配置文件定义,以便能够用平台提供的依赖项替换 Conan 依赖项。 #14871 . 文档 here

  • 新功能: 新的 conan graph explain 命令,用于搜索、比较和解释缺少的二进制文件。 #14694 . 文档 here

  • 新功能: 全局 cpp_info 可用于初始化组件值。 #13994

  • 修复: 使 core:warnings_as_errors 接受列表 #15297

  • 修复: 修复当没有给出分隔符时,user confs 包作用域。 #15296

  • 修复: 修复涉及范围的冲突报告中的范围转义。 #15222

  • 修复: 允许硬 set_name()set_version() 突变命令行中提供的名称和版本。 #15211 . 文档 here

  • 修复: 使 conan graph info –format=text 打印到 stdout。 #15170

  • 修复: 避免由于 CMAKE_POLICY_DEFAULT_CMP0091 未使用变量而在 CMake 输出中发出警告。 #15127

  • 修复: 弃用 [system_tools],转而使用 [platform_tool_requires],以便与常规依赖项的 [platform_requires] 对齐。 将输出从 “System tool” 更改为 “Platform”。 #14871 . 文档 here

  • Bug修复: 确保 user confs 至少有 1 个 : 分隔符 #15296

  • Bug修复: Git.is_dirty() 将使用 git status . -s 以确保它仅处理当前路径,而不是整个 repo,与其他 Git 方法类似。 #15289

  • Bug修复: 使 self.info.clear() 和仅标头包删除 python_requirestool_requires#15285 . 文档 here

  • Bug修复: 使 conan cache save/restore 在 Windows 和其他操作系统之间可移植。 #15253

  • Bug修复: 不要在 deployers 中相对化绝对路径。 #15244

  • Bug修复: 将 architecture 添加到 CMakePresets,以避免在使用预设时 cmake 忽略工具链定义。 #15215

  • Bug修复: 修复 conan graph info –format=html 报告误导性冲突节点的问题。 #15196

  • Bug修复: 修复 conan profile show –format=json 中 tool_requires 的序列化。 #15185

  • Bugfix: 修复 NMakeDeps 引用问题。 #15140

  • Bugfix: 修复 2.0.14 迁移,在定义 storage_path 配置时,向缓存添加 LRU 数据。 #15135

  • Bugfix: 修复 conan export-pkg 命令的 package_metadata_folder 定义。 #15126

  • Bugfix: pyinstaller.py 因无用的 distutils 导入而在 Python 3.12 中损坏。 #15116

  • Bugfix: 修复未设置 core.sources:download_cache 时的备份源错误。 #15109

2.0.14 (11 月 14 日 - 2023 年)

  • Feature: 在默认 settings.yml 中添加了 riscv64, riscv32 架构,并在 Meson 和 Autotools 中对其进行管理。 #15053

  • Feature: 允许仅建立一个同时进行的数据库连接。 #15029

  • Feature: 添加 conan cache backup-upload 以上传缓存中的所有备份源,无论它们来自哪个引用 #15013 。文档 此处

  • Feature: 新的 conan list --format=compact,以获得更好的用户体验。 #15011 。文档 此处

  • Feature: 通过传递 –metadata=”” 忽略元数据上传 #15007 。文档 此处

  • Feature: conan upload 中更好的输出消息 #14984

  • Feature: 向 CMakeToolchain 添加额外的标志。 #14966 。文档 此处

  • Feature: 实现从缓存加载/恢复包,用于 CI 工作流程和通过气隙移动包。 #14923 。文档 此处

  • Feature: 计算版本范围交集,以避免兼容范围的版本图冲突 #14912

  • Feature: CMake 助手可以在 target 参数中使用多个目标。 #14883

  • Feature: 向 settings.yml 添加 Macos 13.6。 #14858 。文档 此处

  • Feature: 添加 CMakeDeps 和 PkgConfigDeps 生成器,以监听 system_package_version 属性。 #14808 。文档 此处

  • Feature: 在 cli 中添加速记语法,以在一个参数中指定 host 和 build #14727 。文档 此处

  • Feature: 实现缓存 LRU 控制,以清理未使用的工件。 #14054 。文档 此处

  • Fix: 避免在未定义布局或 output-folder 时,CMakeToolchain 覆盖用户 CMakePresets.json #15058

  • Fix: 在 SystemPackageManager 中添加 astraelbrusaltlinux 作为使用 apt 的发行版 #15051

  • Fix: 在 Linux Mint 中默认使用 apt-get 包管理器 #15026 。文档 此处

  • Fix: 使 Git() 即使对于浅克隆也检查远程服务器中的提交。 #15023

  • Fix: 向 settings.yml 添加新的 Apple 操作系统版本 #15015

  • Fix: 修复 AutotoolsToolchain extraflags 优先级。 #15005 。文档 此处

  • Fix: 从 conan --version 输出中删除颜色 #15002

  • Fix: 如果 sqlite3 版本不受支持(低于 2012 年的 3.7.11),则添加错误消息 #14950

  • Fix: 使缓存 DB 始终对路径使用正斜杠,以便在 Windows 和 Linux 上保持一致 #14940

  • Fix: 解决现有包修订版本的重新构建问题(例如强制重新构建现有的仅标头包),而先前的文件夹仍被其他项目使用。 #14938

  • Fix: 避免配方改变 conf 以影响其他配方。 #14932 。文档 此处

  • Fix: 通过 Apt.install()PkgConfig.fill_cpp_info 输出的系统包(如 xorg/system)对 Conan 输出来说非常嘈杂,使其更安静 #14924

  • Fix: 序列化 python_requirespath 信息,这对于计算 buildinfo 是必要的 #14886

  • Fix: 在配方具有需要从远程下载的 python_requires 的情况下,在 conan source 命令中定义远程仓库。 #14852

  • Fix: 修复 xros 和 xros-simulator 的最小目标标志。 #14776

  • Bugfix: 在 tool_requires 具有传递依赖项的情况下,--build=missing 正在对不需要且可以跳过的包进行不必要的构建。 #15082

  • BugFix: 在 ‘conan export-pkg’ 命令中为 format=json 添加包修订版本 #15042

  • Bugfix: 当存在可编辑包时,tools.build:download_source=True 不会失败。 #15004 。文档 此处

  • Bugfix: 传递依赖项被错误地添加到 conandeps.xcconfig。 #14898

  • Bugfix: 当未下载 export_source 时,修复完整性检查(upload --checkcache check-integrity)。 #14850

  • Bugfix: 正确锁定 python requires 的候选版本。 #14846

  • BugFix: 以 - 结尾的版本范围不会自动激活完整范围内的预发布版本解析。 #14814 。文档 此处

  • BugFix: 修复版本范围,以便预发布版本正确包含在下限中,并排除在上限之外。 #14814 。文档 此处

2.0.13 (9 月 28 日 - 2023 年)

  • Bugfix: 修复 2.0.11 中引入的较新 apple-clang 版本的错误 cppstd 检测。 #14837

2.0.12 (9 月 26 日 - 2023 年)

  • Feature: 添加对 Clang 17 的支持。 #14781 。文档 此处

  • Feature: 为 conan remove 添加 –dry-run#14760 。文档 此处

  • Feature: 在 package_manager 中的 install() 方法中添加 host_tool,以指示包是主机工具还是库。 #14752 。文档 此处

  • Fix: 尝试 export-pkg python-require 包时,提供更好的错误消息,并避免导出然后失败。 #14819

  • Fix: CMakeDeps 允许在所有属性上 set_property()#14813

  • Fix: 为 Apple clang 15.0 添加次要版本。 #14797 。文档 此处

  • Fix: 当未提供 <path> 参数时,conan build 命令提供更漂亮的错误信息。 #14787

  • Bugfix: 修复 compatibility()settings_target 的覆盖,使其变为 None #14825

  • Bugfix: compatible 包首先在缓存中查找,只有在未找到时才在服务器中查找,以便在存在兼容包时允许离线安装。 #14800

  • BugFix: 重用 ConanRequester 中的会话以加速请求。 #14795

  • Bugfix: 修复 editable 包在部分定义目录时的相对路径。 #14782

2.0.11 (9 月 18 日 - 2023 年)

  • Feature: 向 conan profile show 命令添加 --format=json 格式化程序 #14743 。文档 此处

  • Feature: 向 ‘conan build’ cmd 添加新的 –deployer –generators 参数 #14737 。文档 此处

  • Feature: 更好的 CMakeToolchain 块接口。添加了新的 .blocks.select().blocks.keys()#14731 。文档 此处

  • Feature: 添加从下载缓存复制大文件而不是从服务器下载时的消息。 #14716

  • Feature: 如果直接使用任何选项,MesonToolchain 将显示警告消息。 #14692 。文档 此处

  • Feature: 在默认 profile 插件中支持 clang-cl。 #14682 。文档 此处

  • Feature: 添加了机制,如果将 ccpp 和/或 ld 二进制变量声明为空格分隔的字符串,则将其从 Meson 转换为列表。 #14676

  • Feature: 向 dnf 包管理器映射添加 nobara 发行版。 #14668

  • Feature: 确保 meson toolchain 使用 clang-cl 设置 b_vscrt#14664

  • Feature: 支持 conf tools.info.package_id:confs 的正则表达式模式 #14621 。文档 此处

  • Feature: MakeDeps:提供 “require” 信息和更多样式调整。 #14605

  • Feature: 新的 detect_api,用于 profiles jinja 模板中。 #14578 。文档 此处

  • Feature: 允许在 compatibility 方法中访问 settings_target#14532

  • Fix: 添加缺少的次要 macos 版本 #14740 。文档 此处

  • Fix: 改进 ConanApi 初始化失败时的错误消息, #14735

  • Fix: CMakeDeps:删除关于重复别名的 “目标名称 … 已存在” 警告。 #14644

  • Bugfix: 修复当 win_bash=TrueGit.run() 中的回归。 #14756

  • Bugfix: 将 conan.tools.system.package_manager.Apt 中的默认 check=False 更改为 True,与其他包管理器工具一样。 #14728 。文档 此处

  • Bugfix: 解决了带有菱形结构的 test_requires 的传递共享依赖项的传播问题。 #14721

  • Bugfix: 解决 conan export-pkgtest_package 调用远程仓库时的崩溃问题。 #14712

  • Bugfix: 不要二进制跳过具有未跳过的传递依赖项的包,否则构建系统到这些传递依赖项的构建链(如 CMakeDeps 生成的文件)将被破坏。 #14673

  • Bugfix: 修复在原生 ARM64 Windows 上运行 conan profile detect 时检测到的 CPU 架构。 #14667

  • Bugfix: 如果 conan lock create --update 现在正确更新来自服务器的引用,如果它们比缓存中的更新。 #14643

  • Bugfix: 修复不必要地用转义序列装饰命令 stdout。 #14642

  • Bugfix: tools.info.package_id:confs 不应影响仅标头的库。 #14622

2.0.10 (8 月 29 日 - 2023 年)

  • Feature: 允许在 conandata.yml 定义中使用 patch_user 来表示用户补丁,这些补丁不由 apply_conandata_patches() 处理。 #14576 。文档 此处

  • Feature: 支持 Xcode 15、iOS 17、tvOS 17、watchOS 10、macOS 14。 #14538

  • Feature: 如果用户添加不正确的 ConanCenter web URL 作为远程仓库,则引发错误。 #14531

  • Feature: 使用 --format=json 序列化图时,向 python_requires 添加信息,以便 conan list --graph 也可以列出 python_requires#14529

  • Feature: 向图 json 序列化添加 rrevrrev_timestampprev_timestamp#14526

  • Feature: 允许 version-ranges 也解析为可编辑包。 #14510

  • Feature: 添加 tools.files.download:verify#14508 。文档 此处

  • Feature: 添加对 Apple visionOS 的支持。 #14504

  • Feature: 警告未知的版本范围选项。 #14493

  • Feature: 添加 tools.graph:skip_binaries 以控制图中的二进制跳过。 #14466 。文档 此处

  • Feature: 新的 tools.deployer:symlinks 配置,用于禁用部署器中的符号链接复制。 #14461 。文档 此处

  • Feature: 允许远程仓库自动解析 ‘editable add’ 中缺少的 python_requires#14413 。文档 此处

  • Feature: 为 CMake.install() 添加 cli_args 参数。 #14397 。文档 此处

  • Feature: 允许 test_requires(..., force=True)#14394 。文档 此处

  • Feature: 新的 credentials.json 文件,用于存储 Conan 远程仓库的凭据。 #14392 。文档 此处

  • Feature: 添加了对 apk 包管理器和 Alpine Linux 的支持 #14382 。文档 此处

  • Feature: 当在 Visual Studio 提示符中调用 conan profile detect 时,如果定义了 CCCXX 并指向 cl 编译器可执行文件,则现在可以检测 msvc 的版本 #14364

  • Feature: 正确记录 --build=editable 构建模式。 #14358 。文档 此处

  • Feature: 新的 conan create --build-test=missing 参数,用于控制作为 test_package 文件夹的依赖项构建的内容。 #14347 。文档 此处

  • Feature: 为在配方中定义 tool_requires 的选项提供新的 default_build_options 属性。 #14340 。文档 此处

  • Feature: 实现 ...@ 作为指示与没有用户/通道的包匹配的模式。 #14338 。文档 此处

  • Feature: 通过新的 MakeDeps 生成器添加对 Makefile 的支持 #14133 。文档 此处

  • Fix: 允许在 conan create 中为 python-requires 使用 –format=json #14594

  • Fix: 删除 conan v2 ready conan-center 链接。 #14593

  • Fix: 使 conan inspect 默认使用所有远程仓库。 #14572 。文档 此处

  • Fix: 允许在版本预发布版本中使用额外的连字符。 #14561

  • Fix: 即使定义了 tools.cmake.cmaketoolchain:user_toolchain,也允许使用为 tools.cmake.cmaketoolchain 定义的 confs。 #14556 。文档 此处

  • Fix: 在 --format=json 中将图的 dependencies 中的布尔值序列化为布尔值,而不是字符串。 #14530 。文档 此处

  • Fix: 避免在 conan upload 中出现错误,当 python_requires 不在缓存中且需要下载时。 #14511

  • Fix: 改进 lock add 的错误检查,添加完整的包引用而不是配方引用。 #14491

  • Fix: 当内置部署器未能复制文件时,提供更好的错误消息。 #14461 。文档 此处

  • Fix: 不要将未捕获的堆栈跟踪打印到 stdout,而是打印到 stderr#14444

  • Fix: 在 --format=json 输出中序列化 conf_info#14442

  • Fix: MSBuildToolchain/MSBuildDeps:避免将 C/C++ 编译器选项作为 ResourceCompile 的选项传递。 #14378

  • Fix: 删除插件文件会导致更好的错误消息,而不是堆栈跟踪。 #14376

  • Fix: 修复 armv8/aarch64 上的 CMake 系统处理器名称。 #14362

  • Fix: 使备份源 core.sources conf 不强制要求最终斜杠。 #14342

  • Fix: 正确地将配方 default_options 中定义的选项传播到 test_requires#14340 。文档 此处

  • Fix: 使用 conanfile.run() 调用 XCRun,以便注入环境。 #14326

  • Fix: 为 conan config install 使用 abspath,以避免符号链接问题。 #14183

  • Bugfix: 解决当多个不同的 package_ids 重用相同的构建文件夹时,build_id() 问题。 #14555

  • Bugfix: 避免在使用包列表时,未向 conan download 提供时间戳时出现 DB 错误。 #14526

  • Bugfix: 将异常堆栈跟踪(当设置 -vtrace 时)打印到 stderr 而不是 stdout #14522

  • Bugfix: 仅打印在 conan upload 中以交互方式确认的包。 #14512

  • Bugfix: ‘conan remove’ 输出缓存中与过滤器匹配的所有条目,而不仅仅是用户确认的条目。 #14478

  • Bugfix: 当没有 –user 时传递 –channel 时,提供更好的错误。 #14443

  • Bugfix: 修复已在“build” 上下文中的包的 tool_requiressettings_target 计算。 #14441

  • Bugfix: 避免在定义 core.download:parallel 时出现 DB is locked 错误。 #14410

  • Bugfix: 在使用部署器时,使生成的 powershell 环境脚本相对化。 #14391

  • Bugfix: 修复 profile [tool_requires] 使用被忽略的修订版本的问题。 #14337

2.0.9 (7 月 19 日 - 2023 年)

  • Feature: 在 ConanFile 中添加 implements 属性,以提供对某些选项和设置的自动管理。 #14320 。文档 此处

  • Feature: 添加 apple-clang 15。 #14302

  • Fix: 当使用 revision_mode = “scm_folder” 时,允许存储库在 conanfile.py 文件夹外部为脏状态。 #14330

  • Fix: 改进 compatibility.pyprofile.py 插件中错误的错误消息并提供 Conan 跟踪信息。 #14322

  • Fix: 在每次消息写入后 flush() 输出流。 #14310

  • Bugfix: 修复包签名插件未验证下载源的问题。 #14331 。文档 此处

  • Bugfix: 修复 CMakeUserPresets 由于拼写错误而从 conan 生成的预设继承。 #14325

  • Bugfix: 如果多个用户预设从同一 conan 预设继承,则 ConanPresets.json 包含重复的预设。 #14296

  • Bugfix: Meson prefix 参数作为 UNIX 路径传递。 #14295

  • Bugfix: 修复当 tools.build:verbosity 设置为 quiet 时,CMake Error: Invalid level specified for –loglevel 错误。 #14289

2.0.8 (7 月 13 日 - 2023 年)

  • Feature: 向默认 settings.yml 添加 GCC 10.5。 #14252

  • Feature: 让 pkg_config_custom_content 覆盖由 PkgConfigDeps 创建的默认 *.pc 变量。 #14233 。文档 此处

  • Feature: 让 pkg_config_custom_content 也是类似字典的对象。 #14233 。文档 此处

  • Feature: fix_apple_shared_install_name 工具现在使用 xcrun 来解析 otoolinstall_name_tool 程序。 #14195

  • Feature: 自动管理 shared、fPIC 和 header_only 选项。 #14194 。文档 此处

  • Feature: 自动管理仅标头库包类型的包 ID。 #14194 。文档 此处

  • Feature: 用于 CMakeDeps 生成器的新 cpp_info.set_property("cmake_package_version_compat" , "AnyNewerVersion")#14176 。文档 此处

  • Feature: 元数据改进。 #14152

  • Fix: 改进使用 conan test 命令时缺少二进制文件的错误消息。 #14272

  • Fix: 使 conan download 命令不再需要加载 conanfile,不会因 1.X 配方或缺少的 python_requires 而失败。 #14261

  • Fix: 现在使用带有 –list 参数的 upload 允许空配方列表。 #14254

  • Fix: 保证 Options.rm_safe 永远不会引发异常。 #14238

  • Fix: 允许 tools.gnu:make_program 影响每个 CMake 配置。 #14223

  • Fix: 向 conan new lib 模板添加缺少的 package_type#14215

  • Fix: 添加在查询包引用时显示的默认文件夹的说明。 #14199 。文档 此处

  • Fix: 启用 patch() 函数中现有的状态消息代码。 #14177

  • Fix: 在 XcodeDeps 中使用 configuration 而不是始终使用 build_type#14168

  • Fix: 尊重缓存位置的符号链接路径。 #14164

  • Fix: PkgConfig 使用 conanfile.run() 而不是内部运行器来从配置文件和依赖项中获取完整的 Conan 环境。 #13985

  • Bugfix: 修复 CMakeDeps CMAKE_FIND_LIBRARY_SUFFIXES 变量的泄漏。 #14253

  • Bugfix: 修复当检测到多个自定义全局生成器时,conan 无法按名称查找生成器的问题。 #14227

  • Bugfix: 改进 conan graph info 在 html 格式中图形冲突的显示效果。 #14190

  • Bugfix: 修复从 Linux 到 OSX 的 CMakeToolchain 交叉编译问题。 #14187

  • Bugfix: 修复当未选择任何软件包时备份源中的 KeyError 错误。 #14185

2.0.7 (2023年6月21日)

  • Feature: 添加新的 arm64ec 架构,用于定义 CMAKE_GENERATOR_PLATFORM。 #14114 . 文档 here

  • Feature: 使 CppInfo 成为公共的、有文档记录的、可导入的工具,供需要聚合它们的生成器使用。 #14101 . 文档 here

  • Feature: 允许 conan remove --list=pkglist 删除软件包列表。 #14082 . 文档 here

  • Feature: conan remove --format 的输出同时支持文本(已删除内容的摘要)和 json 格式。 #14082 . 文档 here

  • Feature: 添加 core.sources:excluded_urls 以备份源。 #14020

  • Feature: conan test 命令学习了 --format=json 格式化程序。 #14011 . 文档 here

  • Feature: 允许在 conan list (以及 download、upload、remove)模式中使用 pkg/[version-range] 表达式。 #14004 . 文档 here

  • Feature: 添加等效于 1.X conan upload --skip-uploadconan upload --dry-run 命令。 #14002 . 文档 here

  • Feature: 添加新命令 conan version 以格式化输出。 #13999 . 文档 here

  • Feature: 改进下载大文件时打印一些信息的 UX。 #13989

  • Feature: 将 PackagesList 用作 conan upload --list=pkglist.json 的输入参数。 #13928 . 文档 here

  • Feature: 使用 --graph 输入 conan list 以创建一个 PackagesList,该列表可用作 conan upload 的输入。 #13928 . 文档 here

  • Feature: 与 recipes 和 packages 关联的新元数据文件,可以在 package 存在后上传、下载和添加。 #13918

  • Feature: 允许指定自定义部署器输出文件夹。 #13757 . 文档 here

  • Feature: 将构建和编译详细程度控制拆分为两个 confs。 #13729 . 文档 here

  • Feature: 在 PkgConfigDeps 中,将 bindir 添加到生成的 .pc 文件中。 #13623 . 文档 here

  • Fix: 弃用 Conan 1.X 中遗留的 AutoPackage#14083 . 文档 here

  • Fix: 修复用于默认构建配置文件的 conf 条目的描述。 #14075 . 文档 here

  • Fix: 允许 Git 助手中的路径包含空格。 #14063 . 文档 here

  • Fix: 删除 conanfile.xxx_folder 中破坏 msys2 等子系统的尾随句点 .#14061

  • Fix: 避免在图中某个中间 package 调用 aggregated_components() 且使用 --deployer 时出现缓存问题,生成器仍然指向 Conan 缓存而不是部署副本。 #14060

  • Fix: 允许内部 Cli 对象被多次调用。 #14053

  • Fix: 强制 Python 3.10 使用 pyyaml>=6,因为之前的版本已损坏。 #13990

  • Fix: 改进当 Conan 无法显示其中一个冲突 recipe 时,图形冲突消息。 #13946

  • Bugfix: 解决从服务器下载非最新修订版本时时间戳中的错误。 #14110

  • Bugfix: 修复可编辑 package 中的双重基本路径设置。 #14109

  • Bugfix: 如果 conan graph build-order 图形有任何错误,则引发异常,而不是静默地无所作为并输出空 json。 #14106

  • Bugfix: 当文件夹具有重叠的匹配名称时,避免 editable package 的不正确路径替换。 #14095

  • Bugfix: 将 clang 设置为 FreeBSD 检测到的默认编译器。 #14065

  • Bugfix: 将前缀变量和任何自定义内容(通过 pkg_config_custom_content 属性)添加到 PkgConfigDeps 已生成的 pkg-config 根 .pc 文件中。 #14051

  • Bugfix: conan create 命令对于 --format=json 结果图始终返回相同的输出,而与 test_package 是否存在无关。 #14011 . 文档 here

  • Bugfix: 修复定义 self.folders.root=".." 父目录时 editable package 的问题。 #13983

  • Bugfix: 删除了 libdir1includedir1 作为默认索引。现在,PkgConfigDeps 默认在 .pc 文件中创建 libdirincludedir 变量。 #13623 . 文档 here

2.0.6 (2023年5月26日)

  • Feature: 添加 tools.cmake:cmake_program 配置项,以允许指定所需 CMake 可执行文件的位置。 #13940 . 文档 here

  • Fix: 在图形 json 输出中将 “id” 属性输出为 str 而不是 int。 #13964 . 文档 here

  • Fix: 修复图层中的自定义命令无法执行本地导入的问题。 #13944

  • Fix: 改进下载 + 解压缩的输出。 #13937

  • Fix: 在 conan config install 中为 package_manager:mode 添加缺失的值。 #13929

  • Bugfix: 确保 graph infocreateexport-pkginstall 的图形信息 JSON 输出相同。 #13967 . 文档 here

  • Bugfix: test_requires 像常规 requires 一样影响消费者的 package_id,但它们不应该这样做。 #13966

  • Bugfix: 当 -c tools.build:download_source=True 时,在 json 输出中正确定义 source_folder#13953

  • Bugfix: 修复并完善了 graph info xxxx –format json 输出,以便公开记录它。 #13934 . 文档 here

  • Bugfix: 修复 premakedeps 中的 “double” 绝对路径。 #13926

  • Bugfix: 修复了 2.0.5 https://github.com/conan-io/conan/pull/13898 中的回归问题,其中 package 和组件规范的覆盖失败 #13923

2.0.5 (2023年5月18日)

  • Feature: -v 参数默认为 VERBOSE 级别。 #13839

  • Feature: 避免显示不必要的跳过依赖项。现在,如果存在跳过的二进制文件,则仅显示引用名称列表。可以通过向当前命令添加 -v(verbose 模式)来完全列出它们。 #13836

  • Feature: 允许对本地构建的 package 使用 --build 进行依赖项步入式调试 #13833 . 文档 here

  • Feature: 允许使用 upload_policy="skip"build_policy="missing" 构建不可重定位的本地 package #13833 . 文档 here

  • Feature: 当计算 package-revision 时,不要移动缓存中的 “build” 文件夹,以允许使用步入式调试来定位依赖项的源 #13810

  • Feature: 新的 settings.possible_values() 方法,用于查询 setting 的可能值范围。 #13796 . 文档 here

  • Feature: 当 upload_policy=skip 时,优化并避免访问服务器以获取二进制文件 #13771

  • Feature: 部分相对化生成的环境 .sh shell 脚本 #13764

  • Feature: 改进 settings.yml 错误消息 #13748

  • Feature: 自动创建空的 global.conf,以改进在 home 中查找文件的 UX。 #13746 . 文档 here

  • Feature: 将配置文件名呈现为 profile_name #13721 . 文档 here

  • Feature: 缓存 “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 . 文档 here

  • Feature: 引入新的 core:skip_warns 配置,以便能够静默输出中的某些警告。 #13706 . 文档 here

  • Feature: 将 info_invalid 添加到图形节点序列化 #13688

  • Feature: 计算和报告图形中的 overrides,以及 graph build-order 中的 overrides #13680

  • Feature: 用于单仓库项目的新 revision_mode = "scm_folder",这些项目想要使用 scm 修订版本。 #13562 . 文档 here

  • Feature: 演示可以 tool_requires 同一 package 的不同版本。 #13529 . 文档 here

  • Fix: build_scripts 现在默认将 run 特性设置为 True #13901 . 文档 here

  • Fix: 修复 XcodeDeps 包含跳过的依赖项的问题。 #13880

  • Fix: 不允许在 pkg/version 引用字段中换行。 #13870

  • Fix: 修复 Windows 子系统的 AutotoolsToolchaintools.build:compiler_executable 定义。 #13867

  • Fix: 加快 CMakeDeps 的生成速度。 #13857

  • Fix: 修复导入的库配置后缀。 #13841

  • Fix: 当定义未知的 conf 时失败。 #13832

  • Fix: 修复 conan install/create 命令中 “skipped” 二进制文件的不正确打印,当它们被其他一些依赖项使用时。 #13778

  • Fix: 将缓存 “deploy” 文件夹重命名为 “deployers”,并允许使用 -d, --deployer cli 参数。(“deploy” 文件夹不会中断,但会警告为已弃用)。 #13740 . 文档 here

  • Fix: 省略 header-only 库的 CMakeDeps 中的 -L libpaths。 #13704

  • Bugfix: 修复当 test_requires 也是常规传递 “host” requires 并且消费者定义组件时的问题。 #13898

  • Bugfix: 修复在 recipes 中定义的选项(如 *:shared=True)的传播。 #13855

  • Bugfix: 修复 ‘graph build-order’ 和 ‘test’ 命令的 --lockfile-out 路径。 #13853

  • Bugfix: 确保在更多情况下上传备份源。 #13846

  • Bugfix: 修复 settings.ymlintel-cc cppstd=03 的定义。 #13844

  • Bugfix: 修复 conan upload 对仅导出的 recipes 使用备份源的问题。 #13779

  • Bugfix: 修复包含别名的 lockfile 的 conan lock merge#13763

  • Bugfix: 修复具有版本范围的传递依赖项中的 python_requires。 #13762

  • Bugfix: 修复 baremetal 的 CMakeToolchain CMAKE_SYSTEM_NAME=Generic。 #13739

  • Bugfix: 修复不正确的环境脚本停用顺序。 #13707

  • Bugfix: 解决当图形具有 override=True 的 requirements 时 lockfile 失败的问题。 #13597

2.0.4 (2023年4月11日)

  • Feature: 将 --build-require 扩展到更多命令(graph infolock createinstall)和用例。 #13669 . 文档 here

  • Feature: 将 -d tool_requires 添加到 conan new#13608 . 文档 here

  • Feature: 使 CMakeDeps、CMakeToolchain 和 Environment (.bat, 仅限 Windows) 生成的文件具有相对路径。 #13607

  • Feature: 添加对 premake5 deps (PremakeDeps) 的初步(未记录,仅限开发人员)支持。 #13390

  • Fix: 将旧的 conan user 引用更新为 conan remote login#13671

  • Fix: 改进 requirements() 错误消息中依赖项选项已更改的提示。 #13668

  • Fix: [system_tools] 没有报告正确的已解析版本,但仍然是原始范围。 #13667

  • Fix: 改进 provides 冲突消息错误。 #13661

  • Fix: 当服务器响应禁止下载 recipe/package 中的 1 个文件时,确保其他文件和数据库已清理。 #13626

  • Fix: 当使用 –package-query 但未提供与 package 匹配的模式时,在 conan remove 中添加错误提示。 #13622

  • Fix: 为 direct_deploy 部署器添加 direct_deploy 子文件夹。 #13612 . 文档 here

  • Fix: 修复当模式未列出 package 修订版本时,例如:conan list "*#*:*" 的 html 输出。 #13605

  • Bugfix: 当 package 没有 settings 或 options 时,conan list -p <package-query> 失败。 #13662

  • Bugfix: python_requires 现在正确加载远程 requirements。 #13657

  • Bugfix: 修复当 override 在图形节点中使用,并且该节点也是菱形图的闭合节点时发生的崩溃。 #13631

  • Bugfix: 修复 options--package-query 参数。 #13618

  • Bugfix: 为 full_deploy 部署器添加 full_deploy 子文件夹,以避免与 “build” 文件夹冲突。 #13612 . 文档 here

  • Bugfix: 将 STATUS 设置为默认日志级别。 #13610

  • Bugfix: 修复 conan cache clean 中的双重删除错误。 #13601

2.0.3 (2023年4月3日)

  • Feature: conan cache clean 学习了 --all--temp 以清理所有内容(源、构建)以及临时文件夹。 #13581 . 文档 here

  • Feature: 引入具有 *= 运算符的 conf 字典更新语义。 #13571 . 文档 here

  • Feature: 支持 MacOS SDK 13.1 (在 Xcode 14.2 中可用)。 #13531

  • Feature: full_deploy 部署器与 CMakeDeps 生成器一起学习创建相对路径部署,因此它们是可重定位的。 #13526

  • Feature: 引入 conan remove *#!latest (也适用于 package 修订版本),以删除除最新版本外的所有修订版本。 #13505 . 文档 here

  • Feature: 新的 conan cache check-integrity 命令,以替换 1.X 旧版 conan upload --skip-upload --check#13502 . 文档 here

  • Feature: 在 conan list html 输出中添加选项和 settings 的筛选。 #13470

  • Feature: 自动服务器端第三方源备份。 #13461

  • Feature: 添加 tools.android:cmake_legacy_toolchain 配置,在为 Android 构建 CMake 项目时很有用。如果已定义,这将设置 ANDROID_USE_LEGACY_TOOLCHAIN_FILE 的值。如果通过 tools.build:cflagstools.build:cxxflags 定义了编译器标志,则将其设置为 False 可能很有用,以防止 Android 的旧版 CMake 工具链覆盖这些值。 #13459 . 文档 here

  • Feature: 默认 tools.files.download:download_cachecore.download:download_cache,因此只需定义一个即可。 #13458

  • Feature: tools.files.download() 的身份验证。 #13421 . 文档 here

  • Fix: 定义一种在 python_requires_extend 扩展中更新 default_options 的方法。 #13487 . 文档 here

  • Fix: 再次允许指定 self.options["mydep"].someoption=value,等效于 "mydep/*"#13467

  • Fix: 为使用 VS2019 和 VS2022 的 meson 生成 c++20 的 cpp_std=vc++20,而不是 vc++latest#13450

  • Bugfix: 修复 CMakeDeps 未清除 find_library() 中的 CONAN_SHARED_FOUND_LIBRARY 变量。 #13596

  • Bugfix: 不允许添加超过 1 个具有相同远程名称的远程仓库。 #13574

  • Bugfix: cmd_wrapper 添加了缺失的参数 conanfile#13564 . 文档 here

  • Bugfix: 避免由于可编辑 package 的依赖项二进制文件为 “skip” 而导致的生成器错误。 #13544

  • Bugfix: 修复父命令带有下划线时的子命令名称。 #13516

  • Bugfix: 修复运行 conan export-pkg 时远程仓库中的 python-requires#13496

  • Bugfix: 可编辑 package 现在也遵循 build_folder_vars 配置。 #13488

  • Bugfix: 修复 [system_tools] 配置文件组合。 #13468

2.0.2 (2023年3月15日)

  • Feature: 允许 global.conf 中相对于 Conan home 文件夹的相对路径。 #13415 . 文档 here

  • Feature: conan list 命令中 html 格式化程序的一些改进。 #13409 . 文档 here

  • Feature: 向 Autotools 类的 autoreconf 方法添加了一个可选的 “build_script_folder” 参数。它镜像了同一类的 configure 方法的相同参数和行为。也就是说,它允许覆盖工具的运行位置(默认情况下在 source_folder 中运行)。 #13403

  • Feature: 创建缓存内容的摘要。 #13386

  • 功能: 添加 conan config show <conf> 命令。 #13354 。 文档 here

  • 功能: 允许 global.conf jinja2 包含其他文件。 #13336

  • 功能: 添加 conan export-pkg --skip-binaries 以允许导出时不包含依赖项的二进制文件。 #13324 。 文档 here

  • 功能: 添加 core.version_ranges:resolve_prereleases conf 以控制版本范围是否可以解析为预发布版本 #13321

  • 修复: 允许在 conan create 中自动处理 package_type = "build-scripts" 作为 --build-require#13433

  • 修复: 改进服务器端软件包损坏的检测和消息。 #13432

  • 修复: 修复 conan download 帮助中的错别字。 #13430

  • 修复: 从 conan profile path 中删除 profile 参数。 #13423 。 文档 here

  • 修复: 修复 _detect_compiler_version 中的错别字。 #13396

  • 修复: 修复 conan profile detect 在 OSX 上对 clang 编译器检测 libc++ 的问题。 #13359

  • 修复: 允许内部 vswhere 调用检测和使用 VS 预发布版本。 #13355

  • 修复: 允许 conan export-pkg 使用远程仓库来安装缓存中缺少的依赖项。 #13324 。 文档 here

  • 修复: 允许在 settings_user.yml 定义 dict 时,将 settings.yml 列表转换为 dict#13323

  • 修复: 修复从 macOS 交叉编译到非 Apple OS 时 AutotoolsToolchain 传递的标志。 #13230

  • BugFix: 修复自定义配置包含空格时 MSBuild 中的问题。 #13435

  • Bugfix: 解决 conan profile path <nonexisting> 崩溃的错误。 #13434

  • Bugfix: 添加全局详细级别 conf tools.build:verbosity,而不是单独的级别。 #13428 。 文档 here

  • Bugfix: 避免为格式错误的自定义命令引发致命异常。 #13365

  • Bugfix: 不要从依赖项中省略 system_libs,即使它们是仅头文件的。 #13364

  • Bugfix: 修复实例化 MesonToolchain 时未创建 VirtualBuildEnv 环境的问题。 #13346

  • Bugfix: 在兼容性插件中,使用自定义编译器时提供更友好的错误信息。 #13328

  • Bugfix: 添加 qcc cppstd 兼容性信息以允许计算依赖关系图。 #13326

2.0.1 (2023年3月3日)

  • 功能: 在 config install 中为 –verify-ssl 添加 –insecure 别名。 #13270 。 文档 here

  • 功能: 为 conan config install 添加 .conanignore 支持。 #13269 。 文档 here

  • 功能: 使异常的详细回溯信息显示在 -vv-vvv 中,而不是 1.X 中使用的自定义环境变量。 #13226

  • 修复: 对 conan install 和 2.0 准备就绪错误消息进行小幅改进。 #13299

  • 修复: 删除 vcvars.bat VS 遥测环境变量,以避免 Conan 挂起。 #13293

  • 修复: 删除 CMakeToolchainCMakeUserPresets.json 的旧版 CMakePresets schema2 支持。 #13288 。 文档 here

  • 修复: 删除 --logger json 日志记录和旧版跟踪。 #13287 。 文档 here

  • 修复: 修复 conan remote auth 帮助中的错别字。 #13285 。 文档 here

  • 修复: 如果 conan config list unexpected-arg,则引发 arg 错误。 #13282

  • 修复: 不要为 msvc 自动检测 compiler.runtime_type,依赖于 profile 插件。 #13277

  • 修复: 修复 conanfile.txt 选项解析错误消息。 #13266

  • 修复: 改进选项中统一模式的错误消息。 #13264

  • 修复: 允许 conan remote add --force 强制重新定义现有远程仓库名称。 #13249

  • 修复: 恢复打印 build 命令的 profile。 #13214

  • 修复: 更改 conan build 参数 “path” 的描述,以表明它仅适用于 conanfile.py,并明确声明它不适用于 conanfile.txt。 #13211 。 文档 here

  • 修复: 当依赖项 optionsrequirements() 方法中定义时,提供更好的错误消息。 #13207

  • 修复: 修复来自错误消息和 readme 的断开的文档链接。 #13186

  • Bugfix: 确保 topics 始终序列化为列表。 #13298

  • Bugfix: 确保 provides 始终序列化为列表。 #13298

  • Bugfix: 修复了某些 visual c++ 安装的检测。 #13284

  • Bugfix: 修复 msvc 编译器支持的 cppstd 值。 #13278

  • Bugfix: CMakeDeps 为 tool_requires 生成文件时,使用与 “host” 上下文相同的 build_type#13267

  • Bugfix: 修复 configure() 中依赖项选项模式的定义。 #13263

  • Bugfix: 修复 CMakeToolchain 在不同 Win 驱动器中输出文件夹时的错误。 #13248

  • Bugfix: 如果组件 .requires 未使用 test_requires,则不引发错误。 #13191

2.0.0 (2023年2月22日)

  • 功能: 将 apple-clang 的默认 profile cppstd 更改为 gnu17。 #13185

  • 功能: 新的 conan remote auth 命令,用于强制远程仓库进行身份验证 #13180

  • 修复: 允许在 test_requires(..., options={}) 中定义 options trait #13178

  • 修复: 统一 Conan 命令帮助消息。 #13176

  • Bugfix: 修复 MesonToolchain 在 apple-clang 中错误的 cppstd #13172

  • 功能: 改进的全局 Conan 输出消息(create、install、export 等)。 #12746

2.0.0-beta10 (2023年2月16日)

  • 功能: 为 conan list 命令添加基本 html 输出。 #13135

  • 功能: 允许 test_package 处理 --build 参数(为主图,非 test_package 图计算 –build=never)。 #13117

  • 功能: 为 remote add 添加 –force 参数。 #13112

  • 功能: 验证输入配置是否存在,以避免拼写错误。 #13110

  • 功能: 允许在 recipes layout() 中定义 self.folders.build_folder_vars#13109

  • 功能: 阻止 settings 分配。 #13099

  • 功能: 改进 conan editable ui。 #13093

  • 功能: 为用户提供扩展 Conan 生成的 CMakePresets 的能力。 #13090

  • 功能: 添加错误消息,以帮助将 recipes 迁移到 2.0,包括来自 ConanCenter 和用户仓库的 recipes。 #13074

  • 功能: 在 conan new 模板中为 shared 删除 option.fPIC。 #13066

  • 功能: 添加 conan cache clean 子命令以清理 build 和 source 文件夹。 #13050

  • 功能: 实现可自定义的 CMakeToolchain.presets_prefix,以便 presets 名称预先添加此前缀。 #13015

  • 功能: 在 profiles 中添加 [system_tools] 部分,以使用您自己安装的工具,而不是在 requires 中声明的软件包。 #10166

  • 修复: 修复 powershell 转义中的问题。 #13084

  • 修复: 默认定义 CMakeToolchain.presets_prefix="conan",以避免与其他用户 presets 冲突。 #13015

2.0.0-beta9 (2023年1月31日)

  • 功能: 在 Conan 缓存哈希路径中添加软件包名称。 #13011

  • 功能: 实现 tools.build:download_source conf,以强制在 conan installconan graph info 中安装源文件。 #13003

  • 功能: 用户可以在 settings_user.yml 中定义自己的 settings,这些 settings 将与 Conan settings.yml 合并。 #12980

  • 功能: 也列出禁用的远程仓库。 #12937

  • 修复: PkgConfiDeps 正在使用 dependencies 中的错误 dependencies.host,而不是 get_transitive_requires() 计算。 #13013

  • 修复: 修复 CMakeDeps 中传递共享 linux 库的问题。 #13010

  • 修复: 修复 test_package 输出文件夹的问题。 #12992

  • 修复: 改进错误方法的错误消息。 #12962

  • 修复: 修复由于数据库并发问题导致的并行软件包下载失败。 #12930

  • 修复: 启用对禁用远程仓库的身份验证。 #12913

  • 修复: 改进 system_requirements。 #12912

  • 修复: 将 tar 格式更改为 PAX,这是 Python3.8 的默认格式。 #12899

2.0.0-beta8 (2023年1月12日)

  • 功能: 添加 unix_path_package_info_legacy 函数,用于需要在 package_info 中使用该函数以兼容 Conan 1.x 的情况。 在 Conan 2 中,不应在 package_info 方法中执行路径转换。 #12886

  • 功能: conan list 的新序列化 json 和打印输出。 #12883

  • 功能: 向 conan new cmake_{lib,exe} 添加 requirements。 #12875

  • 功能: 允许使用 --no-remotes 强制临时禁用远程仓库 #12808

  • 功能: 向 conan new 添加 barebones 模板选项。 #12802

  • 功能: 如果传递了 PkgID,则避免请求软件包配置。 #12801

  • 功能: 实现了 conan list *#latestconan list *:*#latest。 基本上,此命令可以显示所有匹配引用的最新 RREV 和 PREV。 #12781

  • 功能: 允许链接 self.output write 方法 #12780

  • 修复: 使 graph info 过滤器也适用于 json 输出 #12836

  • Bugfix: 修复在使用 AutotoolsToolchain 并在 Windows 上交叉构建时传递有效 GNU triplet 的错误。 #12881

  • Bugfix: 如果 ref.name 相同但版本不同,则进行排序。 #12801

2.0.0-beta7 (2022年12月22日)

  • 功能: 当在 generators 属性中定义生成器并在 generate() 方法中实例化生成器时,引发错误 #12722

  • 功能: test_requires 改进,包括允许在 conanfile.txt 中使用 #12699

  • 功能: 改进 required_conan_version 在运算符和版本之间有空格时的错误信息 #12695

  • 功能: ConanAPI 清理和组织 #12666

2.0.0-beta6 (2022年12月2日)

  • 功能: 使用 --confirm 在删除时无需请求确认,而不是 --force #12636

  • 功能: 简化加载 conaninfo.txt 以获取搜索结果 #12616

  • 功能: 将 ConanAPIV2 重命名为 ConanAPI #12615

  • 功能: 重构 ConanAPI #12615

  • 功能: 改进 conan cache path 命令 #12554

  • 功能: 改进从 remove/upload/download 中选择 #latest 和模式 #12572

  • 功能: 添加 build_modules 到提供的已弃用警告,以允许从 1.x 迁移 #12578

  • 功能: Lockfiles 别名支持 #12525

2.0.0-beta5 (2022年11月11日)

  • 功能: 改进远程仓库管理和 API #12468

  • 功能: 在 Conan 2.0 中将 env_info 和 user_info 实现为伪属性 #12351

  • 功能: 改进 settings.rm_safe() #12379

  • 功能: 新的 RecipeReference 相等性 #12506

  • 功能: 简化 .tgz 文件的压缩和解压缩 #12378

  • 功能: conan source 命令不需要默认 profile #12475

  • 功能: 创建了适当的 LockfileAPI,具有详细的方法(update、save 等),而不是几个松散的方法 #12502

  • 功能: conan export 也可以生成 lockfiles,对于执行 2 步流程(export + install–build)的用户是必需的 #12502

  • 功能: 删除 compat_app #12484

  • 修复: 修复 transitive_headers=True 的传递传播 #12508

  • 修复: 修复静态库的 transitive_libs=False 的传递传播 #12508

  • 修复: 修复 python_requires 的 test_package #12508

2.0.0-beta4 (2022年10月11日)

  • 功能: 不允许使用 revision_mode=scm 对未提交的更改执行 conan create/export #12267

  • 功能: 简化 conan inspect 命令,删除 path 子命令 #12263

  • 功能: 向 graph info 命令添加 –deploy 参数 #12243

  • 功能: 将 graph 对象传递给 deployers,而不是 ConanFile #12243

  • 功能: 向 conan.tools.scm.Git 添加 included_files 方法 #12246

  • 功能: 改进 clang libcxx 的检测 #12251

  • 功能: 删除旧的 profile 变量系统,转而支持 profiles 中的 Jinja2 语法 #12152

  • 修复: 更新 command 以遵循关于 CLI 输出的 Conan 2.0 约定 #12235

  • 修复: 修复 diamonds 中 test trait 的聚合 #12080

2.0.0-beta3 (2022年9月12日)

  • 功能: 将 test_package 与 create 解耦。 #12046

  • 功能: 如果导出的 refs 中有特殊字符,则发出警告。 #12053

  • 功能: MSBuildDeps traits 的改进。 #12032

  • 功能: 添加了对 CLICOLOR_FORCE 环境变量的支持,如果该值已声明且不为 0,则将激活输出中的颜色。 #12028

  • 修复: 为所有配置仅调用一次 source()。 #12050

  • 修复: 修复 deployers 未创建 output_folder 的问题。 #11977

  • 修复: 修复 build_id() 删除 require 的问题。 #12019

  • 修复: 如果 Conan 未能加载自定义命令,则现在会抛出有用的错误消息。 #11720

  • Bugfix: 如果在 build profile 中未指定 ‘os’,并且在 Windows 中,recipe 想要运行命令。 #11728

2.0.0-beta2 (2022年7月27日)

  • 功能: 在 MSBuildDeps 中添加 traits 支持。 #11680

  • 功能: 在 XcodeDeps 中添加 traits 支持。 #11615

  • 功能: 让依赖项定义 package_id 模式。 #

  • 功能: 添加 conan.conanrc 文件以设置 conan 用户主目录。 #11675

  • 功能: 添加 core.cache:storage_path 以声明要存储 Conan 软件包的绝对路径。 #11672

  • 功能: 添加用于检查最大 cppstd 版本的工具。 #11610

  • 功能: 添加一个 post_build_fail hook,在构建失败时调用。 #11593

  • 功能: 添加 pre_generatepost_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,用于用户自动化

  • 功能: 新的构建系统集成,更灵活、更强大,并在可能的情况下提供透明集成,例如 CMakeDepsCMakeToolchain

  • 功能: 新的自定义用户命令,可以使用公共 PythonAPI 构建,并可以使用 conan config install 共享和安装

  • 功能: 新的 CLI 界面,具有更简洁的命令和更结构化的输出

  • 功能: 新的 deployers 机制,用于将工件从缓存复制到用户文件夹,并在构建时使用这些副本。

  • 功能: 改进的 package_id 计算,考虑了新的更详细的 graph 模型。

  • 功能: 添加了 compatibility.py 扩展机制,以允许用户全局定义二进制兼容性。

  • 功能: 更简单、更强大的 lockfiles,以提供随时间推移的可重现性。

  • 功能: 通过 [conf] 更好的配置,以及通过新的 conan.tools.env 工具更好的环境管理。

  • 功能: Conan 缓存现在可以同时存储多个修订版本。

  • 功能: 新的扩展插件,用于实现 profile 检查、软件包签名和构建命令包装。

  • 功能: 使用软件包不变性来改进更新、安装和上传流程。