跳到主内容

26 篇博文标记为“社区”

Electron 中的社区倡议

查看所有标签

Google 编程之夏 2025

·6 分钟阅读

Electron 再次被接受为 2025 年 Google 编程之夏 (GSoC) 的指导组织!Google 编程之夏是一个全球性的项目,旨在吸引新的贡献者参与开源软件开发。

有关该计划的更多详情,请访问 Google 的编程之夏主页

关于我们

Electron 是一个 JavaScript 框架,用于使用 Web 技术构建跨平台桌面应用程序。Electron 核心框架是一个使用 ChromiumNode.js 构建的编译二进制可执行文件,主要用 C++ 编写。

除了 Electron 核心仓库之外,我们还维护着几个项目来支持 Electron 生态系统,包括:

作为 GSoC 贡献者,您将有机会在 github.com/electron 旗下众多项目中的一个与 Electron 的核心贡献者合作。

申请前

如果您对 Electron 不太熟悉,我们建议您从阅读文档并尝试 Electron Fiddle 中的一些示例开始。

要了解更多关于分发 Electron 应用程序的信息,请尝试使用 Electron Forge 创建一个示例应用程序。

npm init electron-app@latest my-app

熟悉代码后,请加入 Electron Discord 服务器上的讨论。

信息

如果这是您第一次参加 Google 编程之夏,或者您通常不熟悉开源,我们建议您在与社区互动之前阅读 Google 的贡献者指南

项目贡献

我们鼓励您查看与您感兴趣的项目想法相关的任何存储库。一种进行研究的方法是通过报告错误、分类现有问题或提交拉取请求来做出贡献。这样做是掌握我们代码库实践的有效方法,但对于提案提交不是强制性的。一份精心制作的提案应该能够在不提及过去贡献的情况下证明您对代码的理解。

如果您希望在提交提案之前为 Electron 做出贡献,这里有一些提示:

  1. 请在提交贡献时提供描述性的问题或 PR 描述。无论代码本身如何,在贡献的书面部分投入精力表明您可以在协作环境中成为一名有效的沟通者。
  2. PR 总是欢迎针对开放问题。您无需在问题下评论询问维护者是否可以将其分配给您。请注意,如果您需要完善解决方案的想法,我们仍然鼓励您在问题上讨论潜在的解决方案,但严格询问您是否可以处理某事的评论是多余的,会增加问题跟踪器的噪音。
  3. 低效的项目贡献(例如无效的问题报告、仓库 README 中无关紧要的措辞更改或前端代码的轻微样式更改)将对您的最终提案产生负面影响,因为它们会占用有限的维护者时间,并且不会为 Electron 项目带来任何净收益。
  4. 虽然 AI 编码助手是调试和理解新概念的有效工具,但我们强烈不鼓励直接复制/粘贴 AI 生成输出的贡献。这些贡献通常质量低下,维护者清理 LLM 生成的代码通常比我们直接拒绝 PR 更费力。

撰写您的提案

有兴趣与 Electron 合作吗?首先,请查看我们准备好的七份项目想法草案。所有列出的想法都开放提案。

如果您有不在列表中的独特想法,我们乐意考虑,但请确保您的提案详细且全面。如有疑问,我们建议您坚持我们列出的想法。

您的申请应包括:

  • 一份详细的提案,概述您计划在夏季实现的目标。
  • 您作为开发人员的背景。如果您有简历,请附上一份。否则,请告诉我们您过去的技术经验。
    • 在某些领域缺乏经验不会让您失去资格,但这将帮助我们的导师制定一个最佳支持您的计划,并确保您的夏季项目成功。

这里有一份详细的指南,说明您在 Electron 申请中需要提交什么。直接向 Google 编程之夏门户提交提案。发送给 Electron 团队的提案将不被视为最终提交。

有关您的提案的更多指导,我们建议您遵循官方的 Google 编程之夏提案撰写建议

申请于2025 年 3 月 24 日开放,并于2025 年 4 月 8 日截止。

过往项目提案

📚 对于 2024 年 GSoC,@piotrpdev 致力于为 Electron 核心文档添加 API 历史。要查看 Piotr 在 Electron 期间的工作,请阅读他在 2024 年 GSoC 项目档案中的报告。

