变更日志

有关 Conan 2 与 Conan 1.X 相比的主要更改的更详细说明,请阅读 Conan 2 中的新功能

2.9.1 (2024年10月30日)

  • 错误修复:修复当 scope=Nonededuce_subsystem 将作用域假设为 build 的问题。 #17251

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

2.9.0 (2024年10月29日)

  • 功能:在 settings.yml 中添加缺少的主要操作系统/编译器版本支持。 #17240 。文档 在此

  • 功能:conan new 学习了默认值 -d name=mypkg -d version=0.1 以简化用户体验。 #17186 。文档 在此

  • 功能:当修补文件且配方具有 no_copy_source = True 时发出警告,这可能导致无法预见的问题 #17162

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

  • 功能:添加对包含在 .conanignore 中被忽略的路径的支持。 #17123 。文档 在此

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

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

  • 功能:为 ROS2(机器人操作系统)添加 ROSEnv 生成器集成。 #17110

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

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

  • 功能:为 MSBuildDeps 属性表添加 Configuration 和 Platform 键。 #17076 。文档 在此

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

  • 功能:使用 cpp_info.languages,默认为配方 languages,将“链接语言”要求传播到包的使用者。 #16964

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

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

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

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

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

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

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

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

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

  • 修复:在 MSBuildToolchain 中正确推断来自配置文件的 RuntimeLibrary。 #17100

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

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

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

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

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

  • 错误修复:改进了 bazeldeps._get_libs() 机制。 #17233

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

  • 错误修复:修复当 cppstd/cstd 未定义时的 variable_watch#17156

  • 错误修复:修复当配方不支持所需版本时的 cstd 错误报告。 #17156

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

  • 错误修复:列出根据语义版本规则但表示形式不同的相同版本(例如 1.01.0.0)的配方现在将返回两个引用。 #17121

  • 错误修复:Conan Server:在搜索相同配方引用的每个修订版时,不要返回重复的引用。 #17121

  • 错误修复:空版本范围导致空条件集。 #17116

  • 错误修复:将 # do not sort 注释添加到 deps 部分。自 Conan 1.61 以来出现回归。 #17109

  • 错误修复:在使用 Commands API 时恢复 ConanOutput 全局状态。 #17095

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

2.8.1 (2024年10月17日)

  • 错误修复:避免为 test_requires 的必需组件也作为传递性 requires 要求时引发错误。 #17174

2.8.0 (2024年9月30日)

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

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

  • 功能:conan config list <pattern> 用于过滤可用的配置。 #17000 。文档 在此

  • 功能:新的 auth_remote.py 插件用于对 Conan 远程进行自定义用户身份验证。 #16942 。文档 在此

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Bug 修复:BazelDeps 未找到 DLL 文件,因为 Conan 在 Windows 平台上没有对其建模。 #17045

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

  • Bug 修复:在菱形依赖的情况下,允许 requires(..., package_id_mode) 特性始终使用配方定义的特性,而不管 requires() 的顺序如何。 #16987

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

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

  • Bug 修复:允许 remote_login 接受模式。 #16942 。文档 此处

2.7.1 (2024年9月11日)

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

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

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

2.7.0 (2024年8月28日)

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

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

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

  • 特性:当 visible 特性为 True 时,在“构建”上下文中向下游传播 run 特性需求信息。 #16849 。文档 此处

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

  • 特性:添加 PkgConfigDeps 的 set_property,以设置来自使用者配方的需求属性。 #16789

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

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

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

  • 特性:添加 finalize() 方法,用于对包进行本地缓存最终调整。 #16646 。文档 此处

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

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

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

  • 修复:改进访问 cpp_info 简写方法时的错误。 #16847

  • 修复:改进锁定文件无法锁定需求时出现的错误消息,并指定其类型。 #16841

  • 修复:将 patch-ng 更新到 1.18.0 以避免 SyntaxWarning 泛滥。 #16766

  • Bug 修复:避免在同时定义了架构标志和 tools.build:linker_scripts 时出现 CMakeToolchain 错误,这是由于缺少空格造成的。 #16883

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

  • Bug 修复:修复本地配方索引中不存在的配方的 export_sources#16776

