SBOM工具v4.0.2版本发布:全面支持SPDX 3.0规范
微软开源的SBOM工具(SBOM Tool)是一款用于生成、验证和管理软件物料清单(Software Bill of Materials)的专业工具。软件物料清单是现代软件开发中不可或缺的一部分,它详细记录了软件产品中使用的所有组件及其依赖关系,对于软件供应链安全管理和合规性至关重要。
重大API变更
本次v4.0.2版本带来了重要的API变更,主要体现在接口命名和功能调整上。开发团队对"Compliance"(合规性)相关命名进行了统一修改,全部调整为"Conformance"(一致性),这一变更反映了行业术语的标准化趋势。同时,NTIA(美国国家电信和信息机构)相关命名也被更新为NTIAMin,以更准确地表示其作为最小一致性标准的内涵。
值得注意的是,为了保持代码的清晰性和维护性,开发团队移除了向后兼容的接口适配层。这意味着直接使用SBOM工具API的开发者需要检查并更新他们的集成代码,以适应这些命名和结构上的变化。
SPDX 3.0规范支持
本次更新的核心亮点是新增了对SPDX 3.0规范的支持。SPDX(Software Package Data Exchange)是Linux基金会主导的软件物料清单标准,3.0版本带来了更丰富的元数据表达能力和更灵活的关系描述方式。
开发者现在可以通过指定-mi:SPDX3.0命令行参数来启用SPDX 3.0格式的生成和验证功能。工具内部实现了完整的SPDX 3.0组件模型转换逻辑,包括对扩展属性的支持。不过需要注意的是,当前版本尚未实现对SPDX 3.0文档的编辑(redaction)功能,如果用户尝试对SPDX 3.0格式的SBOM进行编辑操作,工具会主动抛出验证错误。
功能改进与问题修复
在功能改进方面,SBOM工具现在能够更智能地处理生成请求,只生成实际支持的清单格式,而不是尝试所有可能的格式。同时,工具现在将SourcesProviders作为事实来源,提高了数据一致性。
针对SPDX 3.0规范,开发团队修复了多个关键问题:
- 修复了关系生成中的逻辑错误
- 解决了根包(root package)的supplier和suppliedBy属性问题
- 修正了外部标识符处理中的空引用问题
- 修复了SBOM文件和包生成中的NoAssertion标记问题
- 解决了包依赖ID映射错误
在验证功能方面,工具现在能够识别并处理扩展属性,同时新增了记录签名验证结果的遥测方法,为后续分析提供了更丰富的数据支持。
开发者体验优化
为了提升开发者体验,本次更新包含多项改进:
- 新增了DotNet组件适配器,更好地支持.NET生态系统
- 改进了E2E测试的执行逻辑,确保测试环境的一致性
- 修复了本地运行E2E测试时可能遇到的问题
- 优化了Docker镜像构建过程,通过清理apt缓存减小了镜像体积
- 更新了多个依赖项版本,包括System.Text.Json从9.0.0升级到9.0.2
总结
SBOM工具v4.0.2版本标志着项目向更现代的软件物料清单标准迈出了重要一步。通过支持SPDX 3.0规范,工具能够满足更复杂的供应链安全需求,同时保持了与现有SPDX 2.2标准的兼容性。虽然引入了一些API变更,但这些调整有助于建立更清晰、更一致的代码结构,为未来的功能扩展奠定基础。
对于需要管理复杂软件供应链的组织来说,升级到这个版本将获得更强大的SBOM处理能力,特别是在处理现代软件组件关系和元数据方面。开发团队建议用户评估这些变更对现有工作流程的影响,并计划相应的升级策略。
kernelopenEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。C091
baihu-dataset异构数据集“白虎”正式开源——首批开放10w+条真实机器人动作数据,构建具身智能标准化训练基座。00
mindquantumMindQuantum is a general software library supporting the development of applications for quantum computation.Python058
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00
GLM-4.7GLM-4.7上线并开源。新版本面向Coding场景强化了编码能力、长程任务规划与工具协同,并在多项主流公开基准测试中取得开源模型中的领先表现。 目前,GLM-4.7已通过BigModel.cn提供API,并在z.ai全栈开发模式中上线Skills模块,支持多模态任务的统一规划与协作。Jinja00
AgentCPM-Explore没有万亿参数的算力堆砌,没有百万级数据的暴力灌入,清华大学自然语言处理实验室、中国人民大学、面壁智能与 OpenBMB 开源社区联合研发的 AgentCPM-Explore 智能体模型基于仅 4B 参数的模型,在深度探索类任务上取得同尺寸模型 SOTA、越级赶上甚至超越 8B 级 SOTA 模型、比肩部分 30B 级以上和闭源大模型的效果,真正让大模型的长程任务处理能力有望部署于端侧。Jinja00