变更日志

有关 Conan 2 相对于 Conan 1.X 带来的主要变化的更详细描述,请阅读 Conan 2 有什么新特性

2.17.0 (2025年5月28日)

  • 修复:修复 PyInstaller --exclude-moduleconan.test 添加通配符。 #18381

  • 修复:修复 conan audit 的 URL。 #18360

  • 修复:验证 SBOM 中的许可证是否与 SPDX 兼容。 #18358

  • 修复:Windows 上的 Autotools 可同时用于 LLVM/Clang 的 clang 和 clang-cl 前端。 #18347 。文档 在此

  • 修复:更改解压文件时 unzip 工具的措辞。 #18327

  • 修复:避免在 PkgConfigDepsBazelDeps 中出现重复的组件需求名称。 #18324

  • 修复:在 Git 助手中的 commit_in_remote() 函数中避免嫁接(grafted)提交,这也影响了 coordinates_to_conandata()get_url_and_commit()#18315

  • 修复:copy() 现在能够排除指向文件夹的符号链接。 #18304

  • 修复:在使用过滤图时,改进 conan list --graph=file.json 的错误消息。 #18303

  • 修复:始终对覆盖(overrides)的序列化进行排序。 #18274

  • 修复:允许组合不同类别数字的 conf 值。 #18265

  • 修复:在 python_requirestest_package 中避免关于“tested_reference_str”的不正确警告。 #18226

  • 修复:CycloneDX 1.6 作者字段。 #18208

  • 修复:使孵化中的 CMakeConfigDeps 生成器路径相对于 deployers#18197

  • 修复:在 PyInstaller bundle 中添加完整的 conan 包。 #18195

  • Bugfix:从 conan new autotools_exe 模板 configure.ac 中移除 LT_INIT#18378

  • Bugfix:修复 CMakeConfigDeps 链接标志。 #18367

  • Bugfix:修复 conan audit 在目录中找不到某些包时导致的 _parse_error_threshold 崩溃。 #18363

  • Bugfix:conan graph info … -f=html 的第一个边现在显示需求信息。 #18245

  • Bugfix:conan cache save 不再压缩下载的 artifact,例如 conan_export.tgzconan_sources.tgz#18243 。文档 在此

  • Bugfix:允许使用包含 tool-requires 的配置文件 conan create 一个 python-requires 包。 #18226

  • Bugfix:让 conan config install 遍历文件系统树以查找 .conanignore#18170

2.16.1 (2025年4月29日)

  • Feature:在 settings.yml 中添加缺失的 GCC 15 key。 #18193 。文档 在此

2.16.0 (2025年4月29日)

  • Feature:添加对 GCC 15.1 的支持。 #18175 。文档 在此

  • Feature:允许 CMakeConfigDeps 支持具有 multilibs 的组件(带有弃用警告)。 #18172

  • Feature:为 include(module) 将 CMAKE_MODULE_PATH 添加到 CMakeConfigDeps。 #18162

  • Feature:在 conan audit scan 命令中添加严重级别阈值。 #18160 。文档 在此

  • Feature:GnuToolchain 包含来自 AutotoolsToolchain 的最新更改。 #18159

  • Feature:添加 CycloneDx 1.6 支持。 #18108 。文档 在此

  • Feature:引入新的 no_skip=True 需求特性,用于特殊情况,例如一个应用程序通过 requires 私有地依赖另一个应用程序,以避免它被跳过。 #18101 。文档 在此

  • Feature:如果 conf_info 被分配了原始设置/选项等,则尽早抛出错误。 #18083

  • Feature:将功能从 Command 层移动到 ConanAPI,用于清理来自 conans 的旧的私有 import。 #18079

  • Feature:公开记录 MSBuildDeps.platform 属性,以便为需要 x86 值的 wix 项目允许自定义。 #18078 。文档 在此

  • Feature:添加缺失的 intel-cc releases。 #18054 。文档 在此

  • Feature:添加关于每个包构建配置的信息。 #18019

  • Feature:为图中每个依赖的配置添加 -vv 信息。 #18019

  • Fix:改进 conan audit 报告。 #18171

  • Fix:修复 audit html 输出中按严重性值排序的问题。 #18161

  • Fix:修复 audit html 输出中的列溢出问题。 #18161

  • Fix:使 audit_providers.json 仅所有者可读写。 #18158

  • Fix:移除某些 Apple OS 的虚假 SDK 版本。 #18152 。文档 在此

  • Fix:使 conan.cli 命令层完全独立于可能损坏的遗留 from conans import。 #18127

  • Fix:在 Git.checkout_from_conandata_coordinates() 中显式执行 git fetch commit,用于 Azure DevOps 等创建默认情况下 git clone 不会 fetch 的提交的情况。 #18110

  • Fix:在 MSBuild 中添加了缺失的 ARM64EC 平台。 #18100 。文档 在此

  • Fix:允许 conan graph build-order 为“editable”包输出 build_args#18097

  • Fix:改进当私有 audit provider 没有 curation 时的错误消息。 #18094

  • Fix:使某些 Command 格式化助手私有(仅 printers 中的助手可重用),并使某些 ConanAPI 属性私有。 #18079

  • Bugfix:如果“本地 recipe index”的 user/channel 与请求的不匹配,则抛出 not-found 错误。 #18153

  • Bugfix:修复使用 MesonToolchainvisionOS 时的错误。 #18151

  • Bugfix:在 CMakeConfigDeps 中为 INTERFACE libraries 添加 IMPORTED_CONFIGURATIONS。 #18088

  • Bugfix:将 Apple 的 bitcode, visibilityarc conf 应用于 Autootools/Gnu/Meson Toolchains#18085

2.15.1 (2025年4月14日)

  • Feature:更新 Apple 产品支持的版本。 #18122 。文档 在此

2.15.0 (2025年3月31日)

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

  • Feature:为 conan list 命令添加了新的 --graph-context#18015 。文档 在此

  • Feature:添加对字符串末尾带 * 的版本范围模式 [1.2.3.4.*] 的支持。 #18012 。文档 在此

  • Feature:在 Apple OSs 之间进行交叉编译时,在 MesonToolchain 中添加了 subsystem 字段。 #17985

  • Feature:为 is_apple_os 助手函数添加了新的 kwarg build_context#17985

  • Feature:在 tools.files 中集成 chmod 功能。 #17800 。文档 在此

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

  • Fix:修复 SBOM author 字段。 #18014

  • Fix:默认情况下,如果符号链接路径与库名匹配,则避免解析它们。 #17964

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

  • Fix:添加关于 recipe 中 deprecated 属性的警告。 #17957 。文档 在此

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

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

  • Bugfix:修复 global.conf 对 profiles [conf] 的优先级以及 per-package pattern confs 的顺序变化。 #18028

  • Bugfix:解决了 update_policy=legacy 和使用 lockfiles 时的问题。 #18009

  • Bugfix:如果目录权限更严格,untargz() 方法会失败。 #17998

  • Bugfix:CppInfo.auto_deduce_location 方法优先考虑精确匹配。 #17975

  • Bugfix:避免当 tool-requires 中的自定义生成器按类而不是按名称引用时,--format=json 序列化崩溃。 #17954

  • Bugfix:在 metadata 中添加正确信息 + 防止当没有组件与 root_node 关联时发生崩溃。 #17925

2.14.0 (2025年3月12日)

  • Feature:添加 conan audit 命令用于扫描 Conan 包中的 CVE。 #17951 。文档 在此

  • Feature:添加 clang 20 支持。 #17920 。文档 在此

  • Feature:允许对 workspace 进行部分 workspace install <path1> ... <pathN> 安装。 #17887 。文档 在此

  • Feature:为 validate 方法添加 hook:pre_validatepost_validate#17856 。文档 在此

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

  • Feature:为 cpp_info 添加了新的 cpp_info.package_framework#17725 。文档 在此

  • Feature:修复了 docker runner 中的几个错误,添加了新的配置选项并改进了日志系统。 #17542 。文档 在此

  • Fix:改进当 jinja2 配置文件渲染由于意外语法而失败时的错误消息。 #17940

  • Fix:对于精确的库匹配,在 auto-deduce location 中不发出警告。 #17923

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

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

  • Fix:避免 workspace 错误地定义“local-recipes-index”辅助缓存。 #17883

  • Fix:改进 profile dumping 的环境输出,具有正确的 prepend 顺序。 #17863

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

  • Bugfix:避免自依赖和循环,当 build profile 中的 [tool_requires] 通过版本范围依赖自身时。 #17931

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

  • Bugfix:解决了当版本范围具有不同的 user 时,冲突未抛出的问题。 #17877

2.13.0 (2025年2月26日)

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

  • Feature:使新的孵化中 CMakeConfigDeps 生成器在 conanfile 中可用,仍在孵化中的“conf”特性标志下。 #17831 。文档 在此

  • Feature:如果对 local-recipes-index remote 请求的修订版本与当前版本不同,则添加警告。 #17819

  • Feature:将 repository 参数(具有相同的默认值)从 coordinates_to_conandata() 转发到 get_url_and_commit()#17722

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

  • Feature:改进 conanws.py 文件定义,遵循与 ConanFile 相同的模式。 #17688 。文档 在此

  • Feature:Workspace 新的 workspace install 命令,用于包含多个 editables 的单体超级项目。 #17675 。文档 在此

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

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

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

  • Feature:添加 extension_properties 访问权限给 conanfile 依赖项。 #17659 。文档 在此

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

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

  • Feature:新的 lock upgrade 命令,用于自动升级所需的依赖项并解决图谱。 #17577 。文档 在此

  • Feature:增强了 Premake CLI 包装器,支持可配置的 Lua 文件路径和自定义命令行参数。 #17398 。文档 在此

  • Fix:关于 CONAN_LOGIN 环境变量的 conan remote auth 的 Docstring。 #17834

  • Fix:runtime_deploy 保留符号链接及其库。 #17824 。文档 在此

  • Fix:关于孵化中的 CMakeDeps 中关于 tool-requires 中的 target_link_libraries() 的更好消息。 #17821

  • Fix:修复 _calculate_licenses SBOM 方法错误并添加了一个小型测试。 #17801

  • Fix:允许在 AutotoolsToolchain 中从 conf 获取 build context 信息。 #17794

  • Fix:允许 msys2 subsystem 路径继承环境变量。 #17781

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

  • Fix:更新客户端迁移消息。 #17751

  • Fix:改进 untar 性能。 #17708

  • Fix:保护对 cpp_info/components.required_components = xxx 的错误赋值,针对 required_components 属性。现在会抛出适当的错误。 #17692

  • Fix:新的 CMakeDeps 可传递链接共享库。 #17459

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