2.6.0 (2024年8月1日)

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

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

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

  • 特性:为图构建顺序和图构建顺序合并添加 html 输出 #16611 。文档 此处

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

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

  • 特性:支持 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

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

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

  • 错误修复:修复配置文件 include() 与每个包的 [settings] 部分定义一起使用的问题。 #16720

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

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

  • 错误修复:修复 Ninja 多配置 CMake 的 tools.build:defines 处理。 #16637

  • 错误修复:使 Conan 图 <子命令> 成为真正的“安装”试运行。返回相同的错误并给出相同的消息 #16415

2.5.0 (2024年7月3日)

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

  • 功能:允许在 conan list 中使用 –filter-options 使用 &: 范围引用所有正在列出的包。 #16559

  • 功能:在计算依赖关系图时突出显示缺少的或无效的依赖项。 #16520

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

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

  • 功能:尊重 tools.android:ndk_path 配置。设置跨构建 Android 所需的标志。 #16502 。文档 此处

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

  • 功能:Qbs 助手现在自动调用 Conan 提供程序。 #16486

  • 功能:在 tools.cmake.cmaketoolchain:extra_variables 中添加 force 选项。 #16481 。文档 此处

  • 功能:如果在同一个 Conan 配置文件里重复了任何部分,则抛出 ConanException 异常。 #16454

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

  • 功能:使使用部署程序生成的 MSBuildDeps 可重定位。 #16441

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

  • 功能:添加内置的 runtime_deploy 部署程序。 #15382 。文档 此处

  • 修复:修复提供冲突错误消息在命名引用匹配提供程序时不显示冲突提供的问题。 #16562

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

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

  • 修复:在 Conan 运行程序中添加对非默认 Docker 主机的支持 #16477

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

  • 修复:使 source_credentials.json 不应用于 Conan 服务器存储库协议。 #16425 。文档 此处

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

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

  • 错误修复:修复配方执行 package_id() info 清除并用作兼容性候选项时出现的意外错误。 #16575

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

  • 错误修复:如果使用了 –deployer-folder=xxxx 参数,则 XXXDeps 生成器在其生成的 文件中不包含绝对路径。 #16552

  • 错误修复:修复包修订版本的 conan list … –format=compact#16490

  • 错误修复:修复仅设置定义时的 XcodeToolchain。 #16429

2.4.1 (2024年6月10日)

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

  • 修复:修复从全新安装中回迁默认 compatibility.py。 #16417

  • 错误修复:解决 setuptools(Python 中分发的 Conan 包)打包“test”文件夹的问题。 #16446

  • 错误修复:修复了 CMakeToolchain 中使用 --deployer=full_deploy 导致错误转义的回归问题。 #16434

2.4.0 (2024年6月5日)

  • 功能:添加对 MacOS sdk_version 14.5 的支持 #16400 。文档 此处

  • 功能:向 AutotoolsToolchain 添加了 CC_FOR_BUILDCXX_FOR_BUILD 环境变量。 #16391 。文档 此处

  • 功能:与 AutotoolsToolchain、CMakeToolchain 等其他工具链一样,向 MesonToolchain 添加了 extra_xxxx 标志。 #16389

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

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

  • 功能:向 tools.files.rm 添加 excludes 参数以避免删除模式。 #16350 。文档 此处

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

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

  • 功能:添加对设置 tools.cmake.cmaketoolchain:extra_variables 的支持 #16242 。文档 此处

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

  • 功能:允许在 CMakeToolchain 中定义 GNUInstallDirs,用于本地 conan install/build 流程。 #16214

  • 功能:使 conan cache save 监听 core.gzip:compresslevel 配置。 #16211

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

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

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

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

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

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

  • 特性:实现 check_min_cstdcheck_max_cstdvalid_max_cstdvalid_min_cstdsupported_cstd 工具 #16028 。文档 在此

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

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

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

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

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

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

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

  • 修复:允许“local-recipes-index”用于 conan list 命令,并带有自定义的 user/channel 的包。 #16342

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

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

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

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

  • 修复:改进版本范围定义错误时的错误消息。 #16289

  • 修复:仅在缓存的配方版本确实更新时才打印有关其更新的信息。 #16275

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

  • 修复:修复在不使用 Conan 自定义命令时使用 CommandAPI 的情况。 #16213

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

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

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

  • 错误修复:修复使用 type=shared 的 Docker 运行程序时的配置文件错误 #16364

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

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

  • 错误修复:避免在 MesonToolchain 中对 tools.build:compiler_executables 值进行清理。 #16307

  • 错误修复:解决了 conan cache save/restore tgz 文件中路径错误的问题,该问题在使用 storage_path 自定义配置时会导致崩溃。 #16293

  • 错误修复:修复 conan list 中图文件不存在时的堆栈跟踪。 #16291

  • 错误修复:允许 CMakeDeps 生成器覆盖已存在的 xxxConfig.cmake#16279

  • 错误修复:不允许在 source() 方法中访问 self.info#16272

