🧊

OSSとOXCと私

昨日、年初からぼちぼちやってたOXCに関するOSS活動で、書き留めておきたいことが2つ起きた。

  • OSSで報酬をもらった
  • OXCのコアメンバーになった

たぶん単発だったらブログに書いてないけど、同時多発になんか新鮮な気持ちになったので。

OSSで報酬をもらった

OXCに古くからあるIssueで、oxlinteslint/no-invalid-regexpのルールを実装したいというものがあって、それに対してかかってた$50の懸賞金をもらった。

[$50 Opire Bounty] feat(linter): eslint/no-invalid-regexp · Issue #611 · oxc-project/oxc https://github.com/oxc-project/oxc/issues/611

単純なルールでありつつも簡単に実装できるものではなく、実は「正規表現のパーサーそのもの」が必要で、長らくほったらかしだった。

なので、ここ2ヶ月くらいで正規表現パーサーを実装してて、それが終わった流れでルールを実装することになったという感じ。(正直、本人はLinterルールのことはすっかり忘れてたけど…😴)

最近OXCのパーサー本体にも統合された(オプションで有効化)ので、oxc_parserは「正規表現リテラルのシンタックスエラーを事前検出できるJSパーサー」に進化した。

ECMAScriptの正規表現そのものに関するブログはもう書いてあるので、興味ある人は読んでみてね。

で、額としてはそこまで大きくないけど、OSSでお金(しかも外貨)を稼ぐ日が来るとは思ってなかったので、ちょっと感動だったという話。

そして、そのお金を受け取るついで(Opireの支払いもStripe Connectだったので)に、GitHub Sponsorsの登録をしたところ、なんとchimameさんが即座にスポンサーになってくれて、㌧㌧と話が進むもんやなぁと。

Sponsor @leaysgur on GitHub Sponsors https://github.com/sponsors/leaysgur

ありがとうございます!🙏

世界にはもっとスポンサーされるべき人がいっぱいいると思うけど、少しずつでも増えたら嬉しいな〜。

OXCのコアメンバーになった

という流れの裏?で、OXCのボスであるBoshen氏が、「コアメンバーのページに載せていい?」って聞いてくれたので、それにOKしたという話。

実はコミット権限自体はもっと前から持ってた(いつ誤爆してしまわないかひやひやしてた)けど、なんとなく箔が付いたみたいでハッピー。 心の声的には、「え、まじ?お茶汲みくらいしかできひんけどいいの?」って感じやったけどw

Meet the Team | The JavaScript Oxidation Compiler https://oxc.rs/team

リポジトリの通知を全部watchしてるから知ってるけど、このリストにいる面々は本当に有能(そのうえ親切)な人たちなので、なんとかその末席を汚さないよう精進したい所存・・・。

とはいえ、特別な役割があるわけではないというのがミソで、今まで通り自由気ままに参加していくだけなんやけど。

直近では、正規表現まわりのバグ修正やリファクタをしつつ、他にもシュッと手伝えそうなものを見つつ、Prettierの構造把握を試みる予定。

なんでOXCをやってるのか

そもそもを思い返してみると、

  • 本業も副業も結局のところ受託であり、どうしても忙しさに波ができてしまう
  • そんな空き時間を有効活用したくてRustの勉強をはじめた
  • かといって作りたいものもなく、モチベーション維持をどうしたもんか・・・と思ってた

そんな時にたまたま出会ったのが、OXCだったという経緯。

そういう意味では、他のRustプロジェクトに参加してたかもしれないけど、今となってはOXCで良かったなと思ってる。 だってBabelよりSWCより速い上に、カバレッジも担保できてるってすごない?パイプラインの一部を置き換えるだけで、何倍も速くなるってやばない?🆒すぎるわ!

もちろんパフォーマンスがすべてというわけではないと思うし、どこまでRust化が進むかもわからんけど、このポストの肩の荷を、少しでも軽くできたらいいなあと。

それが転じて世のため人のためみたいになれば、尚良しということで。