2.12.2 (2025年2月12日)

  • Fix:修复默认名称并让 cycloneDX 定义自定义名称。 #17760 。文档 在此

  • Fix:添加 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日)

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

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

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

  • Feature:将 cycloneDX 添加为 Conan 工具并实现 conanfile 的子图。 #17559 。文档 在此

  • Feature:初步的 conan workspace build 命令,用于根据 products 定义构建整个 workspace。 #17538 。文档 在此

  • Feature:允许在“create”时从外部集中文件夹应用 patches,用于类似 conan-center-index 的布局。 #17520 。文档 在此

  • Feature:为大型 tarball 文件解包添加进度报告。 #17519

  • Feature:conan profile show 现在可以选择显示哪个 context 的 profile。 #17518

  • Feature:更好的日志记录,包括打印 repository 的用户名、成功的 auth 事件以及包含完整 URL 请求的 trace-level 消息。 #17517

  • Feature:添加 conan config clean 命令,该命令将删除 conan home 中的所有自定义 config,但不包括生成的包。 #17514 。文档 在此

  • Feature:为 ConanApi 添加 reinit 方法,该方法重新初始化所有 subapi#17514 。文档 在此

  • Feature:允许定义 --out-file=file.ext 代替 --format=ext > file.ext,直接写入文件并避免重定向问题。 #17507 。文档 在此

  • Feature:在 API 调用之间缓存 HTTP 请求 session。 #17455

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

  • Fix:将 arch_flag 添加为 MesonToolchain 生成器的公共属性。 #17629

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

  • Fix:使 remotes.json 保存具有事务性,以避免因强制终止进程而损坏。 #17588

  • Fix:改进 conan createtest_package 缺少二进制文件时的错误消息。 #17581

  • Fix:修复 Git is_dirty 对排除文件的路径检测。 #17571

  • Fix:允许最新的 bottle 0.13 版本 conan_server 与 Python 3.13 一起工作。 #17534

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

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

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

  • Fix:当 languages 属性中使用未知语言时,抛出错误。 #17512

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

  • Bugfix:conf_build 不存在于 cliconanfile.txt contexts。 #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日)

  • Feature:仅在启用时对 frozen conan v1 remote 发出警告。 #17482

  • Feature:AutotoolsToolchain 在 Android 交叉编译时首先使用用户的变量。 #17470 。文档 在此

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

  • Feature:将 Conan cache 的“profiles”文件夹添加到 jinja2 搜索路径,以便 profiles 即使对于父文件夹和同级文件夹也可以通过 jinja 语法包含/导入。 #17432 。文档 在此

  • Feature:更新了 tools.env.virtualenv:powershell 配置,允许指定 PowerShell 可执行文件(例如,powershell.exe 或 pwsh)并传递附加参数。 #17416 。文档 在此

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

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

  • Fix:修复 LocalAPI 在调用 editable_add 时对 editables 的定义。 #17498

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

  • Fix:显式地为 BazelDeps 中的 glob() 函数添加了 allow_empty = True(与 bazel 8.x 兼容)。 #17444

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

  • Fix:相信来自符号链接的真实路径是好的。 #17421

  • Fix:修复在 local-recipes-index 中搜索 patterns 时的 user/channel。 #17408

  • Fix:添加空版本范围警告。 #17405

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

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

  • Bugfix:修复 unsetting 某些类型 conf 的问题。 #17445

2.10.3 (2024年12月18日)

2.10.2 (2024年12月10日)

  • Fix:解决了在大型图谱计算“skip”二进制文件时的性能问题。 #17436

2.10.1 (2024年12月4日)

  • Bugfix:修复针对同名引用的替换的 [replace_requires] 问题。 #17409

2.10.0 (2024年12月2日)

  • Feature:为 conan remote auth 添加 --force 选项,即使对于已启用匿名访问的 remote 也强制进行身份验证。 #17377 。文档 在此

  • Feature:为 conan new 命令添加 --output 选项。 #17359

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

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

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

  • Feature:改进了 auto deduce location 函数。 #17296

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

  • Feature:初步的 conan workspace 初步提案,用于管理本地 editable 集。仅作为开发者/维护者功能引入,位于环境变量之后。 #17272 。文档 在此

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

  • Feature:为 Docker runners 添加 network 到 configfile。 #17069 。文档 在此

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

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

  • Fix:为选项冲突添加“风险”警告,以便用户可以设置为 warn-as-error,以便在发生冲突时抛出错误。 #17366

  • Fix:新的 CMakeDeps 生成器允许在包内文件中使用 fooConfig.cmake,除了 foo-config.cmake#17330

  • Fix:在 cache 中构建时,为 editable dependencies 添加警告。 #17325

  • Fix:如果 source patch 不存在于 export_conandata_patches 中,则抛出 ConanException。 #17294

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

  • Fix:Meson 与其他构建系统对齐,将 x86_64->`x86` 视为交叉构建。 #17266

  • Fix:避免 colorama 错误导致大型输出崩溃。 #17259

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

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

  • Bugfix:解决了 Choco().check() 错误,该错误使用遗留的 choco search --local-only,现已替换为 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 的正确值的问题。 #17292

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

2.9.3 (2024年11月21日)

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

2.9.2 (2024年11月7日)

  • Feature:使用 center2.conan.io 作为新的默认 remote,并警告使用旧 remote。 #17284 。文档 在此

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

2.9.1 (2024年10月30日)

  • Bugfix:修复 deduce_subsystemscope=None 时假定 scope 为 build 的问题。 #17251

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

2.9.0 (2024年10月29日)

  • Feature:在 settings.yml 中添加缺失的主要 OS/compiler 版本支持。 #17240 。文档 在此

  • Feature:conan new 学习了默认值 -d name=mypkg -d version=0.1,以便提供更简单的用户体验。 #17186 。文档 在此

  • Feature:在 patches 文件时发出警告,如果 recipe 设置了 no_copy_source = True,这可能导致不可预见的问题。 #17162

  • Feature:为 tool_requires 添加 self.generator_info,以便将生成器传播到其直接依赖项。 #17129 。文档 在此

  • Feature:添加对 .conanignore 中忽略的路径的支持。 #17123 。文档 在此

  • Feature:新的 tools.graph:skip_build 配置,能够跳过 tool_requires 的扩展。 #17117 。文档 在此

  • Feature:新的 tools.graph:skip_test 配置,能够跳过 test_requires 的扩展。 #17117 。文档 在此

  • Feature:添加 ROSEnv 生成器集成,用于 ROS2 (Robot Operating System)。 #17110

  • Feature:为 conan graph build-order 添加 profile arguments 信息,以改进 CI 系统中的用户体验和使用。 #17102 。文档 在此

  • Feature:为 gccclangapple-clang 添加 C++26 支持。 #17092 。文档 在此

  • Feature:为 MSBuildDeps property sheets 添加 Configuration 和 Platform key。 #17076 。文档 在此

  • Feature:新的 CMakeDeps 生成器由 tools.cmake.cmakedeps:new 配置激活,其值为 will_break_next 用于评估。这个新的生成器会推导或使用 cpp_info.location/link_location 来定义 STATIC; SHARED, INTERFACE 导入目标。它还会定义 IMPORTED_LOCATION, IMPORTED_CONFIGURATION 等。 #16964

  • Feature:使用 cpp_info.languages,默认使用 recipe 的 languages 来将“link-language”需求传播给包的消费者。 #16964

  • Feature:仅为新的 CMakeDeps 生成器定义 cpp_info.default_components#16964

  • Feature:为可执行应用程序建模 cpp_info.exes 字段,仅由新的 CMakeDeps 生成器使用,该生成器会为 cpp_info.exesCMakeDeps 中生成 IMPORTED 可执行目标。 #16964

  • Fix:在 Windows 上为 meson.configure() 使用有效的 prefix path,以避免在 Python 3.13 中失败。 #17206

  • Fix:允许在 CMakeDeps 中设置 cmake_target_aliases#17200 。文档 在此

  • Fix:为每个 Bazel 命令添加 startup options。 #17183

  • Fix:在登录提示中添加 remote 名称。 #17178

  • Fix:当过期 token 导致 AuthenticationException 时,获取凭据并重新验证。 #17127

  • Fix:将异常从遗留的 from conans.error 移动到已文档记录的 from conan.error#17126 。文档 在此

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

  • Fix:在 MSBuildToolchain 中从 profile 中正确推导 RuntimeLibrary。 #17100

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

  • Fix:为 gcc >= 11 将 C++23 标志设置为 {gnu}c++23,而不是 c++2b#17092 。文档 在此

  • Fix:当凭据来自环境变量或 credentials.json 文件时,避免重复登录服务器以处理 401,仅对用户交互式提示重复登录尝试。 #17083

  • Fix:对齐 CMakeToolchain 和 AutotoolsToolchain,以便在 compiler=msvc 时自动定义 cl 编译器,如果未定义(仅在必要时,例如在使用 CMake 中的 Ninja 生成器时)。 #16875 。文档 在此

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

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

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

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

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

  • Bugfix:取消 conan_server 中用户权限验证的旁路,这可能是一个潜在的安全问题。 #17132

  • Bugfix:现在使用 semver 规则版本相同但表示方式不同(例如 1.01.0.0)的 recipe 列出时,会返回这两个引用。 #17121

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

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

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

  • Bugfix:在使用 Commands API 时恢复 ConanOutput global state。 #17095

  • Bugfix:graph build-order 中的 build_args options 现在遵循引用的上下文。 #16594

2.8.1 (2024年10月17日)

  • Bugfix:避免对作为可传递 requires 也需要的 test_requires 的 required components 抛出错误。 #17174

2.8.0 (2024年9月30日)

  • Feature:添加对 iOS 18、watchOS 11、tvOS 18、visionOS 2 和 macos 15 的支持。 #17012 。文档 在此

  • Feature:添加 Clang 19 支持。 #17010 。文档 在此

  • Feature:conan config list <pattern> 以过滤可用配置。 #17000 。文档 在此

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

  • Feature:新的 auth_source.py 插件,用于自定义用户对源代码通用下载的身份验证。 #16942 。文档 在此

  • Feature:为 conan installconan build 添加 --envs-generation={false},以禁用虚拟环境的生成(conanbuildenv.sh|batconanrunenv.sh|bat)。 #16935 。文档 在此

  • Feature:新的 tools.files.unzip:filter 配置,允许为 tgz 文件定义 datatarfully_trusted 提取策略。 #16918 。文档 在此

  • Feature:source()get()unzip() 工具学会了一个新的 extract_filter 参数,用于为 tgz 文件定义 datatarfully_trusted 提取策略。 #16918 。文档 在此

  • Feature:为大型上传(>100MB)每 10 秒添加进度更新。 #16913

  • Feature:实现 conan config install-pkg --url=<repo-url>,用于在尚未定义 remote 时初步定义 remote URL。 #16876 。文档 在此

  • Feature:允许构建仍然属于当前 profile 的兼容包。 #16871

  • Feature:允许引导(依赖自身的另一个变体),即使对于相同的版本。 #16870

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

  • Fix:让 CMakeToolchain 定义 CMAKE_SYSTEM_XXX,即使定义了 user_toolchain,但如果 toolchain 确实定义了它们,则受到保护。 #17036 。文档 在此

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

  • 修复:将 PkgConfigstderr 重定向到抛出的异常中。 #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:在菱形依赖结构中,允许 requires(..., package_id_mode) 特征始终使用 recipe 定义的模式,而忽略 requires() 的顺序。 #16987

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

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

  • Bugfix:允许 remote_login 接受模式。 #16942 。文档 在此处

