Add a `crossplane xrd lint` command
まだ誰も着手していません。
- #6385 @undefinedhuman による — マージされずにクローズ
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- go, kubernetes, openapi
- 領域
- api, backend-api-design, cli
調査の方向性
crossplane xrd lint コマンドから始め、その想定範囲を crossplane beta validate と比較します。リンクされている API 設計のベストプラクティスに関するドキュメントを確認し、status の要件、配列名、ブール型 enum、merge 拡張、フィールドの説明を含め、どの XRD チェックを対象範囲とするかを判断します。合意したチェックについて、コマンドが対応可能な lint 指摘を報告すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
What problem are you facing?
https://github.com/crossplane/docs/issues/564 tracks documenting best practices for API design. Put otherwise, best practices for writing XRDs. It occurred to me today that we could probably write a linter for a lot of these.
It could make sense for this to be part of crossplane beta validate too, but I think validation and linting are slightly different things. An XRD could have a valid OpenAPI schema, but one that we wouldn't recommend.
How could Crossplane help solve your problem?
Add a linter for XRDs. Some things to look for:
- Overly restrictive status fields. Status fields aren't written by users, so they typically shouldn't be required, or generally validated beyond their type (e.g maximum integers, etc).
- Arrays of objects missing a
namefield. - Boolean fields, which Kubernetes API conventions would typically recommend be enums.
- Missing server-side apply merge OpenAPI extensions where we'd expect them.
- General OpenAPI hygiene - fields missing descriptions etc
- 主要言語
- Go
- スター
- 19
- フォーク
- 31
- 平均マージ
- 2日 15時間
- マージ済み PR(30日)
- 53
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
crossplane/cli のほかの issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
crossplane/cli#282 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
crossplane/cli#384 ·
-
crossplane/cli#379 · 担当者 1 名 ·
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 68/100
crossplane/cli#370 ·
-
enhancement
難易度 5/5 1週間以上 初心者へのやさしさ 28/100
crossplane/cli#369 ·
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 60/100
github/gh-aw-mcpg#13748 ·
-
agentic-workflows
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
-
needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
googleapis/librarian#7670 · コメント 2 件 ·