更新日志

有关 Conan 2 相较于 Conan 1.X 所带来的主要更改的更详细说明,请阅读Conan 2 中的新功能

2.18.0 (2025年6月30日)

  • 功能:允许在MSBuildDeps中消费 Meson 的 libname.a 库。 #18557

  • 功能:在使用 Meson + MSVC + 静态构建时避免库重命名。 #18533

  • 功能:在emcc编译器模型中添加了threads子设置。 #18520 。文档在此

  • 功能:新的conan cache ref <path>用于反向查找 Conan 缓存,带路径参数将返回该文件夹中工件的引用。仅用于调试目的。 #18518 。文档在此

  • 功能:Conan 根据配置文件架构自动检测新的链接器标志。 #18498

  • 功能:更改了conanws.yml格式。现在,packages是一个字典式对象的列表。 #18493 。文档在此

  • 功能:在CMakeConfigDeps中添加了对可编辑包中.exe的支持。 #18489

  • 功能:在basic_layout中添加build_folder参数。 #18442 。文档在此

  • 功能:使用pkg_config_name = 'none'跳过*.pc文件创建。 #18439 。文档在此

  • 功能:为conan audit list添加对 SBOM 和 lockfile 的支持。 #18437 。文档在此

  • 功能:添加了一等公民 Emscripten 支持(新的 wasm64 架构 + emcc)。 #18432 。文档在此

  • 功能:将tools.cmake:install_strip替换为tools.install:strip。影响 CMake 和 Meson 工具助手。 #18429 。文档在此

  • 功能:向TestClient添加open以在本地打开文件。 #18399

  • 功能:新的conan workspace create编排。 #18390 。文档在此

  • 功能:将context变量添加到 profile jinja2 渲染(可以是“build”、“host”和None)。 #18383 。文档在此

  • 功能:实现cpp_info.sources以支持源目标。 #18350 。文档在此

  • 功能:在 CMakeConfigDeps 生成器中添加对源目标的支持。 #18350 。文档在此

  • 功能:新的conan report diff命令用于检查版本和修订之间的差异。 #18247 。文档在此

  • 功能:添加 premake 工具链并改进 Conan 与新 premake5 的集成。 #17898 。文档在此

  • 修复:CMakeConfigDeps中不正确的组件要求有更好的错误消息。 #18562

  • 修复:避免在生成器中对相对路径使用-of时出现不正确的绝对路径输入。 #18561

  • 修复:当定义了不正确的cpp_info.requires时,有更好的错误消息。 #18552

  • 修复:避免 PowerShell 在--之后传递给 CMake 的 msbuild 详细程度参数中出现连字符。 #18548

  • 修复:改进conan cache check-integrity输出。 #18544

  • 修复:对conf_info项的错误定义引发错误。 #18541

  • 修复:修复qcc cppstd对最新 QNX 8.0 with c++20 的支持。 #18538

  • 修复:SBOM 组件bom-ref不应使用has_special_root_node#18515

  • 修复:为Node.dependencies添加弃用警告消息,现已重命名为Node.edges#18472

  • 修复:修复本地食谱索引中缺少文件夹的问题。 #18449

  • 修复:Git.get_remote_url现在在使用无树仓库时只返回 URL。 #18444

  • 修复:改进了具有相同依赖项不同visible=True/False的畸形图。 #18440 。文档在此

  • 修复:修复 Windows 上带有反斜杠的 CMake 预设。 #18435

  • 修复:不要在基本文本conan upload输出中输出上传 URL。 #18430

  • 修复:使用--out-file时,如果文件夹不存在则创建它们。 #18427

  • 修复:修复 Windows 上 LLVM/Clang 的 AutotoolsToolchain/GnuToolchain 在调试模式下的动态运行时。 #18422

  • 修复:测试NMakeclang-cl的集成。 #18422

  • 修复:确保只检测到旧版 gcc 的次要版本。 #18419

  • 修复:修复重置本地索引远程时源文件检索的问题。 #18418

  • 修复:允许detect_api中次要版本大于 9。 #18410

  • 修复:移除了Workspaces产品定义,并使conan workspace build能够计算正确的构建顺序。 #18390 。文档在此

  • 修复:在钩子中抛出ConanInvalidConfiguration时转发。 #18385

  • 错误修复:避免安装具有元组generators属性并要求提供self.generator_info生成器的工具包时崩溃。 #18503

  • 错误修复:修复 Meson 工具链中 riscv64 cpu 的检测。 #18495

  • 错误修复:将 Apple ARC 标志重定向到 ObjC/C++ 标志。 #18485

  • 错误修复:修复TestClient模拟的HEAD请求。 #18477

  • 错误修复:避免global.conf-cc配置中core.xxx项的泄露,core配置专用于 Conan 内部,不用于食谱或配置文件。 #18474

  • 错误修复:XcodeToolchain 为所有 Apple OS 正确设置..._DEPLOYMENT_TARGET#18471 。文档在此

  • 错误修复:conan export-pkg 现在正确地将str作为 conanfile 版本传递。 #18456

  • 错误修复:修复 conan 缓存备份上传忽略-cc参数的问题。 #18447

  • 错误修复:修复了CMakeConfigDeps在文件夹和子文件夹中使用多个find_package时的行为。 #18407

  • 错误修复:修复了当 conanfile 的source()方法存在folders.root时未使用的 bug。 #18377

2.17.1 (2025年6月23日)

  • 错误修复:为 git<2.36 添加了对Git()的支持,用于检查提交是否存在于远程的操作。 #18501

2.17.0 (2025年5月28日)

  • 功能:添加对 gcc 13.4 的支持 #18374 。文档在此

  • 功能:将“editables”重命名为“packages”。 #18359 。文档在此

  • 功能:如果存在名为conanws的文件夹,则将其作为搜索的上限。 #18343 。文档在此

  • 功能:从conanws.[yml | py]文件中移除了home_folder定义机制。 #18339 。文档在此

  • 功能:包/产品不需要在workspace文件夹内。 #18334 。文档在此

  • 功能:向 GnuToolchain 和 Autotoolchain 生成器添加tools.gnu:configure_args配置,允许向配置命令添加额外参数。 #18333 。文档在此

  • 功能:添加 gcc 14.3 支持。 #18322 。文档在此

  • 功能:C 标准的自动检测。 #18290 。文档在此

  • 功能:在CMakeToolchain生成的预设中定义 CMAKE_C/CXX_COMPILER,仅适用于 MSVC cl-like 编译器,仅对 Ninja 生成器自动启用。 #18280

  • 功能:向conan new添加header_lib模板。 #18249 。文档在此

  • 功能:to_cppstd_flag/to_cstd_flag方法不再使用固定值。 #18246

  • 功能:将subprocess添加到配置文件 jinja 渲染中。 #18244 。文档在此

  • 功能:新的conan cache save ... --no-source,避免将下载的源文件存储在.tgz中。 #18243 。文档在此

  • 功能:为conan cache clean添加详细日志。 #18228

  • 功能:向conan cache cleanconan cache check-integrity添加--list输入。 #18219 。文档在此

  • 功能:将allowed_packages信息添加到远程 json 输出。 #18206

  • 功能:为 conan upload 的 json 输出格式添加 URL 信息。 #18166 。文档在此

  • 功能:新的conan workspace clean命令,如果定义了可编辑的output-folder,则删除它,否则不操作。用户可以在conanws.py文件中自定义实现。 #17763 。文档在此

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

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

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

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

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

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

  • 修复:避免Git助手在commit_in_remote()中使用嫁接提交,这也影响coordinates_to_conandata()get_url_and_commit()#18315

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

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

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

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

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

  • 修复:CycloneDX 1.6 authors 字段。 #18208

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

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

  • 错误修复:从conan new autotools_exe模板configure.ac中移除LT_INIT#18378

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

  • 错误修复:修复conan audit在目录中找不到某些包时产生_parse_error_threshold崩溃的问题。 #18363

  • 错误修复:conan graph info ... -f=html上的第一个边缘现在显示要求信息。 #18245

  • 错误修复:conan cache save不再压缩下载的工件,例如conan_export.tgzconan_sources.tgz#18243 。文档在此

  • 错误修复:允许conan create一个python-requires包,其配置文件包含工具要求。 #18226

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

