Slide 1

Slide 1 text

The community successor of Rome!

Slide 2

Slide 2 text

自己紹介 Daiki Nishikawa GitHub (nissy-dev) X (@nissy_dev) にっしーと読んでもらえると嬉しいです Cybozu のフロントエンドエンジニア Biome のコアメンバー

Slide 3

Slide 3 text

今日話すこと これまでの Rome Rome を forkした経緯 Biome の今後

Slide 4

Slide 4 text

フロントエンド開発に必要なツールチェーンを統合しようというプロジェクト bundler, linter, formatter, test runner... 各ツールの設定が大変なので、統合し開発者体験を向上したい Yarn/Babel を作った Sebastian さんが開発をはじめた Rome の始まり

Slide 5

Slide 5 text

2021/3 2022/4 2020/8 2021/9 2022/10 OSS として 開発を本格化 4.5 million USD を資金調達し、 Rome Tools, Inc を設立 Rust でコードを 全て書き直す決断 Rust で開発をはじめてから 初の formatter のリリース formatter の stable 化と linter のリリース 昨年までの Rome

Slide 6

Slide 6 text

2021/3 2022/4 2021/9 2022/10 Rome Tools, Inc の想定していたタイムライン beta 1.0 の リリース 参考資料: https://drive.google.com/file/d/1gOUJshwbJpxmrqLjOmrpTCKjBWT6dp7Y/view 事業の 立ち上げ ファースト リリース ユーザー 1万人 クラウド ファンディング 2020/8 OSS として 開発を本格化

Slide 7

Slide 7 text

今年の1月に資金ショートが発生 給料が支払われなくなったことを理由に、2人のコアメンバーが会社を辞める Micha Reiser さん → Astral (Python の linter の開発) Emanuele Stoppa さん→ Astro (コンパイラの開発) Emanuele Stoppa さんを中心としたコミュニティーベースの開発が始まる Emanuele Stoppa さんが2月中旬から開発を再開 自分も含め何人かがコアメンバーに招待され、開発が本格化 3月と5月にコミュニティ主体のリリースも行った

Slide 8

Slide 8 text

コミュニティベースでの開発の問題点 開発に必要な権限の移譲が不可能だった 権限を持っている Sebastian さんとどうやっても連絡が取れない discord, npm, VSCode... ライセンスの所属が Rome Tools, Inc のまま 会社が存続しているかどうかが分からず、コードの帰属が曖昧 Open Collective などの funding も始められない

Slide 9

Slide 9 text

Rome を fork して Biome を発足 “Bis” + “Rome” → “Biome” ツールチェーンの統合という Rome の哲学はそのまま受け継ぐ Biome の発足

Slide 10

Slide 10 text

JSON 内のコメントへの対応 tsconfig.json や JSONC ファイルなども format できるように Prettier でサポートされている formatter オプションの追加 JSX quotes style・arrow function parenthesiss の追加 Angular/NestJS ユーザー向けの decorator に関する構文の対応 class method parameter decorators のサポート biome lint コマンドの追加 TypeScript 5.2 の対応 同時に v1 のリリース

Slide 11

Slide 11 text

今後の開発 マイルストーンは明確に決めてない 5人のコアメンバーが注力しそうなところ (あくまで自分の推測) Emanuele Stoppa さん→ Transpiler Denis Bezrukov さん, nissy-dev → CSS の parser Victorien Elvinger さん, unvalley さん→ Linter の安定化 ちなみに unvalley さんは、会場にいらしているはず 🙌

Slide 12

Slide 12 text

Biome は Rome の意思を受け継いで これからも開発を進めていきます コントリビュートしてみたい人は ぜひ声かけてもらえると!

Slide 13

Slide 13 text

新しい Lint ルールの追加も welocome です! Rust を書いてみたい人におすすめです ドキュメントが手厚く、開発者体験も良い Linter を追加するときのドキュメント 実装の雛形が自動で生成されるので、ロジックの実装に集中できる ノードの操作に関する API が直感的で書きやすい 親ノードも node.parent() で簡単に取得できる 興味ある人は issue をみてもらえると→ help wanted / good first issue Appendix: コントリビュートしてみませんか?