2020-06-05
気にはなりつつも、使う機会がなかったプログラミング言語 Rust(ラスト)。 お気に入りのJavaScriptの実行環境、Denoで使われています。

Denoで直したいところがあり、最新版1.0.5でも、Issuesプルリクでの話題にもなっていなかったのでプログラムを取得し、改造し。プルリクしたら、主要開発者からコメントが付き、反映された! (プルリクとは、GitHubなどで使われる共同制作ソフトGitの重要機能で、反映要求。承認されて初めて反映される仕組み。)


added mjs files for default test by taisukef · Pull Request #6122 · denoland/deno
有名OSSへの初貢献の内容はこちら。Deno test の mjs 対応。

歴史が長いJavaScript、変数宣言が不要だったり、スコープが分かりづらいvarとの決別した、モジュールベースの新しいJavaScriptの拡張子 .mjs でいこうと決めて、開発しているが、Denoのテストでは、.jsや.tsしか認識してくれない。(参考、jsからmjsへ

.mjs も普通にコンパイルなどは普通にやってくれるので、きっと追加し忘れているに違いない。分かりやすくまとまったRustのコード、該当箇所を発見。

C/C++と同等またはそれ以上の記述力を持つRust。C言語からの系統、ほとんどのプログラムはRustを知らなくても普通に読める。 「||」という演算子は、C、Java、JavaScript、IchigoJam BASICでも同じ「または」を意味する論理演算子。 deno test の対象となる拡張子が並んでいるので、"mjs"を追加。


失敗したのがこちらドキュメントの訂正。mjsの追記だけと思って油断し、チェック後に手書きしたのが悪かった。 PR後の自動テストではねられてしまい、整形してねとコメントがついた。ドキュメントも書式が荒れないよう、規定桁数が設定されていた。 Denoの開発者さん、優しくて助かりましたが、大いに反省。自動テスト、偉い。

$ cargo test $ tools/format.py $ tools/lint.py

Contributing(貢献方法)のプルリク前の確認事項。

1. イシューやプルリクで同様内容をチェック
2. テストが変更点をカバーしていることをチェック
3. 全体テストプログラムを実行して問題ないことを確認 (cargo test)
4. 書式整形プログラムを実行(tools/format.py)
5. プログラムに問題がないことを確認(tools/lint.py)

オープンソースへの参加は、チーム開発に関する最新技術に触れられるので、何かお気に入りにツールへの貢献。チャレンジしてみると良いですね!

自動書式整形の優秀さに触れたので、使うことにした deno fmt。こちらもデフォルトに mjs が含まれていないので、もうひとつプルリク。(→ 後日、無事マージされました)
added mjs files for default fmt by taisukef · Pull Request #6134 · denoland/deno
ちょっとしたコードですが、世界中で使われると思うとうれしいですよ!


鯖江市役所にて、鯖江市長の牧野さん、牧田さんとIT話。
まちづくりもオープンソースにでいきましょう!
条例や、ウェブサイトなど、個人情報に絡まない公開情報は、全部GitHub管理でいいかも?

links
- KEN_ALL!? 郵便番号ESモジュールで開発効率化! 経産省もGitHub公開スタート
- Deno にコントリビュートする (1) - Qiita
- Deno にコントリビュートする (2) - Qiita

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS