Update from and add to type of hasConcludedLicense and hasDeclaredLicense#1122
Update from and add to type of hasConcludedLicense and hasDeclaredLicense#1122bact wants to merge 7 commits intospdx:developfrom
from and add to type of hasConcludedLicense and hasDeclaredLicense#1122Conversation
Per 14 Oct 2025 Tech call Update `to` type of hasConcludedLicense and hasDeclaredLicense Signed-off-by: Arthit Suriyawongkul <arthit@gmail.com>
Signed-off-by: Arthit Suriyawongkul <arthit@gmail.com>
|
Should the "license" --> If it should, I will create another PR targets |
|
No need to back-port this to 3.0. But I am a little skeptical of the wording that says stuff about "each I need some more time to think about whether @swinslow what do you think? |
|
In case there will be a change in "each to", and the change is not in 3.0, will the change (in post-3.0) be considered a breaking change? |
There made be times that there will more that one hasConcludedLicense relationship per element like when they have different CreationInfo. |
|
Note that the description of Update: I have added another sentence to |
Signed-off-by: Arthit Suriyawongkul <arthit@gmail.com>
Note that the Licensing profile has such a constraint for spdx-3-model/model/Licensing/Licensing.md Lines 115 to 123 in 9e7c359 |
stevenc-stb
left a comment
There was a problem hiding this comment.
There are three problems:
- Inconsistent Definition (Description vs Profile conformance )
- All the SupplyChain will need a Licenses. What would be the License for a TransportAction? Licenses will not apply to the SupplyChain.
- SupplyChain will merge graphs when making things. What if two different SPDX data creators want to accept the same or different AnyLicenseInfo info for an Artifact?
|
|
||
| 1. for every `/Software/SoftwareArtifact` there shall exist exactly one | ||
| 1. for every `/Core/Artifact` there shall exist exactly one | ||
| `/Core/Relationship` of type `hasConcludedLicense` having that element as |
There was a problem hiding this comment.
| `/Core/Relationship` of type `hasConcludedLicense` having that element as | |
| `/Core/Relationship` with value /CreationInfo/createdBy being the same, of type `hasConcludedLicense` having that element as |
There was a problem hiding this comment.
@stevenc-stb I forgot the rationale for this. I think you already mentioned that during the AI team meeting but it is probably not get recorded. Do you mind to put it here again please? Thank you.
|
@stevenc-stb So the general suggestion is to keep the Licensing profile conformance separated from the type constraints as describe in the relationship type description - right? i.e. |
Exactly, that's what I was getting at. Keeping the licensing profile conformance separate from type constraints. We might want to open it up allow even more that one hasConcludedLicense : see the RelationshipType.md hasConcludedLicense: "hasConcludedLicense: The |
|
There is a mix-up of two different cardinalities in these comments. I am firmly of the opinion that a Whether there are more than one |
Yes to that. I was unclear before.
This is what i meant by the last reply. |
Signed-off-by: Arthit Suriyawongkul <arthit@gmail.com>
|
What about for this Profile conformance?
|
The change in Profile conformance section is now reverted to its original text, which is:
Apart from few language differences, I believe the text you proposed and the original text are similar in meaning. Do you think it is ok to keep the original? @stevenc-stb |
|
it's ok to keep the original. We can revisit it later. |
|
@zvr wrote:
I agree with this. There should not be a situation where a single In terms of "are multiple different |
|
Regarding the change from Can you help me understand what other Artifacts, other than SoftwareArtifact, would be relevant to be |
|
There's a case of But also please see @stevenc-stb 's comment, particularly the (2):
https://github.com/spdx/spdx-3-model/blob/develop/model%2FCore%2FClasses%2FAction.md So maybe we can't have either "only Artifact" or "only SoftwareArtifact", but "Artifact without Action". But this also brings me to a question if we want to have (An action is certainly a noun, at least in English, something that is human made, but I don't think it is an object. Being an object should be a qualification of an artifact) |
|
Btw, since the "each to" is also in 3.0 relationship type descriptions for both |
|
@bact Thanks for the responses. I don't understand what this means: "All the SupplyChain will need a Licenses. What would be the License for a TransportAction?" Let's all please keep in mind that SPDX is talking about licenses specifically in the context of the distribution of software (and software-like content) in a supply chain. An "action" is not a licensable thing. You can't apply the MIT license to the act of making "an actual change to a product's location." For Hardware, similarly, if you are talking about a physical hardware device, then the structure of SPDX-style licenses is not at all aligned with the idea of selling a physical device. SPDX licenses could apply to something like "open source hardware designs" -- but in that case, you're presumably referring to the underlying design files themselves, and we're back to software again. I would strongly encourage that if there is a desire for expanding the licensing-related fields beyond software artifacts, then it would be appropriate to have a broader conversation about this that includes participants from the legal team (perhaps a joint tech/legal call should be scheduled). I really would not recommend enabling the licensing fields to apply to other things which are fundamentally different from software (and software-like content such as documentation, etc). I suspect that doing so will lead to a LOT of confusion when users try to implement this. |
|
I think that line ("All the SupplyChain will need a Licenses. What would be the License for a TransportAction?") is a question, a devil's advocate, a counter example. That if the "from" has to change from I agreed that we need more discussion between Tech and Legal teams. And in any case, we need to specify a type for the "to". |
This was back in commit (d50e486) the The Licensing profile Profile conformance of was changed to Core/Artifact from Software/SoftwareArtifact. This lead to need to have a action need a License. you pointed "action" is not a licensable thing. Profile conformance back to changed back to Software/SoftwareArtifact and this point does not apply now.
Yes. |
|
As this PR is keep developing through the discussion. -- To have a smaller and agreeable portion moving forward, I opened PR #1174 to essentially specify the type/range of the "to". The rest of the discussion (each "to", Artifact/SoftwareArtifact for "from", etc) can continue here. |
Signed-off-by: Arthit Suriyawongkul <arthit@gmail.com>
Per 14 Oct 2025 Tech call, reviewing a proposal in issue #1114:
hasConcludedLicenseandhasDeclaredLicenseto explicitly state the type ofto. Make itAnyLicenseInfo.fromtype updated toArtifactto support hardwarehasDeclaredLicensedescription to make it consistent with another "for example" instance (ininvokedByentry)compliance pointrelevant content in Licensing profileCurrent
hasConcludedLicenseandhasDeclaredLicensedescriptions:Proposed in this PR: