[2.0] refactor component for specificcomponent types
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- リファクタリング
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- json
- 領域
- data
調査の方向性
リンクされている2つの仕様プルリクエストから始めて、現在のコンポーネント定義を見つけてください。コンポーネント参照と型固有の要件がどのように使用されているかを追跡してください。コンポーネントがベース定義と型固有の定義に分割され、サポートされるコンポーネント型が oneOf で表現され、下流のプロパティ処理が明示的なままになっていれば完了です。
索引モデルが issue の本文から書いたものです。
説明
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": { ... },
}
}
}
}
- 主要言語
- XSLT
- スター
- 558
- フォーク
- 93
- 平均マージ
- 14時間 57分
- マージ済み PR(30日)
- 22
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
CycloneDX/specification のほかの issue
-
[Defect]: FFDH pattern treats ephemeral E as required対応中かも @Mehrn0ush が 1 日前に担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 82/100
CycloneDX/specification#1147 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
CycloneDX/specification#1145 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
-
Response vs Responceオープン
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
CycloneDX/specification#1121 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
defect documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
CycloneDX/specification#1115 ·
メンテナーはふだん 1 日以内に返信
-
[FEATURE]: Add EAX mode to Cryptography Registry対応中かも @jvdsn が 30 日前に担当しました。 オープンcap: cryptography-registry
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
CycloneDX/specification#1098 ·
メンテナーはふだん 1 日以内に返信
CycloneDX/specification の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1時間未満 初心者へのやさしさ 88/100
baptistehamon/lsapy#185 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
syedhamidali/radarx#277 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
objectionary/eo-graphs#80 ·