更新日志¶
要更详细地了解 Conan 2 相对于 Conan 1.X 的主要变化,请阅读 Conan 2 的新特性
2.12.2 (2025 年 2 月 26 日)¶
特性:
CMakeDeps
生成的Findxxxx.cmake
文件现在可以为cmake_additional_variables_prefixes
定义{prefix}_FOUND
和{prefix}_VERSION
。 #17838特性: 在 conanfile 中提供新的孵化中的
CMakeConfigDeps
生成器,它仍然在孵化中的 “conf” 功能标志下。 #17831 。文档 here特性: 如果向
local-recipes-index
远程仓库请求了与当前版本不同的特定修订版本,则添加警告。 #17819特性: 将仓库参数(具有相同的默认值)从 coordinates_to_conandata() 转发到 get_url_and_commit()。 #17722
特性: 为
gcc
MinGW 编译器 settings.yml 添加mcf
线程。 #17704特性: 改进
conanws.py
文件定义,使其遵循与ConanFile
相同的模式。 #17688 。文档 here特性: 工作区新的
workspace install
命令,用于包含多个editables
的单体超级项目。 #17675 。文档 here特性: 新的
conan new workspace
模板包含基于 CMake 的单体超级项目,该项目与conan workspace install
一起使用。 #17675 。文档 here特性: 将 CMAKE_LIBRARY_PATH 添加到 conan_cmakedeps_paths.cmake (新的 CMakeDeps)。 #17668
特性: 将 CMAKE_INCLUDE_PATH 添加到 conan_cmakedeps_paths.cmake (新的 CMakeDeps)。 #17668
特性: 为 conanfile 依赖项添加 extension_properties 访问权限。 #17659 。文档 here
特性: 在 Version 中引入 in_range 方法,该方法允许与版本范围进行比较。 #17658 。文档 here
特性: 将依赖项
urllib3
升级到2.0
。 #17655特性: 新的 lock upgrade 命令,用于自动升级所需的依赖项,并解析依赖关系图。 #17577 。文档 here
特性: 增强了
Premake
CLI 包装器,具有可配置的 Lua 文件路径,并支持自定义命令行参数。 #17398 。文档 here修复: 关于
CONAN_LOGIN
环境变量的conan remote auth
的文档字符串。 #17834修复: 关于来自
tool-requires
的target_link_libraries()
,为孵化中的 CMakeDeps 提供更好的消息。 #17821修复: 修复 _calculate_licenses SBOM 方法的错误并添加一个小测试。 #17801
修复: 允许来自
AutotoolsToolchain
中conf
的构建上下文信息。 #17794修复: 允许 msys2 子系统路径从环境变量继承 #17781
修复: 改进组件定义错误和运行时冲突的错误消息。 #17771
修复: 更新客户端迁移的消息。 #17751
修复: 提高 untar 性能。 #17708
修复: 保护
cpp_info/components.required_components = xxx
的错误赋值,对于required_components
属性。现在它将引发正确的错误。 #17692修复: 新的
CMakeDeps
共享库的传递链接。 #17459Bugfix: 修复自包含的
pyinstaller
可执行文件,使其也包含新的conan.tools.sbom
工具。 #17809
2.12.2 (2025 年 2 月 12 日)¶
2.12.1 (2025 年 1 月 28 日)¶
2.12.0 (2025 年 1 月 27 日)¶
特性: 公开记录(和实验性)
--build=compatible:[pattern]
构建模式,以便在当前配置无效且二进制兼容性定义兼容二进制文件时,允许构建与当前配置不同的其他配置。 #17637 。文档 here特性: 定义新的
tools.cmake.cmaketoolchain:user_presets
以自定义生成的CMakeUserPresets.json
的名称,并禁用其生成。也可以在子文件夹中生成它。 #17613 。文档 here特性: 在
--format=json
图形输出中序列化原始需求版本范围,而不仅仅是已解析的版本范围。 #17603特性: 添加 cycloneDX 作为 Conan 工具,并为 conanfile 实现子图。 #17559 。文档 here
特性: 初始的
conan workspace build
命令,用于基于products
的定义构建完整的工作区。 #17538 。文档 here特性: 允许从外部集中文件夹为类似 conan-center-index 的布局在 “create” 时应用补丁。 #17520 。文档 here
特性: 在解压 tarball 文件时添加报告进度。 #17519
特性: conan profile show 现在可以选择要显示的上下文的 profile。 #17518
特性: 更好的日志记录,打印仓库的用户名,成功的身份验证事件和跟踪级别的消息,包括完整的 URL 请求。 #17517
特性: 添加 conan config clean 命令,该命令将从 conan home 中删除所有自定义配置,但不包括生成的包。 #17514 。文档 here
特性: 向 ConanApi 添加 reinit 方法,该方法重新初始化每个 subapi。 #17514 。文档 here
特性: 允许定义
--out-file=file.ext
而不是--format=ext > file.ext
以直接写入文件并避免重定向问题。 #17507 。文档 here特性: 在 API 调用之间缓存 HTTP 请求会话。 #17455
特性: 在
Remote
对象的RemoteManager
调用中实现缓存,在 Remote 对象生命周期内节省重复调用服务器的次数。 #17449 。文档 here修复: 将 arch_flag 作为公共属性添加到 MesonToolchain 生成器。 #17629
修复: 对于负载非常重的 CI 服务器,将 sqlite 超时从 10 秒增加到 20 秒。 #17616
修复: 使
remotes.json
保存具有事务性,以避免硬杀死进程导致损坏。 #17588修复: 当
test_package
缺少二进制文件时,改进 conan create 的错误消息。 #17581修复: 修复 Git is_dirty 对具有路径的排除文件的检测。 #17571
修复: 允许
conan_server
的最新 bottle 0.13 版本与 Python 3.13 一起使用。 #17534修复:
GnuToolchain
的make_args
正确处理空值。 #17532修复: 修复
replace_in_file
中的不一致性,如果未找到模式(严格模式关闭),则返回 False,否则返回 None。 #17531修复: conan profile show 不会用信息标题污染 stdout。 #17518
修复: 当
languages
属性中使用未知语言时报错。 #17512修复: 修复在使用
workspace_api.load()
并在set_version()
中使用self.run()
时的Workspace
。 #17501Bugfix:
conf_build
不存在于cli
和conanfile.txt
上下文中。 #17640Bugfix: 使
conan.tools.files.unzip()
可以同时使用pattern
和strip_root
。 #17591Bugfix: 解决孵化中的
CMakeDeps
在传递[replace_requires]
中的问题。 #17566Bugfix: 解决
PkgConfigDeps
在传递[replace_requires]
中的问题。 #17566
2.11.0 (2024 年 12 月 18 日)¶
特性: 仅在启用时警告冻结的 conan v1 远程仓库。 #17482
特性: AutotoolsToolchain 在首次进行 Android 交叉编译时使用用户的变量。 #17470 。文档 here
特性: AutotoolsToolchain 检查 Android 交叉编译路径是否存在。 #17470 。文档 here
特性: 将 Conan 缓存 “profiles” 文件夹添加到 jinja2 搜索路径,以便即使对于父文件夹和兄弟文件夹,也可以从 jinja 语法中包含/导入 profile。 #17432 。文档 here
特性: 更新了
tools.env.virtualenv:powershell
conf,以允许指定 PowerShell 可执行文件(例如,powershell.exe 或 pwsh)并传递其他参数。 #17416 。文档 here特性: 弃用
tools.env.virtualenv:powershell=True/False
的使用。 #17416 。文档 here修复: 如果值为 None,则不显示 powershell 弃用消息。 #17500
修复: 修复调用
editable_add
时editables
的LocalAPI
定义。 #17498修复: 在 CMakeDeps 中澄清调试消息。 #17453
修复: 在 BazelDeps 中的
glob()
函数中显式添加allow_empty = True
(兼容 bazel 8.x)。 #17444修复: 修复由于未清理的正则表达式导致的
cpp_info.location
推导错误。 #17430修复: 信任来自符号链接的真实路径是一个好方法。 #17421
修复: 修复在
local-recipes-index
中搜索模式时的 user/channel。 #17408修复: 为空版本范围添加警告。 #17405
Bugfix: 修复组件属性的虚假重复 #17503
Bugfix: 修复在 powershell 中使用单引号运行命令的问题。 #17487
Bugfix: 修复取消设置某些类型的 conf 的问题。 #17445
2.10.3 (2024 年 12 月 18 日)¶
Bugfix: 集成 Conan 2.9.3 遗漏的修复 https://github.com/conan-io/conan/pull/17338 https://github.com/conan-io/conan/pull/17496 #17496
2.10.2 (2024 年 12 月 10 日)¶
修复: 解决在大型图中计算 “skip” 二进制文件时的性能问题。 #17436
2.10.1 (2024 年 12 月 4 日)¶
Bugfix: 修复相同引用名称替换的
[replace_requires]
。 #17409
2.10.0 (2024 年 12 月 2 日)¶
特性: 向
conan remote auth
添加--force
选项,以强制进行身份验证,即使对于已启用匿名访问的远程仓库也是如此。 #17377 。文档 here特性: 向 conan new 命令添加
--output
选项。 #17359特性: 让新的
CMakeDeps
始终定义组件并使用find_package( COMPONENTS)
检查它们,监听新的属性cmake_components
。 #17302特性: 允许
tools.microsoft.msbuild:max_cpu_count=0
使用/m
以使用所有可用的核心。 #17301 。文档 here特性: 改进的自动推断位置函数。 #17296
特性: BazelDeps 使用新的 deduce_location 机制来查找库。 #17296
特性: 初始的
conan workspace
初始提案,用于管理本地 editables 集。仅作为开发/维护人员功能引入,位于环境变量之后。 #17272 。文档 here特性: 允许在
conan config install-pkg
中使用--settings
以在不同平台上创建和安装不同的配置。 #17217 。文档 here修复: 修复了在子文件夹中使用
conan.tools.scm.Git.fetch_commit()
时发生的错误。 #17369修复: 为选项冲突添加 “risk” 警告,以便用户可以在发生冲突时执行 warn-as-error 来引发错误。 #17366
修复: 新的
CMakeDeps
生成器允许为包内文件使用fooConfig.cmake
,以及foo-config.cmake
。 #17330修复: 在缓存中构建时,为 editable 依赖项添加警告。 #17325
修复: 如果
export_conandata_patches
中不存在源补丁,则引发ConanException
。 #17294修复: 改进
CONAN_LOG_LEVEL
环境变量不正确值的 UX。 #17280修复: Meson 与其他构建系统对齐,将
x86_64
->`x86`
视为交叉构建。 #17266修复: 避免 colorama 错误导致大型输出崩溃。 #17259
Bugfix: 当
compiler=clang
和compiler_executables={"c": "clang-cl"}
时添加正确的标志,以避免从 Linux 交叉构建到 Windows 时注入不正确的标志。 #17387Bugfix: 解决
Choco().check()
错误,该错误使用旧的choco search --local-only
,已替换为choco list
。 #17382Bugfix: 修复添加
tools.android:ndk_path
时路径中包含空格的问题。 #17379Bugfix: 解决对于
&
模式错误检测使用者包的问题。 #17346Bugfix: 修复 Safari 中
conan graph info … -f=html
的问题。 #17335Bugfix: 允许同一依赖项的多个
[replace_requires]
。 #17326Bugfix: BazelDeps 无法找到 OpenSSL 共享库。 #17296
Bugfix: 解决 CMake 未使用
tools.microsoft.msbuild:max_cpu_count
中的正确值的错误。 #17292Bugfix: 修复
cpp_info
属性对于列表值属性覆盖而不是合并的问题。对于cmake_build_modules
在 editable 模式下工作是必要的。 #17214
2.9.3 (2024 年 11 月 21 日)¶
Bugfix: 修复影响组件检查的
is_test
计算。 #17338
2.9.2 (2024 年 11 月 7 日)¶
2.9.1 (2024 年 10 月 30 日)¶
2.9.0 (2024 年 10 月 29 日)¶
特性: conan new 学习了默认值
-d name=mypkg -d version=0.1
,以获得更简单的用户体验。 #17186 。文档 here特性: 当修补文件且配方具有
no_copy_source = True
时发出警告,这可能会导致不可预见的问题 #17162特性: 为
tool_requires
添加self.generator_info
,以将生成器传播到其直接依赖项。 #17129 。文档 here特性: 新的
tools.graph:skip_build
conf,以便能够跳过tool_requires
的扩展。 #17117 。文档 here功能: 新增
tools.graph:skip_test
配置,能够跳过test_requires
的展开。 #17117 。 文档 在这里功能: 为 ROS2 (机器人操作系统) 添加 ROSEnv 生成器集成。 #17110
功能: 向
conan graph build-order
添加 profile 参数信息,以提升用户体验和在 CI 系统中的使用。 #17102 。 文档 在这里功能: 新的
CMakeDeps
生成器通过tools.cmake.cmakedeps:new
配置激活,其值为will_break_next
以供评估。 这个新的生成器推断或使用cpp_info.location/link_location
来定义 STATIC; SHARED, INTERFACE 导入目标。 它还将定义 IMPORTED_LOCATION, IMPORTED_CONFIGURATION 等。 #16964功能: 使用
cpp_info.languages
,默认为 recipe 的languages
,将 “link-language” 需求传播给包的消费者。 #16964功能: 仅为新的
CMakeDeps
生成器定义cpp_info.default_components
。 #16964功能: 为可执行应用程序建模
cpp_info.exes
字段,仅由新的CMakeDeps
生成器使用,它在CMakeDeps
中为cpp_info.exes
生成导入的可执行目标。 #16964修复: 在 Windows 上为 meson.configure() 使用有效的 prefix 路径,以避免 Python 3.13 中的失败。 #17206
修复: 向每个 Bazel 命令添加启动选项。 #17183
修复: 向登录提示添加远程名称。 #17178
修复: 当过期的令牌给出 AuthenticationException 时,获取凭据并重新进行身份验证。 #17127
修复: 将异常从遗留的
from conans.error
移动到已文档化的from conan.error
。 #17126 。 文档 在这里修复:
Pacman
作为包管理器不应该用于tools.microsoft.bash:subsystem=msys2
,而应该在目标平台实际上是 msys2os.subsystem=msys2
(作为设置) 时使用。 #17103修复: 在 MSBuildToolchain 中正确地从 profile 推断 RuntimeLibrary。 #17100
修复: 对于 gcc >= 10,将 C++20 标志设置为 {gnu}c++20 而不是 c++2a,直到 gcc 12。 #17092 。 文档 在这里
修复: 对于 gcc >= 11,将 C++23 标志设置为 {gnu}c++23 而不是 c++2b。 #17092 。 文档 在这里
修复: 当凭据来自 env-vars 或
credentials.json
文件时,避免对服务器进行 401 错误的重复登录尝试,仅对用户交互式提示重复登录尝试。 #17083修复: 对齐 CMakeToolchain 和 AutotoolsToolchain,以便在
compiler=msvc
时自动定义cl
编译器(仅在必要时,例如在 CMake 中使用 Ninja 生成器时)。 #16875 。 文档 在这里修复: 在 conan graph build-order -f=json 中引用 build_args,以避免带有空格的选项出现问题。 #16594
Bug修复: 改进了 bazeldeps._get_libs() 机制。 #17233
Bug修复: 改进在 profile 加载时对不同编译器版本的 cstd 检查。 #17157
Bug修复: 修复未定义 cppstd/cstd 时的 variable_watch。 #17156
Bug修复: 修复 recipe 不支持所需版本时的 cstd 错误报告。 #17156
Bug修复: 在
conan_server
中删除用户名权限验证绕过,这可能是一个潜在的安全问题。 #17132Bug修复: 现在,列出在 semver 规则下版本相等但表示形式不同(例如 1.0 & 1.0.0)的 recipe 时,将返回两个引用。 #17121
Bug修复: Conan Server: 搜索 recipe 引用时,不要为同一 recipe 引用的每个修订版本返回重复的引用。 #17121
Bug修复: 空版本范围导致空条件集。 #17116
Bug修复: 向 deps 部分添加 # do not sort 注释。 自 Conan 1.61 以来的回归。 #17109
Bug修复: 在使用 Commands API 时恢复 ConanOutput 全局状态。 #17095
Bug修复: graph build-order 中的 build_args 选项现在尊重引用的上下文。 #16594
2.8.1 (2024年10月17日)¶
Bug修复: 避免为
test_requires
的必需组件引发错误,这些组件也作为传递性requires
被需要。 #17174
2.8.0 (2024年9月30日)¶
功能: 添加对 iOS 18, watchOS 11, tvOS 18, visionOS 2 & macos 15 的支持。 #17012 。 文档 在这里
功能: 用于自定义用户身份验证到 Conan 远程仓库的新
auth_remote.py
插件。 #16942 。 文档 在这里功能: 用于通用源代码下载的自定义用户身份验证的新
auth_source.py
插件。 #16942 。 文档 在这里功能: 向 conan install 和 conan build 添加 –envs-generation={false},以禁用 virtualenvs 的生成 (
conanbuildenv.sh|bat
和conanrunenv.sh|bat
)。 #16935 。 文档 在这里功能: 新的
tools.files.unzip:filter
配置,允许为 tgz 文件定义data
,tar
和fully_trusted
提取策略。 #16918 。 文档 在这里功能:
source()
和unzip()
工具学习了一个新的extract_filter
参数,用于为 tgz 文件定义data
,tar
和fully_trusted
提取策略。 #16918 。 文档 在这里功能: 每 10 秒为大型上传 (>100Mbs) 添加进度更新。 #16913
功能: 实现
conan config install-pkg --url=<repo-url>
,用于在尚未定义远程仓库时初始定义远程仓库 URL。 #16876 。 文档 在这里功能: 允许构建仍然与当前 profile 兼容的包。 #16871
功能: 允许自举 (依赖于自身的另一个变体),即使是相同的版本。 #16870
功能: 允许
[replace_requires]
替换包名称,并且self.dependencies
仍然可以使用旧名称。 #16443修复: 即使定义了
user_toolchain
,也让CMakeToolchain
定义CMAKE_SYSTEM_XXX
,但在 toolchain 真正定义它们的情况下受到保护。 #17036 。 文档 在这里修复: 替换生成的 CMake 和 Environment 文件中的 | 字符。 #17024
修复: 将
PkgConfig
stderr
重定向到引发的异常。 #17020修复: 在 Windows 子系统
bash
路径中始终使用正斜杠。 #16997修复: 当
conan list --graph=<graph-json-file>
文件有问题时,提供更好的错误消息。 #16936Bug修复: PkgConfigDeps.set_property() 没有正确设置所有可用的属性。 #17051
Bug修复: BazelDeps 没有找到 DLL 文件,因为 Conan 没有在 Windows 平台中对其进行建模。 #17045
Bug修复: 如果包不会因为
tools.graph:skip_binaries=False
而被跳过,则不要跳过该包的依赖项。 #17033Bug修复: 在菱形依赖情况下,允许
requires(..., package_id_mode)
特性始终使用 recipe 定义的特性,而不管requires()
的顺序如何。 #16987Bug修复: 将 include_prerelease 标志传播到 VersionRange 的交集。 #16986
Bug修复: 如果传递给 conf.get(check_type=bool) 的值无效,则引发错误。 #16976
2.7.1 (2024年9月11日)¶
2.7.0 (2024年8月28日)¶
功能: 添加
Git.is_dirty(repository=False)
新参数 #16892功能: 在 conan_toolchain.cmake 中为 CMAKE_{C,CXX}_STANDARD 添加 variable_watch。 #16879
功能: 为 CMakeDeps 的 get_property 添加 check_type。 #16854 。 文档 在这里
功能: 当 visible 特性为 True 时,在 “build” 上下文下游传播 run 特性需求信息。 #16849 。 文档 在这里
功能: 为 PkgConfigDeps 添加 set_property,以设置来自消费者 recipe 的需求的属性。 #16789
功能: 在 CMakePresets.json 中定义 CMAKE_<LANG>_COMPILER 变量。 #16762
功能: 添加对 gcc 14.2 的支持。 #16760
功能: 重构 QbsProfile 以支持 Conan 2。 #16742
修复: 将
repository
参数从Git.get_url_and_commit(repository=True)
传播到Git.is_dirty()
。 #16892修复: 改进访问 cpp_info 简写方法时的错误。 #16847
修复: 改进 lockfile 无法锁定需求时的错误消息,指定其类型。 #16841
修复: 更新 patch-ng 1.18.0 以避免 SyntaxWarning 垃圾信息。 #16766
Bug修复: 当同时定义架构标志和
tools.build:linker_scripts
时,避免由于缺少空格而导致的CMakeToolchain
错误。 #16883Bug修复: 当使用 Visual Studio 的 llvm-clang 时,在 MSBuildToolchain 中设置正确的平台工具集。 #16844
Bug修复: 修复本地 recipe 索引中不存在的 recipe 的 export_sources。 #16776
2.6.0 (2024年8月1日)¶
功能: 添加
build_folder_vars=["const.myvalue"]
以创建用户 “myvalue” 任意值的预设。 #16633 。 文档 在这里功能: 在 Bazel 新模板中添加 outputRootDir 作为可选定义。 #16620
功能: 为 graph build-order 和 graph build-order-merge 添加 html 输出 #16611 。 文档 在这里
功能: 引入
core.scm:local_url=allow|block
以控制 conandatascm
中的本地文件夹 URL。 #16597 。 文档 在这里功能: 在 GnuToolchain 的 extra_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修复: 当加载不存在或损坏的 “package list” 文件时,提供更好的错误消息。 #16685
修复: 从 tools.build:compiler_executables 中删除不支持的 ld 和 ar 条目,它们在每个 Conan 集成中都没有效果。 #16647
修复: 确保直接的工具需求冲突得到正确报告,而不是挂起。 #16619
修复: 更新
runners
功能的docker
依赖版本 #16610修复: 当尝试上传在
conandata
scm
中具有本地文件夹 URL 的包时,引发错误。 #16597 。 文档 在这里Bug修复: 修复带有每个包
[settings]
的 profileinclude()
和部分定义。 #16720Bug修复: 当包具有组件时,
MakeDeps
生成器缺少一些聚合变量。 #16715Bug修复: 避免 settings.update_values() 在推断兼容性时失败。 #16642
Bug修复: 修复 Ninja 多配置 CMake 的 tools.build:defines 处理。 #16637
Bug修复: 使 conan graph <subcommand> 成为真正的 “install” 空运行。 返回相同的错误并给出相同的消息 #16415
2.5.0 (2024年7月3日)¶
功能: 新的
tools.cmake.cmaketoolchain:enabled_blocks
配置,用于定义CMakeToolchain
的哪些块应该处于活动状态。 #16563 。 文档 在这里功能: 允许在 conan list 中使用 –filter-options 以使用 &: 作用域来引用所有正在列出的包。 #16559
功能: 在计算依赖关系图时,高亮显示缺失或无效的依赖项。 #16520
功能: 新的
conan lock update
子命令,用于在同一命令中删除 + 添加引用。 #16511 。 文档 在这里功能: 遵循 tools.android:ndk_path 配置。 设置交叉编译 Android 所需的标志。 #16502 。 文档 在这里
功能: Qbs 助手现在自动调用 Conan 提供程序。 #16486
功能: 为 tools.cmake.cmaketoolchain:extra_variables 添加 force 选项。 #16481 。 文档 在这里
功能: 如果同一 Conan 配置文件中的任何部分重复,则引发 ConanException。 #16454
功能: 为 Qbs 工具链添加 resolve() 方法。 #16449
功能: 使
MSBuildDeps
生成与 deployer 可重定位。 #16441功能: 添加 QbsDeps 类,以与 Qbs Conan 模块提供程序一起使用。 #16334
修复: 修复提供程序冲突错误消息,当命名引用与提供程序匹配时,不显示冲突的提供程序。 #16562
修复: 为 pytest 设置正确的 testpaths。 #16530
修复: 允许文件系统的根目录中存在
.conanrc
文件。 #16514修复: 在 conan runners 中添加对非默认 docker 主机的支持 #16477
修复: 当我们无法覆盖备份上传中的摘要文件时,不要失败。 #16452
修复: 使
source_credentials.json
不应用于 Conan 服务器仓库协议。 #16425 。 文档 在这里修复: 允许包具有空文件夹。 #16424
Bug修复: 修复
detect_api
中的detect_msvc_compiler()
,以正确检测compiler.version=194
的 VS 17.10。 #16581Bug修复: 修复当 recipe 执行 package_id() info 擦除并用作兼容性候选项时,出现意外错误。 #16575
Bug修复: 确保 msvc cppstd 兼容性回退不会忽略 194 二进制文件。 #16573
Bug修复: 如果使用了 –deployer-folder=xxxx 参数,XXXDeps 生成器在其生成的文件中不包含绝对路径。 #16552
Bug修复: 修复包修订版本的 conan list … –format=compact。 #16490
Bug修复: 修复仅设置了 defines 时的 XcodeToolchain。 #16429
2.4.1 (2024年6月10日)¶
2.4.0 (2024年6月5日)¶
功能: 向 AutotoolsToolchain 添加了 CC_FOR_BUILD 和 CXX_FOR_BUILD 环境变量。 #16391 。 文档 在这里
功能: 向 MesonToolchain 添加了 extra_xxxx 标志,与其他工具链 (如 AutotoolsToolchain, CMakeToolchain 等) 中的做法相同。 #16389
功能: 为 conan new 命令添加新的
qbs_lib
模板。 #16382功能: 向 tools.files.rm 添加 excludes 参数,以避免移除模式。 #16350 。 文档 在这里
功能: 允许使用多个
--build=missing:~pattern1 --build=missing:~pattern2
模式。 #16327功能: 弃用在 ConanFile 中使用路径访问器。 #16247
功能: 添加对设置 tools.cmake.cmaketoolchain:extra_variables 的支持 #16242 。 文档 在这里
功能: 向 CMakeDeps 生成器添加 cmake_additional_variables_prefixes 变量,以允许为声明的 CMake 变量添加额外的名称。 #16231 。 文档 在这里
功能: 允许在本地
conan install/build
流程中也定义CMakeToolchain
中的 GNUInstallDirs。 #16214功能: 让
conan cache save
监听core.gzip:compresslevel
配置。 #16211功能: 添加新的
revision_mode
,包括一直到recipe-revision
的所有内容,但不包括package_id
。 #16195 。 文档 在这里功能: 允许 recipe 使用
requires(..., visible=False)
需求自身的先前版本,而不会引发循环错误。 #16132功能: 实现
check_min_cstd
,check_max_cstd
,valid_max_cstd
,valid_min_cstd
,supported_cstd
工具 #16028 。 文档 在这里功能: 新的
languages = "C", "C++"
类属性,以进一步自动化设置管理 #16028 。 文档 在这里功能: 向 conan_toolchain.cmake 添加 CONAN_RUNTIME_LIB_DIRS 变量。 #15914 。 文档 在这里
修复: 为 <2.3 的默认
compatibility.py
插件实现向后迁移。 #16405修复: 向配置文件的序列化/转储添加缺失的 [replace_requires] 和 [platform_requires]。 #16401
修复: 修复
Qbs
助手中的路径空格处理。 #16382修复: 使 cc 版本检测更加健壮 #16362
修复: 允许
--build=missing:&
模式仅在缺失时构建 consumer,而不构建其他项。 #16344修复: 允许 “local-recipes-index” 使用自定义
user/channel
通过conan list
列出包。 #16342修复: 修复
cppstd
函数的文档字符串。 #16341修复: 更改 CMAKE_SYSTEM_VERSION 的自动检测以使用 Darwin 版本。 #16335 。 文档请见 此处
修复: 修复 graph build-order 中输出的 require 语法。 #16308
修复: 通过添加双引号来改进一些命令帮助文档字符串。 #16292
修复: 为不正确的 version-ranges 定义提供更好的错误消息。 #16289
修复: 仅在缓存的 recipe 版本确实更新时才打印相关信息。 #16275
修复: 当使用没有模式作用域的
options
时发出警告,以改善期望-o shared=True
应用于依赖项的用户的用户体验。 #16233 。 文档请见 此处修复: 修复当不被 Conan 自定义命令使用时的 CommandAPI 用法。 #16213
修复: 避免 Python 3.12 中弃用的
datetime
调用。 #16095修复: 处理 Meson toolchain 上的 tools.build:sysroot。 #16011 。 文档请见 此处
缺陷修复: 修复 VS 17.10 更新后,最新的
v14.4
工具集版本的LLVM/Clang
启用vcvars
。 #16374 。 文档请见 此处缺陷修复: 修复使用 type=shared 的 docker runner 时的 profile 错误 #16364
缺陷修复:
conan graph info .. --build=pkg
不会下载pkg
源码,除非定义了tools.build:download_source
。 #16349缺陷修复: 解决 CMakeToolchain 和 CMakeDeps 中路径相对化的问题。 #16316
缺陷修复: 避免清理 MesonToolchain 中 tools.build:compiler_executables 的值。 #16307
缺陷修复: 解决当使用
storage_path
自定义配置时,conan cache save/restore
tgz 文件中不正确的路径导致崩溃的问题。 #16293缺陷修复: 修复 conan list 中不存在 graph 文件时的堆栈跟踪。 #16291
缺陷修复: 允许
CMakeDeps
生成器在xxxConfig.cmake
已经存在时覆盖它。 #16279缺陷修复: 禁止在 source() 方法中访问 self.info。 #16272
2.3.2 (2024年5月28日)¶
新特性: 新增
tools.microsoft:msvc_update
配置,用于定义 MSVC 编译器update
,即使未定义compiler.update
。 可用于在 VS2022 更新到 17.10 后使用compiler.version=193
,这会将默认编译器更改为compiler.version=194
。 #16332缺陷修复: 允许默认
compatibility.py
插件从 MSVCcompiler.version=194->193
回退到其他cppstd
值。 #16346缺陷修复: 跳过本地 recipe 索引布局中的点文件夹。 #16345
缺陷修复: 删除生成的 conanvcvars.ps1 中多余的反斜杠。 #16322
2.3.1 (2024年5月16日)¶
新特性: 允许选择退出
CMakeToolchain
默认使用 CMakeUserPresets->CMakePreset 和 CMakePresets->toolchainFile 路径的绝对路径。 #16244 。 文档请见 此处修复: 修复 Docker runner 的 config 容器名称。 #16243
缺陷修复: 使兼容性检查能够理解 update flag 模式。 #16252
缺陷修复: 解决菱形结构中来自
lockfiles
的overrides
导致的错误。 #16235缺陷修复: 允许将
export-pkg --version=xxx
传递给具有继承自基类的set_version
的python_requires
的 recipes。 #16224
2.3.0 (2024年5月6日)¶
新特性: 运行 conan upload 时显示 recipe 和 package 大小。 #16103
新特性: 扩展 conan version 以报告当前 python 和系统信息,用于故障排除。 #16102 。 文档请见 此处
新特性: 为主流编译器(如 gcc、msvc、clang)向公共
detect_api
添加detect_xxxx_compiler()
。 #16092 。 文档请见 此处新特性: 为 .conanignore 文件添加注释支持。 #16087
新特性: 在 graph html 搜索栏中,现在可以输入以逗号分隔的多个搜索模式。 #16083
新特性: 在 graph html 中添加了“filter packages”栏,可以输入以逗号分隔的多个搜索模式,并从 graph 中隐藏过滤器。 #16083
新特性: 为 Git 操作添加 hide_url 参数,以允许记录仓库 URL。 默认情况下,URL 将保持 <hidden>,但用户可以选择退出此设置。 #16038
新特性: 允许在
export()
和export_sources()
方法中访问.conf
(仅限于global.conf
信息,而不是 profile 信息)。 #16034 。 文档请见 此处新特性: 避免在
copy()
中复制相同的现有文件。 #16031新特性: 新增
conan pkglist merge
命令,用于合并多个 package list。 #16022 。 文档请见 此处新特性: 新增
conan pkglist find-remote
命令,用于在远程仓库中查找缓存中 package list 的匹配项。 #16022 。 文档请见 此处新特性: 相对化 CMakePresets 生成中的路径。 #16015
新特性: 为
conanfile.py
添加新的test_package_folder
属性,以定义与默认test_package
不同的自定义位置和名称。 #16013 。 文档请见 此处新特性: 新增
conan create --test-missing
语法,以在实际创建 package 时才选择性地运行test_package
(与--build=missing
一起使用时很有用)。 #15999 。 文档请见 此处新特性: 向 conf 添加 tools.gnu:build_triplet。 #15965
新特性: 为
conan profile detect
添加--exist-ok
参数,以便在 profile 已存在时不会失败,且不覆盖它。 #15933新特性: 如果 native=True,MesonToolchain 可以生成 native 文件(仅在交叉编译时有意义)。 #15919 。 文档请见 此处
新特性: 如果 native 和 cross 文件都存在,Meson helper 会注入它们。 #15919 。 文档请见 此处
修复: 允许为
conan profile detect
自动检测定义CC=/usr/bin/cc
(以及 CXX)。 #16187修复: 解决
pyinstaller.py
脚本中的问题,它将不再安装pip install pyinstaller
,安装它将成为一个前提条件 #16186修复: 在
CMake
helper 中为 CMakeLists.txt 文件夹使用反斜杠,修复了项目位于驱动器根目录(如X:
)时的问题 #16180修复: 允许
conan editable remove <path>
即使路径已被删除。 #16170修复: 修复 conan new –help 格式问题。 #16155
修复: 改进 graph 中存在冲突时的错误消息。 #16137
修复: 改进当一个 URL 不是有效的服务器但在 Conan “ping” API 调用下仍然返回 200-ok 时的错误消息。 #16126
修复: 解决 FreeBSD 中由于带双引号的查询导致的
sqlite3
问题。 #16123修复: 清理
conan cache restore <non-existing-file>
的错误消息。 #16113修复: 改进当缓存中的 remotes 或 credentials 文件无效/空时用户体验和错误消息。 #16091
修复: 在 Linux 系统中使用
cc
可执行文件自动检测编译器(conan profile detect
和detect_api
)。 #16074修复: 通过为无效的
==, ~=, ^=
运算符提供更好的错误消息,改进版本范围定义的用户体验。 #16069修复: 改进当
settings.yml
或settings_user.yml
不正确时的错误消息用户体验。 #16065修复: 打印 Python 3.6 使用警告,该版本自 2021 年起已 EOL。 #16003
修复: 删除
Autotools
helper 中重复打印的命令行。 #15991修复: 将响应错误消息输出添加到 FileDownloader 中的 HTTP 状态 401 错误。 #15983
修复: 将 gcc 14 添加到默认
settings.yml
。 #15958修复: 使
VCVars
使用compiler.update
来指定工具集。 #15947修复: 为 Linux->Windows 交叉构建向
AutotoolsToolchain
的compiler_executables
映射添加rc
。 #15946修复: 将
Pop!_OS
添加到使用apt-get
作为系统包管理器的发行版。 #15931修复: 不要警告包含 - 字符的 package 名称。 #15920
修复: 修复新的
--format=html
graph 输出的 html 转义,并传递 graph 序列化对象而不是字符串。 #15915缺陷修复: 使 MesonToolchain 监听 tools.build:defines conf 变量。 #16172 。 文档请见 此处
缺陷修复: 禁止在 validate_build() 方法中访问 self.cpp_info。 #16135
缺陷修复: 当 .conanrc 的 conan_home 无效时,不要显示跟踪信息。 #16134
缺陷修复: 即使
tool_requires
的传递依赖项被标记为visible=True
,也避免将其传播到生成器信息。 #16077缺陷修复: BazelDeps 现在使用 requirement.build 属性而不是 dependency.context 属性。 #16025
缺陷修复: 使 conan cache restore 在恢复到本地缓存中已有的 package 时正常工作。 #15950
2.2.3 (2024年4月17日)¶
修复: 修复使用来自 settings_user 的架构时的 to_apple_archs 方法。 #16090
2.2.2 (2024年3月25日)¶
2.2.1 (2024年3月20日)¶
修复: 在 distutils 删除后,为与 Python>=3.12 的兼容性添加 copytree_compat 方法。 #15906
2.2.0 (2024年3月20日)¶
新特性: 如果使用通用二进制语法,则为 CMakeToolchain 以外的 toolchain 引发异常。 #15896
新特性: 警告位置不当的 requirement 函数调用 #15888
新特性: 打印由定义选项值的不同分支 recipes 引起的 graph 中的选项冲突。 #15876 。 文档请见 此处
新特性: 向 settings.yml 添加 macOS 版本 14.2、14.3、14.4。 #15859 。 文档请见 此处
新特性: 新的 graph
html
: 更多信息、test-requires、隐藏/显示不同的 packages(build、test)。 #15846 。 文档请见 此处新特性: 为 conan cache clean 添加 –backup-sources flag。 #15845
新特性: 添加 conan graph outdated 命令,该命令列出在远程仓库中有更新版本的依赖项 #15838 。 文档请见 此处
新特性: 使用 Visual Studio 时,从 CMakeToolchain 设置 CMAKE_VS_DEBUGGER_ENVIRONMENT 以指向所有二进制目录。 这消除了将 DLL 复制到从 Visual Studio IDE 启动可执行文件的需求(需要 CMake 3.27 或更高版本)。 #15830 。 文档请见 此处
新特性: 添加一个参数到 trim_conandata,以避免在 conandata.yml 文件不存在时引发异常。 #15829 。 文档请见 此处
新特性: 为 PkgConfigDeps 添加 build_context_folder 。 #15813 。 文档请见 此处
新特性: 在 MesonToolchain 模板中的内置选项部分包含了 build.pkg_config_path 。 #15813 。 文档请见 此处
新特性: 更新 _meson_cpu_family_map 以支持 arm64ec。 #15812
新特性: 新增
tools.cmake.cmake_layout:build_folder
配置,允许重新定义cmake_layout
本地构建文件夹。 #15767 。 文档请见 此处新特性: 新增
tools.cmake.cmake_layout:test_folder
配置,允许重新定义cmake_layout
输出构建文件夹用于test_package
,包括使用$TMP
占位符在系统tmp
中创建临时文件夹。 #15767 。 文档请见 此处新特性: (实验性) 在 Conan packages 中使用新的
package_type = "configuration"
添加conan config install-pkg myconf/[*]
新配置。 #15748 。 文档请见 此处新特性: (实验性) 新增
core.package_id:config_mode
,允许配置 package reference 影响使用该配置构建的所有 packages 的package_id
。 #15748 。 文档请见 此处新特性: 使 cppstd_flag 公开,以基于设置返回相应的 C++ 标准 flag。 #15710 。 文档请见 此处
新特性: 允许在
build_folder_vars
属性和 conf 中使用self.name
和self.version
。 #15705 。 文档请见 此处新特性: 添加
conan list --filter-xxx
参数,以列出与设置+选项匹配的 package 二进制文件。 #15697 。 文档请见 此处新特性: 向 detect_api 添加 detect_libc,以获取 C 库的名称和版本。 #15683 。 文档请见 此处
新特性: 在
ConanAPI
中新增CommandAPI
子 API,允许调用其他命令。 #15630 。 文档请见 此处修复: 避免在
--build=missing
和重复tool_requires
时不必要地构建tool_requires
。 #15885修复: 修复
CMakeDeps
set_property(... APPEND
参数顺序。 #15877修复: 当在 install graph 中发现无限循环时(格式错误的具有循环的依赖关系图)引发错误。 #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
二进制过滤器或 package 查询。 #15781修复: 避免当
CMakeToolchain.preprocessor_definition
没有值(PythonNone
)时定义为"None"
字面字符串。 #15756修复: 改进当使用
self.package_folder
时崩溃的conan install <path> --deployer-package=*
情况。 #15737修复: 修复大型依赖关系图的 conan graph info –format=html。 #15724
修复: 使所有 recipe 和插件 python 文件
print()
到stderr
,以便 json 输出到stdout
不会被破坏。 #15704修复: 修复获取 Linux x86 的 gnu triplet。 #15699
缺陷修复: 解决在列表内的字符串中使用
global.conf
中的conan_home_folder
时的反斜杠问题。 #15870缺陷修复: 修复当
build_type
上存在条件依赖项时的CMakeDeps
多配置。 #15853缺陷修复: 将 get_backup_sources() 方法从 UploadAPI 移动到预期的 CacheAPI。 #15845
缺陷修复: 避免当 conandata.yml 列表中的版本没有 patches 时出现 TypeError。 #15842
缺陷修复: 解决锁文件和 conan create 的
package_type=build-scripts
问题。 #15802缺陷修复: 如果 recipe 指定了
user
属性,则允许--channel
命令行参数。 #15794缺陷修复: 修复从 Windows 交叉编译到 Android 时使用
MesonToolchain
的问题。 #15790缺陷修复: 修复当定义了
compiler.update
时的CMakeToolchain
GENERATOR_TOOLSET。 #15789缺陷修复: 解决当
conf
项与 Python 模块匹配时的评估问题 #15779缺陷修复: 修复当
PkgConfigDeps
的tool_requires
已经在构建上下文中时为其生成 .pc 文件的问题。 #15763缺陷修复: 也为 CONAN_C_FLAGS 添加 VISIBILITY flags。 #15762
缺陷修复: 修复具有作用域 confs 的 profiles 的 conan profile show –format=json。 #15747
缺陷修复: 修复 Conan API 中 update 参数的遗留用法。 #15743
缺陷修复: 解决当字符串包含 Windows 反斜杠时损坏的 profile
[conf]
。 #15727缺陷修复: 修复元数据版本范围的版本优先级。 #15653
2.1.0 (2024年2月15日)¶
新特性: 在
CMakeToolchain
中实现多配置tools.build:xxxx
flags。 #15654新特性: 为 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
参数,以专门将顺序减少到需要从源代码构建的 packages。 #15573 。 文档请见 此处功能:在 Visual Studio CMake 生成器的 CMakeToolchain 中添加配置以指定所需的 CUDA 工具包。 #15572 。文档 此处
功能:调用 deactivate_conanvcvars 时显示消息。 #15557
功能:将
package_id
的self.info
信息添加到图中的序列化输出,并将其转发到 package-lists。 #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 。文档 此处
功能:为 remotes 添加 –allowed-packges 以限制远程仓库可以提供的引用。 #15464 。文档 此处
功能:使
RemotesAPI
公开可用的初始文档(实验性)。 #15462功能:新的
Git(..., excluded=[])
功能,以避免Git
助手中的“dirty”错误。 #15457 。文档 此处功能:新的
core.scm:excluded
功能,以避免Git
助手和revision_mode = "scm"
中的“dirty”错误。 #15457 。文档 此处功能:配方
python_package_id_mode
用于python_requires
配方,以定义每个配方对消费者package_id
的影响。 #15453 。文档 此处功能:添加新的
--core-conf
命令行参数,以允许通过 CLI 传递 core. 配置。 #15441 。文档 此处功能:向
detect_api
添加detect_api.detect_msvc_update(version)
助手。 #15435 。文档 此处功能:
CMakeToolchain
在生成的CMakePresets.json
buildPresets 中定义jobs
。 #15422功能:助手
Git().coordinates_to_conandata()
和Git().checkout_from_conandata_coordinates()
简化基于 scm 的流程。 #15377功能:
AutotoolsToolchain
为 VS 自动注入-FS
。 #15375功能:新的 conan upload
core.upload:parallel
用于更快的并行上传。 #15360 。文档 此处功能:改进 Intel oneAPI 编译器检测。 #15358
功能:显示长时间运行的
conan list
命令的进度。 #15354功能:在 extension_properties 中为
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_definitions
的None
值,这将映射到没有值的定义。 #15545 。文档 此处修复:修复 graph build-order –order=configuration 文本格式输出。 #15538
修复:当用户想要在离线模式下工作时,如果远程仓库不可访问,则引发有用的错误。 #15516
修复:当源备份不存在元数据时,避免丢失文件堆栈跟踪。 #15501
修复:删除
--lockfile-packages
参数,因为它未被记录,因为它不打算公开使用。 #15499 。文档 此处修复:如果 check_type=int 且 conf 值设置为 bool,则引发错误。 #15378
修复:由于 pkgconfig 条目自 Meson 1.3.0 起已弃用,因此将 pkg-config 条目添加到 MesonToolchain 生成的机器文件。 #15369
修复:修复 graph explain 在缺少需求时未显示某些差异的问题。 #15355
修复:修复当模式与任何定义的 conf 不匹配时,tools.info.package_id:confs 的问题。 #15353
修复:修复
upload_policy=skip
与--build=missing
的问题。 #15336修复:接受
conan download/upload --list=.. --only-recipe
仅下载配方。 #15312修复:允许为使用多配置系统构建但没有
build_type
设置的配方使用cmake.build(build_type="Release")
。 #14780Bugfix: 修复带有组件和跳过依赖项的
MSBuildDeps
。 #15626Bugfix: 避免
provides
为自tool_requires
到自身以进行交叉构建的软件包引发错误。 #15575Bugfix: 修复 tools.microsoft.visual.VCVars 中的构建范围 OS 检测。 #15568
Bugfix: 修复当依赖项仅为头文件时,
visible=False
的错误传播。 #15564Bugfix: 将临时缓存文件夹存储在
core.cache:storage_path
中,以便conan cache clean
也能正确找到并清理它们。 #15505Bugfix:
conan export-pkg --format=json
输出现在返回recipe = "cache"
状态,因为命令执行后配方在缓存中。 #15504Bugfix: conan export-pkg 命令存储锁定文件时排除
test_package
,与 conan create 的行为相同。 #15504Bugfix: 避免 conan test 为
python_requires
test-package 失败。 #15485 。文档 此处Bugfix: MesonToolchain 计算有效的 apple_min_version_flag。 #15465
Bugfix: 允许在
build_id()
和package_id()
方法中使用子设置限制os
、compiler
和其他设置。 #15439Bugfix: 修复获取环境变量 CONAN_LOGIN_USERNAME_REMOTE。 #15388
Bugfix: 不要将 . 文件夹纳入 tools.files.copy() excludes 模式的考虑范围。 #15349
Bugfix: 禁用创建没有名称和版本的可编辑项。 #15337
Bugfix: 修复 Git.get_url_and_commit 为某些 Git 配置引发错误的问题。 #15271
Bugfix: 不应跳过正在构建的软件包的“主机”上下文中的直接依赖项。这允许在“主机”上下文中将非 C/C++ 库工件(如图像)用作构建时资源。 #15128
2.0.17 (2024 年 1 月 10 日)¶
修复:如果
conan cache save --file=subfolder/file.tgz
子文件夹不存在,则自动创建文件夹。 #15409Bugfix: 解决
cmake_minimum_required(3.27)
的CMakeToolchain
生成器中的winsdk_version
错误。 #15373Bugfix: 修复带有
build=True
特征的可见特征传播。 #15357Bugfix: 修复通过 tools.info.package_id:confs 包含 conf 值时的 package_id 计算。 #15356
Bugfix: 对 conf 项进行排序,以便在转储它们时允许重现的 package_id,而与 conf 的声明顺序无关。 #15356
2.0.16 (2023 年 12 月 21 日)¶
2.0.15 (2023 年 12 月 20 日)¶
功能:新的
CMake.ctest()
助手方法,用于直接启动ctest
,而不是通过cmake --target=RUN_TEST
。 #15282功能:添加
tools.microsoft:winsdk_version
conf 以使VCVars
生成器使用给定的winsdk_version
。 #15272 。文档 此处功能:conan cache path xxx –folder xxxx 如果请求的文件夹不存在,则引发错误。 #15257
功能:为 ConanFile 的 self.dependencies 添加 in 运算符支持。 #15221 。文档 此处
功能:使
CMakeDeps
生成器创建一个conandeps.cmake
,该文件以cmake
样式的生成器风格聚合所有直接依赖项。 #15207 。文档 此处功能:将构建环境信息添加到 CMake 配置预设,并将运行环境信息添加到 CMake 测试预设。 #15192 。文档 此处
功能:删除了一个关于 conan 迁移潜在问题的警告,该警告会在每次构建失败时打印。 #15174
功能:允许从 ConfigAPI 访问 settings.yml(和 settings_user!)的内容。 #15151
功能:从 ConfigAPI 添加内置 conf 访问。 #15151
功能:将 redirect_stdout 添加到 CMake 集成方法。 #15150
功能:添加 core:warnings_as_errors 配置选项,使 Conan 在警告和错误时引发异常。 #15149 。文档 此处
功能:在使用 ftp_download 中的 secure 参数进行安全通信时,添加 FTP_TLS 选项。 #15137
功能:配置文件中新的
[replace_requires]
和[replace_tool_requires]
,用于重新定义需求,对于软件包替换(如zlibng/zlib
)很有用,以解决冲突,并将某些依赖项替换为包装在另一个 Conan 软件包配方中的系统替代方案。 #15136 。文档 此处功能:新的
[platform_requires]
配置文件定义,以便能够用平台提供的依赖项替换 Conan 依赖项。 #14871 。文档 此处功能:新的
conan graph explain
命令,用于搜索、比较和解释缺失的二进制文件。 #14694 。文档 此处功能:全局
cpp_info
可用于初始化组件值。 #13994修复:使 core:warnings_as_errors 接受列表 #15297
修复:修复未给出分隔符时 user conf 的软件包作用域。 #15296
修复:修复涉及范围的冲突报告中的范围转义。 #15222
修复:允许硬
set_name()
和set_version()
更改命令行中提供的名称和版本。 #15211 。文档 此处修复:使 conan graph info –format=text 打印到 stdout。 #15170
修复:避免由于 CMAKE_POLICY_DEFAULT_CMP0091 未使用的变量而在 CMake 输出中发出警告。 #15127
修复:弃用
[system_tools]
,转而使用[platform_tool_requires]
,以便与常规依赖项的[platform_requires]
对齐。将输出从“System tool”更改为“Platform”。 #14871 。文档 此处Bugfix: 确保 user conf 至少有 1 个 : 分隔符 #15296
Bugfix:
Git.is_dirty()
将使用git status . -s
以确保它仅处理当前路径,而不是整个仓库,与其他Git
方法类似。 #15289Bugfix: 使
self.info.clear()
和仅头文件的软件包删除python_requires
和tool_requires
。 #15285 。文档 此处Bugfix: 使
conan cache save/restore
在 Windows 和其他操作系统之间可移植。 #15253Bugfix: 不要相对化
deployers
中的绝对路径。 #15244Bugfix: 将
architecture
添加到CMakePresets
,以避免在使用预设时 cmake 忽略工具链定义。 #15215Bugfix: 修复 conan graph info –format=html 报告误导性冲突节点的问题。 #15196
Bugfix: 修复 conan profile show –format=json 中 tool_requires 的序列化。 #15185
Bugfix: 修复 NMakeDeps 引用问题。 #15140
Bugfix: 修复 2.0.14 迁移,以便在定义
storage_path
conf 时向缓存添加 LRU 数据。 #15135Bugfix: 修复 conan export-pkg 命令的
package_metadata_folder
定义。 #15126Bugfix: pyinstaller.py 由于无用的 distutils 导入,在 Python 3.12 中已损坏。 #15116
Bugfix: 修复未设置 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 upload 中更好的输出消息 #14984
功能:计算版本范围交集,以避免兼容范围的图形版本冲突 #14912
功能:CMake 助手可以在 target 参数中使用多个目标。 #14883
功能:添加 CMakeDeps 和 PkgConfigDeps 生成器,以监听 system_package_version 属性。 #14808 。文档 此处
修复:避免在未定义布局和输出文件夹时
CMakeToolchain
覆盖用户CMakePresets.json
#15058修复:在 SystemPackageManager 中添加
astra
、elbrus
和altlinux
作为使用apt
的发行版 #15051修复:使
Git()
即使对于浅克隆也检查远程服务器中的提交。 #15023修复:将新的 Apple OS 版本添加到 settings.yml #15015
修复:从
conan --version
输出中删除颜色 #15002修复:如果 sqlite3 版本不受支持(低于 2012 年的 3.7.11),则添加错误消息 #14950
修复:使缓存 DB 始终对路径使用正斜杠,以便在 Windows 和 Linux 之间保持一致 #14940
修复:解决现有软件包修订的重新构建问题(例如强制重新构建现有的仅头文件软件包),而之前的文件夹仍被其他项目使用。 #14938
修复:系统软件包通过
Apt.install()
或PkgConfig.fill_cpp_info
的输出(如xorg/system
)对 Conan 输出来说非常嘈杂,使其更加安静 #14924修复:序列化
python_requires
的path
信息,这对于计算 buildinfo 是必要的 #14886修复: 在 conan source 命令中定义 remotes,以防配方具有需要从 remotes 下载的
python_requires
。#14852修复: 修复 xros 和 xros-simulator 的最小目标标志。#14776
漏洞修复: 在
tool_requires
具有传递依赖的情况下,--build=missing
会不必要地构建不需要且可以跳过的软件包。#15082漏洞修复: 在 ‘conan export-pkg’ 命令中为 format=json 添加包修订版本。#15042
漏洞修复: 当存在可编辑包时,
tools.build:download_source=True
不会失败。#15004 。文档 here漏洞修复: 传递依赖项被错误地添加到 conandeps.xcconfig 中。#14898
漏洞修复: 修复完整性检查 (
upload --check
或cache check-integrity
),当export_source
尚未下载时。#14850漏洞修复: 正确锁定 python requires 的发布候选版本。#14846
2.0.13 (2023 年 9 月 28 日)¶
漏洞修复: 修复 2.0.11 中引入的较新 apple-clang 版本的错误 cppstd 检测。#14837
2.0.12 (2023 年 9 月 26 日)¶
功能: 在 package_manager 的 install() 方法中添加 host_tool,以指示软件包是主机工具还是库。#14752 。文档 here
修复: 当尝试
export-pkg
python-require
包时,提供更好的错误消息,并避免导出后失败。#14819修复:
CMakeDeps
允许在所有属性上使用set_property()
。#14813修复: 当未提供 <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 。文档 here功能: 为 ‘conan build’ cmd 添加新的 –deployer –generators 参数。#14737 。文档 here
功能: 更好的
CMakeToolchain
块接口。添加了新的.blocks.select()
,.blocks.keys()
。#14731 。文档 here功能: 在从下载缓存复制大文件而不是从服务器下载时,添加消息提示。#14716
功能: 添加了机制,如果 Meson 中的 c、cpp 和/或 ld 二进制变量声明为空格分隔的字符串,则将其转换为列表。#14676
功能: 将 nobara 发行版添加到 dnf 包管理器映射中。#14668
功能: 确保 meson toolchain 使用 clang-cl 设置 b_vscrt。#14664
功能: 支持 conf tools.info.package_id:confs 的正则表达式模式。#14621 。文档 here
功能: MakeDeps: 提供 “require” 信息,以及更多样式调整。#14605
功能: 允许在 compatibility 方法中访问 settings_target。#14532
修复: 改进 ConanApi 初始化失败时的错误消息。#14735
修复: CMakeDeps: 删除关于重复别名的 “Target name … already exists” 警告。#14644
漏洞修复: 修复当
win_bash=True
时Git.run()
中的回归。#14756漏洞修复: 将 conan.tools.system.package_manager.Apt 中的默认 check=False 更改为 True,与其他包管理器工具保持一致。#14728 。文档 here
漏洞修复: 解决了
test_requires
具有菱形结构的传递共享依赖项的传播问题。#14721漏洞修复: 解决 conan export-pkg 与
test_package
调用 remotes 时发生的崩溃问题。#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 。文档 here功能: 支持 Xcode 15、iOS 17、tvOS 17、watchOS 10、macOS 14。#14538
功能: 如果用户添加了不正确的 ConanCenter web URL 作为 remote,则引发错误。#14531
功能: 使用
--format=json
序列化图时,会向python_requires
添加信息,以便conan list --graph
也可以列出python_requires
。#14529功能: 将
rrev
、rrev_timestamp
和prev_timestamp
添加到图 json 序列化中。#14526功能: 允许
version-ranges
也解析为可编辑包。#14510功能: 添加对 Apple visionOS 的支持。#14504
功能: 警告未知的版本范围选项。#14493
功能: 添加 tools.graph:skip_binaries 以控制图中的二进制跳过。#14466 。文档 here
功能: 新的
tools.deployer:symlinks
配置,用于禁用部署器中的符号链接复制。#14461 。文档 here功能: 允许 remotes 在 ‘editable add’ 中自动解析缺失的
python_requires
。#14413 。文档 here功能: 新的
credentials.json
文件,用于存储 Conan remotes 的凭据。#14392 。文档 here功能: conan profile detect 现在可以在 Visual Studio 命令提示符中调用时检测 msvc 的版本,在该提示符中,CC 或 CXX 已定义并指向 cl 编译器可执行文件。#14364
功能: 新的
conan create --build-test=missing
参数,用于控制作为test_package
文件夹的依赖项构建的内容。#14347 。文档 here功能: 为在配方中为
tool_requires
定义选项提供新的default_build_options
属性。#14340 。文档 here修复: 允许 –format=json 在 conan create 中用于 python-requires。#14594
修复: 删除 conan v2 ready conan-center 链接。#14593
修复: 允许版本预发布版本中包含额外的连字符。#14561
修复: 即使定义了
tools.cmake.cmaketoolchain:user_toolchain
,也允许使用为tools.cmake.cmaketoolchain
定义的 confs。#14556 。文档 here修复: 将图中
--format=json
的dependencies
中的布尔值序列化为布尔值,而不是字符串。#14530 。文档 here修复: 避免在 conan upload 中出现错误,当
python_requires
不在缓存中并且需要下载时。#14511修复: 改进
lock add
添加完整包引用而不是配方引用时的错误检查。#14491修复: 不要将未捕获的堆栈跟踪打印到
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 。文档 here修复: 使用 conanfile.run() 调用 XCRun,以便注入环境。#14326
修复: 对
conan config install
使用abspath
以避免符号链接问题。#14183漏洞修复: 解决当多个不同的
package_ids
重用相同的构建文件夹时,build_id()
的问题。#14555漏洞修复: 修复当使用包列表时,未向 conan download 提供时间戳时发生的 DB 错误。#14526
漏洞修复: 将异常堆栈跟踪(当设置 -vtrace 时)打印到 stderr 而不是 stdout。#14522
漏洞修复: 仅在 conan upload 中打印交互确认的软件包。#14512
漏洞修复: ‘conan remove’ 输出缓存中与过滤器匹配的所有条目,而不仅仅是用户确认的条目。#14478
漏洞修复: 当在没有 –user 的情况下传递 –channel 时,提供更好的错误信息。#14443
漏洞修复: 修复已在 “build” 上下文中的软件包的
tool_requires
的settings_target
计算。#14441漏洞修复: 避免当定义了
core.download:parallel
时出现DB is locked
错误。#14410漏洞修复: 当使用部署器时,使生成的 powershell 环境脚本相对路径。#14391
漏洞修复: 修复 profile [tool_requires] 使用被忽略的修订版本的问题。#14337
2.0.9 (2023 年 7 月 19 日)¶
功能: 在 ConanFile 中添加 implements 属性,以提供对某些选项和设置的自动管理。#14320 。文档 here
功能: 添加 apple-clang 15。#14302
修复: 当使用 revision_mode = “scm_folder” 时,允许仓库在 conanfile.py 文件夹外部处于 dirty 状态。#14330
修复: 改进 compatibility.py 和 profile.py 插件中错误的错误消息,并提供 Conan 跟踪信息。#14322
修复: 在每次消息写入后
flush()
输出流。#14310漏洞修复: 修复
CMakeUserPresets
由于拼写错误而从 conan 生成的预设继承的问题。#14325漏洞修复: 如果多个用户预设从同一个 conan 预设继承,ConanPresets.json 包含重复的预设。#14296
漏洞修复: Meson prefix 参数作为 UNIX 路径传递。#14295
漏洞修复: 修复当 tools.build:verbosity 设置为 quiet 时,CMake Error: Invalid level specified for –loglevel 错误。#14289
2.0.8 (2023 年 7 月 13 日)¶
功能: 将 GCC 10.5 添加到默认 settings.yml 中。#14252
功能: 让 pkg_config_custom_content 覆盖 PkgConfigDeps 创建的默认 *.pc 变量。#14233 。文档 here
功能: fix_apple_shared_install_name 工具现在使用 xcrun 来解析 otool 和 install_name_tool 程序。#14195
功能: 用于
CMakeDeps
生成器的新cpp_info.set_property("cmake_package_version_compat" , "AnyNewerVersion")
。#14176 。文档 here功能: 元数据改进。#14152
修复: 改进 conan test 命令中缺少二进制文件时的错误消息。#14272
修复: 使 conan download 命令不再需要加载 conanfile,不会因 1.X 配方或缺失的
python_requires
而失败。#14261修复: 使用带有 –list 参数的 upload 现在允许空配方列表。#14254
修复: 保证
Options.rm_safe
永远不会引发异常。#14238修复: 允许 tools.gnu:make_program 影响每个 CMake 配置。#14223
修复: 向 conan new lib 模板添加缺失的 package_type。#14215
修复: 启用 patch() 函数中现有的状态消息代码。#14177
修复: 在
XcodeDeps
中使用configuration
而不是始终使用build_type
。#14168修复: 尊重缓存位置的符号链接路径。#14164
修复:
PkgConfig
使用conanfile.run()
而不是内部运行器来从 profiles 和依赖项获取完整的 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 。文档 here功能: 使
CppInfo
成为公共的、文档化的、可导入的工具,供需要聚合它们的生成器使用。#14101 。文档 here功能:
conan remove --format
的输出,包括文本(已删除内容的摘要)和 json。#14082 。文档 here功能: 将 core.sources:excluded_urls 添加到备份源。#14020
功能: 允许在
conan list
(以及 download, upload, remove) 模式中使用pkg/[version-range]
表达式。#14004 。文档 here功能: 添加
conan upload --dry-run
,等效于 1.X 的conan upload --skip-upload
。#14002 。文档 here功能: 小的 UX 改进,在下载大文件时打印一些信息。#13989
功能: 使用
PackagesList
作为conan upload --list=pkglist.json
的输入参数。#13928 。文档 here功能: 使用
--graph
输入conan list
以创建可作为 conan upload 输入的PackagesList
。#13928 。文档 here功能: 与配方和软件包关联的新元数据文件,可以在软件包存在后上传、下载和添加。#13918
修复: 删除破坏 msys2 等子系统的
conanfile.xxx_folder
中的尾随.
。#14061修复: 避免缓存问题,当图中的某些中间软件包在某些依赖项上调用
aggregated_components()
并且使用--deployer
时,生成器仍然指向 Conan 缓存而不是部署副本。#14060修复: 允许内部
Cli
对象被多次调用。#14053修复: 强制 Python 3.10 使用
pyyaml>=6
,因为以前的版本已损坏。#13990修复: 改进当 Conan 无法显示其中一个冲突配方时的图冲突消息。#13946
漏洞修复: 解决从服务器下载非最新修订版本的时间戳中的 bug。#14110
漏洞修复: 修复可编辑包中的双重基本路径设置。#14109
漏洞修复: 如果
conan graph build-order
图有任何错误,则引发异常,而不是静默地无所作为并输出空 json。#14106缺陷修复:当文件夹具有重叠的匹配名称时,避免为
editable
包进行不正确的路径替换。 #14095缺陷修复:将 clang 设置为默认的 FreeBSD 检测到的编译器。 #14065
缺陷修复:通过 PkgConfigDeps 将前缀变量和任何自定义内容(通过 pkg_config_custom_content 属性)添加到已生成的 pkg-config 根 .pc 文件中。 #14051
缺陷修复:conan create 命令对于 `
--format=json
结果图始终返回相同的输出,而与 test_package 是否存在无关。 #14011 。 文档 here缺陷修复:修复当定义 `
self.folders.root=".."
父目录时,`editable
包出现的问题。 #13983缺陷修复:移除 libdir1 和 includedir1 作为默认索引。现在,PkgConfigDeps 默认在 .pc 文件中创建 libdir 和 includedir 变量。 #13623 。 文档 here
2.0.6 (2023年5月26日)¶
新功能:添加 tools.cmake:cmake_program 配置项,以允许指定所需的 CMake 可执行文件的位置。 #13940 。 文档 here
修复:在 graph json 输出中将 “id” 属性输出为 str 而不是 int。 #13964 。 文档 here
修复:修复图层中的自定义命令无法执行本地导入的问题。 #13944
修复:改进下载 + 解压缩的输出。 #13937
修复:在 conan config install 中为 package_manager:mode 添加缺失的值。 #13929
缺陷修复:确保 graph info、create、export-pkg 和 install 的 graph-info JSON 输出相同。 #13967 。 文档 here
缺陷修复:
test_requires
像常规的requires
一样影响消费者的package_id
,但它们不应该影响。 #13966缺陷修复:当
-c tools.build:download_source=True
时,在 json 输出中正确定义source_folder
。 #13953缺陷修复:修复并完善了 graph info xxxx –format json 输出,以便公开文档化。 #13934 。 文档 here
缺陷修复:修复 premakedeps 中的 “double” 绝对路径。 #13926
缺陷修复:修复 2.0.5 版本中的回归问题 https://github.com/conan-io/conan/pull/13898,其中软件包和组件规范的覆盖失败 #13923
2.0.5 (2023年5月18日)¶
新功能:-v 参数默认为 VERBOSE 级别。 #13839
新功能:避免显示不必要的跳过依赖项。现在,如果存在跳过的二进制文件,则仅显示引用名称列表。可以通过在当前命令中添加 -v(verbose 模式)来完全列出它们。 #13836
新功能:允许对本地构建的软件包进行 step-into 依赖项调试,使用 `
--build
#13833 。 文档 here新功能:允许使用 `
upload_policy="skip"
和 `build_policy="missing"
构建不可重定位的本地软件包 #13833 。 文档 here新功能:当计算 `
package-revision
时,不在缓存中移动 “build” 文件夹,以便允许为 step-into 调试的依赖项定位源文件 #13810新功能:新的 `
settings.possible_values()
方法,用于查询设置的可能值范围。 #13796 。 文档 here新功能:当 `
upload_policy=skip
时,优化并避免访问服务器以获取二进制文件 #13771新功能:部分相对化生成的环境 .sh shell 脚本 #13764
新功能:改进 settings.yml 错误消息 #13748
新功能:自动创建空的 `
global.conf
以改善在 home 目录中查找文件的用户体验。 #13746 。 文档 here新功能:缓存 “extensions/generators” 中的新全局自定义生成器,可以通过名称使用。 #13718 。 文档 here
新功能:改进 conan inspect 输出,现在它理解 set_name/set_version。 #13716 。 文档 here
新功能:定义新的 `
self.tool_requires("pkg/<host_version>")
,以允许某些 tool-requires 遵循并使用与 “host” 常规 requires 相同的版本。 #13712 。 文档 here新功能:引入新的 `
core:skip_warns
配置,以便能够静默输出中的某些警告。 #13706 。 文档 here新功能:将 info_invalid 添加到 graph 节点序列化中 #13688
新功能:计算和报告 graph 中的 `
overrides
,以及在 `graph build-order
中 #13680新功能:用于单仓库项目的新 `
revision_mode = "scm_folder"
,这些项目想要使用 `scm
修订版本。 #13562 。 文档 here修复:修复 XcodeDeps 包含跳过的依赖项的问题。 #13880
修复:不允许在 `
pkg/version
引用字段中换行。 #13870修复:修复 Windows 子系统的 `
AutotoolsToolchain
的 `tools.build:compiler_executable
定义。 #13867修复:加速 CMakeDeps 的生成速度 #13857
修复:修复导入的库配置后缀。 #13841
修复:当定义未知 conf 时失败。 #13832
修复:修复在 `
conan install/create
命令中,当 “skipped” 二进制文件被其他依赖项使用时,打印不正确的问题。 #13778修复:将缓存 “deploy” 文件夹重命名为 “deployers”,并允许使用 `
-d, --deployer
cli 参数。(“deploy” 文件夹不会中断,但会警告为已弃用)。 #13740 。 文档 here修复:在 `
CMakeDeps
中为仅包含标头的库省略 `-L
libpaths。 #13704缺陷修复:修复当 `
test_requires
也是常规传递 “host” requires 并且消费者定义组件时的问题。 #13898缺陷修复:修复在 recipes 中定义的选项(如 `
*:shared=True
)的传播。 #13855缺陷修复:修复 ‘graph build-order’ 和 ‘test’ 命令的 `
--lockfile-out
路径。 #13853缺陷修复:确保在更多情况下上传备份源文件。 #13846
缺陷修复:修复 `
settings.yml
中 `intel-cc
`cppstd=03
的定义。 #13844缺陷修复:修复 conan upload 命令在上传仅导出的 recipes 的备份源文件时的问题。 #13779
缺陷修复:修复包含别名的 lockfile 的 `
conan lock merge
命令。 #13763缺陷修复:修复具有版本范围的传递依赖项中的 python_requires。 #13762
缺陷修复:修复 baremetal 的 CMakeToolchain CMAKE_SYSTEM_NAME=Generic。 #13739
缺陷修复:修复不正确的环境脚本停用顺序。 #13707
缺陷修复:解决当 graph 具有 `
override=True
的 requirements 时,lockfile 失败的问题。 #13597
2.0.4 (2023年4月11日)¶
新功能:将 `
--build-require
扩展到更多命令(`graph info
、`lock create
、`install
)和用例。 #13669 。 文档 here新功能:使 CMakeDeps、CMakeToolchain 和 Environment (.bat, 仅限 Windows) 生成的文件具有相对路径。 #13607
新功能:添加对 premake5 依赖项 (PremakeDeps) 的初步(未记录的,仅限开发人员)支持。 #13390
修复:更新旧的 conan user 引用为 `
conan remote login
。 #13671修复:改进 `
requirements()
中更改的依赖项选项的错误消息。 #13668修复:[system_tools] 未报告正确的已解析版本,但仍然是原始范围。 #13667
修复:改进 provides 冲突消息错误。 #13661
修复:当服务器响应 Forbidden 以下载 recipe/package 中的 1 个文件时,确保清理其他文件和数据库。 #13626
修复:当使用 –package-query 但未提供与软件包匹配的模式时,在 conan remove 中添加错误。 #13622
修复:为
direct_deploy
deployer 添加 `direct_deploy
子文件夹。 #13612 。 文档 here修复:修复当模式未列出软件包修订版本时的 html 输出,例如:`
conan list "*#*:*"
。 #13605缺陷修复:当软件包没有 settings 或 options 时,`
conan list -p <package-query>
失败。 #13662缺陷修复:python_requires 现在正确加载远程 requirements。 #13657
缺陷修复:修复当在 graph 中也作为菱形闭合节点的节点中使用 `
override
时发生的崩溃。 #13631缺陷修复:修复 `
options
的 `--package-query
参数。 #13618缺陷修复:为 `
full_deploy
deployer 添加 `full_deploy
子文件夹,以避免与 “build” 文件夹冲突。 #13612 。 文档 here缺陷修复:使 STATUS 成为默认日志级别。 #13610
缺陷修复:修复 conan cache clean 中的双重删除错误。 #13601
2.0.3 (2023年4月3日)¶
新功能:`
conan cache clean
学习了 `--all
和 `--temp
来清理所有内容(源文件、构建)以及临时文件夹。 #13581 。 文档 here新功能:支持 MacOS SDK 13.1 (在 Xcode 14.2 中可用)。 #13531
新功能:`
full_deploy
deployer 与 `CMakeDeps
生成器一起学习创建相对路径部署,使其可重定位。 #13526新功能:引入 `
conan remove *#!latest
(也适用于 package-revisions),以删除除最新版本之外的所有修订版本。 #13505 。 文档 here新功能:新的 `
conan cache check-integrity
命令,用于替换 1.X 版本的旧版 `conan upload --skip-upload --check
。 #13502 。 文档 here新功能:在 conan list html 输出中添加选项和设置的筛选。 #13470
新功能:第三方自动服务器端源文件备份。 #13461
新功能:添加 `tools.android:cmake_legacy_toolchain 配置,在为 Android 构建 CMake 项目时非常有用。如果定义,这将设置 `ANDROID_USE_LEGACY_TOOLCHAIN_FILE` 的值。如果通过 `tools.build:cflags` 或 `tools.build:cxxflags` 定义了编译器标志,则将其设置为 `False` 可能很有用,以防止 Android 的旧版 CMake 工具链覆盖这些值。 #13459 。 文档 here
新功能:默认将 `
tools.files.download:download_cache
设置为 `core.download:download_cache
,因此只需定义一个即可。 #13458修复:定义一种在 `
python_requires_extend
扩展中更新 `default_options
的方法。 #13487 。 文档 here修复:再次允许指定 `
self.options["mydep"].someoption=value
,等效于 `"mydep/*"
。 #13467修复:为使用 VS2019 和 VS2022 的 meson 生成 c++20 的 `cpp_std=vc++20`,而不是 `vc++latest`。 #13450
缺陷修复:修复 `
CMakeDeps
未清除 `find_library()
中的 `CONAN_SHARED_FOUND_LIBRARY
变量。 #13596缺陷修复:不允许添加超过 1 个具有相同远程名称的远程仓库。 #13574
缺陷修复:避免由于 editable 软件包的依赖项二进制文件被 “skip” 而导致的生成器错误。 #13544
缺陷修复:修复当父命令具有下划线时的子命令名称。 #13516
缺陷修复:修复运行 conan export-pkg 时远程仓库中的 `
python-requires
。 #13496缺陷修复:Editable 软件包现在也遵循 `
build_folder_vars
配置。 #13488缺陷修复:修复 `
[system_tools]
profile 组合。 #13468
2.0.2 (2023年3月15日)¶
新功能:允许在 `
global.conf
中使用 Conan home 文件夹的相对路径。 #13415 。 文档 here新功能:为 `Autotools` 类的 `autoreconf` 方法添加了一个可选的 “build_script_folder” 参数。它镜像了同一类的 `configure` 方法的相同参数和行为。也就是说,它允许用户覆盖工具的运行位置(默认情况下在 `source_folder` 中运行)。 #13403
新功能:创建缓存内容的摘要。 #13386
新功能:允许 `
global.conf
jinja2 包含其他文件。 #13336新功能:添加 `
conan export-pkg --skip-binaries
,以允许导出但不包含依赖项的二进制文件。 #13324 。 文档 here新功能:添加 `core.version_ranges:resolve_prereleases` conf,以控制版本范围是否可以解析为预发布版本。 #13321
修复:允许在 conan create 中自动处理 `
package_type = "build-scripts"
作为 `--build-require
。 #13433修复:改进服务器端软件包损坏的检测和消息。 #13432
修复:修复 conan download help 中的错别字。 #13430
修复:修复 _detect_compiler_version 中的错别字。 #13396
修复:修复 OSX 上 `
clang
编译器的 `conan profile detect
对 `libc++
的检测。 #13359修复:允许内部 `
vswhere
调用也检测和使用 VS 预发布版本。 #13355修复:当 `
settings_user.yml
定义 `dict
时,允许将 `settings.yml
列表转换为 `dict
。 #13323修复:修复从 macOS 交叉编译到非 Apple OS 时 AutotoolsToolchain 传递的标志。 #13230
缺陷修复:修复 `
MSBuild
中自定义配置包含空格时出现的问题。 #13435缺陷修复:解决 `
conan profile path <nonexisting>
崩溃的错误。 #13434缺陷修复:添加全局 verbosity conf `tools.build:verbosity` 而不是单独的 conf。 #13428 。 文档 here
缺陷修复:避免为格式错误的自定义命令引发致命异常。 #13365
缺陷修复:即使依赖项是仅包含标头的库,也不要省略 `
system_libs
。 #13364缺陷修复:修复实例化 `
MesonToolchain
时未创建 `VirtualBuildEnv
环境的问题。 #13346缺陷修复:兼容性插件中针对自定义编译器的更友好的错误提示。 #13328
缺陷修复:添加 qcc cppstd 兼容性信息以允许计算依赖项 graph。 #13326
2.0.1 (2023年3月3日)¶
新功能:在 config install 中为 `–verify-ssl` 添加 `–insecure` 别名。 #13270 。 文档 here
新功能:为 `conan config install` 添加 `.conanignore` 支持。 #13269 。 文档 here
新功能:使异常的 verbose 回溯显示为 `
-vv
和 `-vvv
,而不是 1.X 中使用的自定义 env-var。 #13226修复:对 conan install 和 2.0-readiness 错误消息进行小幅改进。 #13299
修复:删除 `
vcvars.bat
VS 遥测 env-var,以避免 Conan 挂起。 #13293修复:删除 `
CMakeToolchain
对 `CMakePresets
schema2 for `CMakeUserPresets.json
的旧版支持。 #13288 。 文档 here修复:如果 `
conan config list unexpected-arg
,则引发 arg 错误。 #13282修复:不要为 `
msvc
自动检测 `compiler.runtime_type
,依赖于 profile 插件。 #13277修复:修复 conanfile.txt options 解析错误消息。 #13266
修复:改进 options 中统一模式的错误消息。 #13264
修复:允许 `
conan remote add --force
强制重新定义现有的远程仓库名称。 #13249修复:恢复打印 build 命令的 profiles。 #13214
修复:更改 conan build 参数 “path” 的描述,以指示它仅适用于 conanfile.py,并明确声明它不适用于 conanfile.txt。 #13211 。 文档 here
修复:当在 `
requirements()
方法中定义依赖项 `options
时,提供更好的错误消息。 #13207修复:修复错误消息和 readme 中指向文档的断开链接。 #13186
缺陷修复:确保始终将 `topics` 序列化为列表。 #13298
缺陷修复:确保始终将 `provides` 序列化为列表。 #13298
缺陷修复:修复了对某些 visual c++ 安装的检测。 #13284
缺陷修复:修复 `
msvc
编译器的支持的 `cppstd
值。 #13278缺陷修复:CMakeDeps 为 `
tool_requires
生成的文件使用与 “host” context 相同的 `build_type
。 #13267缺陷修复:修复 configure() 中依赖项 options 的模式定义。 #13263
缺陷修复:修复当输出文件夹位于不同的 Win 驱动器时 CMakeToolchain 错误。 #13248
缺陷修复:如果组件 `
.requires
未使用 `test_requires
,则不引发错误。 #13191
2.0.0 (2023年2月22日)¶
新功能:将 apple-clang 的默认 profile cppstd 更改为 gnu17。 #13185
新功能:新的 `
conan remote auth
命令,用于强制远程仓库中的身份验证。 #13180修复:允许在 `
test_requires(..., options={})
中定义 options 特征。 #13178修复:统一 Conan 命令帮助消息。 #13176
缺陷修复:修复 MesonToolchain 在 apple-clang 中错误的 cppstd。 #13172
新功能:改进的全局 Conan 输出消息(create, install, export 等)。 #12746
2.0.0-beta10 (2023年2月16日)¶
新功能:为 `conan list` 命令添加基本 html 输出。 #13135
功能:允许
test_package
处理--build
参数(为主图计算 –build=never,非 test_package 图)。 #13117功能:为 remote add 添加 –force 参数。 #13112
功能:验证输入配置是否存在,以避免拼写错误。 #13110
功能:允许在 recipe 的
layout()
中定义self.folders.build_folder_vars
。 #13109功能:阻止 settings 赋值。 #13099
功能:改进 conan editable 用户界面。 #13093
功能:为用户提供扩展 Conan 生成的 CMakePresets 的能力。 #13090
功能:添加错误消息,以帮助将 recipe 从 ConanCenter 和用户仓库迁移到 2.0。 #13074
功能:在 conan new 模板中移除 shared 的 option.fPIC。 #13066
功能:添加 conan cache clean 子命令以清理 build 和 source 文件夹。 #13050
功能:实现可自定义的
CMakeToolchain.presets_prefix
,以便预设名称预先添加此前缀。 #13015功能:将 [system_tools] 部分添加到 profile,以使用您自己安装的工具,而不是 requires 中声明的包。 #10166
修复:修复 powershell 转义中的错误。 #13084
修复:默认定义
CMakeToolchain.presets_prefix="conan"
,以避免与其他用户预设冲突。 #13015
2.0.0-beta9 (2023 年 1 月 31 日)¶
功能:在 Conan 缓存哈希路径中添加包名称。 #13011
功能:实现
tools.build:download_source
conf 以强制在 conan install 或conan graph info
中安装 source。 #13003功能:用户可以在 settings_user.yml 中定义自己的 setting,这些 setting 将与 Conan 的 settings.yml 合并。 #12980
功能:也列出禁用的 remote。 #12937
修复:PkgConfiDeps 正在使用 dependencies 中的错误
dependencies.host
,而不是get_transitive_requires()
计算。 #13013修复:修复 CMakeDeps 中传递共享 linux 库的问题。 #13010
修复:修复 test_package 输出文件夹的问题。 #12992
修复:改进错误方法的错误消息。 #12962
修复:修复由于数据库并发问题导致的并行包下载失败。 #12930
修复:启用针对禁用 remote 的身份验证。 #12913
修复:改进 system_requirements。 #12912
修复:将 tar 格式更改为 PAX,这是 Python3.8 的默认格式。 #12899
2.0.0-beta8 (2023 年 1 月 12 日)¶
功能:为需要在 package_info 中使用 unix_path_package_info_legacy 函数的情况添加此函数,以便与 Conan 1.x 兼容。在 Conan 2 中,不应在 package_info 方法中执行路径转换。 #12886
功能:用于
conan list
的新序列化 json 和打印。 #12883功能:向 conan new cmake_{lib,exe} 添加 requirements。 #12875
功能:允许使用
--no-remotes
强制临时禁用 remote。 #12808功能:向 conan new 添加 barebones 模板选项。 #12802
功能:如果传递了 PkgID,则避免请求包配置。 #12801
功能:实现 conan list *#latest 和 conan list *:*#latest。基本上,此命令可以显示所有匹配引用的最新 RREV 和 PREV。 #12781
功能:允许链式调用 self.output write 方法。 #12780
修复:使
graph info
过滤器也适用于 json 输出。 #12836Bugfix: 修复在使用 AutotoolsToolchain 并在 Windows 上交叉编译时传递无效 GNU triplet 的错误。 #12881
Bugfix: 如果 ref.name 相同但版本不同,则进行排序。 #12801
2.0.0-beta7 (2022 年 12 月 22 日)¶
2.0.0-beta6 (2022 年 12 月 2 日)¶
功能:使用
--confirm
在删除时无需请求确认,而不是--force
。 #12636功能:简化加载 conaninfo.txt 以进行搜索结果。 #12616
功能:将 ConanAPIV2 重命名为 ConanAPI。 #12615
功能:重构 ConanAPI。 #12615
功能:改进 conan cache path 命令。 #12554
功能:改进从 remove/upload/download 中选择 #latest 和模式。 #12572
功能:添加 build_modules 到提供的 deprecated 警告,以允许从 1.x 迁移。 #12578
功能:Lockfile 别名支持。 #12525
2.0.0-beta5 (2022 年 11 月 11 日)¶
功能:改进 remote 管理和 API。 #12468
功能:在 Conan 2.0 中将 env_info 和 user_info 实现为伪属性。 #12351
功能:改进 settings.rm_safe()。 #12379
功能:新的 RecipeReference 相等性。 #12506
功能:简化 .tgz 文件的压缩和解压缩。 #12378
功能:conan source 命令不需要默认 profile。 #12475
功能:创建了适当的 LockfileAPI,具有详细的方法(update、save 等),而不是几个松散的方法。 #12502
功能:conan export 也可以生成 lockfile,这对于执行 2 步(export + install–build)过程的用户是必要的。 #12502
功能:删除 compat_app。 #12484
修复:修复 transitive_headers=True 的传递传播。 #12508
修复:修复静态库的 transitive_libs=False 的传递传播。 #12508
修复:修复 python_requires 的 test_package。 #12508
2.0.0-beta4 (2022 年 10 月 11 日)¶
功能:不允许使用 revision_mode=scm 对未提交的更改执行 conan create/export。 #12267
功能:简化 conan inspect 命令,删除 path 子命令。 #12263
功能:向 graph info 命令添加 –deploy 参数。 #12243
功能:将 graph 对象传递给 deployer,而不是 ConanFile。 #12243
功能:向 conan.tools.scm.Git 添加 included_files 方法。 #12246
功能:改进 clang libcxx 的检测。 #12251
功能:删除旧的 profile 变量系统,转而使用 profile 中的 Jinja2 语法。 #12152
修复:更新命令以遵循关于 CLI 输出的 Conan 2.0 约定。 #12235
修复:修复 diamonds 中 test trait 的聚合。 #12080
2.0.0-beta3 (2022 年 9 月 12 日)¶
功能:将 test_package 与 create 解耦。 #12046
功能:如果导出的 ref 中有特殊字符,则发出警告。 #12053
功能:MSBuildDeps traits 的改进。 #12032
功能:添加了对 CLICOLOR_FORCE 环境变量的支持,如果该值已声明且不为 0,则将激活输出中的颜色。 #12028
修复:对于所有配置,仅调用 source() 一次。 #12050
修复:修复 deployer 不创建 output_folder 的问题。 #11977
修复:修复 build_id() 删除 require 的问题。 #12019
修复:如果 Conan 无法加载自定义命令,现在会显示有用的错误消息。 #11720
Bugfix: 如果 ‘os’ 未在 build profile 和 recipe 中指定,在 Windows 中,想要运行命令。 #11728
2.0.0-beta2 (2022 年 7 月 27 日)¶
功能:在 MSBuildDeps 中添加 traits 支持。 #11680
功能:在 XcodeDeps 中添加 traits 支持。 #11615
功能:允许依赖项定义 package_id 模式。 #
功能:添加
conan.conanrc
文件以设置 conan 用户 home 目录。 #11675功能:添加
core.cache:storage_path
以声明要存储 Conan 包的绝对路径。 #11672功能:添加用于检查最大 cppstd 版本的工具。 #11610
功能:添加一个在 build 失败时调用的
post_build_fail
hook。 #11593功能:添加
pre_generate
和post_generate
hook,涵盖在generate()
方法调用周围生成文件。 #11593功能:带回
conan config list
命令和其他 conf 改进。 #11575功能:为所有命令添加了两个新参数 -v 用于控制输出的详细程度,–logger 用于以 json 日志格式输出内容,供日志处理器使用。 #11522
2.0.0-beta1 (2022 年 6 月 20 日)¶
功能:新的图模型,更好地支持 C 和 C++ 二进制关系、编译和链接。
功能:新的、有文档记录的公共 Python API,用于用户自动化
功能:新的构建系统集成,更灵活和强大,并在可能的情况下提供透明集成,例如
CMakeDeps
和CMakeToolchain
功能:新的自定义用户命令,可以使用公共 PythonAPI 构建,并且可以使用
conan config install
共享和安装功能:新的 CLI 界面,具有更简洁的命令和更结构化的输出
功能:新的 deployer 机制,用于将工件从缓存复制到用户文件夹,并在构建时使用这些副本。
功能:改进的
package_id
计算,考虑了新的更详细的图模型。功能:添加了
compatibility.py
扩展机制,允许用户全局定义二进制兼容性。功能:更简单、更强大的
lockfile
,可提供随时间推移的可重现性。功能:通过
[conf]
更好的配置,以及通过新的conan.tools.env
工具更好的环境管理。功能:Conan 缓存现在可以同时存储多个修订版本。
功能:新的扩展插件,用于实现 profile 检查、包签名和构建命令包装。
功能:使用包不可变性来改进更新、安装和上传流程。