2.7.1 (2024年9月11日)

  • Feature:添加对 apple-clang 16 的支持。 #16972

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

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

2.7.0 (2024年8月28日)

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

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

  • Feature:为 CMakeDeps 的 get_property 添加 check_type#16854 。文档 在此处

  • Feature:当 visible 特征为 True 时,在下游的“build”上下文中传播 run 特征的需求信息。 #16849 。文档 在此处

  • Feature:为组件的 get_property 添加 check_type#16848 。文档 在此处

  • Feature:为 PkgConfigDeps 添加 set_property,用于从消费者 recipe 中设置需求属性。 #16789

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

  • Feature:添加对 gcc 14.2 的支持。 #16760

  • Feature:重构 QbsProfile 以支持 Conan 2。 #16742

  • Feature:为本地缓存的包最终调整添加 finalize() 方法。 #16646 。文档 在此处

  • Feature:添加 tricore 编译器架构支持。 #16317 。文档 在此处

  • Feature:在此处描述您的拉取请求 #16317。文档 在此处

  • 修复:将 repository 参数从 Git.get_url_and_commit(repository=True) 传播到 Git.is_dirty()#16892

  • 修复:改进访问 cpp_info 快捷方法时的错误消息。 #16847

  • 修复:改进 lockfile 锁定需求失败时的错误消息,明确指出其类型。 #16841

  • 修复:更新 patch-ng 1.18.0 以避免 SyntaxWarning 警告刷屏。 #16766

  • Bugfix:避免在同时定义架构标志和 tools.build:linker_scriptsCMakeToolchain 因缺少空格而出错。 #16883

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

  • Bugfix:修复本地 recipe 索引中不存在 recipe 的 export_sources 问题。 #16776

2.6.0 (2024年8月1日)

  • Feature:添加 build_folder_vars=["const.myvalue"],为用户“myvalue”任意值创建预设。 #16633 。文档 在此处

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

  • Feature:MakeDeps 生成器为依赖项及其组件生成 make 变量。 #16613 。文档 在此处

  • Feature:为 graph build-order 和 graph build-order-merge 添加 html 输出。 #16611 。文档 在此处

  • Feature:引入 core.scm:local_url=allow|block,用于控制 conandata scm 中的本地文件夹 URL。 #16597 。文档 在此处

  • Feature:将 XXX_FOR_BUILD 标志和额外的 Android 标志添加到 GnuToolchainextra_env 属性中。 #16596

  • Feature:在 local-recipes-index 中支持 python_requires#16420 。文档 在此处

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

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

  • 修复:更改 requirements.txt,使其也能在 FreeBSD 中安装 distro 包。 #16700

  • 修复:加载不存在或损坏的“包列表”文件时,提供更详细的错误消息。 #16685

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

  • 修复:确保直接工具需求冲突得到正确报告,而不是挂起。 #16619

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

  • 修复:尝试上传包含本地文件夹 URL 的包时,在 conandata scm 中抛出错误。 #16597 。文档 在此处

  • Bugfix:修复 profile include() 在部分定义了每个包的 [settings] 时出现的问题。 #16720

  • Bugfix:当包包含组件时,MakeDeps 生成器缺少一些聚合变量。 #16715

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

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

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

2.5.0 (2024年7月3日)

  • Feature:新的 tools.cmake.cmaketoolchain:enabled_blocks 配置,用于定义 CMakeToolchain 的哪些块应该激活或不激活。 #16563 。文档 在此处

  • Feature:允许 conan list 中的 –filter-options 使用 &: 范围来指代所有列出的包。 #16559

  • Feature:在计算依赖图时,突出显示缺失或无效的需求。 #16520

  • Feature:新的 conan lock update 子命令,用于在同一命令中移除并添加引用。 #16511 。文档 在此处

  • Feature:添加对 GCC 12.4 的支持。 #16506 。文档 在此处

  • Feature:尊重 tools.android:ndk_path 配置。设置交叉编译 Android 所需的标志。 #16502 。文档 在此处

  • Feature:为 Android 添加 os.ndk_version#16494 。文档 在此处

  • Feature:Qbs 助手现在自动调用 Conan provider。 #16486

  • Feature:为 tools.cmake.cmaketoolchain:extra_variables 添加了 force 选项。 #16481 。文档 在此处

  • Feature:如果在同一个 Conan profile 文件中存在重复的节,则抛出 ConanException。 #16454

  • Feature:为 Qbs 工具链添加了 resolve() 方法。 #16449

  • Feature:使使用 deployer 生成的 MSBuildDeps 文件可重定位。 #16441

  • Feature:添加 QbsDeps 类,与 Qbs Conan 模块提供程序一起使用。 #16334

  • Feature:添加内置的 runtime_deploy deployer。 #15382 。文档 在此处

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

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

  • 修复:允许 .conanrc 文件位于文件系统根目录。 #16514

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

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

  • 修复:使 source_credentials.json 不应用于 Conan server repos 协议。 #16425 。文档 在此处

  • 修复:允许包包含空文件夹。 #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 生成器未在其生成的文件中包含绝对路径。 #16552

  • Bugfix:修复 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:修复了使用 --deployer=full_deployCMakeToolchain 导致错误转义的回归问题。 #16434

2.4.0 (2024年6月5日)

  • Feature:添加了对 MacOS sdk_version 14.5 的支持。 #16400 。文档 在此处

  • Feature:为 AutotoolsToolchain 添加了 CC_FOR_BUILDCXX_FOR_BUILD 环境变量。 #16391 。文档 在此处

  • Feature:为 MesonToolchain 添加了 extra_xxxx 标志,就像在 AutotoolsToolchain, CMakeToolchain 等其他工具链中所做的那样。 #16389

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

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

  • Feature:为 tools.files.rm 添加 excludes 参数,以避免删除某些模式。 #16350 。文档 在此处

  • Feature:允许使用多个 --build=missing:~pattern1 --build=missing:~pattern2 模式。 #16327

  • Feature:弃用在 ConanFile 中使用路径访问器。 #16247

  • Feature:添加了设置 tools.cmake.cmaketoolchain:extra_variables 的支持。 #16242 。文档 在此处

  • Feature:为 CMakeDeps 生成器添加了 cmake_additional_variables_prefixes 变量,允许为声明的 CMake 变量添加额外的名称。 #16231 。文档 在此处

  • Feature:也允许在 CMakeToolchain 中为本地 conan install/build 流程定义 GNUInstallDirs。 #16214

  • Feature:让 conan cache save 遵守 core.gzip:compresslevel 配置。 #16211

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

  • Feature:添加新的 revision_mode,包含除了 package_id 之外的所有内容,直到 recipe-revision#16195 。文档 在此处

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

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

  • Feature:用于 C 标准的新 compiler.cstd 设置。 #16028 。文档 在此处

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

  • Feature:实现了 check_min_cstdcheck_max_cstdvalid_max_cstdvalid_min_cstdsupported_cstd 工具。 #16028 。文档 在此处

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

  • Feature:将 CONAN_RUNTIME_LIB_DIRS 变量添加到 conan_toolchain.cmake#15914 。文档 在此处

  • 修复:为默认 compatibility.py 插件实现了回迁到 <2.3 版本。 #16405

  • 修复:在 profile 的序列化/dump 中添加缺失的 [replace_requires][platform_requires]#16401

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

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

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

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

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

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

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

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

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

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

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

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

  • 修复:避免在 Python 3.12 中调用 datetime 弃用方法。 #16095

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

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

  • Bugfix:修复使用 type=shared 的 docker runner 时出现的 profile 错误。 #16364

  • Bugfix:除非定义了 tools.build:download_source,否则 conan graph info .. --build=pkg 不会下载 pkg 源文件。 #16349

  • Bugfix:解决了 CMakeToolchain 和 CMakeDeps 中路径相对化的问题。 #16316

  • Bugfix:避免在 MesonToolchain 中对 tools.build:compiler_executables 的值进行清理。 #16307

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

  • Bugfix:修复 conan list 中不存在图文件时出现的堆栈跟踪问题。 #16291

  • Bugfix:允许 CMakeDeps 生成器在 xxxConfig.cmake 文件已存在时覆盖它。 #16279

  • Bugfix:禁止在 source() 方法中访问 self.info#16272

2.3.2 (2024年5月28日)

  • Feature:新的 tools.microsoft:msvc_update 配置,即使未定义 compiler.update,也可用于定义 MSVC 编译器 update。当 VS2022 更新到 17.10 后(这将把默认编译器更改为 compiler.version=194),可使用此配置来使用 compiler.version=193#16332

  • Bugfix:允许默认的 compatibility.py 插件从 MSVC compiler.version=194 回退到 193 以及其他 cppstd 值。 #16346

  • Bugfix:在本地 recipe 索引布局中跳过以点开头的文件夹。 #16345

  • Bugfix:删除生成的 conanvcvars.ps1 中多余的反斜杠。 #16322

2.3.1 (2024年5月16日)

  • Feature:添加对 GCC 13.3 的支持。 #16246 。文档 在此处

  • Feature:允许选择退出 CMakeToolchain 默认使用绝对路径生成 CMakeUserPresets->CMakePreset 和 CMakePresets->toolchainFile 路径的行为。 #16244 。文档 在此处

  • 修复:修复 Docker runner 的 config container 名称。 #16243

  • Bugfix:使兼容性检查理解 update 标志模式。 #16252

  • Bugfix:解决了菱形依赖结构中 lockfilesoverrides bug。 #16235

  • Bugfix:允许将 export-pkg --version=xxx 参数传递给具有 python_requires 并继承基类 set_version 的 recipe。 #16224

