Reject directives applied at the wrong location, without a required argument or twice in 15.0.0
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 72/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
調査の方向性
Start with SchemaParser#directiveProblems and SchemaParser#directivesOf, then read DirectiveTest.should warn about invalid applied directives and keep them. Replace the warnings with SchemaError using the same messages, and cover the type extension case for duplicate non-repeatable directives. Update the 15.0.0 release notes; done when invalid applications fail with the expected errors and the test and release notes describe the change.
索引モデルが issue の本文から書いたものです。
説明
Since #225, tools logs a warning when a schema applies a directive in a way its definition doesn't allow, and still builds the schema:
directive @uppercase on OBJECT
directive @auth(role: String!) on FIELD_DEFINITION
directive @cached(ttl: Int) on FIELD_DEFINITION
type Query {
motto: String @uppercase
secret: String @auth
members: [Member!] @cached @cached(ttl: 10)
}
Directive @uppercase is applied to field 'Query.motto', but it's declared on OBJECT, not FIELD_DEFINITION.
Directive @auth is applied to field 'Query.secret' without its required argument 'role'.
Directive @cached isn't repeatable but is applied more than once to field 'Query.members'.
graphql-java's SchemaGenerator rejects all three, and the spec doesn't allow them either. But they always built with tools, so failing on them has to wait for a major release.
What to change
- replace the warnings from
SchemaParser#directiveProblemswith aSchemaErrorthat has the same messages - probably do the same for the warning in
SchemaParser#directivesOf, when a type extension applies a non-repeatable directive the type already has. It's the same mistake, it just drops the repeat today - turn
DirectiveTest.should warn about invalid applied directives and keep theminto a test for the error - mention it in the 15.0.0 release notes
- 主要言語
- Kotlin
- スター
- 824
- フォーク
- 175
- 平均マージ
- 2日 5時間
- マージ済み PR(30日)
- 52
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
graphql-java-kickstart/graphql-java-tools のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
graphql-java-kickstart/graphql-java-tools#893 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 72/100
graphql-java-kickstart/graphql-java-tools#889 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
graphql-java-kickstart/graphql-java-tools#886 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
graphql-java-kickstart/graphql-java-tools#881 ·
メンテナーはふだん 1 日以内に返信
-
Directive wirings see a type reference on recursive input fields対応中かも @oryan-block が今日担当しました。 オープンbug
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
graphql-java-kickstart/graphql-java-tools#875 ·
メンテナーはふだん 1 日以内に返信
graphql-java-kickstart/graphql-java-tools の issue をすべて見る
似ている issue
-
area/kotlin
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
good first issue help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
dafonton77-tech/Cadreenf#11 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 80/100
Hy4ri/hermes-mobile#1647 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
supabase-community/supabase-kt#1429 ·
メンテナーはふだん 5 日以内に返信