Skip to content

Conversation

stevespringett
Copy link
Member

@stevespringett stevespringett commented May 1, 2025

Changed

  • Formulations may be used to describe how any referencable object within the BOM came together, including components, services, metadata, declarations, or the BOM itself.
    Before, it was restricted to components and services.

Added

  • Citations - describe how certain information in the BOM came together, or were sourced from, or are asserted.

TODO/DONE

  • JSON schema modified
  • XML schema modified
  • ProtoBuf schema modified
  • JSON examples/test data crafted
  • XML examples/test data crafted
  • ProtoBuf examples/test data crafted

@stevespringett stevespringett requested a review from a team as a code owner May 1, 2025 20:23
@stevespringett stevespringett linked an issue May 1, 2025 that may be closed by this pull request
Signed-off-by: Steve Springett <[email protected]>
Signed-off-by: Steve Springett <[email protected]>
Signed-off-by: Steve Springett <[email protected]>
@stevespringett stevespringett added request for comment RFC notice sent A public RFC notice was distributed to the CycloneDX mailing list for consideration labels May 1, 2025
@stevespringett stevespringett added this to the 1.7 milestone May 1, 2025
@jkowalleck jkowalleck self-requested a review May 15, 2025 12:36
Signed-off-by: Jan Kowalleck <[email protected]>
@jkowalleck jkowalleck requested a review from a team May 20, 2025 09:33
@jkowalleck
Copy link
Member

RFC notice sent on May 1, 2025

Public RFC period ended May 29, 2025

@jkowalleck
Copy link
Member

@stevespringett i see lacks in the implementation. I'd reject the current version for its unclear implementation.

…o or process (or both) are required. Added invalid JSON test case.

Signed-off-by: Steve Springett <[email protected]>
@stevespringett stevespringett added RFC vote accepted promote to tc54 Promote to Ecma Technical Committee 54 labels Jul 2, 2025
@jkowalleck
Copy link
Member

jkowalleck commented Jul 3, 2025

my remark was clarified. since there is no question left in the spec, this is ready for TC54 vote.

i will fix the current merge conflicts, and i will add additional valid/invalid examples according to spec, and might adjust the schemas to detect the invalid cases if possible.

PS:
got it implemented in XSD via abcc29d
but the Java/Saxon foo is breaking for poor implementation - https://github.com/CycloneDX/specification/actions/runs/16050317279/job/45291176560?pr=630
will revert the XSD improvements. 😭

@jkowalleck jkowalleck self-requested a review July 3, 2025 11:32
@jkowalleck
Copy link
Member

jkowalleck commented Jul 3, 2025

after reading this spec again, i really do not like it. 👎

the idea of pointer is a horror for most implementations that use (unsorted) sets for data storage. the order of most elements never really mattered, but now it does.
this spec is much to much dependent of schema implementations (XML/JSON/PB) and programming-language implementations.


PS:

I understand the idea - have something to annotate everything, without the need of adding bom-ref at all objects.
Unfortunately, the proposed spec with pointers is not an ideal solution for the following points.

  • it makes transformation (e.g. from JSON to XML) non-trivial/complex/hard - since data structures are not the same in all schemas
  • it is not downstream-implementation friendly - since it requires tracking order of elements.

Were alternatives considered during the development of this solution?

Signed-off-by: Jan Kowalleck <[email protected]>
Signed-off-by: Jan Kowalleck <[email protected]>
Signed-off-by: Jan Kowalleck <[email protected]>
…ter. Updated formulation description. Updated test cases.

Signed-off-by: Steve Springett <[email protected]>
@stevespringett
Copy link
Member Author

The updated PR adds support for "expressions" supporting both JSONPath and XPath. The choice of using a pointer or an expression has been implemented in JSON and XML and explained in the protobuf.

The definition of formulation has been extended to capture its true purpose.

@jkowalleck jkowalleck requested a review from a team August 5, 2025 14:36
jkowalleck and others added 6 commits August 6, 2025 09:38
Signed-off-by: Jan Kowalleck <[email protected]>
Signed-off-by: Jan Kowalleck <[email protected]>
Signed-off-by: Jan Kowalleck <[email protected]>
Signed-off-by: Jan Kowalleck <[email protected]>
on top of #630

changes:
- ADDED: citation's "attributedTo" may also link to tools -- yes, we
have "processes", which are basically tools, but this way it might get
more convenient to use citations for BOM generators.
- DOCS: streamlined documentation
- REFACTOR: reworked the ProtoBuf structures to match some constraints
in the the spec -- `choice`/`oneOf` ...
- TESTS: practical examples for `citation.expressions`
@jkowalleck jkowalleck requested a review from a team August 11, 2025 08:40
@jkowalleck jkowalleck changed the title Added citation support and test cases. [1.7] Added citation support and test cases. Aug 11, 2025
@stevespringett stevespringett merged commit 680b4fc into 1.7-dev Aug 15, 2025
9 checks passed
@stevespringett stevespringett deleted the 1.7-dev-citations branch August 15, 2025 01:27
@jkowalleck jkowalleck mentioned this pull request Aug 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CDX 1.7 related to release v1.7 promote to tc54 Promote to Ecma Technical Committee 54 proposed core enhancement request for comment RFC notice sent A public RFC notice was distributed to the CycloneDX mailing list for consideration RFC vote accepted
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FEATURE]: Add citation support
2 participants