Skip to content

Added citation support and test cases. #630

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 11 commits into
base: 1.7-dev
Choose a base branch
from

Conversation

stevespringett
Copy link
Member

@stevespringett stevespringett commented May 1, 2025

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]>
<xs:element name="process" type="bom:refLinkType" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
The `bom-ref` to a process (such as a formula, workflow, task, or step) defined in the `formulation` section that executed or generated the attributed data.
Copy link
Member

@jkowalleck jkowalleck Jul 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

per spec, formulations describe how a component came together.

Describes how a component or service was manufactured or deployed. This is achieved through the use of formulas, workflows, tasks, and steps, which declare the precise steps to reproduce along with the observed formulas describing the steps which transpired in the manufacturing process.

per spec, metadata.tools list how the BOM came together.

The tool(s) used in the creation, enrichment, and validation of the BOM.

since this feature intents to annotate/detail how the BOM was made, I would expect to reference one of metadata.tools here, not a formulation.
am i wrong?

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