2.3.2 (2024年5月28日)

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

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

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

  • 错误修复:删除生成的 conanvcvars.ps1 中的多余反斜杠。 #16322

2.3.1 (2024年5月16日)

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

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

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

  • 错误修复:使兼容性检查理解更新标志模式。 #16252

  • 错误修复:解决菱形结构情况下 lockfilesoverrides 的错误。 #16235

  • 错误修复:允许将 export-pkg --version=xxx 传递给具有 python_requires 的配方,这些配方从基类继承 set_version#16224

2.3.0 (2024年5月6日)

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

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

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

  • 特性:将主流编译器(如 gcc、msvc、clang)的 detect_xxxx_compiler() 添加到公共 detect_api 中。 #16092 。文档 在此

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

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

  • 特性:在图 html 中添加了“过滤包”栏,该栏可以输入用逗号分隔的多个搜索模式,并隐藏从图中过滤它们。 #16083

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

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

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

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

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

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

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

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

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

  • 特性:向 conan profile detect 添加 --exist-ok 参数,如果配置文件已存在则不会失败,也不会覆盖它。 #15933

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

  • 特性:如果两个文件都存在,Meson 助手会注入本地和交叉文件。 #15919 。文档 在此

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

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

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

  • 修复:解决 pyinstaller.py 脚本中的问题,它将不再安装 pip install pyinstaller,安装它将成为先决条件 #16186

  • 修复:在 CMake 助手用于 CMakeLists.txt 文件夹时使用反斜杠,修复了项目位于驱动器根目录(如 X:)时的错误 #16180

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

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

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

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

  • 修复:解决由于使用双引号的查询导致 FreeBSD 中出现的 sqlite3 问题。 #16123

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

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

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

  • 修复:使用更好的错误消息改进版本范围的用户体验,用于无效的 ==, ~=, ^= 运算符。 #16069

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

  • 修复:打印关于 Python 3.6 用法的警告,该版本自 2021 年起已停止支持。 #16003

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

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

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

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

  • 修复:将 rc 添加到 AutotoolsToolchaincompiler_executables 映射中,用于交叉编译 Linux->Windows。 #15946

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

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

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

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

  • Bug修复:不允许在 validate_build() 方法中访问 self.cpp_info#16135

  • Bug修复:当 .conanrcconan_home 无效时,不要显示跟踪信息。 #16134

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

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

  • Bug修复:使 conan cache restore 在还原到本地缓存中已存在的包时正常工作。 #15950

2.2.3 (2024年4月17日)

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

2.2.2 (2024年3月25日)

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

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

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

2.2.1 (2024年3月20日)

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

2.2.0 (2024年3月20日)

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

  • 特性:警告要求函数调用放置错误的位置 #15888

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 特性: (实验性) 在 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

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

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

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

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

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

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

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

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

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

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

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

  • 修复:使所有配方和插件的 Python 文件 print() 输出到 stderr,以便不会破坏输出到 stdout 的 JSON 数据。 #15704

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

  • 错误修复:解决 conan_home_folderglobal.conf 中用于列表内部字符串时的反斜杠问题。 #15870

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

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

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

  • 错误修复:解决 package_type=build-scripts 与锁定文件和 conan create 相关的问题。 #15802

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

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

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

  • 错误修复:解决了当 conf 项与 Python 模块匹配时的评估问题 #15779

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

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

  • 错误修复:修复具有作用域配置的配置文件的 conan profile show –format=json#15747

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

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

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

