モチベーション「Node.jsにcontributeしたい」
Node.js Adventcalendar 1日目のNode.js へのcontributeの仕方 - from scratchを読んで、Node.jsへcontributeしたい気持ちが高まりました。
testへのcontributeがオススメ
「コントリビュートの出発点」にオススメされているのがtestへのcontributeです。
testへのコントリビュートもまた盛んである。OS によってはコケたり、またタイミングが悪いとコケたりするコードのことを不安定なテスト、 flaky test と呼んでいて、これを撲滅する活動が盛んだからだ。
test フォルダ以下に {フォルダ名}.status という名前のファイルが有り、そこを見るとどれが flaky でどれが flaky じゃないかがわかると思う。
これを直すとかなり感謝されるし、取り込まれる可能性が最も高いコミットだとおもう。
また、 lib/ や src/ を修正したらほぼ確実に test/ を書くことが求められるので、常に test を書くクセが付くはずだ。
ここをコントリビュートの出発点にして欲しいと Node 学園祭に来た Rod Vagg も懇親会の二次会で言っていたので、間違いないだろう。
Rod Vagg オススメ!
WindowsにFLAKYテストがある
statusを見るとWindowsのテストがFLAKY
です。
[$system==win32]
test-debug-no-context : PASS,FLAKY
test-tls-ticket-cluster : PASS,FLAKY
では、Windowsでビルドしてみましょう。
VMWare Fusion上のWindowsでビルド
手元のPCがMacです。VMWare Fusion上のWindowsでビルドしてみます。
GithubのREADMEの手順で進めます。
準備
必要なもの
- VisualStudio Community 2015
- Python2
- git
VisualStudio Community 2015をインストールします。
Chocolateyを使ってPythonをインストールします。
管理者権限のコマンドプロンプトで
choco install python2
pythonへのPATHはシステム環境変数に設定されます。
一回ログインし直します。
gitもchocolateyでインストールします。
choco install git.install
ビルド
git clone git@github.com:nodejs/node.git
cd node
続いて
vcbuild nosign
数十分後、次のメッセージが出ればビルド成功です。
ライブラリ C:\Users\shigeru.nakajima\node\Release\node.lib とオブジェクト C:\Users\shigeru.nakajima\node\Release\node.exp を作成中
コード生成しています。
コード生成が終了しました。
node.vcxproj -> C:\Users\shigeru.nakajima\node\Release\\node.exe
ビルドしたexeファイルを実行してみます。
> Release\node.exe -v
v6.0.0-pre
ビルド失敗
VisualStudio Community 2015をインストールしていても、次のエラーでビルドできないことがあります。
> vcbuild nosign
Looking for Visual Studio 2015
Looking for Visual Studio 2013
Failed to find Visual Studio installation.
原因
vcbuild.batはvcvarsall.batの有無でVisualStudioの有無を見分けます。
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
を見ると、vcvarsall.bat
がありません。
vcvarsall.batは、Visual StudioのVisual C++用セットアップをするとできます。
対策
Visual C++用セットアップ
ファイル(F)
> 新規作成(N)
> プロジェクト(P)
からテンプレート
> Visual C++
> Install Visual C++ 2015 Tools for Windows Desktop
を選びます。