Clojure

チケットの作成

JIRAアカウントをお持ちでない場合は、推奨されるプロセスに従って、ask.clojure.org で問題を報告してください。パッチの提供や Clojure への貢献に興味がある場合は、開発概要をご覧ください。

チケットの作成

チケットを作成するには、Clojure JIRAアカウントが必要です。Clojure 自体の問題は、CLJ プロジェクトで作成できます。Contrib プロジェクトは、README に JIRA プロジェクトへのリンクがあります。

優れたチケットの品質

すべてのチケットには以下が必要です

  • 種類: 欠陥、拡張 (既存機能の拡張)、または機能 (新規) として正しく分類されていること

  • 概要: 問題の簡潔な要約

  • 説明

    • 問題が1つだけであること (複数ある場合は、チケットを分割してリンクすること)

    • (欠陥の場合) 問題を再現できるデモ (repl で再現できるコマンドが望ましい。特に Leiningen repl ではなく、プレーンな Clojure repl)、および代わりに何が起こるべきかについての説明

    • (拡張の場合) これがどのように発生し、なぜ解決する価値のある問題なのかについての説明。

    • 関連する以前の議論へのリンク (該当する場合)

  • 優先度: 影響と、これが理論的な問題なのか、実際のコードで実際に発生した問題なのかに基づいて分類します。これは、トリアージ中にコアチームによって調整される場合があります。

  • ラベル: (以下のセクションを参照)

選別準備ができたチケットには、以下も必要です

  • 説明

    • 問題の原因

    • 問題解決の代替案のリスト

    • どのアプローチが追求されているか

    • 検討中の現在のパッチの名前

    • パッチの変更点の説明 - 変更点とその理由を明確にするためにできることはすべて、チケット選別者が手順を再確認するのに役立ちます。

    • ベンチマークデータ (パフォーマンス関連の場合)

  • パッチの添付

    • 説明で指定されたアプローチに従った実装

    • 適切なテスト

これは、チケットが選別された後の説明の例です。問題の簡潔な説明と REPL で試すことができるデモから始まります。チケットがシステムに入ったときには、それだけが存在するかもしれません。選別が終わるまでに、問題の原因、提供されている解決策 (および検討された代替案)、現在実装されている解決策とテストのパッチについての開発者の分析が表示されるはずです。

Adding odd numbers doesn't work.

----
user> (+ 2 2)
4
user> (+ 1 3)
ClassCastException
----

Cause:  Never implemented odd number adding in the Compiler!
See the missing branch in FooExpr.

Solution:  Fully implemented the branch for odd numbers to
be just like even numbers. Considered just getting rid of
addition altogether but I guess people use it.

Patch: add-odd-3.patch

チケットの管理

チケットの作業が進むにつれて、送信者、選別者、パッチ開発者間で議論が蓄積されるのが一般的です。これが発生した場合、重要な問題、解決策のアプローチ、およびパッチの概要として最新の状態を保つために、チケットの説明を編集することが不可欠です。パッチを評価するためにチケットの履歴全体を読む必要はありません。

パッチは、時間の経過とともに master に適用できなくなる可能性があります。選別者は、パッチが関連性を保つように更新することがよくありますが (作者への帰属は保持されます)、必要に応じてこの作業を行うこともできます。

ラベル

以下のラベルを使用して、特定のカテゴリにタグを付ける必要があります (これらは検索に役立つ場合があります)

  • aot - 事前コンパイルのバグ

  • compiler - Clojure コンパイラ

  • checkargs - 関数の追加の引数チェック

  • deftype - 型

  • defrecord - レコード

  • docstring - 関数のドキュメント文字列

  • documentation - clojure.org のドキュメントまたはその他のドキュメント関連の問題

  • edn - EDN

  • errormsgs - Clojure によって返されるエラーメッセージの改善 (または追加)

  • interop - Java 相互運用

  • io - clojure.java/io

  • math - 算術の問題 - オーバーフロー、アンダーフローなど

  • memory - メモリの問題 (GC、ヘッド保持、ローカルクリアリングなど)

  • performance - 高速化!

  • print - print と pprint

  • protocols - defprotocol

  • reader - reader (clojure または edn)

  • reducers

  • repl - repl での使いやすさ (doc、source、apropos など)

  • string - clojure.string、subs など

  • typehints - 定義または適用

  • walk - clojure.walk

  • zip - clojure.zip

これらのタグは使用しないでください

  • bug - これはすでに問題の種類でカバーされています

  • enhancement - これはすでに問題の種類でカバーされています

  • patch - 既にパッチフィールドでカバーされています

  • test - 既にパッチフィールドでカバーされています