2.1.0 (2024年2月15日)

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

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

  • 特性:将 –format=json 格式化程序添加到 conan build#15651

  • 特性:添加 tools.build.cross_building:cross_build 以决定是否进行交叉构建,而不管 Conan 内部机制如何。 #15616

  • 特性:将 –format=json 选项添加到 conan cache path#15613

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

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

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

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

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

  • 特性:将 package_idself.info 信息显示到图的序列化输出中,并将其转发到包列表。 #15553 。文档 此处

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

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

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

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

  • 功能:向远程添加 –allowed-packges 以限制远程可以提供的引用。 #15464。文档 此处

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

  • 功能:添加对从 PowerShell 调用时使用 vcvars 环境变量的支持。 #15461。文档 此处

  • 功能:新的 Git(..., excluded=[]) 功能,以避免在 Git 助手出现“脏”错误。 #15457。文档 此处

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

  • 功能:针对 python_requires 类型的 recipe,添加 recipe 级别的 python_package_id_mode,用于定义对使用者 package_id 的影响。 #15453。文档 此处

  • 功能:将 cmakeExecutable 添加到配置预设中。 #15447。文档 此处

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

  • 功能:将 detect_api.detect_msvc_update(version) 助手添加到 detect_api 中。 #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 属性,以便从 recipe 中向扩展传递信息。 #15348。文档 此处

  • 功能:在 extension_properties 中实现 compatibility_cppstd,以便 compatibility.py 插件可以禁用对 recipe 的其他 cppstd 的回退。 #15348。文档 此处

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

  • 功能:确保 --build=editable--build=cascade 可以一起使用。 #15300。文档 此处

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

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

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

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

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

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

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

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

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

  • 修复:当用户想要在离线模式下工作时,如果远程不可访问,则抛出一个有帮助的错误。 #15516

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

  • 修复:删除 --lockfile-packages 参数,因为它没有记录,并且不打算供公众使用。 #15499。文档 此处

  • 修复:如果 check_type=int 且配置值设置为 bool,则抛出异常。 #15378

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

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

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

  • 修复:修复 upload_policy=skip--build=missing 结合使用时出现的问题。 #15336

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

  • 修复:允许使用 cmake.build(build_type="Release") 构建使用多配置系统但没有 build_type 设置的 recipe。 #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" 状态,因为命令执行后 recipe 位于缓存中。 #15504

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

  • Bug修复:避免 python_requires 的 test-package 导致 conan test 失败。 #15485。文档 此处

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

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

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

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

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

  • 修复:修复某些 Git 配置导致 Git.get_url_and_commit 抛出异常的问题。 #15271

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

2.0.17 (2024年1月10日)

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

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

  • 修复:解决 CMakeToolchain 生成器中 cmake_minimum_required(3.27)winsdk_version 问题。 #15373

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

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

  • 修复:转储 conf 项目时对其进行排序,以允许独立于 conf 声明顺序生成可重复的 package_id#15356

2.0.16 (2023年12月21日)

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

2.0.15 (2023年12月20日)

  • 特性:新增 conan lock remove 命令,用于从 lockfile 中删除依赖项。 #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 配置预设,并将运行环境信息添加到 CMake 测试预设。 #15192。文档 在此

  • 特性:删除了关于 Conan 迁移潜在问题的一则警告,该警告在每次构建失败时都会打印。 #15174

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

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

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

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

  • 特性:为 CMake 集成方法添加 redirect_stdout#15150

  • 特性:添加 core:warnings_as_errors 配置选项,使 Conan 在出现警告和错误时抛出异常。 #15149。文档 在此

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

  • 特性:在配置文件中新增 [replace_requires][replace_tool_requires],用于重新定义依赖项,这对包替换(如 zlibng/zlib)很有用,可以解决冲突,并用包含在另一个 Conan 包配方中的系统替代方案替换某些依赖项。 #15136。文档 在此

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

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

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

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

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

  • 修复:未提供分隔符时,修复用户 conf 的包作用域问题 #15296

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

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

  • 修复:使 conan graph info –format=text 打印到标准输出。 #15170

  • 修复:避免由于 CMAKE_POLICY_DEFAULT_CMP0091 未使用变量导致 CMake 输出警告。 #15127

  • 修复:弃用 [system_tools],转而使用 [platform_tool_requires],以与常规依赖项的 [platform_requires] 保持一致。将输出从“系统工具”更改为“平台”。 #14871。文档 在此

  • 修复:确保用户 conf 至少具有 1 个 : 分隔符 #15296

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

  • 修复:使 self.info.clear() 和仅限头文件的包删除 python_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

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

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

  • Bug修复:由于无用的distutils导入,pyinstaller.py在Python 3.12中出现故障。 #15116

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