2.16.1 (2025年4月29日)

  • 功能:将缺失的 GCC 15 键添加到settings.yml #18193 。文档在此

2.16.0 (2025年4月29日)

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

  • 功能:允许CMakeConfigDeps支持多库组件(带弃用警告)。 #18172

  • 功能:将 CMAKE_MODULE_PATH 添加到 CMakeConfigDeps 以包含(module)。 #18162

  • 功能:为 conan audit scan 命令添加严重性级别的阈值。 #18160 。文档在此

  • 功能:GnuToolchain包含AutotoolsToolchain的最新更改。 #18159

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

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

  • 功能:如果conf_info被分配了原始设置/选项等,则提前报错。 #18083

  • 功能:将功能从Command层移动到ConanAPI,用于清除旧的私有导入from conans#18079

  • 功能:公开记录MSBuildDeps.platform属性(实验性),允许为需要x86值的 wix 项目进行自定义。 #18078 。文档在此

  • 功能:添加缺失的 intel-cc 版本 #18054 。文档在此

  • 功能:添加有关每个包正在构建的配置信息 #18019

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

  • 修复:conan audit 报告的一些改进。 #18171

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

  • 修复:修复审计 html 输出中的列溢出。 #18161

  • 修复:使audit_providers.json只可由所有者读写。 #18158

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

  • 修复:使conan.cli命令层完全独立于将要中断的旧版from conans导入。 #18127

  • 修复:在Git.checkout_from_conandata_coordinates()中显式git fetch commit,用于 Azure DevOps 等情况,它们创建的提交在git clone中默认不获取。 #18110

  • 修复:在MSBuild中添加ARM64EC平台,之前缺失。 #18100 。文档在此

  • 修复:允许conan graph build-order为“可编辑”包输出build_args#18097

  • 修复:改进私有审计提供者没有策展时的错误消息。 #18094

  • 修复:将一些Command格式化助手设为私有(只有printers中的是可重用的),并将一些 ConanAPI 属性设为私有。 #18079

  • 错误修复:如果“本地食谱索引”user/channel不匹配请求的,则引发未找到错误。 #18153

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

  • 错误修复:在CMakeConfigDeps中为 INTERFACE 库添加 IMPORTED_CONFIGURATIONS #18088

  • 错误修复:将 Apple bitcodevisibilityarc配置应用于Autootools/Gnu/Meson Toolchains #18085

2.15.1 (2025年4月14日)

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

2.15.0 (2025年3月31日)

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

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

  • 功能:添加使用*在字符串末尾定义的版本范围模式[1.2.3.4.*]#18012 。文档在此

  • 功能:如果在 Apple OS 之间交叉编译,则在 MesonToolchain 中添加subsystem字段。 #17985

  • 功能:向is_apple_os辅助函数添加了新的 kwarg build_context#17985

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

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

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

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

  • 修复:将from conan.internalfrom conans的一些用法从CLI命令移至 ConanAPI,使其私有化。 #17961

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

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

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

  • 错误修复:修复global.conf优先级高于配置文件[conf]以及每个包模式配置的顺序更改。 #18028

  • 错误修复:解决update_policy=legacy和使用 lockfiles 时的问题。 #18009

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

  • 错误修复:CppInfo.auto_deduce_location方法对精确匹配给予更高的优先级。 #17975

  • 错误修复:避免当工具需求中的自定义生成器通过类而不是名称引用时,--format=json序列化崩溃。 #17954

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

2.14.0 (2025年3月12日)

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

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

  • 功能:允许部分workspace install <path1> ... <pathN>工作区安装。 #17887 。文档在此

  • 功能:为 validate 方法添加钩子:pre_validatepost_validate#17856 。文档在此

  • 功能:向CMakeConfigDeps添加了完整的 Apple 框架管理。 #17725 。文档在此

  • 功能:向cpp_info添加了新的cpp_info.package_framework#17725 。文档在此

  • 功能:修复 Docker 运行器中的几个错误,添加了新的配置选项并改进了日志系统 #17542 。文档在此

  • 修复:改进jinja2配置文件渲染因意外语法失败时的错误消息。 #17940

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

  • 修复:cmake_set_interface_link_directories属性在CMakeDeps中并非必需,在CMakeConfigDeps中会失效,因为它需要完整的package_info()定义。 #17917 。文档在此

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

  • 修复:避免工作区错误地定义“本地食谱索引”辅助缓存。 #17883

  • 修复:改进配置文件转储环境的输出,具有正确的预置顺序。 #17863

  • 修复:修复 VCVars vcvarsall.bat 生成,如果操作系统设置为 WindowsStore。 #17849

  • 错误修复:避免自循环和当构建配置文件中的[tool_requires]自身依赖于版本范围时出现自循环。 #17931

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

  • 错误修复:解决版本范围具有不同用户时未引发冲突的问题。 #17877

2.13.0 (2025年2月26日)

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

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

  • 功能:当向local-recipes-index远程请求特定修订(不同于当前修订)时,添加警告。 #17819

  • 功能:从coordinates_to_conandata()将 repository 参数(带有相同默认值)转发到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 。文档在此

  • 功能:升级依赖项urllib32.0#17655

  • 功能:新的lock upgrade命令,可自动升级所需依赖项并解析图。 #17577 。文档在此

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

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

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

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

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

  • 修复:允许AutotoolsToolchain中从conf获取构建上下文信息。 #17794

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

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

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

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

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

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

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

2.12.2 (2025年2月12日)

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

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

  • 错误修复:修复 cycloneDX 工具参数。 #17760 。文档在此

2.12.1 (2025年1月28日)

  • 错误修复:修复conan config clean未重新生成所有必要文件的问题。 #17649

  • 错误修复:避免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 类似布局应用补丁。 #17520 。文档在此

  • 功能:添加解压 tarball 文件时的进度报告。 #17519

  • 功能:conan profile show现在可以选择显示哪个上下文的配置文件。 #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

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

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

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

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

  • 修复:允许最新的 bottle 0.13 版本用于conan_server以与 Python 3.13 配合使用。 #17534

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

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

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

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

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

  • 错误修复:conf_buildcliconanfile.txt上下文中不存在。 #17640

  • 错误修复:使conan.tools.files.unzip()同时使用patternstrip_root成为可能。 #17591

  • 错误修复:解决孵化中的CMakeDeps与传递性[replace_requires]的问题。 #17566

  • 错误修复:解决PkgConfigDeps与传递性[replace_requires]的问题。 #17566

