更新时间:2023-03-26 07:47:54浏览次数:1+次
vcpkg 包管理器的 2022 年 5 月版本可用。本博文总结了 2022 年 3 月 31日至2022年 5 月 10日期间Microsoft/vcpkg 和 Microsoft /vcpkg-tool GitHub 存储库的更改。
这一时期的一些统计数据:
这是我们自去年 12 月推出 vcpkg 工件以来的第一次重大更新。更改和添加都在用于填充可用工件目录的工件元数据上。因此,本节主要对那些准备自己的工件目录的人感兴趣。
该体验仍处于预览阶段,并专注于嵌入式开发人员,但很快将扩展到针对 Linux、macOS 和 Windows 的 C++ 场景。
根据我们在注册表中扩展可用工件的经验,我们遇到了在注册表元数据中描述更多内容的需要,并意识到可以更好地命名一些现有功能。
您将观察到以下所有示例都是 json 格式的。首次发布时,vcpkg 工件目录可以创建为 yaml 或 json,我们的示例在 yaml 中。展望未来,我们将规范化为仅使用 json。
当前的“设置”已重命名为“导出”,因为它在功能上就是这样做的。同样,“变量”块已重命名为“环境”,因为它正在设置环境变量。
也有一些添加,全部到导出块:
我们还发现需要能够支持基于激活的需求块内的价值扩张。
以下部分中的示例是片段,请参阅默认的vcpkg 工件注册表以获取完整条目。
我们有一个“设置”块,它是“需求”块的一部分。这个块现在被命名为“exports”,因为它更好地描述了这个块在将配置导出到环境中时所做的事情。
“需求” :{ “出口” :{ “工具” :{ “cmake” :“bin/cmake” ,“cmake_gui” :“bin/cmake-gui” ,“ctest” :“bin/ctest” },“路径" : { "路径" : "bin" } } } ? ?
有一个变量块用于存储从工件导出的环境变量。“变量”并不像它可能的那样清晰,因此名称已更改为“环境”以更好地传达本节的功能。环境块是导出块的一部分。
“出口” :{ “环境” :{ “CLFAGS” :“-Wall -Wextra -Werror” } }
公关:微软/vcpkg-tool#473
Cloud Object Storage (COS) 是腾讯云的分布式存储服务,可通过 HTTP/HTTPS 访问。最近的社区 PR 允许 vcpkg 用户使用 COS 进行二进制缓存。二进制缓存将库二进制文件的副本保存在共享位置,vcpkg 可以访问该位置以供将来快速安装,可能在本地和 CI 中跨多个开发环境。
PR:Microsoft/vcpkg#23538,Microsoft/vcpkg-tool#476(谢谢@day253!)
软件包数据交换 (SPDX) 建立了软件材料清单 (SBOM) 的标准。它允许表达与软件相关的组件、许可证、版权、安全参考和其他元数据(来源:维基百科)。在此版本中,实验性vcpkg 添加了对最新 SPDX 标准的支持,这使得可以轻松跟踪 vcpkg 在系统上安装的所有依赖项。这对于有安全合规需求的组织非常重要,包括向美国政府销售软件的美国组织。虽然 vcpkg 需要支持 SPDX 以满足我们自己的内部合规性需求,但 vcpkg 用户也可以利用这一点来发布他们自己的软件。我们仍在努力开发这种体验,但原型在这个工具版本中。
公关:微软/vcpkg-tool#296
为 vcpkg 经典模式中的版本约束添加了跟踪。经典模式是通过 vcpkg install <PORT> 在命令行中指定要安装的端口,而不是通过清单安装。在构建失败的情况下,版本约束会显示给用户。虽然按照设计,经典模式不会强制用户重新构建过时的依赖项,但了解版本约束对调试有很大帮助。此显示仅针对安装命令出现。
公关:微软/vcpkg-tool#494
在 vcpkg 安装、修改或删除端口时清理控制台输出。新行为还发布了额外的测试结果以改进诊断。我们收到了很多用户反馈,认为 vcpkg 比人们认为的更冗长 - 这只是朝着更简洁的 vcpkg 迈出的一步!
公关:微软/vcpkg-tool#437
出于安全原因,在控制台窗口的 vcpkg 输出中打印错误时,不再显示 curl 错误(例如 x-azblob SAS)中列出的机密。
公关:微软/vcpkg-tool#499
三胞胎 | 可用端口 |
x86-windows | 1,744 |
x64 窗口 | 1,793 |
x64-windows-静态 | 1,689 |
x64-windows-静态-md | 1,705 |
x64-uwp | 925 |
arm64-windows | 1,327 |
手臂-uwp | 874 |
x64-osx | 1,649 |
x64-linux | 1,724 |
虽然 vcpkg 支持更多种类的目标平台 x 架构,但上面的列表经过例行测试,以确保更新的端口不会破坏目录中的其他端口。
如果没有我们开源社区的贡献,vcpkg 不可能有今天的成就。感谢您一如既往的支持!以下人员在 2022 年 3 月 31 日至 5 月 10 日期间为 vcpkg 和 vcpkg-tool 存储库做出了贡献:
您可以在 GitHub 上找到完整的 5 月发行说明,以获取主存储库。可以在vcpkg-tool Releases 页面上查看 vcpkg 工具的最新更新。如果您是 vcpkg 的新手,或者对包管理器如何让您作为 C/C++ 开发人员的生活更轻松感到好奇,请查看vcpkg 网站 - vcpkg.io。
如果您想为 vcpkg 及其库目录做出贡献,或者想就任何事情向我们提供反馈,请查看我们的GitHub存储库。请在我们的问题跟踪器中报告错误或请求更新端口,或在我们的论坛中加入更一般的讨论。有关我们的首要任务和积压工作的概述,请查看我们的路线图页面。
新闻来源:微软C++团队博客