2.3.0 (2024年5月6日)

  • Feature:允许在 rm_safe 中使用 * 通配符作为子设置。 #16105 。文档 在此处

  • Feature:运行 conan upload 时显示 recipe 和包的大小。 #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 中添加了“过滤包”栏,可以接受逗号分隔的多个搜索模式,并从图中隐藏它们。 #16083

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

  • Feature:允许在 export()export_sources() 方法中访问 .conf(仅限于 global.conf 信息,不包括 profile 信息)。 #16034 。文档 在此处

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

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

  • Feature:新的 conan pkglist find-remote 命令,用于在远端查找缓存中包列表的匹配项。 #16022 。文档 在此处

  • Feature:在生成 CMakePresets 时,相对化路径。 #16015

  • Feature:为 conanfile.py 添加新的 test_package_folder 属性,用于定义自定义位置和名称,而不是默认的 test_package#16013 。文档 在此处

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

  • Feature:将 tools.gnu:build_triplet 添加到配置中。 #15965

  • Feature:为 conan profile detect 添加 --exist-ok 参数,如果 profile 已存在则不失败,且不覆盖它。 #15933

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

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

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

  • Feature:添加了在 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

  • 修复:改进缓存中的 remotes 或 credentials 文件无效/为空时的用户体验和错误消息。 #16091

  • 修复:在 Linux 系统中使用 cc 可执行文件进行编译器自动检测(conan profile detectdetect_api)。 #16074

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

  • 修复:改进 settings.ymlsettings_user.yml 不正确时的错误消息 UX。 #16065

  • 修复:为使用 Python 3.6(自 2021 年已终止支持)打印警告。 #16003

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

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

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

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

  • 修复:为跨平台构建 Linux->Windows,将 rc 添加到 AutotoolsToolchaincompiler_executables 映射中。 #15946

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

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

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

  • Bugfix:使 MesonToolchain 遵循 tools.build:defines 配置变量。 #16172 。文档 在此处

  • Bugfix:禁止在 validate_build() 方法中访问 self.cpp_info#16135

  • Bugfix:当 .conanrcconan_home 无效时,不显示跟踪信息。 #16134

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

  • Bugfix: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日)

  • 修复:避免 recipe print(..., file=fileobj) 的问题。 #15934

  • 修复:修复 print(x, file=y) 调用中重复关键字参数导致的问题。 #15912

  • Bugfix:修复 multiconfig CMake 中 tools.build:defines 的处理问题。 #15924

2.2.1 (2024年3月20日)

  • 修复:添加 copytree_compat 方法,以兼容 Python>=3.12 (移除 distutils 后)。 #15906

2.2.0 (2024年3月20日)

  • Feature:如果使用 universal binary 语法,则对非 CMakeToolchain 的工具链抛出错误。 #15896

  • Feature:对位置错误的 requirement 函数调用发出警告。 #15888

  • Feature:打印由于不同分支的 recipe 定义了不同的 options 值而导致的图中的 options 冲突。 #15876 。文档 在此处

  • Feature:将 macOS 版本 14.2, 14.3, 14.4 添加到 settings.yml 中。 #15859 。文档 在此处

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

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

  • Feature:添加 conan graph outdated 命令,列出在远端有新版本的依赖项。 #15838 。文档 在此处

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

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

  • Feature:将 build_context_folder 添加到 PkgConfigDeps。 #15813 。文档 在此处

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

  • Feature:更新 _meson_cpu_family_map 以支持 arm64ec#15812

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

  • Feature:在 CMakeToolchain 中为 universal binaries 添加了基本支持。 #15775 。文档 在此处

  • Feature:新的 tools.cmake.cmake_layout:build_folder 配置,允许重新定义 cmake_layout 的本地 build-folder。 #15767 。文档 在此处

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

  • Feature:(实验性) 添加 conan config install-pkg myconf/[*],将新的配置添加到 Conan 包中,使用新的 package_type = "configuration"#15748 。文档 在此处

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

  • Feature:使 cppstd_flag 公开,以便根据设置返回相应的 C++ 标准标志。 #15710 。文档 在此处

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

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

  • Feature:将 detect_libc 添加到 detect_api,用于获取 C 库的名称和版本。 #15683 。文档 在此处

  • Feature:在 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

  • 修复:为 conan new msbuild_lib 模板添加 package_type="static-library"#15807

  • 修复:避免通过 requires(.., options={}) 传递显式选项时 platform_requires 失败。 #15804

  • 修复:使 CMakeToolchain 以换行符结尾。 #15788

  • 修复:如果未提供二进制模式,则不允许 conan list 二进制过滤器或包查询。 #15781

  • 修复:避免在 CMakeToolchain.preprocessor_definition 定义中,当值为 Python None 时,生成字符串 "None"#15756

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

  • 修复:修复大型依赖图的 conan graph info –format=html 问题。 #15724

  • 修复:使所有 recipe 和 plugins python 文件将 print() 输出到 stderr,从而避免损坏 stdout 的 json 输出。 #15704

  • 修复:修复获取 Linux x86 的 gnu triplet 问题。 #15699

  • Bugfix:解决了 global.confconan_home_folder 在列表中作为字符串使用时反斜杠的问题。 #15870

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

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

  • Bugfix:避免 conandata.yml 中某个版本没有列出 patch 时出现 TypeError。 #15842

  • Bugfix:解决了 package_type=build-scripts 在 lockfiles 和 conan create 中出现的问题。 #15802

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

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

  • Bugfix:修复定义了 compiler.updateCMakeToolchain GENERATOR_TOOLSET 的问题。 #15789

  • Bugfix:解决了当 conf 项与 Python 模块匹配时评估的问题。 #15779

  • Bugfix:修复当 PkgConfigDepstool_requires 已在 build context 中时,为其生成 .pc 文件的问题。 #15763

  • Bugfix:也将 VISIBILITY 标志添加到 CONAN_C_FLAGS 中。 #15762

  • Bugfix:修复带范围 conf 的 profile 在使用 conan profile show –format=json 时的问题。 #15747

  • Bugfix:修复 Conan API 中 update 参数的旧式用法。 #15743

  • Bugfix:解决了当字符串包含 Windows 反斜杠时 profile [conf] 损坏的问题。 #15727

  • Bugfix:修复 metadata 版本范围的版本优先级问题。 #15653

2.1.0 (2024年2月15日)

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

  • Feature:为 --update 标志添加传递模式的功能。 #15652 。文档 在此处

  • Feature:为 conan build 添加 --format=json 格式化器。 #15651

  • Feature:添加 tools.build.cross_building:cross_build,无论内部 Conan 机制如何,都可以决定是否进行交叉构建。 #15616

  • Feature:为 conan cache path 添加 --format=json 选项。 #15613

  • Feature:为 conan graph build-order 添加 --order-by 参数。 #15602 。文档 在此处

  • Feature:提供新的 graph build-order --reduce 参数,将顺序仅限于需要从源代码构建的包。 #15573 。文档 在此处

  • Feature:添加配置,用于在 CMakeToolchain 中为 Visual Studio CMake 生成器指定所需的 CUDA 工具包。 #15572 。文档 在此处

  • Feature:新的“重要”选项值定义,其优先级高于常规选项值定义。 #15571 。文档 在此处

  • Feature:调用 deactivate_conanvcvars 时显示消息。 #15557

  • Feature:将 self.infopackage_id 的信息添加到图的序列化输出中,并将其转发到包列表。 #15553 。文档 在此处

  • Feature:在 verbose 模式下运行时,记录 Git 工具命令。 #15514

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

  • Feature:为 python_requires 的显式 test_package 定义 python_requires = "tested_reference_str"#15485 。文档 在此处

  • Feature:添加 CMakeToolchain.presets_build/run_environment,用于在 generate() 方法中修改 CMakePresets 环境。 #15470 。文档 在此处

  • Feature:为 remotes 添加 –allowed-packges,限制远端可以提供的引用。 #15464 。文档 在此处

  • Feature:使 RemotesAPI 公开可用(实验性)的初步文档。 #15462

  • Feature:添加在 powershell 中调用时使用 vcvars 环境变量的支持。 #15461 。文档 在此处

  • Feature:新的 Git(..., excluded=[]) 功能,用于避免 Git 助手中的“dirty”错误。 #15457 。文档 在此处

  • Feature:新的 core.scm:excluded 功能,用于避免 Git 助手和 revision_mode = "scm" 中的“dirty”错误。 #15457 。文档 在此处

  • Feature:为 python_requires recipe 提供 recipe python_package_id_mode,用于定义每个 recipe 对消费者 package_id 的影响。 #15453 。文档 在此处

  • Feature:将 cmakeExecutable 添加到 configure preset。 #15447 。文档 在此处

  • Feature:添加新的 --core-conf 命令行参数,允许通过 CLI 传递 core. 配置。 #15441 。文档 在此处

  • Feature:将 detect_api.detect_msvc_update(version) 助手添加到 detect_api#15435 。文档 在此处

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

  • Feature:允许在 settings.yml 中嵌套“ANY”定义。 #15415 。文档 在此处

  • Feature:Helper Git().coordinates_to_conandata()Git().checkout_from_conandata_coordinates(),简化基于 scm 的流程。 #15377

  • Feature:AutotoolsToolchain 自动为 VS 注入 -FS#15375

  • Feature:新的 conan upload core.upload:parallel,用于更快的并行上传。 #15360 。文档 在此处

  • Feature:改进 Intel oneAPI 编译器检测。 #15358

  • Feature:为长时间运行的 conan list 命令显示进度。 #15354

  • Feature:添加 extension_properties 属性,用于从 recipe 向扩展传递信息。 #15348 。文档 在此处

  • Feature:在 extension_properties 中为 compatibility.py 插件实现 compatibility_cppstd,禁用 recipe 回退到其他 cppstd。 #15348 。文档 在此处

  • Feature:添加 Git.get_commit(..., repository=True),获取仓库提交而不是文件夹提交。 #15304

  • Feature:确保 --build=editable--build=cascade 可以一起工作。 #15300 。文档 在此处

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

  • 新特性: 允许将来自 --format=compact 的带有时间戳的配方修订复制粘贴到 conan lock add 命令中。 #15262 。文档 在此

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

  • 修复: 解决构建 profile 和上下文中使用 [platform_tool_requires] 的问题。丢弃构建 profile 中的 [platform_requires]#15665

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

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

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

  • 修复: 允许 CMakeToolchain.preprocessor_definitions 的值为 None,这将映射到没有值的定义。 #15545 。文档 在此

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

  • 修复: 当远程服务器不可达且用户想在离线模式下工作时,抛出更友好的错误。 #15516

  • 修复: 源文件备份不存在元数据时,避免文件丢失栈追踪。 #15501

  • 修复: 移除 --lockfile-packages 参数,因为它未文档化,也非旨在供公众使用。 #15499 。文档 在此

  • 修复: 如果 check_type=int 而 conf 值设置为 bool 时则报错。 #15378

  • 修复: 向 MesonToolchain 生成的机器文件添加 pkg-config 条目,因为 pkgconfig 条目自 Meson 1.3.0 起已废弃。 #15369

  • 修复: 修复 graph explain 在某些依赖缺失时未显示差异的问题。 #15355

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

  • 修复: 修复 upload_policy=skip--build=missing 相关的问题。 #15336

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

  • 修复: 允许 cmake.build(build_type="Release") 用于使用多配置系统构建但未设置 build_type 的配方。 #14780

  • Bug 修复: 修复 MSBuildDeps 处理组件和跳过的依赖项时的问题。 #15626

  • Bug 修复: 避免包自身 tool_requires 到自身以进行交叉构建时,provides 抛出错误。 #15575

  • Bug 修复: 修复 tools.microsoft.visual.VCVars 中的构建范围操作系统检测。 #15568

  • Bug 修复: 修复当依赖项为仅头文件时,通过 visible=False 传播错误的问题。 #15564

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

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

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

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

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

  • Bug 修复: 允许在 build_id()package_id() 方法中,通过子设置限制 os, compiler 和其他设置。 #15439

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

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

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

  • Bug 修复: 修复 Git.get_url_and_commit 在某些 Git 配置下抛出错误的问题。 #15271

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