2.0.14 (2023年11月14日)

  • 功能:将riscv64, riscv32架构添加到默认的settings.yml中,并在Meson和Autotools中管理它们。 #15053

  • 功能:只允许一个同时存在的数据库连接。 #15029

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

  • 功能:新的conan list --format=compact,带来更好的用户体验。 #15011 。文档 此处

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

  • 功能:改进conan upload的输出消息 #14984

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

  • 功能:实现从缓存加载/恢复包,用于CI工作流和跨越网络间隙移动包。 #14923 。文档 此处

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

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

  • 功能:将Macos 13.6添加到settings.yml。 #14858 。文档 此处

  • 功能:添加CMakeDeps和PkgConfigDeps生成器,侦听system_package_version属性。 #14808 。文档 此处

  • 功能:在cli中添加简写语法,以在一个参数中指定主机和构建 #14727 。文档 此处

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

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

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

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

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

  • 修复:将新的Apple OS版本添加到settings.yml。 #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

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

  • Bug修复:在‘conan export-pkg’命令中将包修订版本添加到format=json。 #15042

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

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

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

  • Bug修复:正确锁定python requires的候选版本。 #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 。文档 此处

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

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

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

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

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

  • Bug修复:修复compatibility()settings_target上的问题,使其不为None。 #14825

  • Bug修复:兼容包首先在缓存中查找,只有在未找到时才查找服务器,以便在有兼容包时允许离线安装。 #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.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:删除有关重复别名的“目标名称…已存在”警告。 #14644

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

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

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

  • Bug 修复:解决 conan export-pkgtest_package 对远程进行调用时发生的崩溃问题。 #14712

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

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

  • Bug 修复:conan lock create --update 现在可以正确更新来自服务器的引用,前提是它们比缓存中的新。 #14643

  • Bug 修复:修复不必要地使用转义序列修饰命令标准输出的问题。 #14642

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

2.0.10 (2023年8月29日)

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

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

  • 特性:如果用户添加不正确的 ConanCenter 网址作为远程,则引发错误。 #14531

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

  • 特性:将 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 配置,用于禁用部署程序中的符号链接复制。 #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 提示符内调用时检测 msvc 的版本,前提是已定义 CCCXX 并指向 cl 编译器可执行文件。 #14364

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

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

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

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

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

  • 修复:允许在 conan create 中使用 –format=json 用于 python-requires#14594

  • 修复:删除 Conan v2 就绪的 Conan-Center 链接。 #14593

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

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

  • 修复:即使定义了 tools.cmake.cmaketoolchain:user_toolchain,也可以使用 tools.cmake.cmaketoolchain 的 confs。 #14556。文档 在此

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

  • 修复:避免在 python_requires 不在缓存中且需要下载时,conan upload 出现错误。 #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配置不再强制要求最终斜杠。 #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在“构建”上下文中计算工具依赖项包的计算。 #14441

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

  • 错误修复:使用部署程序时,使生成的powershell环境脚本变为相对路径。 #14391

  • 错误修复:修复配置文件[tool_requires]使用被忽略的版本。 #14337

2.0.9 (2023年7月19日)

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

  • 特性:添加apple-clang 15。 #14302

  • 修复:使用revision_mode = “scm_folder”时,允许存储库在conanfile.py文件夹之外处于脏状态。 #14330

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

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

  • 错误修复:修复包签名插件未验证下载的源代码。 #14331。文档 此处

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

  • 错误修复:如果多个用户预设继承自同一个Conan预设,则ConanPresets.json包含重复的预设。 #14296

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

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

