Contributing

Last updated 2 months ago

TypeScriptはGitHubにあるOSSであり、チームはコミュニティのインプットを歓迎します。

セットアップ

凄く簡単です:

git clone https://github.com/Microsoft/TypeScript.git
cd TypeScript
npm install -g jake
npm install

Forkのセットアップ

当然、あなたはMicrosoft/TypeScriptをupstreamリモートとしてセットアップし、自分のfork(GitHub forkボタンを使用)をoriginとしてセットアップする必要があります。

git remote rm origin
git remote rm upstream
git remote add upstream https://github.com/Microsoft/TypeScript.git
git remote add origin https://github.com/basarat/TypeScript.git

さらに、私はbas/のようなブランチを使って、ブランチリストをよりクリーンに表示させたいと思っています。

Testの実行

JakeFileにはたくさんのtestオプションとbuildオプションがあります。すべてのテストをjake runtestsで実行することができます。

ベースライン(Baselines)

ベースラインは、TypeScriptコンパイラの期待された出力に変更があるかどうかを管理するために使用されます。ベースラインはtest/baselinesに配置されています。

  • Reference(期待された)ベースライン: tests/baselines/reference

  • (このテスト実行の中で)生成されたベースライン: tests/baselines/local(このフォルダは.gitignoreにあります)

これらのフォルダ間に相違がある場合、テストは失敗します。BeyondCompareやKDiff3のようなツールで2つのフォルダを比較することができます。

生成されたファイルのこれらの変更が正しいものであるなら、jake baseline-acceptを使ってベースラインを受け入れます。このreferenceベースラインへの変更はコミットできるgit diffとして表示されます。

すべてのテストを実行しない場合は、jake baseline-accept[soft]を使用します。これは新しいファイルをコピーするだけで、referenceディレクトリ全体を削除しないことに注意してください。

テストのカテゴリ

異なるシナリオに対して異なるカテゴリがあります。そして、異なるテストインフラに対してでさえもそうです。ここではそれらのうちのいくつかを説明します。

Compilerテスト

これらはファイルのコンパイルを確認します:

  • 期待どおりのエラーを生成すること

  • 期待通りのJSを生成すること

  • 型が期待どおりに識別されること

  • Symbolが期待どおりに識別されること

これらの期待は、ベースラインのインフラストラクチャを使用して検証されます。

Compilerテストの作成

テストは tests/cases/compilerに新しいファイルyourtest.tsを追加することで作成できます。テストを実行するとすぐに、ベースラインに失敗するはずです。これらのベースラインを受け入れて(gitでそれらを表示させるために)、それらがあなたが期待しているものになるように微調整してください...そしてテストが通るようにしてください。

jake runtests tests = compilerを使ってこれらをすべて単独で実行するか、jake runtests tests=compiler/yourtestを使って新しいファイルだけを実行してください。

私はしばしばjake runtests tests=compiler/yourtest || jake baseline-accept[soft]を実行し、gitでdiffを取得します。

テストのデバッグ

jake runtests-browser tests=theNameOfYourTestとブラウザ内でのデバッグは、通常、非常にうまく行きます。

More