2.0.17 (2024年1月10日)

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

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

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

  • Bug 修复: 修复 build=True 特性的可见性传播问题。 #15357

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

  • Bug 修复: 对转储 conf 项进行排序,以便生成可重现的 package_id,且不受 conf 声明顺序的影响。 #15356

2.0.16 (2023年12月21日)

  • Bug 修复: 恢复 source_buildenv 的默认值,默认为 False#15319 。文档 在此

2.0.15 (2023年12月20日)

  • 新特性: 新命令 conan lock remove,用于从锁文件中移除依赖项。 #15284 。文档 在此

  • 新特性: 新增 CMake.ctest() 辅助方法,用于直接启动 ctest,而不是通过 cmake --target=RUN_TEST#15282

  • 新特性: 为不同引用在 <host_version> 中添加跟踪语法。 #15274 。文档 在此

  • 新特性: 添加 tools.microsoft:winsdk_version conf,使 VCVars 生成器使用给定的 winsdk_version#15272 。文档 在此

  • 新特性: 为 conan export 命令添加 pkglist 格式化程序。 #15266 。文档 在此

  • 新特性: 定义 CONAN_LOG_LEVEL 环境变量,以便在全局级别更改详细程度。 #15263 。文档 在此

  • 新特性: 如果请求的文件夹不存在,conan cache path xxx --folder xxxx 会抛出错误。 #15257

  • 新特性: 为 ConanFile 的 self.dependencies 添加 in 运算符支持。 #15221 。文档 在此

  • 新特性: 使 CMakeDeps 生成器创建 conandeps.cmake 文件,该文件以类似 cmake 生成器风格聚合所有直接依赖项。 #15207 。文档 在此

  • 新特性: 为 CMake configure preset 添加构建环境信息,并为 CMake test preset 添加运行环境信息。 #15192 。文档 在此

  • 新特性: 移除关于 conan 迁移潜在问题的警告,该警告会在每次构建失败时打印。 #15174

  • 新特性: 配方中新增 deploy() 方法,用于显式按配方进行部署。 #15172 。文档 在此

  • 新特性: 允许在 source() 方法中使用 tool-requires 并注入环境。 #15153 。文档 在此

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

  • 新特性: 从 ConfigAPI 添加内置 conf 访问。 #15151

  • 新特性: 为 CMake 集成方法添加 redirect_stdout 参数。 #15150

  • 新特性: 添加 core:warnings_as_errors 配置选项,使 Conan 在遇到警告和错误时报错。 #15149 。文档 在此

  • 新特性: 在 ftp_download 中使用 secure 参数添加 FTP_TLS 选项,用于安全通信。 #15137

  • 新特性: Profile 中新增 [replace_requires][replace_tool_requires],用于重新定义依赖项,这对于包替换(如 zlibng/zlib)、解决冲突以及用封装在其他 Conan 包配方中的系统替代方案替换某些依赖项非常有用。 #15136 。文档 在此

  • 新特性: 为 conanfile 的 run() 方法添加 stderr 捕获参数。 #15121 。文档 在此

  • 新特性: 新增 [platform_requires] profile 定义,以便将 Conan 依赖项替换为平台提供的依赖项。 #14871 。文档 在此

  • 新特性: 新命令 conan graph explain,用于搜索、比较并解释缺失的二进制文件。 #14694 。文档 在此

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

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

  • 修复: 修复未提供分隔符时 user conf 的包范围限定问题 #15296

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

  • 修复: 允许强制执行 set_name()set_version() 来修改命令行中提供的名称和版本。 #15211 。文档 在此

  • 修复: 使 conan graph info --format=text 输出到 stdout。 #15170

  • 修复: 避免因 CMAKE_POLICY_DEFAULT_CMP0091 未使用的变量而在 CMake 输出中出现警告。 #15127

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

  • Bug 修复: 确保 user conf 至少包含 1 个 : 分隔符 #15296

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

  • Bug 修复: 使 self.info.clear() 和仅头文件包移除 python_requirestool_requires#15285 。文档 在此

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

  • Bug 修复: 不对 deployers 中的绝对路径进行相对化。 #15244

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

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

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

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

  • Bug 修复: 修复 2.0.14 迁移问题,以便在定义 storage_path conf 时将 LRU 数据添加到缓存。 #15135

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

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

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

2.0.14 (2023年11月14日)

  • 新特性: 将 riscv64, riscv32 架构添加到默认的 settings.yml,并在 Meson 和 Autotools 中进行管理。 #15053

  • 新特性: 允许仅一个同时数据库连接。 #15029

  • 新特性: 添加 conan cache backup-upload 命令,用于上传缓存中的所有备份源,无论它们来自哪个引用。 #15013 。文档 在此

  • 新特性: 新命令 conan list --format=compact,提供更好的用户体验。 #15011 。文档 在此

  • 新特性: 通过传递 `--metadata=""` 忽略元数据上传。 #15007 。文档 在此

  • 新特性: **conan upload** 命令中更好的输出消息。 #14984

  • 新特性: 为 CMakeToolchain 添加额外标志。 #14966 。文档 在此

  • 新特性: 实现从缓存加载/恢复包,用于 CI 工作流和在隔离网络中移动包。 #14923 。文档 在此

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

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

  • 新特性: 将 Macos 13.6 添加到 settings.yml。 #14858 。文档 在此

  • 新特性: 添加监听 system_package_version 属性的 CMakeDeps 和 PkgConfigDeps 生成器。 #14808 。文档 在此

  • 新特性: 在 cli 中添加简写语法,以便在 1 个参数中指定 host 和 build。 #14727 。文档 在此

  • 新特性: 实现缓存 LRU 控制,用于清理未使用的构件。 #14054 。文档 在此

  • 修复: 当未定义 layout 或 output-folder 时,避免 CMakeToolchain 覆盖用户 CMakePresets.json#15058

  • 修复: 在 SystemPackageManager 中添加使用 apt 的发行版 astra, elbrusaltlinux#15051

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

  • 修复: 使 Git() 在远程服务器上检查提交,即使对于 shallow clone 也是如此。 #15023

  • 修复: 向 settings.yml 添加新的 Apple OS 版本。 #15015

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

  • 修复: 从 conan --version 输出中移除颜色。 #15002

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

  • 修复: 使缓存 DB 始终使用正斜杠作为路径,以在 Windows 和 Linux 上保持一致。 #14940

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

  • 修复: 避免配方修改 conf 来影响其他配方。 #14932 。文档 在此

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

  • 修复: 序列化 python_requirespath 信息,这对于计算 buildinfo 是必需的。 #14886

  • 修复: 在 **conan source** 命令中定义远程服务器,以防配方具有需要从远程服务器下载的 python_requires#14852

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

  • Bug 修复: --build=missing 会对不需要且可以跳过的包进行不必要的构建,尤其是在 tool_requires 存在传递依赖的情况下。 #15082

  • Bug 修复: 在 ‘conan export-pkg’ 命令的 format=json 输出中添加包修订。 #15042

  • Bug 修复: tools.build:download_source=True 在存在 editable 包时不会失败。 #15004 。文档 在此

  • Bug 修复: 传递依赖被错误添加到 conandeps.xcconfig。 #14898

  • Bug 修复: 修复未下载 export_source 时进行完整性检查(upload --checkcache check-integrity)的问题。 #14850

  • Bug 修复: 正确锁定 python requires 的 release candidate。 #14846

  • Bug 修复: 以 - 结尾的版本范围不会在整个范围中自动激活预发布版本解析。 #14814 。文档 在此

  • Bug 修复: 修复版本范围,以便预发布版本正确包含在下界,排除在上界。 #14814 。文档 在此

2.0.13 (2023年9月28日)

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

2.0.12 (2023年9月26日)

  • 新特性: 添加对 Clang 17 的支持。 #14781 。文档 在此

  • 新特性: 为 **conan remove** 添加 --dry-run 参数。 #14760 。文档 在此

  • 新特性: 在 package_managerinstall() 方法中添加 host_tool 参数,指示包是 host tool 还是库。 #14752 。文档 在此

  • 修复: 尝试对 python-require 包执行 export-pkg 时提供更好的错误消息,并避免其被导出后失败。 #14819

  • 修复: CMakeDeps 允许对所有属性使用 set_property()#14813

  • 修复: 添加 Apple clang 15.0 的次要版本。 #14797 。文档 在此

  • 修复: 未提供 <path> 参数时,**conan build** 命令提供更友好的错误消息。 #14787

  • Bug 修复: 修复 compatibility()settings_target 上导致其变为 None 的问题。 #14825

  • Bug 修复: compatible 包首先在缓存中查找,仅当未找到时才查找服务器,以便在存在 compatible 包时允许离线安装。 #14800

  • Bug 修复: 在 ConanRequester 中重用会话以加快请求速度。 #14795

  • Bug 修复: 修复 editable 包在组件部分定义目录时的相对路径问题。 #14782

2.0.11 (2023年9月18日)

  • 新特性: 为 conan profile show 命令添加 --format=json 格式化程序。 #14743 。文档 在此

  • 新特性: 为 ‘conan build’ 命令添加新参数 --deployer --generators。 #14737 。文档 在此

  • 新特性: 改进 CMakeToolchain blocks 接口。添加了新的 .blocks.select(), .blocks.keys()#14731 。文档 在此

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

  • 新特性: MesonToolchain 在直接使用任何选项时显示警告消息。 #14692 。文档 在此

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

  • 新特性: 添加了将 Meson 的 ccpp 和/或 ld 二进制变量转换成列表的机制,如果它们被声明为空格分隔的字符串。 #14676

  • 新特性: 将 nobara 发行版添加到 dnf 包管理器映射。 #14668

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

  • 新特性: 支持 conf tools.info.package_id:confs 的正则表达式模式。 #14621 。文档 在此

  • 新特性: MakeDeps: 提供“require”信息,以及更多样式调整。 #14605

  • 新特性: 新增 detect_api,可在 profile jinja 模板中使用。 #14578 。文档 在此

  • 新特性: 允许在 compatibility 方法中访问 settings_target#14532

  • 修复: 添加缺失的 macos 次要版本。 #14740 。文档 在此

  • 修复: 改进 ConanApi 初始化失败的错误消息。 #14735

  • 修复: CMakeDeps: 移除关于重复别名的“Target name … already exists”警告。 #14644

  • Bug 修复: 修复在 win_bash=TrueGit.run() 的回归问题。 #14756

  • Bug 修复: 将 conan.tools.system.package_manager.Apt 中的默认 check=False 更改为 True,与其他包管理器工具保持一致。 #14728 。文档 在此

  • Bug 修复: 解决了具有菱形依赖的 test_requires 的传递共享依赖项传播问题。 #14721

  • Bug 修复: 解决 **conan export-pkg** 命令中 test_package 调用远程服务器时的崩溃问题。 #14712

  • Bug 修复: 不对具有未跳过的传递依赖项的包进行二进制跳过,否则会破坏构建系统到这些传递依赖项的构建链,例如 CMakeDeps 生成的文件。 #14673

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

  • Bug 修复: conan lock create --update 现在可以正确更新远程服务器的引用,如果比缓存中的新。 #14643

  • Bug 修复: 修复命令 stdout 不必要地使用转义序列进行装饰的问题。 #14642

  • Bug 修复: tools.info.package_id:confs 不应影响仅头文件库。 #14622