2.0.8 (2023年7月13日)

  • 特性:将GCC 10.5添加到默认的settings.yml中。 #14252

  • 特性:允许pkg_config_custom_content覆盖PkgConfigDeps创建的默认*.pc变量。 #14233。文档 此处

  • 特性:允许pkg_config_custom_content也成为类似字典的对象。 #14233。文档 此处

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

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

  • 特性:自动管理header-library包类型的包ID。 #14194。文档 此处

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

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

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

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

  • 修复:使用upload–list参数现在允许空配方列表。 #14254

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

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

  • 修复:将缺少的package_type添加到conan new lib模板中。 #14215

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

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

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

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

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

  • 错误修复:修复CMakeDeps CMAKE_FIND_LIBRARY_SUFFIXES变量泄漏。 #14253

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

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

  • 错误修复:修复CMakeToolchain从Linux交叉构建到OSX。 #14187

  • 错误修复:修复在没有选择包时备份源代码中的KeyError。 #14185

2.0.7 (2023年6月21日)

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

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

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

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

  • 特性:将core.sources:excluded_urls添加到备份源中。 #14020

  • 特性:conan test命令学习了--format=json格式化程序。 #14011。文档 此处

  • 特性:允许pkg/[version-range]表达式在conan list(以及download、upload、remove)模式中。 #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

  • 特性:允许指定自定义部署程序输出文件夹。 #13757。 文档 此处

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

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

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

  • 修复:修复用于默认构建配置文件的配置项的描述。 #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

  • 错误修复:将前缀变量和任何自定义内容(通过 pkg_config_custom_content 属性)添加到 PkgConfigDeps 为根 .pc 文件生成的 pkg-config 文件中。 #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”属性作为字符串而不是整数输出。 #13964。 文档 此处

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

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

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

  • 错误修复:确保 graph infocreateexport-pkginstall 的图信息 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

  • 特性:部分相对化生成的 env .sh shell 脚本 #13764

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

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

  • 特性:将配置文件名称呈现为 profile_name #13721。 文档 此处

  • 特性:缓存中新的全局自定义生成器“extensions/generators”,可以使用名称引用。 #13718。 文档 此处

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

  • 特性:定义新的 self.tool_requires("pkg/<host_version>") 以允许某些 tool-requires 遵循并使用与“host”常规 requires 相同的版本。 #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命令中,当它们被其他一些依赖项使用时,"skipped"二进制文件的错误打印。 #13778

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

  • 修复:省略仅限头文件的库的CMakeDeps中的-L libpaths。 #13704

  • Bug修复:修复当test_requires也是一个常规的传递性“host”需求,并且使用者定义了组件时的问题。 #13898

  • Bug修复:修复像*:shared=True这样的在配方中定义的选项的传播 #13855

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

  • Bug修复:确保在更多情况下上传备份源 #13846

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

  • Bug修复:修复使用备份源对仅导出配方执行conan upload #13779

  • Bug修复:修复包含别名的锁定文件的conan lock merge #13763

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

  • Bug修复:修复裸机情况下CMakeToolchain CMAKE_SYSTEM_NAME=Generic #13739

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

  • Bug修复:解决当图中包含具有override=True的需求时,锁定文件失败的问题 #13597

2.0.4 (2023年4月11日)

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

  • 特性:将-d tool_requires添加到conan new#13608。文档此处

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

  • 特性:添加对premake5依赖项(PremakeDeps)的初步(未记录,仅限开发)支持。 #13390

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

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

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

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

  • 修复:当服务器对配方/包中1个文件的下载响应Forbidden时,确保清理其他文件和数据库。 #13626

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

  • 修复:为direct_deploy部署程序添加direct_deploy子文件夹。 #13612。文档此处

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

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

  • Bug修复:python_requires现在正确加载远程需求。 #13657

  • Bug修复:修复当在图的节点中使用override,而该节点也是菱形的结束节点时发生的崩溃。 #13631

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

  • Bug修复:为full_deploy部署程序添加full_deploy子文件夹,以避免与“build”文件夹冲突。 #13612。文档此处

  • Bug修复:使STATUS成为默认日志级别。 #13610

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

