[2.0] refactor component for specificcomponent types
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- json
- Ambito
- data
Direzione di ricerca
Inizia con le due pull request di specifica collegate e individua la definizione attuale del componente. Traccia come vengono utilizzati i riferimenti ai componenti e i requisiti specifici del tipo. Il lavoro è completato quando il componente è suddiviso in definizioni di base e specifiche del tipo, i tipi di componente supportati sono rappresentati tramite oneOf e la gestione a valle delle proprietà rimane esplicita.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
after
- https://github.com/CycloneDX/specification/pull/982
- https://github.com/CycloneDX/specification/pull/975
the current component should be split in
baseComponent- core properties of a componentserviceComponent- inherit frombaseComponentand add service-specific properties and requirementssoftwareComponent- inherit frombaseComponentand add {application,framework,library,...}-specific properties and requirementshardwareComponent- inherit frombaseComponentand add service-specific properties and requirementsfileComponent- inherit frombaseComponentand add file-specific properties and requirementsdataComponent- inherit frombaseComponentand add data-specific properties and requirements- ... and so on - for each component type
I would even put the baseComponent, serviceComponent, etc ... under /$defs/component/$defs/,
not under /$defs/
after that split, the current component becomes a oneOf ala
{
"$defs": {
"component" : {
"oneOf": [
{"$ref": "#$defs/component/$defs/serviceComponent"}
{"$ref": "#$defs/component/$defs/hardwareComponent"},
{"$ref": "#$defs/component/$defs/...Component"},
],
"$defs": {
"baseComponent": {
"$comment": "This is a mixin. make sure to use `unevaluatedProperties` in the usage downstream"
"type": "object",
"required": [ ... ]
"properties": {
"type": { "enum": ["service", "device", ...] },
"bom-ref": ...,
"parties": ...
"group": ...,
"name": ...,
"description": ...,
"version": ...,
"versionRange": ...,
"isExternal": ...,
...
"components": { "$ref": "#$defs/components" }
}
},
"serviceComponent": {
"allOf": [{ "$ref": "#/$defs/component/$defs/baseComponent" }],
"titile": "Service Component",
"type": "object",
"required": ["endpoint", ...]
"properties": {
"type": { "enum": ["service"] },
// service-specific properties
"endpoint": ...,
"isExternal": { "default": true },
...
"components": { "$comment": "opportunity: make all items requiring a certain `type`" }
},
"unevaluatedProperties": false
},
"...Component": { ... },
}
}
}
}
- Lingua principale
- XSLT
- Stelle
- 551
- Fork
- 93
- Merge medio
- 4h 51m
- PR unite (30g)
- 42
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di CycloneDX/specification
-
Response vs Responce Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
CycloneDX/specification#1121 ·
-
defect documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
CycloneDX/specification#1115 ·
-
cap: cryptography-registry
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
CycloneDX/specification#1098 ·
-
defect
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 91/100
CycloneDX/specification#1045 · 2 commenti ·
-
CDX 2.0 documentation ready for review
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
CycloneDX/specification#1035 ·
Tutte le issue di CycloneDX/specification
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Add: Arena Sport Premium M3 Apertachannels:add check:passed
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
avniproject/avni-webapp#1811 ·
-
inceleme-kuyrugu
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
Greater-Turkiye/platform#114 ·
-
bug triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
ultralytics/ultralytics#26305 · 1 commento ·