Use builder pattern to construct Add Plugin recipe visitors
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
まず src/main/java/com/canonical/devpackspring/rewrite/visitors/KotlinAddPluginVisitor.java の42~43行目付近から始め、AddPluginVisitorSupport のコンストラクターとその他の呼び出し箇所を調べてください。issue に記載されている名前付き構築アプローチを導入し、そのコンストラクターを使用している recipe visitors を更新し、プロジェクトが引き続きコンパイルできることを確認してください。
索引モデルが issue の本文から書いたものです。
説明
─── src/main/java/com/canonical/devpackspring/rewrite/visitors/KotlinAddPluginVisitor.java:42-43 ───
[maintainability · low] The `AddPluginVisitorSupport` constructor takes 9 positional parameters, 7
of which are Strings/booleans of easily-confusable types (pluginName, pluginVersion, buildFileName,
and three template strings). At this call site it's easy to accidentally swap e.g.
`PLUGIN_TEMPLATE_KOTLIN` with `BUILT_IN_TEMPLATE_KOTLIN`, or the build file name with a template,
and the compiler won't catch it. Consider introducing a small parameter object or builder (e.g.
`AddPluginVisitorSupport.builder().plugin(...).templates(...).operations(...)`) so each argument is
named at the call site and mis-ordering is impossible.
- this.support = new AddPluginVisitorSupport<>(pluginName, pluginVersion, subprojects, parser, "build.gradle.kts",
- PLUGIN_TEMPLATE_KOTLIN, BUILT_IN_TEMPLATE_KOTLIN, SUBPROJECTS_TEMPLATE_KOTLIN, new KotlinOperations());
+ this.support = AddPluginVisitorSupport.<K.CompilationUnit>builder()
+ .plugin(pluginName, pluginVersion)
+ .subprojects(subprojects)
+ .parser(parser)
+ .buildFileName("build.gradle.kts")
+ .templates(PLUGIN_TEMPLATE_KOTLIN, BUILT_IN_TEMPLATE_KOTLIN, SUBPROJECTS_TEMPLATE_KOTLIN)
+ .operations(new KotlinOperations())
+ .build();
- 主要言語
- Java
- スター
- 1
- フォーク
- 5
- 平均マージ
- 2日 30分
- マージ済み PR(30日)
- 17
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
canonical/devpack-for-spring-cli のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
canonical/devpack-for-spring-cli#292 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
canonical/devpack-for-spring-cli#283 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
canonical/devpack-for-spring-cli#270 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 70/100
canonical/devpack-for-spring-cli#291 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 76/100
canonical/devpack-for-spring-cli#271 ·
メンテナーはふだん 1 日以内に返信
canonical/devpack-for-spring-cli の issue をすべて見る
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
apache/arrow-java#1311 ·
メンテナーはふだん 2 日以内に返信
-
bug triage
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信
-
security
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
IBM/networking-java-sdk#204 ·
-
bug Technical Debt
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
avniproject/avni-server#1080 ·