CycloneDX / CycloneDX/specification

Resolve ambiguous definition of `serialNumber`

Open
#474 5 comments 2 reactions 0 assignees View on GitHub
Dominant language
XSLT
Stars
547
Forks
93
Avg merge
7h 11m
Merged PRs (30d)
37

Description

#### Current Behavior
`serialNumber` is defined as an UUID and RECOMMENDED:
> Every BOM generated SHOULD have a unique serial number, even if the contents of a BOM have not changed over time. If specified, the serial number MUST conform to RFC-4122. Use of serial numbers are RECOMMENDED.

`version` is defined as an integer > 0:
> Whenever an existing BOM is modified, either manually or through automated processes, the version of the BOM SHOULD be incremented by 1. […]
This contradicts the definition of `serialNumber`, except one interprets these statements, as both fields have to be changed when an extant SBOM is newly generated.

#### Proposed Behavior
In our opinion UUIDs and hence the CycloneDX `serialNumber` must be static ("unequivocal in time and space" = "temporally and spatially unique"), as long as an SBOM creator records the same software component, even if these software componets are altered: e.g. new versions, files or sub-components are added or removed, etc.

Hence, we propose as the definition of `serialNumber`:
*Every BOM creator SHOULD use a unique serial number when describing a specific component, which MUST stay the same if the BOM is re-generated or the contents of this component have changed. If specified, the serial number MUST conform to RFC-4122. Use of serial numbers is RECOMMENDED.*

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.