2.11.0 (2024年12月18日)

  • 功能:仅在启用时对冻结的 conan v1 远程发出警告。 #17482

  • 功能:AutotoolsToolchain在 Android 交叉编译时优先使用用户变量。 #17470 。文档在此

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

  • 功能:将 Conan 缓存的“profiles”文件夹添加到 jinja2 搜索路径,以便即使是父文件夹和同级文件夹中的配置文件也可以通过 jinja 语法包含/导入。 #17432 。文档在此

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

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

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

  • 修复:修复调用editable_addLocalAPI对可编辑内容的定义。 #17498

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

  • 修复:在 BazelDeps (bazel 8.x 兼容) 中,明确地将allow_empty = True添加到glob()函数中。 #17444

  • 修复:修复由于未净化的正则表达式导致的cpp_info.location推断错误。 #17430

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

  • 修复:在本地食谱索引中搜索模式时,修复 user/channel。 #17408

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

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

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

  • 错误修复:修复了取消设置某些类型配置的问题。 #17445

2.10.3 (2024年12月18日)

2.10.2 (2024年12月10日)

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

2.10.1 (2024年12月4日)

  • 错误修复:修复[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提案,用于管理本地可编辑集。仅作为开发/维护者功能引入,在环境变量后面。 #17272 。文档在此

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

  • 功能:为 Docker 运行器在配置文件中添加网络。 #17069 。文档在此

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

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

  • 修复:为选项冲突添加“风险”警告,以便用户可以在冲突发生时将其提升为错误。 #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 运行器测试的架构。 #17069 。文档在此

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

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

  • 错误修复:修复添加带有空格的tools.android:ndk_path#17379

  • 错误修复:修复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 作为新的默认远程仓库,并警告旧远程仓库的存在。 #17284 . 文档 在此

  • Bugfix: 修复 CMAKE_TOOLCHAIN_FILE 变量的 ROSEnv 引用。 #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 中添加缺少的主要操作系统/编译器版本支持。 #17240 . 文档 在此

  • Feature: conan new 新增默认值 -d name=mypkg -d version=0.1 以简化用户体验。 #17186 . 文档 在此

  • Feature: 当 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: 为 ROS2 (机器人操作系统) 添加 ROSEnv 生成器集成。 #17110

  • Feature: 将配置文件参数信息添加到 conan graph build-order 中,以改善 CI 系统中的用户体验和使用。 #17102 . 文档 在此

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

  • Feature: 为 MSBuildDeps 属性表添加配置和平台键。 #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)将“链接语言”要求传播给包的消费者。 #16964

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

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

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

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

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

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

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

  • Fix: 将异常从旧版 from conans.error 移至已记录的 from conan.error#17126 . 文档 在此

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

  • Fix: 在 MSBuildToolchain 中从配置文件正确推断 RuntimeLibrary。 #17100

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

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

  • Fix: 避免当凭据来自环境变量或 credentials.json 文件时,因 401 错误而重复登录服务器,仅在用户交互式提示时重复登录。 #17083

  • Fix: 调整 CMakeToolchain 和 AutotoolsToolchain,以便在未定义时自动定义 compiler=msvccl 编译器(仅在必要时,如在 CMake 中使用 Ninja 生成器时)。 #16875 . 文档 在此

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

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

  • Bugfix: 改进了在配置文件加载时针对不同编译器版本进行 cstd 检查。 #17157

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

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

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

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

  • Bugfix: Conan Server: 搜索时,不要为同一 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日)

  • 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 远程仓库的认证。 #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>,用于在尚未定义远程仓库时进行初始远程 URL 定义。 #16876 . 文档 在此

  • Feature: 允许构建与当前配置文件兼容的包。 #16871

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

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

  • Fix: 即使定义了 user_toolchain,也允许 CMakeToolchain 定义 CMAKE_SYSTEM_XXX,但在工具链确实定义了它们的情况下进行保护。 #17036 . 文档 在此

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

  • Fix: 将 PkgConfigstderr 重定向到引发的异常。 #17020

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

  • Fix: 当 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

  • Fix: 为 #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 时,在“构建”上下文下游传播 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 . 文档 在此

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

  • Fix: 改进访问 cpp_info 速记方法时的错误。 #16847

  • Fix: 改进当锁文件未能锁定要求时(指定其类型)的错误消息。 #16841

  • Fix: 更新 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: 添加图构建顺序和图构建顺序合并的 html 输出。 #16611 . 文档 在此

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

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

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

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

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

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

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

  • Fix: 从 tools.build:compiler_executables 中移除不受支持的 ldar 条目,它们在所有 Conan 集成中均无效。 #16647

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

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

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

  • Bugfix: 修复了带有部分定义的每个包 [settings] 的配置文件 include() 问题。 #16720

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

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

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

  • Bugfix: 将 conan graph <subcommand> 变成一个真正的“安装”空运行。返回相同的错误并给出相同的消息。 #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: 添加了 force 选项到 tools.cmake.cmaketoolchain:extra_variables#16481 . 文档 在此

  • Feature: 如果同一 Conan 配置文件中任何部分重复,则引发 ConanException。 #16454

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

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

  • Feature: 添加 QbsDeps 类以用于 Qbs Conan 模块提供者。 #16334

  • Feature: 添加内置 runtime_deploy 部署器。 #15382 . 文档 在此

  • Fix: 修复提供者冲突错误消息未显示命名引用与提供者匹配的冲突提供者的问题。 #16562

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

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

  • Fix: 在 conan runners 中支持非默认 docker 主机。 #16477

  • Fix: 备份上传时,如果无法覆盖摘要文件,则不要失败。 #16452

  • Fix: 使 source_credentials.json 不适用于 Conan server repo 协议。 #16425 . 文档 在此

  • Fix: 允许包拥有空文件夹。 #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: 修复 XcodeToolchain 仅设置 defines 时的问题。 #16429

2.4.1 (2024年6月10日)

  • Fix: 避免 cmake_lib 模板生成的 test_package 中传递性依赖的 find_package#16451

  • Fix: 修复默认 compatibility.py 从全新安装的回迁问题。 #16417

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

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

