Electron が Google Summer of Code (GSoC) 2024 の第20回エディションのメンター組織として承認されたことを発表できることを嬉しく思います!Google Summer of Code は、オープンソースソフトウェア開発に新しいコントリビューターを招くことに重点を置いたグローバルプログラムです。
Electron は、ウェブテクノロジーを使用してクロスプラットフォームデスクトップアプリケーションを構築するための JavaScript フレームワークです。コアの Electron フレームワークは、Chromium と Node.js で構築されたコンパイル済みのバイナリ実行可能ファイルで、ほとんどが C++ で記述されています。
Electron コア以外にも、Electron 組織を維持するために、以下のようなさまざまなプロジェクトに取り組んでいます。
Electron 申請書の一部として提出する内容の詳細なガイドはこちらです。 提案書は Google Summer of Code ポータルに直接提出してください。申請ポータルを介して提出するのではなく、Electron チームにメールで送信された提案書は、最終的な提出物として考慮されないことに注意してください。
Atom Shellは、GitHubのAtomエディターのバックボーンとして構築され、2014年4月にパブリックベータ版がリリースされました。当時利用可能だったWebベースのデスクトップフレームワーク(node-webkitとChromium Embedded Framework)の代替としてゼロから構築されました。Node.jsとChromiumを組み込み、Webテクノロジーに強力なデスクトップランタイムを提供するというキラー機能がありました。
Electron v1は2016年にリリースされ、APIの安定性の向上とドキュメントおよびツールの改善を約束しました。Electron v2は2018年にリリースされ、セマンティックバージョニングが導入され、Electron開発者がリリースサイクルを追跡しやすくなりました。
Electron v6までに、Chromiumに合わせて、12週間ごとの定期的なメジャーリリースサイクルに移行しました。この決定は、プロジェクトの考え方の変化であり、「最新のChromiumバージョンを持つこと」を、あって便利なものから優先事項に変えました。これにより、アップグレード間の技術的負債が減少し、Electronを最新の状態に保ち、安全性を維持することが容易になりました。
現在、私たちはElectron v23(そしてカウント中)であり、クロスプラットフォームのデスクトップアプリケーションを構築するための最高のランタイムを構築することに専念しています。近年、JavaScript開発者ツールが急増しているにもかかわらず、Electronはデスクトップアプリフレームワークの分野で安定した、実戦でテストされた主力であり続けています。Electronアプリは今日ではどこにでもあります。Visual Studio Codeでプログラミングしたり、Figmaでデザインしたり、Slackでコミュニケーションしたり、Notionでメモを取ることができます(他にも多くの使用例があります)。私たちはこの成果を非常に誇りに思っており、可能にしてくださったすべての人々に感謝しています。
ガバナンスモデルに移行したのとほぼ同時期に、Electron の所有権を GitHub からOpenJS Foundation へと移管しました。当初のコアチームは現在も Microsoft で働いていますが、彼らは Electron のガバナンスを形成するより大きな協力者グループの一部に過ぎません。2
オープンソースのコミュニティ部分は難しいものであり、特にアウトリーチチームが「コミュニティマネージャー」と書かれたトレンチコートを着た 12 人のエンジニアの場合、なおさらです。とは言え、大規模なオープンソースプロジェクトであるということは、多くのユーザーがいることを意味し、彼らのエネルギーを Electron に活用してユーザーランドのエコシステムを構築することは、プロジェクトの健全性を維持する上で非常に重要です。
2020 年に、コミュニティ Discord サーバーを立ち上げました。以前は Atom のフォーラムにセクションがありましたが、メンテナーと Electron 開発者間の議論や、一般的なデバッグのヘルプを行うためのより非公式なメッセージングプラットフォームを設けることにしました。
2021 年には、@BlackHole1 の協力により、Electron China ユーザーグループを設立しました。このグループは、中国の活況を呈するテクノロジーシーンからのユーザーによる Electron の成長に貢献しており、英語圏以外でアイデアを出し合ったり、Electron について議論したりするための場所を提供しています。また、npm の中国ミラーで Electron のナイトリーリリースをサポートしてくれている cnpm にも感謝します。
Electron のコアコードベースは C++ コードの巨大な塊であり、ビルド時間は常にバグ修正や新機能のリリース速度を制限する要因でした。2020 年に、Google の Goma 分散コンパイラサービス向けのカスタムの Electron 固有のバックエンドである Not Goma を導入しました。Not Goma は、認証されたユーザーのコンピュータからのコンパイルリクエストを処理し、バックエンドの数百のコアに処理を分散させます。また、コンパイル結果をキャッシュするため、同じファイルをコンパイルする別の人は、事前にコンパイルされた結果をダウンロードするだけで済みます。
Not Goma の導入以来、メンテナーのコンパイル時間は数時間規模から数分規模に短縮されました。安定したインターネット接続が、貢献者が Electron をコンパイルするための最低限の要件となりました!
情報
オープンソースの貢献者であれば、Electron Build Tools でデフォルトで利用できる Not Goma の読み取り専用キャッシュも試すことができます。
GitHub は、豊富な API 拡張性と、Probot と呼ばれるファーストパーティのボットアプリケーションフレームワークを備えたプラットフォームです。より創造的な仕事に集中できるように、私たちは私たちの代わりに地味な作業をこなしてくれる、より小さなボット群を構築しました。以下にいくつかの例を示します。
Electronは、GoogleのSeason of Docsイニシアチブの第2版に参加できることを誇りに思っています。このイニシアチブでは、プロジェクトドキュメントを改善するために、オープンソース組織のメンターとテクニカルライターがペアを組みます。
Season of Docsとは?
Season of Docsは、テクニカルライターとオープンソースコミュニティ間のコラボレーションを促進し、両者に利益をもたらすプログラムです。オープンソースのメンテナーは、ライターのテクニカルライティングの専門知識を利用してドキュメントの構造と内容を改善し、テクニカルライターはメンターの指導の下でオープンソースコミュニティに紹介されます。詳細については、GoogleのSeason of Docsウェブサイトをご覧ください。
WebTorrent で構築された最もクールなものは、おそらく Gaia 3D Star Map でしょう。これは、天の川の洗練された 3D インタラクティブシミュレーションです。データは、ブラウザ内で直接 torrent からロードされます。私たちの星系を飛び回り、広大な宇宙と比較して、私たち人間がどれほど小さいかを実感するのは、畏敬の念を抱きます。
これがどのように作成されたかについては、Torrenting The Galaxy で読むことができます。このブログ記事で、著者の Charlie Hoey は、WebGL と WebTorrent を使用して星図を構築した方法を説明しています。