貢献
鳥のミソサザイと同じく、Wrenのエコシステムは小さいながら、活気に満ちています。ほぼすべてが活発に開発中で、やることはたくさんあります。手伝っていただければ、うれしく思います。
まず、Discordコミュニティー、またはメーリングリストへ参加して、「こんにちは」と言ってください。Wrenに見知らぬ人はいません。まだ会ったことのない友人がいるだけです。
エコシステムを広げる #
Wrenへ参加する最も簡単で、よく役立つ方法は、Wrenの利用者になることです。Wrenを組み込むアプリケーションを作る。Wrenでライブラリーや便利なユーティリティーを書く。好きなテキストエディターへ、Wrenの構文強調を追加する。それらを共有すると、次にやって来るWrenの利用者の助けになります。
そのどれかを行ったら、Wikiへ追加して知らせてください。
私たちは、次のものを把握しておきたいと思っています。
- スクリプト言語としてWrenをホストするアプリケーション。
- ほかの人が使える、Wrenで書いたモジュール。
- ほかの言語からWrenとやり取りできる言語バインディング。
- Wrenプログラマーの作業を容易にするツールとユーティリティー。
Wrenへの貢献 #
コアVMでも、コマンドラインインタープリターでも、Wren自身への貢献も大歓迎です。ソースはGitHubで開発しています。コード、テスト、文書が、理解しやすく、貢献しやすいことを願っています。そうでなければ、それは不具合です。
Wrenのビルド方法は、入門ページで確認できます。
取り組むものを探す #
課題管理を見たり、コード内でTODOコメントを探したりすれば、必要な作業を見つけるのは、かなり簡単です。ただし、私たちは、いつもすべてを書き留められているわけではありません。
合うものがなければ、新しい考えも歓迎します! 大きな変更や追加を考えているなら、大量のコードを書く前に、提案を登録して相談してください。Wrenは、最小限に保つため、非常に努力しています。そのため、言語への追加は、とても良いものでも、「いいえ」と言う必要がよくあります。
文書を変更する #
文書は、Wrenへ貢献しやすい部分の一つであり、とても重要でもあります! サイトのソースはMarkdownで書き、doc/siteにあります。単純なPython 3のスクリプトutil/generate_docs.pyが、HTMLとCSSへ変換します。
$ python util/generate_docs.py
これは、build/docs/へサイトを生成します。そこから、どんな単純な静的Webサーバーでも実行できます。Pythonにも、次が含まれます。
$ cd build/docs
$ python -m http.server
Markdownを一行変えるたびに、そのスクリプトを実行すると、時間がかかる場合があります。そのため、ファイルを監視し、編集したときに文書を自動で再生成する版もあります。
$ python util/generate_docs.py --watch
VMを変更する #
基本的な手順は、単純です。
ローカルでビルドし、テストを実行できることを確認します。コードを触る前に、正常な状態から始めるとよいでしょう。テストの実行は、
bin/wren_testを生成するvmプロジェクトをビルドし、次のPython 3のスクリプトを実行するだけです。$ python util/test.py失敗がなければ、準備できています。
ローカルで変更できるよう、リポジトリをフォークします。作業を容易にするため、変更は別の機能ブランチで行ってください。
コードを変更します。周囲のコードのスタイルに合わせてください。基本的には、
camelCaseの名前、次の行に置く{、80桁以内、2スペースの字下げです。既存コードの不統一を見つけたら、知らせてください。新しい機能のテストを書きます。テストは
test/にあります。期待結果の定義方法は、既存のテストを見て確認してください。既存のテストも新しいテストも、すべて合格することを確認します。
まだ登録していなければ、AUTHORSファイルへ名前とメールアドレスを追加します。
プルリクエストを送ります。楽しいオープンソースプロジェクトへ貢献した自分を、ねぎらってください!
助けを求める #
途中で質問があれば、気軽に課題を登録するか、Discordコミュニティー、またはメーリングリストで尋ねてください。Redditを使っているなら、/r/wren_langサブレディットもあります。あまり公開したくなければ、私へ直接メールしてもかまいません。(robert at stuffwithstuff.com)