Description
Hei!
I just came across the following blog post by John Mark.
https://aint.johnmark.org/2024/01/07/the-open-source-supply-chain-was-always-broken/
There, he proposes something which I think is a brilliant idea:
Add a sustainability clause to your Software Bills of Materials (SBOM) requirements.
Has there been any discussions around this before?
How would one represent sustainability metadata (e.g. project status or a funding url) in a CycloneDX SBOM?
Personally, I think this type of information is extremely important for an Open Source component/project to pass on to it's users, and for many, it may be a question of life and death for the project. When the project bus-factor is too low for sustainable development, then both upstream developers and downstream users would benefit from this fact to be communicated.
Examples
In the CPAN ecosystem, we operate with a few special signals for this purpose (source: The PAUSE Operating Model; Field names are capitalized for emphasis):
- ADOPTME – The project is abandoned, or the owner has been confirmed to be unresponsive, so the project is now available for adoption (number of maintainers is 0)
- HANDOFF – The project owner is looking for someone to take over the project (number of maintainers is 1 and about to become 0)
- NEEDHELP – The project is understaffed, and requires additional co-maintainers for sustainable and continued development (number of maintainers is too low)
- NOXFER – The project is prevented from being transferred to new owners
In addition, authors may decide that an Open Source project is accepting donations, selling support, or is employing some other income model in order to either make continued development sustainable, or to run a for-profit business around the project. If this is the case, there would be need for an URL for users to use to learn more about these funding options.
- FUNDING_URL – A URL to a webpage describing how the user of a component may fund the continued development of the component.
And related to this, if the component author wishes to conform to EU regulations, there needs to be a way for this to be communicated
- CE_DECLARATION – A URL, linking to declaration of conformance to the EU Cyber Resilience Act, as required in CRA Annex II, point 6; and Chapter III, Article 28; and in Chapter II Article 13(20).
- CE_DOCUMENTATION – A URL linking to supporting information and instructions (CRA Annex II, point 8)
- CE_CONFORMITY_BODY – A URL pointing to the Conformity Assessment Body where this component has been registered (CRA Article 22(4) and Article 58(1))
- CE_SUPPORT_END_DATE – The date for when the support for the component expires (Annex II, point 7)
There might be more fields required (or useful).
Does this make any sense? :-)