🔐 对于 2022 年 GSoC,@aryanshridhar 致力于在 Electron Fiddle 中启用上下文隔离。如果您想查看 Aryan 在 Electron 期间的工作,您可以在 2022 年 GSoC 项目档案中阅读他的报告。

有疑问?

如果您对本博客文章中未提及的问题或您的提案草稿有疑问,请发送电子邮件至 summer-of-code@electronjs.org 或查看 GSoC 常见问题。请在发送电子邮件前阅读我们的贡献者指南

资源

将我们的生态系统迁移到 Node 22

·2 分钟阅读

在 2025 年初,Electron 的 npm 生态系统仓库(在 @electron/@electron-forge/ 命名空间下)将迁移到 Node.js 22 作为最低支持版本。


这意味着什么?

过去,Electron npm 生态系统中的软件包(Forge、Packager 等)会尽可能长时间地支持 Node 版本,即使某个版本已经达到了其生命周期结束 (EOL) 日期。这样做是为了确保我们不会碎片化生态系统——我们理解许多项目依赖于较旧的 Node 版本,我们不希望冒着使这些项目停滞不前的风险,除非有迫切的升级理由。

随着时间的推移,由于以下几个原因,使用 Node.js 14 作为我们的最低版本变得越来越困难:

  • 缺乏官方 Node.js 14 macOS ARM64 构建,需要我们维护 CI 基础设施的变通方案以提供全面的测试覆盖。
  • 上游包依赖项的 engines 要求已经向前推进,使得解决依赖项升级带来的供应链安全问题变得越来越困难。

此外,较新版本的 Node.js 包含了许多我们希望利用的改进,例如运行时原生的通用工具(例如 fs.globutil.parseArgs)以及全新的内置模块(例如 node:test, node:sqlite)。

为什么现在升级?

