feat: add `cyclonedx.model.dependency.Dependency.provides`
メンテナーはふだん 1 日以内に返信
@uzairchhapra がすでに取り組んでいます。
2024年11月5日 から。
評価
調査の方向性
cyclonedx.model.dependency.Dependency とエントリーポイント Bom.from_json(data=data) から開始し、依存関係フィールドがどのようにデシリアライズされるかを調べます。CycloneDX 1.6 の例に示されている provides フィールドのサポートを追加し、続いて再現スクリプトを実行して、Bom.from_json が報告された ValueError を発生させなくなったことを確認します。
索引モデルが issue の本文から書いたものです。
説明
Library Version: 7.6.1
Description:
Steps to Reproduce:
- Use the example JSON provided in the CycloneDX bom-examples repository.
- Run the following script:
import json
from cyclonedx.model.bom import Bom
# source: https://github.com/CycloneDX/bom-examples/blob/c0436d86cd60693f01d19fe1aacfd01e70e17036/CBOM/Example-With-Dependencies/bom.json
sample = '''{
"bomFormat": "CycloneDX",
"specVersion": "1.6",
"serialNumber": "urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79",
"version": 1,
"metadata": {
"component": {
"type": "application",
"bom-ref": "acme-application",
"name": "Acme Application",
"version": "1.0"
}
},
"components": [
{
"type": "cryptographic-asset",
"bom-ref": "aes128gcm",
"name": "AES",
"cryptoProperties": {
"assetType": "algorithm",
"algorithmProperties": {
"primitive": "ae",
"parameterSetIdentifier": "128",
"executionEnvironment": "software-plain-ram",
"implementationPlatform": "x86_64",
"certificationLevel": [ "none" ],
"mode": "gcm",
"cryptoFunctions": ["keygen", "encrypt", "decrypt", "tag"],
"classicalSecurityLevel": 128,
"nistQuantumSecurityLevel": 1
},
"oid": "2.16.840.1.101.3.4.1.6"
}
},
{
"type": "library",
"bom-ref": "crypto-library",
"name": "Crypto library",
"version": "1.0.0"
},
{
"type": "library",
"bom-ref": "some-library",
"name": "Some library",
"version": "1.0.0"
}
],
"dependencies": [
{
"ref": "acme-application",
"dependsOn": ["crypto-library"]
},
{
"ref": "crypto-library",
"provides": ["aes128gcm"],
"dependsOn": ["some-library"]
}
]
}'''
data = json.loads(sample)
Bom.from_json(data=data)
Observed Behavior:
The code fails with the following exception:
Traceback (most recent call last):
...
ValueError: Unexpected key provides/provides in data being serialized to cyclonedx.model.dependency.Dependency
Environment:
- Python version:
3.10 - Operating System:
macOS - Library version:
7.6.1
Let me know if this works!
- 主要言語
- Python
- スター
- 117
- フォーク
- 67
- 平均マージ
- 21時間 9分
- マージ済み PR(30日)
- 3
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
CycloneDX/cyclonedx-python-lib のほかの issue
-
[PERF] Quadratic (O(N^2)) serialization time for large BOMs — `Bom.validate()` → `register_dependency()` linear scan対応中かも @inspired-geek が 109 日前に担当しました。 オープンperformance
難易度 3/5 1〜2日 初心者へのやさしさ 36/100
CycloneDX/cyclonedx-python-lib#1006 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
tests: test all model enums再び着手できるかも @jkowalleck が 125 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンQA
CycloneDX/cyclonedx-python-lib#991 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
feat(deps)!: make all de/serialization libraries optional再び着手できるかも @Simoh23999 が 73 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンbreaking change dependencies
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
CycloneDX/cyclonedx-python-lib#979 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
feat: Add support for Component signature対応中かも @wiebe-vandendriessche が 124 日前に担当しました。 オープンenhancement help wanted schema 1.4
難易度 3/5 1〜2日 初心者へのやさしさ 58/100
CycloneDX/cyclonedx-python-lib#978 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
-
chore: have coverage uploaded consitently再び着手できるかも @jkowalleck が 171 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンchore
CycloneDX/cyclonedx-python-lib#966 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
CycloneDX/cyclonedx-python-lib の issue をすべて見る
似ている issue
-
namespace operations
難易度 1/5 1時間未満 初心者へのやさしさ 72/100
EclipseFdn/open-vsx.org#14043 ·
メンテナーはふだん 1 日以内に返信
-
feedback simulation workshop
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
githubnext/gh-aw-workshop#4455 ·
メンテナーはふだん 1 日以内に返信
-
Triage 🩺
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
[BUG] Container scenario crashes without expected_recovery_time, kube DNS example uses retry_waitオープンneeds-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
krkn-chaos/krkn#1627 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
NousResearch/hermes-agent#136483 ·
メンテナーはふだん 1 日以内に返信