2.0.3 (2023年4月3日)

  • 特性:conan cache clean学习了--all--temp来清理所有内容(源代码、构建)以及临时文件夹。 #13581。文档此处

  • 特性:使用*=运算符引入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

  • Bug修复:修复 CMakeDepsfind_library() 中未清除 CONAN_SHARED_FOUND_LIBRARY 变量的问题。 #13596

  • Bug修复:不允许添加多个具有相同远程名称的远程仓库。 #13574

  • Bug修复:cmd_wrapper 添加了缺失的参数 conanfile#13564 。文档 此处

  • Bug修复:避免由于可编辑包的依赖项二进制文件被“跳过”而导致的生成器错误。 #13544

  • Bug修复:修复父命令包含下划线时子命令名称的问题。 #13516

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

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

  • Bug修复:修复 [system_tools] 配置文件组合问题。 #13468

2.0.2 (2023年3月15日)

  • 特性:允许在 global.conf 中使用相对于 Conan 主目录的相对路径。 #13415 。文档 此处

  • 特性:对 conan list 命令中的 html 格式化程序进行了一些改进。 #13409 。文档 此处

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

  • 特性:创建缓存内容摘要。 #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

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

  • Bug修复:修复 MSBuild 在自定义配置中存在空格时的自定义配置问题。 #13435

  • Bug修复:解决 conan profile path <nonexisting> 中导致崩溃的错误。 #13434

  • Bug修复:添加全局详细程度配置 tools.build:verbosity,而不是单独的配置。 #13428 。文档 此处

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

  • Bug修复:即使依赖项是仅包含头文件的,也不要省略依赖项中的 system_libs#13364

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

  • Bug修复:在兼容性插件中使用自定义编译器时提供更友好的错误信息。 #13328

  • Bug修复:添加 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 就绪错误消息进行了一些小的改进。 #13299

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

  • 修复:删除 CMakeToolchainCMakePresets schema2(用于 CMakeUserPresets.json)的遗留支持。 #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

  • 修复:更改“path”的 conan build 参数描述,以指示它仅适用于 conanfile.py,并明确说明它不适用于 conanfile.txt。 #13211 。文档 此处

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

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

  • Bug修复:确保 topics 始终序列化为列表。 #13298

  • Bug修复:确保 provides 始终序列化为列表。 #13298

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

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

  • Bug修复:CMakeDeps 为 tool_requires 生成与“host”上下文具有相同 build_type 的文件。 #13267

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

  • Bug修复:修复当输出文件夹在不同的Win驱动器时,CMakeToolchain错误。 #13248

  • Bug修复:如果test_requires没有被组件.requires使用,则不引发错误。 #13191

2.0.0 (2023年2月22日)

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

  • 功能:新的conan remote auth命令强制对远程进行身份验证 #13180

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

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

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

  • 功能:改进全局Conan输出信息(创建、安装、导出等)。 #12746

2.0.0-beta10 (2023年2月16日)

  • 功能:为conan list命令添加基本html输出。 #13135

  • 功能:允许test_package处理--build参数(为主要非test_package图计算–build=never)。 #13117

  • 功能:为remote add添加–force参数。 #13112

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

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

  • 功能:阻止设置赋值。 #13099

  • 功能:改进conan editable用户界面。 #13093

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

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

  • 功能:在conan new模板中删除option.fPIC for shared。 #13066

  • 功能:添加conan cache clean子命令来清理构建和源文件夹。 #13050

  • 功能:实现可自定义的CMakeToolchain.presets_prefix,以便预设名称以此为前缀。 #13015

  • 功能:在配置文件中添加[system_tools]部分,以使用您自己安装的工具,而不是requires中声明的包。 #10166

  • 修复:powershell转义中的修复。 #13084

  • 修复:默认定义CMakeToolchain.presets_prefix="conan",以避免与其他用户的预设冲突。 #13015

2.0.0-beta9 (2023年1月31日)

  • 功能:在Conan缓存哈希路径中添加包名称。 #13011

  • 功能:实现tools.build:download_source配置以强制在conan 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日)

  • 功能:添加unix_path_package_info_legacy函数,用于在配方package_info中使用它的那些情况,这些情况需要与Conan 1.x兼容。在Conan 2中,不应在package_info方法中执行路径转换。 #12886

  • 功能:conan list的新序列化json和打印。 #12883

  • 功能:为conan new cmake_{lib,exe}添加需求。 #12875

  • 功能:允许--no-remotes强制临时禁用远程。 #12808

  • 功能:为conan new添加基本模板选项。 #12802

  • 功能:如果传递了PkgID,则避免请求包配置。 #12801

  • 功能:实现了conan list *#latestconan list *:*#latest。基本上,此命令可以显示所有匹配引用的最新RREVs和PREVs。 #12781

  • 功能:允许self.output写入方法的链接。 #12780

  • 修复:使graph info过滤器也适用于json输出。 #12836

  • Bug修复:修复在使用AutotoolsToolchain并在Windows上交叉构建时传递有效GNU三元组的错误。 #12881

  • Bug修复:如果ref.name相同但版本不同,则进行排序。 #12801

