Skip to content

Commit ab4ae45

Browse files
authored
docs: responsibilities & capabilities (#763)
Signed-off-by: Jan Kowalleck <[email protected]>
1 parent 66ece7a commit ab4ae45

File tree

4 files changed

+85
-8
lines changed

4 files changed

+85
-8
lines changed

README.md

+10-8
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,19 @@ that provides advanced supply chain capabilities for cyber risk reduction.
2020
This Python package provides data models, validators and more,
2121
to help you create/render/read CycloneDX documents.
2222

23-
**This package is not designed for standalone use. It is a software library.**
24-
25-
As of version `3.0.0`, the internal data model was adjusted to allow CycloneDX VEX documents to be produced as per
26-
[official examples](https://cyclonedx.org/capabilities/bomlink/#linking-external-vex-to-bom-inventory) linking VEX to a separate CycloneDX document.
27-
28-
If you're looking for a CycloneDX tool to run to generate (SBOM) software bill-of-materials documents, why not checkout
29-
[CycloneDX Python][cyclonedx-python] or [Jake][jake].
23+
> [!NOTE]
24+
> This package is a software library not intended for standalone use.
25+
> For generating Software Bill of Materials (SBOM), check out [CycloneDX Python][cyclonedx-python] or [Jake][jake].
3026
3127
## Documentation
3228

33-
View the documentation [here](https://cyclonedx-python-library.readthedocs.io/).
29+
Complete documentation is available on [Read the Docs][link_rtfd]. This includes:
30+
- Responsibilities & Capabilities
31+
- Install Instructions
32+
- API Reference
33+
- Usage Examples
34+
- Integration Guides
35+
- Best Practices
3436

3537
## Python Support
3638

docs/index.rst

+1
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ If you're looking for a CycloneDX tool to run to generate (SBOM) software bill-o
4141
:maxdepth: 2
4242
:caption: Contents:
4343

44+
responsibilities_capabilities
4445
install
4546
architecture
4647
examples

docs/install.rst

+4
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ Install from `pypi.org`_ as you would any other Python module using your preferr
2626
.. _pypi.org: https://pypi.org/project/cyclonedx-python-lib/
2727
.. _conda-forge: https://anaconda.org/conda-forge/cyclonedx-python-lib
2828

29+
Some dependencies might be optional - they are referenced via the *extras*.
30+
31+
.. _install extras:
32+
2933
Extras
3034
------
3135

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
.. # Licensed under the Apache License, Version 2.0 (the "License");
2+
# you may not use this file except in compliance with the License.
3+
# You may obtain a copy of the License at
4+
#
5+
# http://www.apache.org/licenses/LICENSE-2.0
6+
#
7+
# Unless required by applicable law or agreed to in writing, software
8+
# distributed under the License is distributed on an "AS IS" BASIS,
9+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10+
# See the License for the specific language governing permissions and
11+
# limitations under the License.
12+
#
13+
# SPDX-License-Identifier: Apache-2.0
14+
15+
Responsibilities
16+
================
17+
18+
* Provide a general purpose Python-implementation of `CycloneDX`_.
19+
* Provide type hints for said implementation, so developers and dev-tools can rely on it.
20+
* Provide data models to work with `CycloneDX`_.
21+
* Provide data model-validators according to `CycloneDX Specification`_.
22+
* Provide JSON- and XML-serializers, that...
23+
* support all shipped data models.
24+
* respect any supported `CycloneDX Specification`_ and generates valid output accordingly.
25+
* generate reproducible/deterministic results.
26+
* Provide formal JSON- and XML-validators according to `CycloneDX Specification`_.
27+
* Provide mechanisms for JSON- and XML-deserialization of all shipped data models.
28+
* Pre-populate `bom-ref`, so linkage is possible. (affects only some data models)
29+
30+
Capabilities
31+
============
32+
33+
* Enums and Data models for the following use cases:
34+
* :mod:`Bom and Metadata <cyclonedx.model.bom>`
35+
* :mod:`BomRef <cyclonedx.model.bom_ref>`
36+
* :mod:`Component, Evidence, Patch, Pedigree, and more <cyclonedx.model.component>`
37+
* :mod:`Organizational Contact and Entity <cyclonedx.model.contact>`
38+
* :mod:`Cryptographic properties and more <cyclonedx.model.crypto>`
39+
* :mod:`Definition and Standard <cyclonedx.model.definition>`
40+
* :mod:`Dependency <cyclonedx.model.dependency>`
41+
* :mod:`Impact and related Analysis <cyclonedx.model.impact_analysis>`
42+
* :mod:`Issue <cyclonedx.model.issue>`
43+
* :mod:`License Named, SPDX, Expression, and more <cyclonedx.model.license>`
44+
* :mod:`Lifecycle <cyclonedx.model.lifecycle>`
45+
* :mod:`Release Notes <cyclonedx.model.release_note>`
46+
* :mod:`Service <cyclonedx.model.service>`
47+
* :mod:`Tool <cyclonedx.model.tool>`
48+
* :mod:`Vulnerability and related Analysis <cyclonedx.model.vulnerability>`
49+
* :mod:`Attachment Copyright, DataFlow, ExternalReference, Hash, Property, and more <cyclonedx.model>`
50+
* Factories for the following use cases:
51+
* Create data models from any license descriptor string
52+
* Builders for the following use cases:
53+
* Build a :class:`Component <cyclonedx.model.component.Component>` data model that represents this library
54+
* Build a :class:`Tool <cyclonedx.model.tool.Tool>` data model that represents this library
55+
* Implementation of the `CycloneDX Specification`_ for the following versions:
56+
* ``1.6``
57+
* ``1.5``
58+
* ``1.4``
59+
* ``1.3``
60+
* ``1.2``
61+
* ``1.1``
62+
* ``1.0``
63+
* Serializer that converts :class:`Bom <cyclonedx.model.bom.Bom>` data models to XML string
64+
* Serializer that converts :class:`Bom <cyclonedx.model.bom.Bom>` data models to JSON string
65+
* Formal validators for JSON string and XML string.
66+
Requires optional dependencies as described in :ref:`install instructions <install extras>`.
67+
* Shipped data model are serializable to and deserializable from both, JSON and XML.
68+
69+
.. _CycloneDX: https://cyclonedx.org/
70+
.. _CycloneDX Specification: https://github.com/CycloneDX/specification/#readme

0 commit comments

Comments
 (0)