2.4.0 (2024年6月5日)

  • Feature: 新增对 MacOS sdk_version 14.5 的支持。 #16400 . 文档 在此

  • Feature: 添加 CC_FOR_BUILDCXX_FOR_BUILD 环境变量到 AutotoolsToolchain。 #16391 . 文档 在此

  • Feature: 将 extra_xxxx 标志添加到 MesonToolchain,如同 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 中定义 GNUInstallDirs,也适用于本地 conan install/build 流程。 #16214

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

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

  • Feature: 添加了新的 revision_mode,包括所有内容直到 recipe-revision,但不包括 package_id#16195 . 文档 在此

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

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

  • Feature: 新的 compiler.cstd C 标准设置。 #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 . 文档 在此

  • Fix: 实现 <2.3 的回迁,用于默认的 compatibility.py 插件。 #16405

  • Fix: 添加缺少的 [replace_requires][platform_requires] 到配置文件的序列化/转储。 #16401

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

  • Fix: 使 cc 版本检测更加健壮。 #16362

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

  • Fix: 允许“local-recipes-index” conan list 带有自定义 user/channel 的包。 #16342

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

  • Fix: 将 CMAKE_SYSTEM_VERSION 的自动检测改为使用 Darwin 版本。 #16335 . 文档 在此

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

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

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

  • Fix: 只有当缓存的 recipe 修订版本确实更新时才打印相关信息。 #16275

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

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

  • Fix: 避免 Python 3.12 中 datetime 弃用调用。 #16095

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

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

  • Bugfix: 修复当使用 type=shared 的 docker runner 时配置文件错误。 #16364

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

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

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

  • Bugfix: 解决了 conan cache save/restore tgz 文件中不正确的路径问题,该问题在使用自定义 storage_path 配置时会导致崩溃。 #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=193,该更新将默认编译器更改为 compiler.version=194#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 . 文档 在此

  • Fix: 修复 Docker runner 的配置容器名称。 #16243

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

  • Bugfix: 解决了菱形结构中 lockfilesoverrides 错误。 #16235

  • Bugfix: 允许将 export-pkg --version=xxx 传递给继承自基类的 set_versionpython_requires 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: 在图 html 搜索栏中,现在接受逗号分隔的多个搜索模式。 #16083

  • Feature: 在图 html 中添加了“过滤包”栏,接受逗号分隔的多个搜索模式并将其从图中隐藏。 #16083

  • Feature: 为 Git 操作添加了一个参数 hide_url,以允许记录仓库 URL。默认情况下,URL 将保持 <hidden>,但用户可以选择不隐藏。 #16038

  • Feature: 在 export()export_sources() 方法中允许访问 .conf(仅限于 global.conf 信息,不包括配置文件信息)。 #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 添加到 conf。 #15965

  • Feature: 向 conan profile detect 添加 --exist-ok 参数,如果配置文件已存在,则不报错,且不覆盖它。 #15933

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

  • Feature: Meson 助手在本地和交叉文件都存在时注入它们。 #15919 . 文档 在此

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

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

  • Fix: 允许 conan profile detect 自动检测定义 CC=/usr/bin/cc(以及 CXX)。 #16187

  • Fix: 解决了 pyinstaller.py 脚本中的问题,它将不再安装 pip install pyinstaller,而是将其作为先决条件。 #16186

  • Fix: 在 CMake 助手中使用反斜杠表示 CMakeLists.txt 文件夹,解决了项目在驱动器根目录(如 X:)时的问题。 #16180

  • Fix: 即使路径已被删除,也允许 conan editable remove <path>#16170

  • Fix: 修复 conan new --help 格式问题。 #16155

  • Fix: 改进了图中存在冲突时的错误消息。 #16137

  • Fix: 改进了当一个 URL 不是有效服务器但在 Conan “ping” API 调用下仍返回 200-ok 时的错误消息。 #16126

  • Fix: 解决了 FreeBSD 中因带有双引号的查询导致的 sqlite3 问题。 #16123

  • Fix: 清理 conan cache restore <non-existing-file> 的错误消息。 #16113

  • Fix: 改进当缓存中的远程仓库或凭据文件无效/为空时的用户体验和错误消息。 #16091

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

  • Fix: 改进版本范围的用户体验,为无效的 ==, ~=, ^= 运算符提供更好的错误消息。 #16069

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

  • Fix: 为 Python 3.6 的使用打印警告,该版本自 2021 年以来已 EOL。 #16003

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

  • Fix: 在 FileDownloader 中,对于 HTTP 状态 401 错误,添加响应错误消息输出。 #15983

  • Fix: 将 gcc 14 添加到默认的 settings.yml#15958

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

  • Fix: 在 AutotoolsToolchaincompiler_executables 映射中添加 rc,用于 Linux 到 Windows 的交叉构建。 #15946

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

  • Fix: 不警告包含 - 字符的包名。 #15920

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

  • Bugfix: 使 MesonToolchain 监听 tools.build:defines conf 变量。 #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日)

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

2.2.2 (2024年3月25日)

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

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

  • Bugfix: 修复多配置 CMake 对 tools.build:defines 的处理问题。 #15924

2.2.1 (2024年3月20日)

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

