Skip to content
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

JSON Schema HTML viewer generator script supports generating for one particular CDX version #507

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Nicolas-Peiffer
Copy link
Contributor

@Nicolas-Peiffer Nicolas-Peiffer commented Aug 29, 2024

The JSON Schema HTML viewer generator script docgen/json/gen.sh supports generating only for one particular CycloneDX version, including the possibility of generating the HTML only for draft version of CycloneDX during dev time.

Use Case

I want to propose new objects in the CycloneDX Specification. And for checking the JSON Schema, I like to locally use the HTML view to check the content of the JSON Schema.

However, during dev time when I was modifying the JSON Schema, I found it not convenient that the script docgen/json/gen.sh regenerate the HTML doc for every version of CycloneDX each time I run it when I only need the version I am working on.

Proposition

I modified the script docgen/json/gen.sh to be able to run gen.sh only for a particular version of CycloneDX.

For example:

./gen.sh 1.6

But I also added a list DRAFT_CYCLONEDX_VERSIONS for when I am working on a draft proposition of CycloneDX spec.
For example:

# I modify `docgen/json/gen.sh` to add the name of my draft file
DRAFT_CYCLONEDX_VERSIONS=(my_cdx_dev_draft)

I create a JSON schema draft file schema/bom-my_cdx_dev_draft.schema.json:

Then I run:

./gen.sh my_cdx_dev_draft

Which creates only the HTML for my_cdx_dev_draft

tree docgen/json/docs/my_cdx_dev_draft/
docgen/json/docs/my_cdx_dev_draft/
├── index.html
├── schema_doc.css
└── schema_doc.min.j

And in order not to disturb the way docgen/json/gen.sh works now, running it without argument generates the HTML for all the CDX versions:

./gen.sh
ls -1 docgen/json/docs/
1.2
1.3
1.4
1.5
1.6

I also added a small usage help message.

./gen.sh -h
Deleting folder /home/thedetective/Documents/dev-workspace/cyclonedx/cyclonedx-specification.thalesgroup/docgen/json/docs
Usage: Generate HTML JSON Schema navigator for CyccloneDX
Usage: ./gen.sh <version> : runs only for <version>
       ./gen.sh           : loops over all valid and draft CycloneDX versions

What about docgen/xml/gen.sh ?

I will probably propose the same kind of modification to the XML docgen/xml/gen.sh script to achieve the same results.

Conclusion

There are probably other way to achieve this result. I think this one is the cheapest in terms of how the gen.sh script is modified.

@Nicolas-Peiffer Nicolas-Peiffer requested a review from a team as a code owner August 29, 2024 12:36
…ating only for one particular CycloneDX version, including the possibility of generating the HTML only for draft version of CycloneDX during dev time.

Signed-off-by: Nicolas-Peiffer <[email protected]>

Fix the deletion of the docs folder

Signed-off-by: Nicolas-Peiffer <[email protected]>

Move deletion of the docs folder to CLI

Signed-off-by: Nicolas-Peiffer <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant