mvn clean && mvn -DskipTests -pl externs/pom.xml,pom-main.xml,pom-main-shaded.xml
ClojureScript には Google Closure Compiler との緊密な統合があります。Node / ES6モジュールの処理などの多くの ClojureScript 機能は、実際には Google Closure Compiler のサポートを通じて提供されています。これらの分野では、ClojureScript への貢献は Google Closure Compiler プロジェクト自体に直接貢献することによって行われます。
Closure Compiler チームは GitHub を使用してプロジェクトを管理しています。解決策を提供するプルリクエストを添付すると、問題に対する反応が特に早くなります。Closure Compiler プロジェクトに貢献するには、Google の貢献者規約を送信する必要があります。
文書化は不十分ですが、Closure Compiler Java コードベースは驚くほど取っつきやすいです。IntelliJ Community Edition などの無料の Java IDE を使用すると、Closure Compiler ソースの調査と理解が大幅に簡素化されます。Closure Compiler バグのソースを特定する場合、Java IDE には堅牢なステップデバッグツールの利点もあります。
修正があると判断されたら、修正を含むブランチを作成してからテストケースを作成します。
ユニットテスト用の適切なテストケースファイルを見つけます。特定のテストをテストするには、まず Closure Compiler をビルドする必要があります。
mvn clean && mvn -DskipTests -pl externs/pom.xml,pom-main.xml,pom-main-shaded.xml
この時点で、コンパイラ変更を再コンパイルする必要がない限り、単にコンパイルしてテストケースを実行するだけで時間もかかりません。次に、TestClass#testMethod をテスト対象のクラスとメソッドに置き換えます。
mvn -pl pom-main.xml compiler:testCompile surefire:test -Dtest=TestClass#testMethod
テストが完了したら、まだ作成していない場合はブランチを作成し、プルリクエストを送信します。プルリクエストは対応する GitHub の問題にリンクする必要があります。
最後のステップは、修正が本当に ClojureScript の問題に対処していることを確認することです。
Closure Compiler をビルドする
mvn clean && mvn -DskipTests -pl externs/pom.xml,pom-main.xml,pom-main-unshaded.xml
これにより、ローカル maven にアンシェーデッド JAR がインストールされます。バージョンに注意してください。ClojureScript リポジトリで、Google Closure Compiler アーティファクトの依存関係情報を、好みに応じて使用するツール (project.clj または deps.edn の編集など) を使用して変更します。
ClojureScript 固有のテストを介して ClojureScript の問題が解決されたことをテストします。