2.2.0 (2024年3月20日)

  • Feature: 如果使用通用二进制语法,则对非 CMakeToolchain 的工具链发出警告。 #15896

  • Feature: 警告放置不当的需求函数调用。 #15888

  • Feature: 打印因不同分支 recipe 定义选项值而导致的图中选项冲突。 #15876 . 文档 在此

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

  • Feature: 新的图 html:更多信息、测试需求、隐藏/显示不同的包(构建、测试)。 #15846 . 文档 在此

  • Feature: 向 conan cache clean 命令添加 --backup-sources 标志。 #15845

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

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

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

  • Feature: 添加了 build_context_folder ` 到 PkgConfigDeps。 `#15813 . 文档 在此

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

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

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

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

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

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

  • 特性:(实验性)在 Conan 包中添加 conan config install-pkg myconf/[*] 新配置,并使用新的 package_type = "configuration"#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_libc 添加到 detect_api,以获取 C 库的名称和版本。#15683。文档在此

  • 特性:ConanAPI 中新增 CommandAPI 子 API,允许调用其他命令。#15630。文档在此

  • 修复:避免在 --build=missing 和重复的 tool_requires 时不必要地构建 tool_requires#15885

  • 修复:修复 CMakeDeps set_property(... APPEND 参数顺序。#15877

  • 修复:在安装图中发现无限循环时(存在循环的格式错误的依赖图)引发错误。#15835

  • 修复:确保 detect_default_compiler() 始终返回一个 3 元组。#15832

  • 修复:当某个修订版本不存在二进制文件时,为 conan graph explain 打印清晰的消息。#15823

  • 修复:将 package_type="static-library" 添加到 conan new msbuild_lib 模板中。#15807

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

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

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

  • 修复:避免 CMakeToolchain.preprocessor_definition 定义为字面字符串 "None",当其没有值时(Python None)。#15756

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

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

  • 修复:使所有食谱和插件的 Python 文件 print()stderr,这样就不会破坏 stdout 的 JSON 输出。#15704

  • 修复:修复 Linux x86 上获取 GNU 三元组的问题。#15699

  • 错误修复:解决了 global.confconan_home_folder 在列表中字符串中使用反斜杠的问题。#15870

  • 错误修复:修复了当存在基于 build_type 的条件依赖时 CMakeDeps 多配置的问题。#15853

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

  • 错误修复:避免当 conandata.yml 中某个版本没有列出补丁时出现 TypeError。#15842

  • 错误修复:解决了 package_type=build-scripts 在 lockfile 和 conan create 中遇到的问题。#15802

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

  • 错误修复:修复了在 Windows 上使用 MesonToolchain 进行交叉编译到 Android 时的问题。#15790

  • 错误修复:修复了当 compiler.update 定义时 CMakeToolchain GENERATOR_TOOLSET 的问题。#15789

  • 错误修复:解决了 conf 项在匹配 Python 模块时求值的问题。#15779

  • 错误修复:修复了 PkgConfigDeps 在构建上下文已存在时为其 tool_requires 生成 .pc 文件的问题。#15763

  • 错误修复:将 VISIBILITY 标志也添加到 CONAN_C_FLAGS 中。#15762

  • 错误修复:修复了带有范围 conf 的配置文件的 conan profile show –format=json 问题。#15747

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

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

  • 错误修复:修复了元数据版本范围的版本优先级问题。#15653

2.1.0 (2024年2月15日)

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

  • 特性:添加了向 –update 标志传递模式的能力。#15652。文档在此

  • 特性:为 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。文档在此

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

  • 特性:添加配置以在 CMakeToolchain 中为 Visual Studio CMake 生成器指定所需的 CUDA Toolkit。#15572。文档在此

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

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

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

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

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

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

  • 特性:在 generate() 方法中添加 CMakeToolchain.presets_build/run_environment 以修改 CMakePresets 环境。#15470。文档在此

  • 特性:为远程添加 –allowed-packges 以限制远程可提供的引用。#15464。文档在此

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

  • 特性:增加了在 PowerShell 中调用时使用 vcvars 环境变量的支持。#15461。文档在此

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

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

  • 特性:针对 python_requires 食谱的食谱 python_package_id_mode,用于定义每个食谱对消费者 package_id 的影响。#15453。文档在此

  • 特性:将 cmakeExecutable 添加到配置预设中。#15447。文档在此

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

  • 特性:在 detect_api 中添加 detect_api.detect_msvc_update(version) 助手。#15435。文档在此

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

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

  • 特性:助手 Git().coordinates_to_conandata()Git().checkout_from_conandata_coordinates() 以简化基于 scm 的流程。#15377

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

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

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

  • 特性:显示长时间 conan list 命令的进度。#15354

  • 特性:为 extension_properties 属性添加信息,以便从食谱向扩展传递信息。#15348。文档在此

  • 特性:在 extension_properties 中为 compatibility.py 插件实现 compatibility_cppstd,以禁用食谱对其他 cppstd 的回退。#15348。文档在此

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

  • 特性:确保 --build=editable--build=cascade 协同工作。#15300。文档在此

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

  • 特性:允许将带有时间戳的食谱修订版本从 --format=compact 复制粘贴到 conan lock add#15262。文档在此

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

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

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

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

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

  • 修复:允许 CMakeToolchain.preprocessor_definitionsNone 值映射到没有值的定义。#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

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

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

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

  • 修复:允许 cmake.build(build_type="Release") 用于使用多配置系统但没有 build_type 设置的食谱。#14780

  • 错误修复:修复了 MSBuildDeps 在组件和跳过的依赖项中的问题。#15626

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

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

  • 错误修复:修复了当依赖项是仅头文件时,visible=False 的错误传播。#15564

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

  • 错误修复:conan export-pkg --format=json 的输出现在返回 recipe = "cache" 状态,因为食谱在命令执行后已在缓存中。#15504

  • 错误修复:conan export-pkg 命令存储的 lockfile 不包括 test_package,与 conan create 的行为一致。#15504

  • 错误修复:避免 conan testpython_requires 测试包时失败。#15485。文档在此

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

  • 错误修复:允许限制 oscompiler 和其他带有子设置的设置在 build_id()package_id() 方法中。#15439

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

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

  • 错误修复:禁用创建没有名称和版本的可编辑项。#15337

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

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

2.0.17 (2024年1月10日)

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

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

  • 错误修复:解决了 CMakeToolchain 生成器中 winsdk_versioncmake_minimum_required(3.27) 中存在的错误。#15373

  • 错误修复:修复了 build=True 特性下的可见性特性传播问题。#15357

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

  • 错误修复:在转储 conf 项时对其进行排序,以允许可重现的 package_id 不依赖于 conf 的声明顺序。#15356

2.0.16 (2023年12月21日)

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

2.0.15 (2023年12月20日)

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

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

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

  • 特性:添加 tools.microsoft:winsdk_version 配置,使 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 presets。#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

  • 特性:配置文件中新增 [replace_requires][replace_tool_requires],用于重新定义 requires,这对于包替换(如 zlibng/zlib)、解决冲突以及用另一个 Conan 包食谱中包装的系统替代品替换某些依赖项非常有用。#15136。文档在此

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

  • 特性:新的 [platform_requires] 配置文件定义,能够将 Conan 依赖项替换为平台提供的依赖项。#14871。文档在此

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

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

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

  • 修复:修复当未给定分隔符时 user confs 包作用域的问题。#15296

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 错误修复:修复 2.0.14 迁移,以在定义 storage_path conf 时将 LRU 数据添加到缓存中。#15135

  • 错误修复:修复了 conan export-pkg 命令中 package_metadata_folder 的定义。#15126

  • 错误修复:pyinstaller.py 在 Python 3.12 中由于无用的 distutils 导入而损坏。#15116

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

2.0.14 (2023年11月14日)

  • 特性:在默认 settings.yml 中添加了 riscv64, riscv32 架构,并在 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 助手可以在目标参数中使用多个目标。#14883

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

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

  • 特性:在 CLI 中添加速记语法,以在 1 个参数中指定 host 和 build。#14727。文档在此

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

  • 修复:避免 CMakeToolchain 在未定义布局或输出文件夹时覆盖用户 CMakePresets.json#15058

  • 修复:将 astraelbrusaltlinux 作为使用 apt 的 SystemPackageManager 中的发行版。#15051

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

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

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

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

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

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

  • 修复:使缓存数据库始终使用正斜杠表示路径,以在 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

  • 错误修复:当 --build=missing 时,会不必要地构建一些包,这些包是不需要的并且可以跳过的,尤其是在 tool_requires 具有传递性依赖的情况下。#15082

  • 错误修复:在“conan export-pkg”命令中将包修订添加到 format=json 中。#15042

  • 错误修复:当存在可编辑包时,tools.build:download_source=True 将不会失败。#15004。文档在此

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

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

  • 错误修复:正确锁定 python requires 的发布候选版本。#14846

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

  • 错误修复:修复版本范围,使预发布版本正确包含在下限内,并排除在上限外。#14814。文档在此

2.0.13 (2023年9月28日)

  • 错误修复:修复 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,以指示包是主机工具还是库。#14752。文档在此

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

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

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

  • 修复:当未提供 <path> 参数时,conan build 命令的错误信息更美观。#14787

  • 错误修复:修复 compatibility()settings_target 上将其设为 None 的回归问题。#14825

  • 错误修复:compatible 包首先在缓存中查找,如果未找到,则仅在服务器中查找,以允许在存在兼容包时进行离线安装。#14800

  • 错误修复:在 ConanRequester 中重用会话以加速请求。#14795

  • 错误修复:修复 editable 包的相对路径问题,当它们具有部分定义目录的组件时。#14782

2.0.11 (2023年9月18日)

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

  • 特性:为“conan build”命令添加新的 –deployer –generators 参数。#14737。文档在此

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

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

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

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

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

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

  • 特性:确保 meson 工具链在使用 clang-cl 时设置 b_vscrt#14664

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

  • 特性:MakeDeps:提供“require”信息,并进行更多样式调整。#14605

  • 特性:新的 detect_api,用于配置文件 jinja 模板。#14578。文档在此

  • 特性:允许在兼容性方法中访问 settings_target#14532

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

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

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

  • 错误修复:修复 Git.run()win_bash=True 时的回归问题。#14756

  • 错误修复:将 conan.tools.system.package_manager.Aptcheck=False 的默认值更改为 True,与其他包管理器工具一致。#14728。文档在此

  • 错误修复:解决了 test_requires 带有菱形继承时传递性共享依赖项的传播问题。#14721

  • 错误修复:解决了 conan export-pkgtest_package 调用远程时崩溃的问题。#14712

  • 错误修复:不要跳过具有未跳过的传递性依赖项的二进制包,否则构建系统(如 CMakeDeps)生成文件的构建链将中断。#14673

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

  • 错误修复:conan lock create --update 现在可以正确地从服务器更新引用,如果它们比缓存中的新。#14643

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

  • 错误修复: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 网页 URL 作为远程,则抛出错误。#14531

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

  • 特性:将 rrevrrev_timestampprev_timestamp 添加到图 JSON 序列化中。#14526

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

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

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

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

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

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

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

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

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

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

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

  • 特性:conan profile detect 现在可以在 Visual Studio 提示符下(当 CCCXX 已定义并指向 cl 编译器可执行文件时)检测 msvc 版本。#14364

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

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

  • 特性:为食谱中 tool_requires 定义选项提供新的 default_build_options 属性。#14340。文档在此

  • 特性:实现 ...@ 作为模式,表示匹配没有用户/通道的包。#14338。文档在此

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

  • 修复:允许 --format=jsonconan create 命令中用于 python-requires#14594

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

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

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

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

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

  • 修复:避免在 conan uploadpython_requires 不在缓存中且需要下载时出现错误。#14511

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

  • 修复:当内置部署器复制文件失败时,提供更好的错误消息。#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

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

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

  • 错误修复:当使用包列表时,如果未向 conan download 提供时间戳,则避免数据库错误。#14526

  • 错误修复:将异常堆栈跟踪(当设置了 -vtrace 时)打印到 stderr 而不是 stdout。#14522

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

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

  • 错误修复:当没有 --user 而只传递 --channel 时,给出更好的错误信息。#14443

  • 错误修复:修复 settings_target 对已在“build”上下文中的包的 tool_requires 计算问题。#14441

  • 错误修复:当定义了 core.download:parallel 时,避免出现 DB is locked 错误。#14410

  • Bugfix: 使生成的 PowerShell 环境脚本在使用部署器时变为相对路径。 #14391

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

2.0.9 (2023年7月19日)

  • 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 (2023年7月13日)

  • Feature: 将 GCC 10.5 添加到默认 settings.yml 中。 #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: 使用 upload 命令并带上 –list 参数现在允许空的配方列表。 #14254

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

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

  • Fix: 在 conan new 库模板中添加缺少的 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: 修复 CMakeToolchain 从 Linux 到 OSX 的交叉构建问题。 #14187

  • Bugfix: 修复未选择包时备份源中的 KeyError。 #14185

2.0.7 (2023年6月21日)

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

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

  • Feature: 允许 conan remove --list=pkglist 删除包列表。 #14082 。文档 此处

  • Feature: conan remove --format 的输出包括文本(删除内容的摘要)和 JSON。 #14082 。文档 此处

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

  • Feature: conan test 命令学会了 --format=json 格式化器。 #14011 。文档 此处

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

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

  • Feature: 新增命令 conan version 用于格式化输出。 #13999 。文档 此处

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

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

  • Feature: conan list 命令新增 --graph 输入,以创建可作为 conan upload 输入的 PackagesList#13928 。文档 此处

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

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

  • Feature: 将构建和编译的详细程度控制拆分为两个配置项。 #13729 。文档 此处

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

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

  • Fix: 修复默认构建配置文件所用配置条目的描述。 #14075 。文档 此处

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

  • Fix: 移除 conanfile.xxx_folder 中的尾随 .,该尾随字符导致 msys2 等子系统中断。 #14061

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

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

  • Fix: 对于 Python 3.10,强制要求 pyyaml>=6,因为之前的版本会导致崩溃。 #13990

  • Fix: 改进了 Conan 无法显示其中一个冲突配方时的图冲突消息。 #13946

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

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

  • Bugfix: 如果 conan graph build-order 图包含任何错误,则引发异常,而不是默默地不执行任何操作并输出空 JSON。 #14106

  • Bugfix: 避免当文件夹名称重叠时,editable 包出现不正确的路径替换。 #14095

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

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

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

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

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

2.0.6 (2023年5月26日)

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

  • Fix: 在图 JSON 输出中,将“id”属性输出为字符串而不是整数。 #13964 。文档 此处

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

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

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

  • Bugfix: 确保 graph infocreateexport-pkginstall 的图信息 JSON 输出一致。 #13967 。文档 此处

  • 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 。文档 此处

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

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

2.0.5 (2023年5月18日)

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

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

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

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

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

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

  • Feature: 优化并避免当 upload_policy=skip 时,为了二进制文件而访问服务器。 #13771

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

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

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

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

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

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

  • Feature: 定义新的 self.tool_requires("pkg/<host_version>"),以允许某些工具需求遵循并使用与“主机”常规需求相同的版本。 #13712 。文档 此处

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

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

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

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

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

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

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

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

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

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

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

  • Fix: 当定义了未知配置时失败。 #13832

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

  • Fix: 将缓存中的“deploy”文件夹重命名为“deployers”,并允许 -d, --deployer 命令行参数。(“deploy”文件夹不会中断,但会发出弃用警告)。 #13740 。文档 此处

  • Fix: CMakeDeps 对仅头文件库省略 -L 库路径。 #13704

  • Bugfix: 修复当 test_requires 也是常规的传递性“主机”需求,并且消费者定义了组件时的问题。 #13898

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

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

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

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

  • Bugfix: 修复了 conan upload 对仅导出配方的备份源的支持。 #13779

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

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

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

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

  • Bugfix: 解决当图中的要求包含 override=True 时,导致 lockfile 失败的 bug。 #13597

2.0.4 (2023年4月11日)

  • Feature: 扩展 --build-require 到更多命令(graph infolock createinstall)和更多情况。 #13669 。文档 此处

  • Feature: 在 conan new 中添加 -d tool_requires#13608 。文档 此处

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

  • Feature: 添加 Premake5 依赖项(PremakeDeps)的初步(未文档化,仅限开发)支持。 #13390

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

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

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

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

  • Fix: 当服务器响应禁止下载配方/包中的一个文件时,确保其他文件和数据库被清除。 #13626

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

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

  • Fix: 修复当模式未列出包修订时(例如:conan list "*#*:*"),html 输出不正确的问题。 #13605

  • Bugfix: 当包没有设置或选项时,conan list -p <package-query> 失败。 #13662

  • Bugfix: python_requires 现在能够正确加载远程需求。 #13657

  • Bugfix: 修复当图中的一个节点(同时也是钻石的闭合节点)使用 override 时发生的崩溃。 #13631

  • Bugfix: 修复 --package-query 参数对 options 的影响。 #13618

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

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

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

2.0.3 (2023年4月3日)

  • Feature: conan cache clean 命令新增 --all--temp 参数,用于清理所有内容(源文件、构建文件)以及临时文件夹。 #13581 。文档 此处

  • Feature: 引入了带有 *= 运算符的 conf 字典更新语义。 #13571 。文档 此处

  • Feature: 支持 MacOS SDK 13.1(Xcode 14.2 中可用)。 #13531

  • Feature: full_deploy 部署器与 CMakeDeps 生成器一起学会了创建相对路径部署,使其可重定位。 #13526

  • Feature: 引入 conan remove *#!latest(也适用于包修订),以删除除最新修订之外的所有修订。 #13505 。文档 此处

  • Feature: 新增 conan cache check-integrity 命令,取代 1.X 遗留的 conan upload --skip-upload --check#13502 。文档 此处

  • Feature: 在 Conan list html 输出中添加选项和设置的过滤功能。 #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 。文档 此处

  • Feature: 默认将 tools.files.download:download_cache 设置为 core.download:download_cache,这样只需定义一个。 #13458

  • Feature: 对 tools.files.download() 进行身份验证。 #13421 。文档 此处

  • Fix: 定义一种在 python_requires_extend 扩展中更新 default_options 的方式。 #13487 。文档 此处

  • 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: 不允许添加多个同名远程仓库。 #13574

  • Bugfix: cmd_wrapper 添加了缺少的参数 conanfile#13564 。文档 此处

  • Bugfix: 避免生成器错误,因为可编辑包的依赖项二进制文件被“跳过”。 #13544

  • Bugfix: 修复父命令带有下划线时,子命令名称的问题。 #13516

  • Bugfix: 修复运行 conan export-pkg 时,远程仓库中的 python-requires 问题。 #13496

  • Bugfix: 可编辑包现在也遵循 build_folder_vars 配置。 #13488

  • Bugfix: 修复 [system_tools] 配置文件组成。 #13468

2.0.2 (2023年3月15日)

  • Feature: 允许 global.conf 中相对于 Conan home 文件夹的相对路径。 #13415 。文档 此处

  • Feature: conan list 命令的 html 格式器进行了一些改进。 #13409 。文档 此处

  • Feature: 为 Autotools 类的 autoreconf 方法添加了一个可选的“build_script_folder”参数。它与同一类的 configure 方法的相同参数和行为相对应。也就是说,它允许覆盖工具运行的位置(默认在 source_folder 中运行)。 #13403

  • Feature: 创建缓存内容的摘要。 #13386

  • Feature: 添加 conan config show <conf> 命令。 #13354 。文档 此处

  • Feature: 允许 global.conf 使用 jinja2 包含其他文件。 #13336

  • Feature: 添加 conan export-pkg --skip-binaries,允许在不包含依赖项二进制文件的情况下导出。 #13324 。文档 此处

  • Feature: 添加 core.version_ranges:resolve_prereleases 配置,用于控制版本范围是否可以解析到预发布版本。 #13321

  • Fix: 允许自动处理 conan create 中的 package_type = "build-scripts"--build-require#13433

  • Fix: 改进服务器端包损坏的检测和消息。 #13432

  • Fix: 修复 conan download 帮助中的拼写错误。 #13430

  • Fix: 从 conan profile path 中移除配置文件参数。 #13423 。文档 此处

  • Fix: 修复 _detect_compiler_version 中的拼写错误。 #13396

  • Fix: 修复 conan profile detect 在 OSX 上对 clang 编译器检测 libc++ 的问题。 #13359

  • Fix: 允许内部 vswhere 调用也检测并使用 VS 预发布版本。 #13355

  • Fix: 允许 conan export-pkg 使用远程仓库安装缓存中不存在的依赖项。 #13324 。文档 此处

  • Fix: 允许将 settings.yml 列表转换为 dict,当 settings_user.yml 定义 dict 时。 #13323

  • Fix: 修复 AutotoolsToolchain 在从 macOS 交叉编译到非 Apple 操作系统时传递的标志。 #13230

  • BugFix: 修复 MSBuild 中自定义配置包含空格时的问题。 #13435

  • Bugfix: 解决 conan profile path <nonexisting> 崩溃的 bug。 #13434

  • Bugfix: 添加全局详细信息配置 tools.build:verbosity,而不是单独的配置。 #13428 。文档 此处

  • Bugfix: 避免对格式错误的自定义命令引发致命异常。 #13365

  • Bugfix: 即使是仅头文件依赖项,也不要省略 system_libs#13364

  • Bugfix: 修复实例化 MesonToolchain 时未创建 VirtualBuildEnv 环境的问题。 #13346

  • Bugfix: 在兼容性插件中,针对自定义编译器提供更友好的错误消息。 #13328

  • Bugfix: 添加 qcc cppstd 兼容性信息,以允许计算依赖图。 #13326

2.0.1 (2023年3月3日)

  • Feature: 在 config install 中为 –verify-ssl 添加 –insecure 别名。 #13270 。文档 此处

  • Feature: conan config install 命令支持 .conanignore#13269 。文档 此处

  • Feature: 在异常时,详细的堆栈跟踪将显示在 -vv-vvv 中,而不是 1.X 中使用的自定义环境变量。 #13226

  • Fix: 对 conan install 和 2.0-readiness 错误消息进行次要改进。 #13299

  • Fix: 删除 vcvars.bat VS 遥测环境变量,以避免 Conan 挂起。 #13293

  • Fix: 移除旧版 CMakeToolchainCMakePresets schema2 对 CMakeUserPresets.json 的支持。 #13288 。文档 此处

  • Fix: 移除 --logger json 日志记录和旧版跟踪。 #13287 。文档 此处

  • Fix: 修复 conan remote auth 帮助中的拼写错误。 #13285 。文档 此处

  • Fix: 如果 conan config list unexpected-arg,则引发参数错误。 #13282

  • Fix: 对于 msvc 编译器,不要自动检测 compiler.runtime_type,而是依赖于配置文件插件。 #13277

  • Fix: 修复 conanfile.txt 选项解析错误消息。 #13266

  • Fix: 改进统一模式在选项中的错误消息。 #13264

  • Fix: 允许 conan remote add --force 强制重新定义现有远程名称。 #13249

  • Fix: 恢复构建命令的配置文件打印。 #13214

  • Fix: 更改 conan build 命令中“path”参数的描述,以表明它仅适用于 conanfile.py,并明确指出它不适用于 conanfile.txt。 #13211 。文档 此处

  • Fix: 当在 requirements() 方法中定义依赖项 options 时,提供更好的错误消息。 #13207

  • Fix: 修复错误消息和自述文件中文档的损坏链接。 #13186

  • Bugfix: 确保 topics 始终序列化为列表。 #13298

  • Bugfix: 确保 provides 始终序列化为列表。 #13298

  • Bugfix: 修复了某些 Visual C++ 安装的检测问题。 #13284

  • Bugfix: 修复 msvc 编译器支持的 cppstd 值。 #13278

  • Bugfix: CMakeDeps 为 tool_requires 生成的文件与“主机”上下文具有相同的 build_type#13267

  • Bugfix: 修复 configure() 中依赖项选项模式的定义。 #13263

  • Bugfix: 修复 CMakeToolchain 在不同 Windows 驱动器中输出文件夹时的错误。 #13248

  • Bugfix: 如果 test_requires 未被组件 .requires 使用,则不引发错误。 #13191

2.0.0 (2023年2月22日)

  • Feature: 将 apple-clang 的默认配置文件 cppstd 更改为 gnu17。 #13185

  • Feature: 新增 conan remote auth 命令,强制远程仓库进行身份验证。 #13180

  • Fix: 允许在 test_requires(..., options={}) 中定义选项特性。 #13178

  • Fix: 统一 Conan 命令的帮助信息。 #13176

  • Bugfix: 修复 MesonToolchain 在 apple-clang 中 cppstd 错误的问题。 #13172

  • Feature: 改进了全局 Conan 输出消息(create、install、export 等)。 #12746

2.0.0-beta10 (2023年2月16日)

  • Feature: 为 conan list 命令添加基本的 HTML 输出。 #13135

  • Feature: 允许 test_package 处理 --build 参数(为主图计算 --build=never,而不是 test_package 图)。 #13117

  • Feature: 为远程添加命令添加 –force 参数。 #13112

  • Feature: 验证输入配置是否存在,以避免拼写错误。 #13110

  • Feature: 允许在配方 layout() 中定义 self.folders.build_folder_vars#13109

  • Feature: 阻止设置赋值。 #13099

  • Feature: 改进 conan editable UI。 #13093

  • Feature: 提供用户扩展 Conan 生成的 CMakePresets 的能力。 #13090

  • Feature: 添加错误消息,以帮助将配方从 ConanCenter 和用户仓库迁移到 2.0。 #13074

  • Feature: 在 conan new 模板中移除 shared 选项的 option.fPIC。 #13066

  • Feature: 添加 conan cache clean 子命令,用于清理构建和源文件夹。 #13050

  • Feature: 实现可自定义的 CMakeToolchain.presets_prefix,以便预设名称预置此值。 #13015

  • Feature: 在配置文件中添加 [system_tools] 部分,以使用您自己安装的工具,而不是在需求中声明的包。 #10166

  • Fix: 修复 PowerShell 转义问题。 #13084

  • Fix: 默认将 CMakeToolchain.presets_prefix="conan",以避免与其他用户预设冲突。 #13015

2.0.0-beta9 (2023年1月31日)

  • Feature: 在 Conan 缓存哈希路径中添加包名称。 #13011

  • Feature: 实现 tools.build:download_source 配置,以强制在 conan installconan graph info 中安装源文件。 #13003

  • Feature: 用户可以在 settings_user.yml 中定义自己的设置,这些设置将与 Conan 的 settings.yml 合并。 #12980

  • Feature: 同时列出已禁用的远程仓库。 #12937

  • Fix: PkgConfiDeps 使用了错误的 dependencies.host,而不是 get_transitive_requires() 计算结果。 #13013

  • Fix: 修复 CMakeDeps 中传递性共享 Linux 库的问题。 #13010

  • Fix: 修复 test_package 输出文件夹的问题。 #12992

  • Fix: 改进错误方法时的错误消息。 #12962

  • Fix: 修复因数据库并发问题导致的并行包下载失败。 #12930

  • Fix: 允许对禁用的远程仓库进行身份验证。 #12913

  • Fix: 改进 system_requirements。 #12912

  • Fix: 将 tar 格式更改为 PAX,这是 Python 3.8 的默认格式。 #12899

2.0.0-beta8 (2023年1月12日)

  • Feature: 添加 unix_path_package_info_legacy 函数,用于那些在 package_info 中使用且需要兼容 Conan 1.x 的配方。在 Conan 2 中,不应在 package_info 方法中执行路径转换。 #12886

  • Feature: 新的 conan list 序列化 JSON 和打印功能。 #12883

  • Feature: 为 conan new cmake_{lib,exe} 添加需求。 #12875

  • Feature: 允许 --no-remotes 强制临时禁用远程仓库。 #12808

  • Feature: 向 conan new 添加 barebones 模板选项。 #12802

  • Feature: 如果传入 PkgID,则避免请求包配置。 #12801

  • Feature: 实现 conan list *#latestconan list *:*#latest。基本上,此命令可以显示所有匹配引用的最新 RREV 和 PREV。 #12781

  • Feature: 允许 self.output 写入方法的链式调用。 #12780

  • Fix: 使 graph info 过滤器也适用于 JSON 输出。 #12836

  • Bugfix: 修复在使用 AutotoolsToolchain 并在 Windows 上进行交叉构建时传递有效 GNU 三元组的 bug。 #12881

  • Bugfix: 如果引用名称相同但版本不同,则进行排序。 #12801

2.0.0-beta7 (2022年12月22日)

  • Feature: 当生成器在 generators 属性中定义且在 generate() 方法中实例化时,会引发错误。 #12722

  • Feature: test_requires 改进,包括允许在 conanfile.txt 中使用。 #12699

  • Feature: 改进当 required_conan_version 在运算符和版本之间有空格时的错误。 #12695

  • Feature: ConanAPI 清理和组织。 #12666

2.0.0-beta6 (2022年12月2日)

  • Feature: 使用 --confirm 来避免删除时请求确认,而不是使用 --force#12636

  • Feature: 简化加载 conaninfo.txt 以进行搜索结果。 #12616

  • Feature: 将 ConanAPIV2 重命名为 ConanAPI。 #12615

  • Feature: 重构 ConanAPI。 #12615

  • Feature: 改进 conan cache path 命令。 #12554

  • Feature: 改进 remove/upload/download 的 #latest 和模式选择。 #12572

  • Feature: 添加 build_modules 到提供的弃用警告中,以允许从 1.x 迁移。 #12578

  • Feature: Lockfiles 别名支持。 #12525

2.0.0-beta5 (2022年11月11日)

  • Feature: 远程仓库管理和 API 改进。 #12468

  • Feature: 在 Conan 2.0 中将 env_info 和 user_info 实现为假属性。 #12351

  • Feature: 改进 settings.rm_safe()。 #12379

  • Feature: 新的 RecipeReference 相等性。 #12506

  • Feature: 简化 .tgz 文件的压缩和解压缩。 #12378

  • Feature: conan source 命令不再需要默认配置文件。 #12475

  • Feature: 创建了一个 proper LockfileAPI,具有详细的方法(更新、保存等),而不是几个松散的方法。 #12502

  • Feature: conan export 也可以生成 lockfile,这对于执行两步(export + install–build)过程的用户来说是必需的。 #12502

  • Feature: 移除 compat_app。 #12484

  • Fix: 修复 transitive_headers=True 的传递传播。 #12508

  • Fix: 修复静态库的 transitive_libs=False 的传递传播。 #12508

  • Fix: 修复 python_requires 的 test_package。 #12508

2.0.0-beta4 (2022年10月11日)

  • Feature: 禁止使用 revision_mode=scm 进行 conan create/export,如果存在未提交的更改。 #12267

  • Feature: 简化 conan inspect 命令,移除 path 子命令。 #12263

  • Feature: 为 graph info 命令添加 –deploy 参数。 #12243

  • Feature: 将图对象传递给部署器,而不是 ConanFile。 #12243

  • Feature: 在 conan.tools.scm.Git 中添加 included_files 方法。 #12246

  • Feature: 改进 clang libcxx 的检测。 #12251

  • Feature: 移除旧的配置文件变量系统,转而支持配置文件中的 Jinja2 语法。 #12152

  • Fix: 更新命令以遵循 Conan 2.0 关于 CLI 输出的约定。 #12235

  • Fix: 修复钻石依赖中测试特性的聚合。 #12080

2.0.0-beta3 (2022年9月12日)

  • Feature: 将 test_package 与 create 解耦。 #12046

  • Feature: 如果导出的引用中包含特殊字符,则发出警告。 #12053

  • Feature: MSBuildDeps 特性改进。 #12032

  • Feature: 添加了对 CLICOLOR_FORCE 环境变量的支持,如果其值被声明且不为 0,则会激活输出中的颜色。 #12028

  • Fix: 对所有配置只调用一次 source()。 #12050

  • Fix: 修复部署器未创建 output_folder 的问题。 #11977

  • Fix: 修复 build_id() 移除 require 的问题。 #12019

  • Fix: 如果 Conan 加载自定义命令失败,现在会返回有用的错误消息。 #11720

  • Bugfix: 如果在 Windows 上,构建配置文件中未指定“os”,并且配方想要运行命令。 #11728

2.0.0-beta2 (2022年7月27日)

  • Feature: 在 MSBuildDeps 中添加特性支持。 #11680

  • Feature: 在 XcodeDeps 中添加特性支持。 #11615

  • Feature: 允许依赖项定义 package_id 模式。 #

  • Feature: 添加 conan.conanrc 文件来设置 Conan 用户主目录。 #11675

  • Feature: 添加 core.cache:storage_path 来声明您希望存储 Conan 包的绝对路径。 #11672

  • Feature: 添加用于检查最大 cppstd 版本的工具。 #11610

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

  • 特性:新的自定义用户命令,可以使用公共 Python API 构建,并通过 conan config install 进行共享和安装

  • 特性:新的 CLI 接口,命令更清晰,输出更结构化

  • 特性:新的部署机制,用于将工件从缓存复制到用户文件夹,并在构建时使用这些副本。

  • 特性:改进了 package_id 计算,考虑了新的更详细的图模型。

  • 特性:添加了 compatibility.py 扩展机制,允许用户全局定义二进制兼容性。

  • 特性:更简单、更强大的 lockfiles,可提供随时间推移的可复现性。

  • 特性:通过 [conf] 改进了配置,并通过新的 conan.tools.env 工具改进了环境管理。

  • 特性:Conan 缓存现在可以同时存储多个修订版本。

  • 特性:新的扩展插件,用于实现配置文件检查、包签名和构建命令封装。

  • 特性:利用包的不可变性改进了更新、安装和上传流程。