./script/uberjar
問題を報告するには、ask.clojure.org の ClojureScript カテゴリで質問を投稿し、problem タグを付けてください。CLJS 開発者が問題を評価し、それが実際に問題かどうかを判断します。必要に応じて、ClojureScript イシュートラッカーにチケットを登録します。
問題を提出する前に、クイックスタートを十分に理解しておくことが重要です。経験豊富な ClojureScript 開発者であっても、これは必読です。
必須ではありませんが、事前に 既存のバグレポート、メーリングリスト、Freenode の #clojurescript IRC チャンネルまたは Slack チャンネルを確認し、問題が既に報告されていないかを確認することをお勧めします。
また、最新リリース版の ClojureScript を実行していることを確認することも役立ちます。さらに、ClojureScript master に対して確認することも賢明です。バグが見つかった場合、修正はすぐにコミットされることがよくあります(以下の手順を参照)。
ただし、ClojureScript のみを使用してバグを報告することが不可欠です。ダウンストリームのツールは、多くの場合、ClojureScript コンパイラと複雑な方法で相互作用するため、問題を ClojureScript に限定する最良の方法は、レポートからそれらを完全に削除することです。
master から uberjar をビルドし、これを使用して問題を検証することで、問題を報告してください。この uberjar で cljs.main を使用して最小限の再現を作成することが理想的です。あるいは、clj と deps.edn を使用することも可能です。他のサードパーティ製ツール(Maven、Leiningen、Boot)は使用しないでください。問題を作成する際は、関連するすべての手順とコードをチケットに直接、または追加のコメントを介して追加してください。プロジェクト、プロジェクトへのリンク、gist / pastebin へのリンク、zip は添付しないでください。
|
ブートストラップの問題には特別な考慮が必要な場合があります。詳細については、ブートストラップの問題の報告を参照してください。 |
ClojureScript リポジトリをチェックアウトします。プロジェクトのルートから、次のコマンドを実行します
./script/uberjar
これにより、target/cljs.jar が作成されます。
問題を検証する際に、問題が master ですでに解決されていないかを確認すると便利です。*この方法を使用して問題を報告しないでください。これは、master を自分で検証する場合の便宜のためだけです*。ClojureScript リポジトリをチェックアウトします。プロジェクトのルートから、次のコマンドを実行します
./script/build
これにより、ClojureScript がローカルの Maven にインストールされます。スクロールして表示されるバージョンをメモしておきます。ツールに合わせて使用してください。
回帰を発見した場合、問題を報告する際に、最初の不具合のあるコミットに関する情報を特定すると役立ちます。これは、ClojureScript のチェックアウトをローカルルートの依存関係として使用し、git bisect を使用することで簡単に行えます。
この例では、REPL で直接再現可能な回帰を発見したとします(そうでない場合は、以下のバリエーションを使用できます)。
まず、ClojureScript master をチェックアウトし、チェックアウトツリーのトップに cd します。
master で問題を再現できるが、ClojureScript 1.10.748 では問題がなかったと仮定して、チェックアウトツリーのトップで次のコマンドを実行します
git bisect start
git bisect bad HEAD
git bisect good r1.10.748
次に(別のディレクトリで)、次のコマンドを実行して、チェックアウトツリーの現在の状態に対して REPL を起動します
clj -Srepro -Sdeps '{:deps {org.clojure/clojurescript {:local/root "/<path-to-checkout>/clojurescript"}}}' -m cljs.main -r
REPL で問題を再現できるかどうかをテストし、REPL を終了します。
問題を再現できなかった場合は、ClojureScript チェックアウトツリーで次のコマンドを実行します
git bisect good
または、問題を再現できた場合は、次のコマンドを実行します
git bisect bad
bisect が完了すると、git は特定のコミットハッシュが「最初の不具合のあるコミットです」と示します。このテキスト全体を JIRA にコピーします。
そうでない場合は、REPL を再起動し、完了するまで上記の手順を繰り返します。
完了したら、次のコマンドを実行して ClojureScript チェックアウトを復元できます
git bisect reset