2.0.10 (2023年8月29日)

  • 新特性: 允许在 conandata.yml 定义中包含 patch_user,用于用户补丁,不受 apply_conandata_patches() 处理。 #14576 。文档 在此

  • 新特性: 支持 Xcode 15, iOS 17, tvOS 17, watchOS 10, macOS 14。 #14538

  • 新特性: 如果用户将错误的 ConanCenter web URL 添加为远程,则报错。 #14531

  • 新特性: 使用 --format=json 对图进行序列化时,向 python_requires 添加信息,以便 conan list --graph 也能列出 python_requires#14529

  • 新特性: 为图 json 序列化添加 rrev, rrev_timestampprev_timestamp#14526

  • 新特性: 允许 version-ranges 也解析到 editable 包。 #14510

  • 新特性: 添加 tools.files.download:verify#14508 。文档 在此

  • 新特性: 添加对 Apple visionOS 的支持。 #14504

  • 新特性: 对未知版本范围选项发出警告。 #14493

  • 新特性: 添加 tools.graph:skip_binaries 以控制图中二进制文件的跳过。 #14466 。文档 在此

  • 新特性: 新配置 tools.deployer:symlinks,用于禁用 deployer 中的符号链接复制。 #14461 。文档 在此

  • 新特性: 允许远程自动解析 ‘editable add’ 中缺失的 python_requires#14413 。文档 在此

  • 新特性: 为 CMake.install() 添加 cli_args 参数。 #14397 。文档 在此

  • 新特性: 允许 test_requires(..., force=True)#14394 。文档 在此

  • 新特性: 新文件 credentials.json,用于存储 Conan 远程服务器的凭据。 #14392 。文档 在此

  • 新特性: 添加了对 apk 包管理器和 Alpine Linux 的支持。 #14382 。文档 在此

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

  • 新特性: 正确文档化 --build=editable 构建模式。 #14358 。文档 在此

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

  • 新特性: 提供新属性 default_build_options,用于在配方中定义 tool_requires 的选项。 #14340 。文档 在此

  • 新特性: 实现 ...@ 作为模式,指示匹配没有 user/channel 的包。 #14338 。文档 在此

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

  • 修复: 允许在 **conan create** 命令中为 python-requires 使用 --format=json#14594

  • 修复: 移除 Conan v2 ready 的 conan-center 链接。 #14593

  • 修复: 使 **conan inspect** 默认使用所有远程。 #14572 。文档 在此

  • 修复: 允许版本预发布版本中出现额外的连字符。 #14561

  • 修复: 如果定义了 tools.cmake.cmaketoolchain 的 confs,即使定义了 tools.cmake.cmaketoolchain:user_toolchain,也允许使用这些 confs。 #14556 。文档 在此

  • 修复: 在图的 --format=json 输出中,将 dependencies 的布尔值序列化为布尔类型,而非字符串。 #14530 。文档 在此

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

  • 修复: 改进 lock add 添加完整包引用而非配方引用的错误检查。 #14491

  • 修复: 内置 deployer 复制文件失败时提供更好的错误消息。 #14461 。文档 在此

  • 修复: 不将未捕获的栈追踪打印到 stdout,而是打印到 stderr#14444

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

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

  • 修复: 移除插件文件会产生更好的错误消息,而不是栈追踪。 #14376

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

  • 修复: 使备份源 core.sources conf 不强制要求末尾斜杠。 #14342

  • 修复: 正确传播配方 default_options 中定义的选项到 test_requires#14340 。文档 在此

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

  • 修复: 使用 abspath 进行 conan config install,以避免符号链接问题。 #14183

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

  • Bug 修复: 使用包列表时,避免未向 **conan download** 提供时间戳而导致数据库错误。 #14526

  • Bug 修复: 将异常栈追踪(设置 -vtrace 时)打印到 stderr 而不是 stdout。 #14522

  • Bug 修复: 在 **conan upload** 中仅打印交互确认的包。 #14512

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

  • Bug 修复: 传递 --channel 未指定 --user 时提供更好的错误消息。 #14443

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

  • Bug 修复: 设置 core.download:parallel 时,避免出现 DB is locked 错误。 #14410

  • Bug 修复: 使用 deployer 时,使生成的 powershell 环境脚本相对化。 #14391

  • Bug 修复: 修复 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.pyprofile.py 插件中的错误消息,并提供 Conan 追踪。 #14322

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

  • Bug 修复: 修复 Package signing plugin 不验证下载源文件的问题。 #14331 。文档 在此

  • Bug 修复: 修复 CMakeUserPresets 因拼写错误继承自 conan 生成的预设的问题。 #14325

  • Bug 修复: 如果多个用户预设继承自相同的 conan 预设,ConanPresets.json 会包含重复的预设。 #14296

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

  • Bug 修复: 修复 CMake Error: Invalid level specified for --logleveltools.build:verbosity 设置为 quiet 时的问题。 #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-like 对象。 #14233 。文档 在此

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

  • 新特性: 自动管理 shared, fPIC 和 header_only 选项。 #14194 。文档 在此

  • 新特性: 自动管理仅头文件包类型的 package ID。 #14194 。文档 在此

  • 新特性: 为 CMakeDeps 生成器新增 cpp_info.set_property("cmake_package_version_compat", "AnyNewerVersion")#14176 。文档 在此

  • 新特性: 元数据改进。 #14152

  • 修复: 使用 **conan test** 命令时,改进缺失二进制文件的错误消息。 #14272

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

  • 修复: 使用 upload 命令带 --list 参数时,现在允许空配方列表。 #14254

  • 修复: 保证 Options.rm_safe 永远不会抛出异常。 #14238

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

  • 修复: 为 **conan new** lib templates 添加缺失的 package_type#14215

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

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

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

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

  • 修复: PkgConfig 使用 conanfile.run() 而非内部运行器来获取 profile 和依赖项的完整 Conan 环境。 #13985

  • Bug 修复: 修复 CMakeDepsCMAKE_FIND_LIBRARY_SUFFIXES 变量泄漏。 #14253

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

  • Bug 修复: 改进 conan graph info 在 html 格式中图冲突的显示。 #14190

  • Bug 修复: 修复 CMakeToolchain 从 Linux 交叉构建到 OSX 的问题。 #14187

  • Bug 修复: 修复未选择包时,备份源中出现 KeyError 的问题。 #14185

2.0.7 (2023年6月21日)

  • 新特性: 添加新的 arm64ec 架构,用于定义 CMAKE_GENERATOR_PLATFORM。 #14114 。文档 在此

  • 新特性: 使 CppInfo 成为一个公共、已文档化、可导入的工具,供需要聚合它们的生成器使用。 #14101 。文档 在此

  • 新特性: 允许 conan remove --list=pkglist 移除包列表。 #14082 。文档 在此

  • 新特性: conan remove --format 的输出同时支持 text(删除项摘要)和 json 格式。 #14082 。文档 在此

  • 新特性: 为备份源添加 core.sources:excluded_urls#14020

  • 新特性: **conan test** 命令支持 --format=json 格式化程序。 #14011 。文档 在此

  • 新特性: 允许在 conan list (以及 download, upload, remove) 模式中使用 pkg/[version-range] 表达式。 #14004 。文档 在此

  • 新特性: 添加 conan upload --dry-run,等同于 1.X 的 conan upload --skip-upload#14002 。文档 在此

  • 新特性: 添加新命令 conan version 以格式化输出。 #13999 。文档 在此

  • 新特性: 微小的用户体验改进,在下载大文件时打印一些信息。 #13989

  • 新特性: 使用 PackagesList 作为 conan upload --list=pkglist.json 的输入参数。 #13928 。文档 在此

  • 新特性: 使用 --graph 作为 conan list 的输入,以创建可作为 **conan upload** 输入的 PackagesList#13928 。文档 在此

  • 新特性: 新增与配方和包关联的元数据文件,可在包存在后上传、下载和添加。 #13918

  • 新特性: 允许指定自定义 deployer 输出文件夹。 #13757 。文档 在此

  • 新特性: 将构建和编译详细程度控制拆分为两个 conf。 #13729 。文档 在此

  • 新特性: 在 PkgConfigDeps 生成的 .pc 文件中添加 bindir#13623 。文档 在此

  • 修复: 废弃 Conan 1.X 的遗留项 AutoPackage#14083 。文档 在此

  • 修复: 修复默认构建 profile 使用的 conf 条目的描述。 #14075 。文档 在此

  • 修复: 允许在 Git 辅助工具的路径中使用空格。 #14063 。文档 在此

  • 修复: 移除 conanfile.xxx_folder 中导致 msys2 等子系统故障的末尾 .#14061

  • 修复: 避免图中的某些中间包调用某个依赖上的 aggregated_components() 并使用 --deployer 时出现缓存问题,生成器仍然指向 Conan 缓存而非部署的副本。 #14060

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

  • 修复: 对于 Python 3.10,强制要求 pyyaml>=6,因为之前的版本会破坏功能。 #13990

  • 修复: 当 Conan 无法显示冲突的配方之一时,改进图冲突消息。 #13946

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

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

  • 修复: 如果 conan graph build-order 图有任何错误,则抛出异常,而不是悄无声息地不做任何事情并输出空 json。 #14106

  • 修复: 避免当文件夹有重叠匹配名称时,对 editable 包进行不正确的路径替换。 #14095

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

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

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

  • 修复: 修复定义 self.folders.root=".." 父目录时,editable 包出现的问题。 #13983

  • 修复: 移除 libdir1includedir1 作为默认索引。现在,PkgConfigDeps.pc 文件中默认创建 libdirincludedir 变量。 #13623 。文档 此处

2.0.6 (2023年5月26日)

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

  • 修复: 在图 json 输出中,将“id”属性输出为 str 而非 int。 #13964 。文档 此处

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

  • 修复: 改进下载 + 解压的输出。 #13937

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

  • 修复: 确保 graph infocreateexport-pkginstall 的 graph-info JSON 输出相同。 #13967 。文档 此处

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

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

  • 修复: 修复并完成了 graph info xxxx –format json 输出,以便公开记录。 #13934 。文档 此处

  • 修复: 修复 premakedeps 中的“双重”绝对路径问题。 #13926

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