2024 年 7 月,Electron 的生态系统工作组决定将所有软件包升级到 Node 版本,在该版本达到 LTS 日期后的未来某个时间点,该版本将支持同步 ESM 图表的 require()(请参见 nodejs/node#51977nodejs/node#53500)。

我们已决定将更新时间定在 2025 年 1 月/2 月。在此升级发生后,Node 22 将成为现有生态系统软件包中支持的最低版本。

我需要采取什么行动?

我们将尽力保持兼容性。但是,为确保获得最佳支持,我们鼓励您将应用程序升级到 Node 22 或更高版本。

请注意,您项目中运行的 Node 版本与您当前 Electron 版本中嵌入的 Node 版本无关。

下一步

如果您有任何疑问或疑虑,请随时通过 info@electronjs.org 写信给我们。您也可以在我们的官方 Electron Discord 中获得社区支持。

从 BrowserView 迁移到 WebContentsView

·4 分钟阅读

BrowserViewElectron 30 起已弃用,并由 WebContentView 取代。幸运的是,迁移过程相当轻松。


Electron 正在从 BrowserView 迁移到 WebContentsView,以与 Chromium 的 UI 框架 Views API 对齐。WebContentsView 提供了一个直接与 Chromium 渲染管道绑定的可重用视图,简化了未来的升级,并为开发人员将非 Web UI 元素集成到其 Electron 应用程序中提供了可能性。通过采用 WebContentsView,应用程序不仅为即将到来的更新做好了准备,而且从长远来看,还可以受益于降低的代码复杂性和更少的潜在错误。

熟悉 BrowserWindow 和 BrowserViews 的开发人员应注意,BrowserWindowWebContentsView 分别是从 BaseWindowView 基类继承的子类。要完全理解可用的实例变量和方法,请务必查阅这些基类的文档。

迁移步骤

1. 将 Electron 升级到 30.0.0 或更高版本

警告

Electron 发布版本可能包含影响您应用程序的重大更改。最好在进行此迁移的其余部分之前,先测试并落地您的应用程序的 Electron 升级。每个 Electron 主要版本的重大更改列表可以在此处以及 Electron 博客上每个主要版本的发布说明中找到。

2. 熟悉应用程序中使用 BrowserView 的位置

一种方法是在您的代码库中搜索 new BrowserView(。这应该能让您大致了解应用程序如何使用 BrowserView 以及有多少个调用点需要迁移。

提示

在大多数情况下,应用程序实例化新 BrowserView 的每个实例都可以与其他实例独立迁移。

3. 迁移每个 BrowserView 的用法

  1. 迁移实例化。这应该相当简单,因为 WebContentsViewBrowserView 的构造函数形状基本相同。两者都通过 webPreferences 参数接受 WebPreferences

    - this.tabBar = new BrowserView({
    + this.tabBar = new WebContentsView({
    信息

    默认情况下,WebContentsView 实例化时带有白色背景,而 BrowserView 实例化时带有透明背景。要在 WebContentsView 中获得透明背景,请将其背景颜色设置为 RGBA 十六进制值,并将 alpha (不透明度) 通道设置为 00

    + this.webContentsView.setBackgroundColor("#00000000");
  2. 迁移 BrowserView 添加到其父窗口的位置。

    - this.browserWindow.addBrowserView(this.tabBar)
    + this.browserWindow.contentView.addChildView(this.tabBar);
  3. 迁移父窗口上的 BrowserView 实例方法调用。

    旧方法新方法备注
    win.setBrowserViewwin.contentView.removeChildView + win.contentView.addChildView
    win.getBrowserViewwin.contentView.children
    win.removeBrowserViewwin.contentView.removeChildView
    win.setTopBrowserViewwin.contentView.addChildView在现有视图上调用 addChildView 会将其重新排序到顶部。
    win.getBrowserViewswin.contentView.children
  4. setAutoResize 实例方法迁移到 resize 监听器。

    - this.browserView.setAutoResize({
    - vertical: true,
    - })

    + this.browserWindow.on('resize', () => {
    + if (!this.browserWindow || !this.webContentsView) {
    + return;
    + }
    + const bounds = this.browserWindow.getBounds();
    + this.webContentsView.setBounds({
    + x: 0,
    + y: 0,
    + width: bounds.width,
    + height: bounds.height,
    + });
    + });
    提示

    所有 browserView.webContents 的现有用法以及实例方法 browserView.setBoundsbrowserView.getBoundsbrowserView.setBackgroundColor 都无需迁移,并且应该能与 WebContentsView 实例直接兼容!

4. 测试并提交您的更改

遇到问题?请查看 Electron 问题跟踪器上的 WebContentsView 标签,看看您遇到的问题是否已被报告。如果那里没有您的问题,请随时添加新的错误报告。包含测试用例 gist 将有助于我们更好地分类您的问题!

恭喜,您已迁移到 WebContentsViews!🎉

介绍 API 历史 (GSoC 2024)

·8 分钟阅读

Electron API 的历史变更现在将在文档中详细说明。


大家好 👋,我是 Peter,2024 年 Google 编程之夏 (GSoC) Electron 贡献者。

在 GSoC 项目期间,我为 Electron 文档及其函数、类等实现了 API 历史功能,其方式类似于 Node.js 文档:通过允许在 API 文档 Markdown 文件中使用简单而强大的 YAML 模式,并在 Electron 文档网站上漂亮地显示它。

Google 编程之夏 2024

·4 分钟阅读

我们很高兴地宣布,Electron 已被接受为 2024 年 Google 编程之夏 (GSoC) 第 20 届的指导组织!Google 编程之夏是一个全球性的项目,旨在吸引新的贡献者参与开源软件开发。

有关该计划的更多详细信息,请查看 Google 的编程之夏主页

关于我们

Electron 是一个 JavaScript 框架,用于使用 Web 技术构建跨平台桌面应用程序。Electron 核心框架是一个使用 ChromiumNode.js 构建的编译二进制可执行文件,主要用 C++ 编写。

除了 Electron 核心之外,我们还致力于各种项目来帮助维护 Electron 组织,例如:

作为编程之夏的贡献者,您将与 Electron 的一些核心贡献者在 github.com/electron 旗下的众多项目中的一个进行合作。

申请前

如果您对 Electron 不太熟悉,我们建议您从阅读文档并尝试 Electron Fiddle 中的示例开始。

要了解更多关于 Electron 应用程序分发的信息,您也可以通过创建一个示例应用程序来试用 Electron Forge

npm init electron-app@latest my-app

熟悉代码后,请加入 Electron Discord 服务器上的讨论。

信息

如果这是您第一次参加 Google 编程之夏,或者您通常不熟悉开源,我们建议您在与社区互动之前,首先阅读 Google 的贡献者指南

起草您的提案

有兴趣与 Electron 合作吗?首先,请查看我们准备的七份项目想法草案。所有列出的想法目前都开放接受提案。

有不同的想法想让我们考虑吗?我们也接受项目列表之外的新想法,但请确保您的方案经过充分的概述和详细说明。如有疑问,我们建议您坚持我们列出的想法。

您的申请应包括:

  • 您的提案:一份书面文件,详细描述您计划在夏季实现的目标。
  • 您作为开发人员的背景。如果您有简历,请附上一份。否则,请告诉我们您过去的技术经验。
    • 在某些领域缺乏经验不会让您失去资格,但这将帮助我们的导师制定一个最佳支持您的计划,并确保您的夏季项目成功。

这里有一份详细的指南,说明您在 Electron 申请中需要提交什么。直接向 Google 编程之夏门户提交提案。请注意,发送给 Electron 团队而非通过申请门户提交的提案将不被视为最终提交。

如果您想获得更多关于提案的指导,或者不确定应该包含什么,我们还建议您遵循这里提供的官方 Google 编程之夏提案撰写建议

申请于2024 年 3 月 18 日开放,并于2024 年 4 月 2 日截止。

信息

我们 2022 年 Google 编程之夏的实习生 @aryanshridhar 表现出色!如果您想了解 Aryan 在 Electron 期间的工作,您可以在 2022 年 GSoC 项目档案中阅读他的报告。

有疑问?

如果您对博客文章中未提及的问题或您的提案草稿有疑问,请发送电子邮件至 summer-of-code@electronjs.org 或查看 GSoC 常见问题

资源

Introducing electron/rfcs

·4 分钟阅读

Electron 的 API 工作组正在采用开放的征求意见 (RFC) 流程,以帮助引导 Electron 核心的重大更改。

为什么要用 RFCs?

简而言之,我们希望简化 Electron 核心中重要更改的落地过程。

目前,新的代码更改主要通过 GitHub 上的问题和拉取请求进行讨论。对于 Electron 的大多数更改来说,这是一个很好的系统。许多错误修复、文档更改,甚至新功能都足够直接,可以通过标准的 GitHub 流程异步审查和合并。

对于更重要的更改——例如,大型 API 表面或会影响大多数 Electron 应用程序的破坏性更改——在大部分代码编写之前,在构思阶段进行审查是有意义的。

此流程旨在向公众开放,这也将使整个开源社区更容易在潜在更改落地 Electron 之前提供反馈。

它是如何工作的?

整个 RFC 流程都在 GitHub 上的 electron/rfcs 仓库中。具体步骤在仓库 README 中详细说明。

简而言之,一旦向 electron/rfcs 仓库提交 PR,RFC 就被提议。提议的 RFC 会变成:

  • 当 PR 合并到仓库的 main 分支时,该 RFC 变为活跃状态,这意味着 Electron 维护者同意在 electron/electron 中实施;或者
  • 如果 PR 最终被拒绝,则变为已拒绝
信息

为了使 RFC 变为活跃状态,PR 必须获得至少 2 名 API 工作组成员的批准。在合并之前,RFC 应同步提交并获得至少三分之二的工作组成员的全体一致同意。如果达成共识,将触发为期一个月的最终评论期,之后 PR 将被合并。

如果实施已合并到 electron/electron 中,则活跃的 RFC 变为已完成

谁可以参与?

Electron 社区中的任何人都可以提交 RFC 或在 electron/rfcs 仓库中留下反馈!

我们希望将此过程打造为双向对话,并鼓励社区参与,以从未来可能使用这些 API 的 Electron 应用程序中获得多样化的意见。如果您有兴趣对当前提议的 RFC 留下反馈,Electron 维护者已经创建了一些:

鸣谢

Electron 的 RFC 流程借鉴了许多成熟的开源 RFC 流程。许多想法和主要文案的灵感来自:

Electron 10 周年 🎉

·11 分钟阅读

electron/electron 仓库的首次提交日期是 2013 年 3 月 13 日1

Initial commit on electron/electron by @aroben

十年后,伴随着 27,147 次提交和 1192 位独一无二的贡献者,Electron 已成为当今最受欢迎的桌面应用程序构建框架之一。这个里程碑是庆祝和反思我们迄今为止的旅程,并分享我们一路走来所学到的东西的绝佳机会。

没有所有为项目奉献时间和精力的人,我们不可能走到今天。尽管源代码提交总是最显而易见的贡献,但我们也要感谢那些报告错误、维护用户空间模块、提供文档和翻译以及在网络空间参与 Electron 社区的人们的努力。作为维护者,每一项贡献对我们都弥足珍贵。

在继续阅读这篇博客文章之前:谢谢你们。❤️

我们是如何走到今天的?

Atom Shell 是作为 GitHub Atom 编辑器的骨干而构建的,该编辑器于 2014 年 4 月发布公开测试版。它从头开始构建,作为当时可用的基于 Web 的桌面框架(node-webkit 和 Chromium Embedded Framework)的替代品。它有一个杀手级功能:嵌入 Node.js 和 Chromium,为 Web 技术提供强大的桌面运行时。

一年之内,Atom Shell 的功能和受欢迎程度开始迅速增长。大型公司、初创公司和个人开发者都开始使用它构建应用程序(一些早期采用者包括 SlackGitKrakenWebTorrent),该项目也恰当地更名为 Electron

从那时起,Electron 一路高歌猛进,从未停止。以下是 npmtrends.com 提供的我们每周下载量随时间变化的图表:

Electron weekly downloads graph over time

Electron v1 于 2016 年发布,承诺提高 API 稳定性并改进文档和工具。Electron v2 于 2018 年发布并引入了语义版本控制,使 Electron 开发人员更容易跟踪发布周期。

到 Electron v6 时,我们转变为与 Chromium 保持一致的每 12 周发布一个主要版本的节奏。这一决定改变了项目的思维方式,将“拥有最新的 Chromium 版本”从一个锦上添花变成了优先事项。这减少了升级之间的技术债务,使我们更容易保持 Electron 的更新和安全。

从那时起,我们一直运行良好,与 Chromium 稳定版发布的同一天发布新的 Electron 版本。到 2021 年 Chromium 将发布周期加快到 4 周时,我们也能够泰然自若地相应地将发布周期增加到 8 周。

我们现在已经发布了 Electron v23(并且仍在继续),并且仍然致力于为构建跨平台桌面应用程序提供最佳运行时。尽管近年来 JavaScript 开发工具蓬勃发展,但 Electron 仍然是桌面应用程序框架领域稳定、久经考验的支柱。如今,Electron 应用程序无处不在:您可以使用 Visual Studio Code 编程,使用 Figma 设计,使用 Slack 通信,使用 Notion 记录笔记(以及许多其他用例)。我们为这一成就感到无比自豪,并感谢所有促成这一成就的人。

我们一路学到了什么?

通往十年里程碑的道路漫长而曲折。以下是一些帮助我们运营可持续大型开源项目的关键因素。

通过治理模型扩展分布式决策

我们必须克服的一个挑战是,在 Electron 首次迅速普及后,如何处理项目的长期方向。我们如何处理一支由数十名工程师组成的团队,他们分布在不同的公司、国家和时区?

早期,Electron 的维护者团队依靠非正式协调,这对于小型项目来说快速轻便,但无法扩展到更广泛的协作。2019 年,我们转向了治理模型,其中不同的工作组有正式的职责领域。这对于简化流程并将项目所有权部分分配给特定的维护者至关重要。现在每个工作组 (WG) 负责什么?

  • 发布 Electron 版本(发布工作组)
  • 升级 Chromium 和 Node.js(升级工作组)
  • 监督公共 API 设计(API 工作组)
  • 确保 Electron 安全(安全工作组)
  • 运行网站、文档和工具(生态系统工作组)
  • 社区和企业外联(外联工作组)
  • 社区管理(社区与安全工作组)
  • 维护我们的构建基础设施、维护者工具和云服务(基础设施工作组)

大约在转向治理模型的同时,我们将 Electron 的所有权从 GitHub 转移到了 OpenJS 基金会。尽管最初的核心团队今天仍在 Microsoft 工作,但他们只是构成 Electron 治理的更大合作者群体的一部分。2

虽然这个模型并不完美,但在全球大流行和持续的宏观经济逆风中,它对我们来说一直非常适用。展望未来,我们计划修订治理章程,以指导我们度过 Electron 的第二个十年。

信息

如果您想了解更多信息,请查看 electron/governance 存储库!

社区

开源的社区部分很难,尤其是当您的外联团队是穿着风衣的十几个“社区经理”工程师时。话虽如此,作为一个大型开源项目意味着我们拥有大量用户,利用他们的能量来构建 Electron 的用户空间生态系统是维持项目健康的关键部分。

我们一直在做些什么来发展我们的社区影响力?

建立虚拟社区

  • 2020 年,我们启动了社区 Discord 服务器。我们之前在 Atom 的论坛中有一个版块,但决定拥有一个更非正式的消息平台,为维护者和 Electron 开发者之间的讨论以及一般的调试帮助提供一个空间。
  • 2021 年,在 @BlackHole1 的帮助下,我们成立了 Electron China 用户组。该小组在 Electron 在中国蓬勃发展的科技场景中用户增长方面发挥了重要作用,为他们提供了一个在我们英语空间之外协作和讨论 Electron 的空间。我们还要感谢 cnpm 在他们的中文 npm 镜像中支持 Electron 每夜构建的工作。

参与高可见度开源项目

  • 自 2019 年以来,我们每年都庆祝 Hacktoberfest。Hacktoberfest 是 DigitalOcean 组织的年度开源庆祝活动,每年我们都会有数十名热情的贡献者希望在开源软件上留下自己的印记。
  • 2020 年,我们首次参与了 Google Season of Docs,与 @bandantonio 合作重构了 Electron 的新用户教程流程。
  • 2022 年,我们首次指导了一名 Google 编程之夏的学生。@aryanshridhar 做了一些出色的工作,重构了 Electron Fiddle 的核心版本加载逻辑,并将其打包器迁移到 webpack

自动化所有事情!

如今,Electron 治理约有 30 名活跃维护者。我们中只有不到一半是全职贡献者,这意味着有很多工作要做。我们如何才能保持一切顺利运行?我们的座右铭是:计算机很便宜,而人工时间很昂贵。以典型的工程师风格,我们开发了一套自动化支持工具,让我们的生活更轻松。

非 Goma

Electron 核心代码库是一个庞大的 C++ 代码库,构建时间一直是限制我们发布错误修复和新功能速度的因素。2020 年,我们部署了 Not Goma,这是 Google Goma 分布式编译器服务的自定义 Electron 特定后端。Not Goma 处理来自授权用户机器的编译请求,并将该过程分发到后端数百个核心。它还缓存编译结果,以便其他人编译相同文件时只需下载预编译结果。

自 Not Goma 推出以来,维护者的编译时间已从数小时缩短到数分钟。稳定的互联网连接成为贡献者编译 Electron 的最低要求!

信息

如果您是开源贡献者,您也可以尝试 Not Goma 的只读缓存,该缓存默认随 Electron 构建工具提供。

连续因子认证

连续因子认证 (CFA) 是一个围绕 npm 双因素认证 (2FA) 系统的自动化层,我们将其与 semantic-release 结合使用,以管理我们各种 @electron/ npm 包的安全和自动化发布。

虽然 semantic-release 已经自动化了 npm 包发布过程,但它需要关闭双因素认证或传入一个绕过此限制的秘密令牌。

我们构建了 CFA,为 npm 2FA 提供基于时间的一次性密码 (TOTP),可用于任意 CI 作业,使我们能够利用 semantic-release 的自动化功能,同时保留双因素认证的额外安全性。

我们使用带有 Slack 集成前端的 CFA,允许维护者从任何安装了 Slack 的设备上验证包发布,只要他们手边有 TOTP 生成器。

信息

如果您想在自己的项目中尝试 CFA,请查看GitHub 仓库文档!如果您使用 CircleCI 作为 CI 提供商,我们还提供了一个方便的 orb,可以快速搭建一个使用 CFA 的项目。

警长

Sheriff 是我们编写的一个开源工具,用于自动化管理 GitHub、Slack 和 Google Workspace 上的权限。

Sheriff 的核心价值主张是权限管理应该是一个透明的过程。它使用单个 YAML 配置文件来指定上述所有服务的权限。使用 Sheriff,获得仓库协作者状态或创建新的邮件列表就像获得 PR 批准并合并一样简单。

Sheriff 还拥有一个审计日志,会发布到 Slack,在 Electron 组织的任何地方发生可疑活动时向管理员发出警告。

……以及我们所有的 GitHub 机器人

GitHub 是一个具有丰富 API 可扩展性和第一方机器人应用框架 Probot 的平台。为了帮助我们专注于工作中更具创造性的部分,我们构建了一套小型机器人,帮助我们完成繁琐的工作。以下是一些示例:

  • Sudowoodo 自动化了 Electron 的发布过程,从启动构建到将发布资产上传到 GitHub 和 npm。
  • Trop 通过尝试根据 GitHub PR 标签将补丁樱桃挑选到以前的发布分支,从而自动化了 Electron 的回溯过程。
  • Roller 自动化了 Electron 的 Chromium 和 Node.js 依赖项的滚动升级。
  • Cation 是我们针对 electron/electron PR 的状态检查机器人。

总而言之,我们的机器人小家族大大提高了开发人员的生产力!

接下来是什么?

当我们进入项目的第二个十年时,您可能会问:Electron 的下一步是什么?

我们将继续与 Chromium 的发布节奏保持同步,每 8 周发布一个新的 Electron 主要版本,使框架与 Web 平台和 Node.js 的最新和最出色功能保持同步,同时保持企业级应用程序的稳定性和安全性。

我们通常在即将到来的倡议具体化时宣布新闻。如果您想了解未来的发布、功能和一般项目更新,可以阅读我们的博客并关注我们的社交媒体资料(TwitterMastodon)!

脚注

  1. 这实际上是来自 electron-archive/brightray 项目的首次提交,该项目于 2017 年被 Electron 吸收并合并了其 git 历史。但谁在乎呢?这是我们的生日,所以我们说了算!

  2. 与普遍认为的相反,Electron 不再由 GitHub 或 Microsoft 拥有,现在是 OpenJS 基金会的一部分。

Google 编程之夏 2022

·2 分钟阅读

Electron 团队很高兴地宣布,我们今年将首次参加 Google 编程之夏!


什么是 Google 编程之夏?

Google 编程之夏 (GSoC) 是一项年度指导计划,旨在将开源软件项目与潜在贡献者联系起来。以前只对学生开放,现在任何 18 岁及以上的人都可以注册 GSoC。

欲了解更多信息,请查看编程之夏主页

如何报名?

您有兴趣与 Electron 合作吗?如果您是开源新手或初级贡献者,我们欢迎您申请!

为了被选为 Google 编程之夏的 Electron 贡献者,您需要提交一份申请。申请将于2022 年 4 月 4 日开放,并于2022 年 4 月 19 日截止。您可以在此处关注 Google 编程之夏申请指南的更新

想申请吗?首先,请查看我们准备的五份项目想法草案。所有列出的想法目前都开放提案。我们也接受项目列表之外的新想法。

您的申请应包括:

  • 您的提案,这是一份书面文件,详细描述了您计划在夏季实现的目标。
  • 您作为开发者的背景。如果您有简历,请附上一份,否则请告诉我们您过去的经验,重点强调相关的技术经验。

此处提供了一份详细指南,说明 Electron 申请中需要提交的内容。

您还可以阅读 官方 GSoC 学生/贡献者指南,获取准备提案的重要提示。

如果您想讨论项目提案或有疑问,请加入我们的 #gsoc-general Discord 频道

参考

社区 Discord 服务器和 Hacktoberfest

·3 分钟阅读

加入我们,进行社区联谊和为期一个月的开源庆祝活动。


Hacktoberfest and Discord banner

Electron 社区 Discord 启动

Electron 的 外联工作组 很高兴地宣布,我们的官方社区 Discord 服务器已正式上线!

为什么要建立新的 Discord 服务器?

在早期作为 Atom 文本编辑器骨干的日子里,Electron 框架的社区讨论发生在 Atom Slack 工作空间中的一个频道。随着时间的推移,两个项目日益解耦,Atom 工作空间与 Electron 项目的相关性降低,维护者参与 Slack 频道的程度也相应下降。

直到现在,我们仍然将更广泛的社区重定向到 Atom Slack 工作空间,尽管我们收到了许多关于难以收到邀请的报告,而且我们的核心维护者很少光顾该频道。

我们正在设置这个崭新的服务器,作为社区的中心讨论中心,您可以在这里获取所有关于 Electron 的最新消息。

快来加入我们!

到目前为止,服务器的成员由一些正在共同设置它的维护者组成,但我们非常高兴能与大家聊天!快来寻求帮助,了解 Electron 的最新版本,或者只是与其他开发人员一起玩。我们为您准备了一个方便的邀请链接,它将让您访问服务器!

Hacktoberfest 2020

作为一个大型且长期运行的开源项目,如果没有社区的所有贡献,从代码提交到错误报告,再到文档更改等等,Electron 绝不会如此成功。这就是为什么我们相信参与 Hacktoberfest 的重要性,以将更广泛的各种技能水平的开发者社区引入项目。

零散杂项

今年,我们没有一个更大的项目可供大家参与,但我们希望专注于在 Electron JavaScript 生态系统中做出贡献的机会。

请关注我们在各种仓库中带有 hacktoberfest 标签的问题,包括主 electron/electron 仓库、electron/electronjs.org 网站、electron/fiddleelectron-userland/electron-forge

附注:如果您觉得特别有冒险精神,我们还有一些带有 help wanted 标签的积压问题,如果您正在寻找更大的挑战。

卡住了?来和我们聊聊!

此外,我们的 Discord 服务器盛大开业恰逢一年中最大的开源软件庆祝活动,这绝非巧合。请查看 #hacktoberfest 频道,获取关于您的 Hacktoberfest PR 的帮助。如果您错过了,这是再次邀请链接

Google Season of Docs

·3 分钟阅读

Electron 很荣幸能参加第二届 Google Season of Docs 倡议,该倡议将开源组织的导师与技术撰稿人配对,以改进项目文档。


什么是 Season of Docs?

Season of Docs logo

Season of Docs 是一个促进技术撰稿人与开源社区之间协作的计划,双方均受益。开源维护者利用撰稿人的技术撰写专业知识来改进其文档的结构和内容,而技术撰稿人在导师的指导下接触开源社区。在 Google 的 Season of Docs 网站上了解更多信息。

我们首次参加此项目,将指导一名技术撰稿人,他将与 Electron 的 生态系统工作组 合作,重塑我们文档的大部分内容。您可以在此处了解整个项目的时间表。

如何报名?

您有兴趣以技术撰稿人身份与我们合作吗?首先,请熟悉 Google 今年项目的技术撰稿人指南,并查看我们准备的两份项目想法草案

为了被选为 Electron 的 Season of Docs 技术撰稿人,候选人需要在技术撰稿人申请阶段(6 月 8 日至 7 月 9 日)在 Google Season of Docs 网站上提交申请。

您的申请应包含一份提案,这是一份书面文件,详细描述了您计划在为期 3 个月的时间里在 Electron 文档上实现的目标。该提案可以基于我们项目想法文档中提到的起点进行开发,也可以是全新的。不知道从何开始?您可以查看去年的已接受提案列表以获取灵感。

除了提案之外,我们还将关注您作为技术撰稿人的背景。请附上您的简历副本,重点强调相关写作经验,以及技术写作样本(这些样本可以是现有文档、教程、博客文章等)

如果您想讨论项目提案,请给我们发送电子邮件至 season-of-docs@electronjs.org,我们可以从那里开始聊!

参考