2.0.0-beta7 (2022年12月22日)

  • 功能:当生成器在generators属性中定义并在generate()方法中实例化时引发错误。 #12722

  • 功能:test_requires改进,包括允许在conanfile.txt中使用它。 #12699

  • 功能:改进required_conan_version在操作符和版本之间有空格时的错误。 #12695

  • 功能:ConanAPI清理和组织。 #12666

2.0.0-beta6 (2022年12月2日)

  • 功能:使用--confirm而不是--force来避免在删除时请求确认。 #12636

  • 功能:简化搜索结果的conaninfo.txt加载。 #12616

  • 功能:将ConanAPIV2重命名为ConanAPI。 #12615

  • 功能:重构ConanAPI。 #12615

  • 功能:改进conan缓存路径命令。 #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,具有详细的方法(更新、保存等),而不是几个松散的方法。 #12502

  • 功能:conan export也可以生成锁定文件,这对于执行两步(export + install–build)过程的用户来说是必要的。 #12502

  • 功能:删除compat_app。 #12484

  • 修复:修复transitive_headers=True的传递传播。 #12508

  • 修复:修复静态库的transitive_libs=False的传递传播。 #12508

  • 修复:修复python_requires的test_package。 #12508

2.0.0-beta4 (2022年10月11日)

  • 功能:使用revision_mode=scm时,不允许使用未提交的更改执行conan create/export。 #12267

  • 功能:简化conan inspect命令,删除path子命令。 #12263

  • 功能:为graph info命令添加–deploy参数。 #12243

  • 功能:将graph对象传递给部署器,而不是ConanFile。 #12243

  • 功能:为conan.tools.scm.Git添加included_files方法。 #12246

  • 功能:改进clang libcxx的检测。 #12251

  • 功能:删除旧的配置文件变量系统,转而支持配置文件中的Jinja2语法。 #12152

  • 修复:更新命令以遵循关于CLI输出的Conan 2.0约定。 #12235

  • 修复:修复菱形结构中test特性的聚合。 #12080

2.0.0-beta3 (2022年9月12日)

  • 功能:将test_package与create分离。 #12046

  • 功能:如果导出引用中存在特殊字符,则发出警告。 #12053

  • 功能:改进 MSBuildDeps 特性。 #12032

  • 功能:添加了对 CLICOLOR_FORCE 环境变量的支持,如果声明了该变量且其值不为 0,则将在输出中激活颜色。 #12028

  • 修复:仅对所有配置调用一次 source()。 #12050

  • 修复:修复部署器未创建 output_folder 的问题。 #11977

  • 修复:修复 build_id() 删除 require 的问题。 #12019

  • 修复:如果 Conan 无法加载自定义命令,现在将以有用的错误消息失败。 #11720

  • Bug修复:如果在构建配置文件和配方中未指定“os”,并且在 Windows 中想要运行命令。 #11728

2.0.0-beta2 (2022年7月27日)

  • 功能:在 MSBuildDeps 中添加特性支持。 #11680

  • 功能:在 XcodeDeps 中添加特性支持。 #11615

  • 功能:允许依赖项定义 package_id 模式。 #

  • 功能:添加 conan.conanrc 文件以设置 Conan 用户主目录。 #11675

  • 功能:添加 core.cache:storage_path 以声明要存储 Conan 包的绝对路径。 #11672

  • 功能:添加用于检查最大 cppstd 版本的工具。 #11610

  • 功能:添加 post_build_fail 钩子,在构建失败时调用。 #11593

  • 功能:添加 pre_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 缓存现在可以同时存储多个修订版。

  • 功能:新的扩展插件,用于实现配置文件检查、包签名和构建命令包装。

  • 功能:使用包不变性来改进更新、安装和上传流程。