2.0.5 (2023年5月18日)

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

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

  • 功能: 允许对使用 --build 在本地构建的包进行步进依赖调试。 #13833 。文档 此处

  • 功能: 允许使用 upload_policy="skip"build_policy="missing" 构建不可重定位的本地包。 #13833 。文档 此处

  • 功能: 计算 package-revision 时,不要移动缓存中的“build”文件夹,以便能够定位依赖的源代码进行步进调试。 #13810

  • 功能: 新增 settings.possible_values() 方法,用于查询设置可能值的范围。 #13796 。文档 此处

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

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

  • 功能: 改进 settings.yml 错误消息。 #13748

  • 功能: 自动创建空的 global.conf,以改善在 home 目录中查找文件的用户体验。 #13746 。文档 此处

  • 功能: 将配置文件名渲染为 profile_name。 #13721 。文档 此处

  • 功能: 新增全局自定义生成器,位于缓存的“extensions/generators”中,可通过名称使用。 #13718 。文档 此处

  • 功能: 改进 conan inspect 输出,现在它能理解 set_name/set_version#13716 。文档 此处

  • 功能: 定义新的 self.tool_requires("pkg/<host_version>"),允许某些工具依赖项跟随并使用与“host”常规依赖项相同的版本。 #13712 。文档 此处

  • 功能: 引入新的 core:skip_warns 配置,以便能够忽略输出中的某些警告。 #13706 。文档 此处

  • 功能: 在图节点序列化中添加 info_invalid。 #13688

  • 功能: 计算和报告图中的 overrides,以及在 graph build-order 中。 #13680

  • 功能: 新增 revision_mode = "scm_folder",适用于希望使用 scm 修订版本的单仓库项目。 #13562 。文档 此处

  • 功能: 演示可以 tool_requires 同一个包的不同版本。 #13529 。文档 此处

  • 修复: build_scripts 现在默认将 run 特性设置为 True#13901 。文档 此处

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

  • 修复: 不允许在 pkg/version 引用字段中包含换行符。 #13870

  • 修复: 修复 AutotoolsToolchain 对 Windows 子系统的 tools.build:compiler_executable 定义。 #13867

  • 修复: 加快 CMakeDeps 生成速度。 #13857

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

  • 修复: 定义未知 conf 时失败。 #13832

  • 修复: 修复在 conan install/create 命令中,当“跳过”的二进制文件被其他依赖项使用时,打印不正确的问题。 #13778

  • 修复: 将缓存中的“deploy”文件夹重命名为“deployers”并允许使用 -d, --deployer 命令行参数。(“deploy”文件夹仍可工作,但会显示弃用警告)。 #13740 。文档 此处

  • 修复: 在 CMakeDeps 中,对于 header-only 库省略 -L 库路径。 #13704

  • 修复: 修复当 test_requires 也是常规的传递性“host”依赖项且消费者定义了组件时的问题。 #13898

  • 修复: 修复配方中定义的 *:shared=True 等选项的传播问题。 #13855

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

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

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

  • 修复: 修复针对仅导出配方使用备份源时的 conan upload 命令。 #13779

  • 修复: 修复包含别名的锁定文件的 conan lock merge 命令。 #13763

  • 修复: 修复带有版本范围的传递性依赖项中的 python_requires 问题。 #13762

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

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

  • 修复: 解决当图中包含带有 override=True 的依赖项时,锁定文件失败的问题。 #13597

2.0.4 (2023年4月11日)

  • 功能: 将 --build-require 扩展到更多命令(graph info, lock create, install)和情况。 #13669 。文档 此处

  • 功能: 添加 -d tool_requiresconan new 命令。 #13608 。文档 此处

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

  • 功能: 添加了对 premake5 依赖项 (PremakeDeps) 的初步支持(未文档化,仅限开发)。 #13390

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

  • 修复: 改进 requirements() 错误消息中更改的依赖项选项。 #13668

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

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

  • 修复: 当服务器对配方/包中的一个文件下载返回 Forbidden 时,确保清除其他文件和数据库。 #13626

  • 修复: 在 conan remove 命令中使用 –package-query 但未提供匹配包的模式时添加错误。 #13622

  • 修复: 为 direct_deploy 部署器添加 direct_deploy 子文件夹。 #13612 。文档 此处

  • 修复: 修复当模式不列出包修订版本时(例如:conan list "*#*:*")的 html 输出。 #13605

  • 修复: 当包没有设置或选项时,conan list -p <package-query> 失败。 #13662

  • 修复: python_requires 现在能正确加载远程依赖项。 #13657

  • 修复: 修复当图的某个节点(也是菱形结构的闭合节点)中使用 override 时发生的崩溃问题。 #13631

  • 修复: 修复 --package-query 参数对 options 的问题。 #13618

  • 修复: 为 full_deploy 部署器添加 full_deploy 子文件夹,以避免与“build”文件夹冲突。 #13612 。文档 此处

  • 修复: 将 STATUS 设为默认日志级别。 #13610

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

2.0.3 (2023年4月3日)

  • 功能: conan cache clean 新增 --all--temp 参数,用于清理所有内容(源代码、构建)以及临时文件夹。 #13581 。文档 此处

  • 功能: 引入使用 *= 操作符更新 conf 字典的语义。 #13571 。文档 此处

  • 功能: 支持 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:cflagstools.build:cxxflags 定义了编译器标志,将其设置为 False 可能会很有用,以防止 Android 的遗留 CMake 工具链覆盖这些值。 #13459 。文档 此处

  • 功能: 将 tools.files.download:download_cache 默认设置为 core.download:download_cache,这样只需要定义一个。 #13458

  • 功能: tools.files.download() 添加认证功能。 #13421 。文档 此处

  • 修复: 定义了一种在 python_requires_extend 扩展中更新 default_options 的方式。 #13487 。文档 此处

  • 修复: 再次允许指定 self.options["mydep"].someoption=value,等同于 "mydep/*"#13467

  • 修复: 对于使用 meson 与 VS2019 和 VS2022 构建 c++20 项目,生成 cpp_std=vc++20 而非 vc++latest#13450

  • 修复: 修复 CMakeDeps 未在 find_library() 中清除 CONAN_SHARED_FOUND_LIBRARY 变量的问题。 #13596

  • 修复: 不允许添加多个具有相同远程名称的远程仓库。 #13574

  • 修复: cmd_wrapper 添加了缺失的参数 conanfile#13564 。文档 此处

  • 修复: 避免因可编辑包的依赖项二进制文件被“跳过”而导致生成器出错。 #13544

  • 修复: 修复父命令包含下划线时子命令名称错误的问题。 #13516

  • 修复: 在运行 conan export-pkg 时,修复远程仓库中的 python-requires 问题。 #13496

  • 修复: 可编辑包现在也遵循 build_folder_vars 配置。 #13488

  • 修复: 修复 [system_tools] 配置文件的组合问题。 #13468

2.0.2 (2023年3月15日)

  • 功能: 在 config install 中添加 –insecure 作为 –verify-ssl 的别名。 #13270 。文档 此处

  • 功能: 为 conan config install 添加 .conanignore 支持。 #13269 。文档 此处

  • 功能: 使异常的详细回溯在 -vv-vvv 时显示,而不是使用 1.X 中的自定义环境变量。 #13226

  • 功能: 创建缓存内容的摘要。 #13386

  • 功能: 添加 conan config show <conf> 命令。 #13354 。文档 此处

  • 功能: 允许 global.conf 包含其他文件(通过 jinja2)。 #13336

  • 功能: 添加 conan export-pkg --skip-binaries,允许导出时跳过依赖项的二进制文件。 #13324 。文档 此处

  • 功能: 添加 core.version_ranges:resolve_prereleases 配置,用于控制版本范围是否解析到预发布版本。 #13321

  • 修复: 允许在 conan create 命令中自动处理 package_type = "build-scripts" 作为 --build-require#13433

  • 修复: 改进服务器端包损坏的检测和消息。 #13432

  • 修复: 修复 conan download 帮助中的拼写错误。 #13430

  • 修复: 从 conan profile path 命令中移除配置文件参数。 #13423 。文档 此处

  • 修复: 修复 _detect_compiler_version 中的拼写错误。 #13396

  • 修复: 修复 conan profile detect 在 OSX 上对 clang 编译器的 libc++ 检测。 #13359

  • 修复: 允许内部 vswhere 调用也检测和使用 VS 预发布版本。 #13355

  • 修复: 允许 conan export-pkg 使用远程仓库安装缓存中缺失的依赖项。 #13324 。文档 此处

  • 修复: 当 settings_user.yml 定义了 dict 时,允许将 settings.yml 列表转换为 dict#13323

  • 修复: 修复使用 AutotoolsToolchain 从 macOS 交叉编译到非 Apple OS 时传递的标志问题。 #13230

  • 修复: 修复 MSBuild 在自定义配置包含空格时的问题。 #13435

  • 修复: 解决 conan profile path <nonexisting> 命令崩溃的 bug。 #13434

  • 修复: 添加全局详细程度配置 tools.build:verbosity,而不是单独配置。 #13428 。文档 此处

  • 修复: 避免对格式错误的自定义命令抛出致命异常。 #13365

  • 修复: 即使依赖项是 header-only,也不要省略其 system_libs#13364

  • 修复: 修复实例化 MesonToolchain 时未创建 VirtualBuildEnv 环境的问题。 #13346

  • 修复: 兼容性插件在自定义编译器方面提供更友好的错误提示。 #13328

  • 修复: 添加 qcc cppstd 兼容性信息,以允许计算依赖图。 #13326

2.0.1 (2023年3月3日)

  • 功能: 在 config install 中添加 –insecure 作为 –verify-ssl 的别名。 #13270 。文档 此处

  • 功能: 为 conan config install 添加 .conanignore 支持。 #13269 。文档 此处

  • 功能: 使异常的详细回溯在 -vv-vvv 时显示,而不是使用 1.X 中的自定义环境变量。 #13226

  • 修复: 对 conan install 和 2.0-readiness 错误消息进行微小改进。 #13299

  • 修复: 移除 vcvars.bat VS 遥测环境变量,以避免 Conan 挂起。 #13293

  • 修复: 移除对 CMakeUserPresets.json 的遗留 CMakeToolchainCMakePresets schema2 的支持。 #13288 。文档 此处

  • 修复: 移除 --logger json 日志记录和遗留跟踪。 #13287 。文档 此处

  • 修复: 修复 conan remote auth 帮助中的拼写错误。 #13285 。文档 此处

  • 修复: 如果 conan config list unexpected-arg,则抛出参数错误。 #13282

  • 修复: 对于 msvc,不自动检测 compiler.runtime_type,而是依赖配置文件插件。 #13277

  • 修复: 修复 conanfile.txt 选项解析错误消息。 #13266

  • 修复: 改进选项中统一模式的错误消息。 #13264

  • 修复: 允许 conan remote add --force 强制重新定义现有远程仓库名称。 #13249

  • 修复: 恢复构建命令打印配置文件。 #13214

  • 修复: 更改 conan build 命令“path”参数的描述,以表明它仅适用于 conanfile.py,并明确说明它不适用于 conanfile.txt。 #13211 。文档 此处

  • 修复: 改进在 requirements() 方法中定义依赖项 options 时出现的错误消息。 #13207

  • 修复: 修复错误消息和 readme 中指向文档的断开链接。 #13186

  • 修复: 确保 topics 始终序列化为列表。 #13298

  • 修复: 确保 provides 始终序列化为列表。 #13298

  • 修复: 修复了某些 visual c++ 安装的检测问题。 #13284

  • 修复: 修复 msvc 编译器支持的 cppstd 值问题。 #13278

  • 修复: CMakeDeps 为 tool_requires 生成文件时,使用与“host”上下文相同的 build_type#13267

  • 修复: 修复 configure() 中依赖项选项模式的定义。 #13263

  • 修复: 修复输出文件夹位于不同 Windows 驱动器时 CMakeToolchain 错误。 #13248

  • 修复: 如果组件的 .requires 未使用 test_requires,则不抛出错误。 #13191

2.0.0 (2023年2月22日)

  • 功能: 将 apple-clang 的默认配置文件 cppstd 更改为 gnu17。 #13185

  • 功能: 新增 conan remote auth 命令,强制在远程仓库进行身份验证。 #13180

  • 修复: 允许在 test_requires(..., options={}) 中定义选项特性。 #13178

  • 修复: 统一 Conan 命令的帮助消息。 #13176

  • 修复: 修复 MesonToolchain 在 apple-clang 中错误的 cppstd 问题。 #13172

  • 功能: 改进全局 Conan 输出消息(create, install, export 等)。 #12746

2.0.0-beta10 (2023年2月16日)

  • 功能: 为 conan list 命令添加基本的 html 输出。 #13135

  • 功能: 允许 test_package 处理 --build 参数(为主体图计算 --build=never,而不是 test_package 图)。 #13117

  • 功能: 为 remote add 添加 –force 参数。 #13112

  • 功能: 验证输入配置是否存在,以避免拼写错误。 #13110

  • 功能: 允许在配方 layout() 中定义 self.folders.build_folder_vars#13109

  • 功能: 阻止设置赋值。 #13099

  • 功能: 改进 conan editable UI。 #13093

  • 功能: 为用户提供扩展 Conan 生成的 CMakePresets 的能力。 #13090

  • 功能: 添加错误消息以帮助将配方迁移到 2.0,包括 ConanCenter 和用户仓库中的配方。 #13074

  • 功能: 在 conan new 模板中移除共享库的 option.fPIC。 #13066

  • 功能: 添加 conan cache clean 子命令,用于清理构建和源代码文件夹。 #13050

  • 功能: 实现可定制的 CMakeToolchain.presets_prefix,以便预设名称以此为前缀。 #13015

  • 功能: 在配置文件中添加 [system_tools] 部分,以使用您自己安装的工具,而不是 requires 中声明的包。 #10166

  • 修复: Powershell 转义问题修复。 #13084

  • 修复: 默认定义 CMakeToolchain.presets_prefix="conan",以避免与其他用户预设冲突。 #13015

2.0.0-beta9 (2023年1月31日)

  • 功能: 在 Conan 缓存哈希路径中添加包名。 #13011

  • 功能: 实现 tools.build:download_source 配置项,强制在 conan installconan graph info 中安装源代码。 #13003

  • 功能: 用户可以在 settings_user.yml 中定义自己的设置,这些设置将与 Conan 的 settings.yml 合并。 #12980

  • 功能: 也列出禁用的远程仓库。 #12937

  • 修复: PkgConfiDeps 使用了依赖项中错误的 dependencies.host,而不是 get_transitive_requires() 计算的结果。 #13013

  • 修复: 修复 CMakeDeps 中的传递性共享 Linux 库问题。 #13010

  • 修复: 修复 test_package 输出文件夹的问题。 #12992

  • 修复: 改进错误方法的错误消息。 #12962

  • 修复: 修复由于数据库并发问题导致并行包下载失败。 #12930

  • 修复: 启用针对已禁用远程仓库的认证。 #12913

  • 修复: 改进 system_requirements。 #12912

  • 修复: 将 tar 格式更改为 PAX,这是 Python3.8 的默认格式。 #12899

2.0.0-beta8 (2023年1月12日)

  • 功能: 为 package_info 中需要与 Conan 1.x 兼容的配方添加 unix_path_package_info_legacy 函数。在 Conan 2 中,不应在 package_info 方法中执行路径转换。 #12886

  • 功能: 为 conan list 命令添加新的序列化 json 和打印功能。 #12883

  • 功能: 为 conan new cmake_{lib,exe} 添加依赖项。 #12875

  • 功能: 允许使用 --no-remotes 强制临时禁用远程仓库。 #12808

  • 功能: 为 conan new 命令添加 barebones 模板选项。 #12802

  • 功能: 如果传递了 PkgID,避免请求包配置。 #12801

  • 功能: 实现了 conan list *#latestconan list *:*#latest。基本上,这个命令可以显示所有匹配引用(References)的最新 RREVs(Recipe Revisions)和 PREVs(Package Revisions)。 #12781

  • 功能: 允许链接 self.output 的写方法。 #12780

  • 修复: 使 graph info 过滤器也适用于 json 输出。 #12836

  • 修复: 修复在 Windows 上使用 AutotoolsToolchain 进行交叉构建时传递有效的 GNU triplet 的问题。 #12881

  • 修复: 如果引用名称相同但版本不同,则进行排序。 #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

  • 功能: 锁定文件别名支持。 #12525

2.0.0-beta5 (2022年11月11日)

  • 功能: 远程仓库管理和 API 的改进。 #12468

  • 功能: 在 Conan 2.0 中将 env_info 和 user_info 实现为虚拟属性。 #12351

  • 功能: 改进 settings.rm_safe()。 #12379

  • 功能: 新的 RecipeReference 等价性检查。 #12506

  • 功能: 简化 .tgz 文件的压缩和解压缩。 #12378

  • 功能: conan source 命令不再需要默认配置文件。 #12475

  • 功能: 创建了一个合适的 LockfileAPI,包含详细的方法(update, save 等),而不是几个分散的方法。 #12502

  • 功能: conan export 命令也可以生成锁定文件,这对于执行两步(export + install–build)流程的用户是必需的。 #12502

  • 功能: 删除 compat_app。 #12484

  • 修复: 修复 transitive_headers=True 的传递性传播问题。 #12508

  • 修复: 修复静态库 transitive_libs=False 的传递性传播问题。 #12508

  • 修复: 修复 python_requires 的 test_package 问题。 #12508

2.0.0-beta4 (2022年10月11日)

  • 功能: 使用 revision_mode=scm 时,不允许进行包含未提交更改的 conan create/export。 #12267

  • 功能: 简化 conan inspect 命令,删除 path 子命令。 #12263

  • 功能: 为 graph info 命令添加 –deploy 参数。 #12243

  • 功能: 将 graph 对象传递给部署器,而不是 ConanFile。 #12243

  • 功能: 向 conan.tools.scm.Git 添加 included_files 方法。 #12246

  • 功能: 改进 clang libcxx 的检测。 #12251

  • 功能: 废弃旧的配置文件变量系统,改用配置文件中的 Jinja2 语法。 #12152

  • 修复: 更新命令以遵循 Conan 2.0 关于 CLI 输出的约定。 #12235

  • 修复: 修复菱形结构中测试特性的聚合问题。 #12080

2.0.0-beta3 (2022年9月12日)

  • 功能: 将 test_package 与 create 分离。 #12046

  • 功能: 如果导出的引用包含特殊字符,则发出警告。 #12053

  • 功能: MSBuildDeps 特性的改进。 #12032

  • 功能: 添加对 CLICOLOR_FORCE 环境变量的支持,如果该变量已声明且值非零,则会激活输出颜色。 #12028

  • 修复: 对所有配置只调用一次 source()。 #12050

  • 修复: 修复部署器不创建 output_folder 的问题。 #11977

  • 修复: 修复 build_id() 删除 requires 的问题。 #12019

  • 修复: 如果 Conan 加载自定义命令失败,现在会提供有用的错误消息。 #11720

  • 修复: 修复在 Windows 上构建配置文件中未指定“os”且配方想要运行命令时的 bug。 #11728

2.0.0-beta2 (2022年7月27日)

  • 功能: 在 MSBuildDeps 中添加特性支持。 #11680

  • 功能: 在 XcodeDeps 中添加特性支持。 #11615

  • 功能: 允许依赖项定义 package_id 模式。 #

  • 功能: 添加 conan.conanrc 文件来设置 conan 用户主目录。 #11675

  • 功能: 添加 core.cache:storage_path,用于声明存放 Conan 包的绝对路径。 #11672

  • 功能: 添加用于检查最大 cppstd 版本的工具。 #11610

  • 功能: 添加一个 post_build_fail 钩子,当构建失败时调用。 #11593

  • 功能: 添加 pre_generatepost_generate 钩子,覆盖围绕 generate() 方法调用的文件生成过程。 #11593

  • 功能: 恢复 conan config list 命令并改进其他配置。 #11575

  • 功能: 为所有命令添加了两个新参数:-v 用于控制输出的详细程度,–logger 用于将内容以 json 日志格式输出给日志处理器。 #11522

2.0.0-beta1 (2022年6月20日)

  • 功能: 新的图模型,更好地支持 C 和 C++ 二进制文件的关系、编译和链接。

  • 功能: 新的、有文档记录的公共 Python API,用于用户自动化。

  • 功能: 新的构建系统集成,更灵活、更强大,并在可能的情况下提供透明集成,例如 CMakeDepsCMakeToolchain

  • 功能: 新的自定义用户命令,可以使用公共 PythonAPI 构建,并可以通过 conan config install 分享和安装。

  • 功能: 新的 CLI 接口,命令更清晰,输出更结构化。

  • 功能: 新的部署器机制,用于将工件从缓存复制到用户文件夹,并在构建时使用这些副本。

  • 功能: 改进的 package_id 计算,考虑了新的更详细的图模型。

  • 功能: 添加了 compatibility.py 扩展机制,允许用户全局定义二进制兼容性。

  • 功能: 更简单、更强大的 lockfiles,提供随时间的可重现性。

  • 功能: 使用 [conf] 进行更好的配置,并使用新的 conan.tools.env 工具进行更好的环境管理。

  • 功能: Conan 缓存现在可以同时存储多个修订版本。

  • 功能: 新的扩展插件,用于实现配置文件检查、包签名和构建命令包装。

  • 功能: 利用包的不可变性改进了更新、安装和上传流程。