2025 年 Google 编程夏令营
Electron 再次被接受为 2025 年 Google Summer of Code (GSoC) 的指导机构!Google Summer of Code 是一项全球性计划,致力于将新的贡献者引入开源软件开发。
¥Electron has once again been accepted as a mentoring organization for Google Summer of Code (GSoC) 2025! Google Summer of Code is a global program focused on bringing new contributors into open source software development.
有关该程序的更多详细信息,请访问 Google 的 Summer of Code 主页。
¥For more details about the program, visit Google’s Summer of Code homepage.
关于我们
¥About us
Electron 是一个使用 Web 技术构建跨平台桌面应用的 JavaScript 框架。Electron 的核心框架是一个使用 Chromium 和 Node.js 构建的编译二进制可执行文件,主要用 C++ 编写。
¥Electron is a JavaScript framework for building cross-platform desktop applications using web technologies. The core Electron framework is a compiled binary executable built with Chromium and Node.js, and is mostly written in C++.
除了 Electron 核心代码库之外,我们还维护着几个支持 Electron 生态系统的项目,包括:
¥Outside of the Electron core repository, we also maintain several projects to support the Electron ecosystem, including:
-
用于终端用户分发的工具(例如 Electron Forge 和 update.electronjs.org)。
¥Tools for end-user distribution (e.g. Electron Forge and update.electronjs.org).
-
面向 Electron 开发者的学习资料(例如 electronjs.org 和 Electron Fiddle)。
¥Learning materials for Electron developers (e.g. electronjs.org and Electron Fiddle).
-
用于提升开发者生产力的内部工具(例如 Electron 构建工具 和 Sheriff)。
¥Internal tools to enhance developer productivity (e.g. Electron Build Tools and Sheriff).
作为 GSoC 贡献者,你将有机会与 Electron 的一些核心贡献者合作,参与 github.com/electron 旗下的众多项目之一。
¥As a GSoC contributor, you will have the opportunity to collaborate with some of Electron’s core contributors on one of many projects under the github.com/electron umbrella.
应用前
¥Before applying
如果你对 Electron 不太熟悉,我们建议你先阅读 documentation 并尝试 Electron Fiddle 中的一些示例。
¥If you aren’t very familiar with Electron, we would recommend you start by reading the documentation and trying out some of the examples in Electron Fiddle.
要了解有关分发 Electron 应用的更多信息,请尝试使用 Electron Forge 创建示例应用:
¥To learn more about distributing Electron apps, try creating a sample application with Electron Forge:
npm init electron-app@latest my-app
在熟悉代码后,加入 Electron Discord 服务器 的讨论吧。
¥After familiarizing yourself with the code a bit, come join the conversation on the Electron Discord server.
如果这是你第一次参加 Google Summer of Code,或者你是开源新手,我们建议你在加入社区之前先阅读 Google 的 贡献者指南。
¥If this is your first time participating in Google Summer of Code or if you’re new to open source in general, we recommend reading Google’s Contributor Guide before engaging with the community.
项目贡献
¥Project contributions
我们鼓励你查看与你感兴趣的项目理念相关的任何代码库。进行研究的一种方法是通过报告错误、分类现有问题或提交拉取请求来做出贡献。这样做是使用我们的代码库进行实践的有效方法,但并非提交提案的强制性要求。一份精心编写的提案应该能够展示你对代码的理解,而无需参考过去的贡献。
¥We encourage you to take a look at any repositories that are relevant to the project ideas you are interested in. One way of doing your research is to make contributions by reporting bugs, triaging existing issues, or submitting pull requests. Doing so is an effective way of getting hands-on practice with our codebases, but is not mandatory for proposal submissions. A well-crafted proposal should be able to demonstrate your understanding of the code without needing to refer to past contributions.
如果你希望在提交提案之前为 Electron 做出贡献,以下是一些建议:
¥Here are a few tips if you are looking to contribute to Electron before submitting your proposal:
-
提交贡献时,请提供描述性问题或 PR 描述。无论代码本身如何,在贡献的书面部分投入精力都表明,你可以在协作环境中成为有效的沟通者。
¥Please provide descriptive issue or PR descriptions when submitting contributions. Regardless of the code itself, putting effort into the written part of a contribution shows us that you can be an effective communicator in a collaborative environment.
-
欢迎提交 PR 以解决未解决的问题。你无需评论某个问题,即可向维护人员询问是否可以分配你负责该问题。请注意,如果你需要完善解决方案的想法,我们仍然鼓励你讨论问题的潜在解决方案,但仅仅询问你是否可以参与其中的评论是多余的,并且会给问题跟踪器增加噪音。
¥PRs are always welcome for open issues. You do not need to comment on an issue asking a maintainer if you can be assigned to it. Note that we still encourage you to discuss potential solutions on an issue if you need to refine an idea for a solution, but comments strictly asking if you can work on something are redundant and add noise to the issue tracker.
-
低效的项目贡献(例如无效的问题报告、代码库 README 中无关紧要的措辞更改或前端代码的细微风格更改)将对你的最终提案产生负面影响,因为它们会占用维护人员有限的时间,并且不会给 Electron 项目带来任何净收益。
¥Low-effort project contributions (e.g. invalid issue reports, trivial wording changes in a repo README, or minor stylistic changes to front-end code) will negatively impact your final proposal, as they take up limited maintainer time and do not provide any net benefit to the Electron project.
-
虽然 AI 编程助手可以成为调试和理解新概念的有效工具,但我们强烈反对直接从 AI 生成的输出中复制/粘贴的贡献。这些通常质量较差,维护人员清理 LLM 生成的代码通常比我们直接拒绝 PR 更费力。
¥While AI coding assistants can be an effective tool for debugging and understanding new concepts, we highly discourage contributions that are copy/pasted directly from AI-generated output. These often turn out to be of low quality, and it's often more effort for maintainers to clean up code generated from an LLM than for us to just reject a PR altogether.
制定你的提案
¥Crafting your proposal
有兴趣与 Electron 合作吗?首先,请查看我们准备的 七个项目构想草稿。所有列出的想法均开放征求意见。
¥Interested in collaborating with Electron? First, check out the seven project idea drafts we have prepared. All listed ideas are open for proposals.
如果你有独特的想法(不在列表中),我们愿意考虑,但请确保你的提案详细且完整。如有疑问,我们建议你坚持我们列出的建议。
¥If you have a unique idea not on the list, we are open to considering it, but ensure your proposal is detailed and thoroughly outlined. When in doubt, we recommend sticking with our listed ideas.
你的应用应包含:
¥Your application should include:
-
一份详细的提案,概述了你计划在夏季实现的目标。
¥A detailed proposal outlining what you plan to achieve over the summer.
-
你的开发者背景。如果你有简历,请附上副本。或者,请告诉我们你过去的技术经验。
¥Your background as a developer. If you have a resume, please include a copy. Otherwise, tell us about your past technical experience.
-
缺乏某些字段的经验并不会让你失去资格,但这将有助于我们的导师制定计划,为你提供最佳支持,并确保你的暑期项目取得成功。
¥Lack of experience in certain areas won’t disqualify you, but it will help our mentors work out a plan to best support you and make sure your summer project is successful.
-
Electron 应用中提交内容的详细指南请点击此处。请直接向 Google Summer of Code 门户提交提案。通过电子邮件发送给 Electron 团队的提案将不被视为最终提交。
¥A detailed guide of what to submit as part of your Electron application is here. Submit proposals directly to the Google Summer of Code portal. Proposals emailed to the Electron team will not be considered as final submissions.
有关你的提案的更多指导,我们建议你遵循 Google Summer of Code 官方提案撰写建议。
¥For more guidance on your proposal, we recommend you follow the official Google Summer of Code proposal writing advice here.
申请开放时间为 2025 年 3 月 24 日,截止时间为 2025 年 4 月 8 日。
¥Applications open on March 24th, 2025 and close on April 8th, 2025.
📚 对于 GSoC 2024,@piotrpdev 致力于在 Electron 核心文档中添加 API 历史记录。想了解 Piotr 在 Electron 工作期间的暑期工作,请阅读他在 2024 GSoC 项目存档 中的报告。
¥📚 For GSoC 2024, @piotrpdev, worked on adding API History to the Electron core documentation. To see what Piotr worked on during his summer with Electron, read his report in the 2024 GSoC program archives.
🔐 对于 GSoC 2022,@aryanshridhar 致力于在 Electron Fiddle 中启用上下文隔离。如果你想了解 Aryan 在 Electron 的暑期工作成果,你可以在 2022 GSoC 项目存档 上阅读他的报告。
¥🔐 For GSoC 2022, @aryanshridhar worked on enabling Context Isolation in Electron Fiddle. If you want to see what Aryan worked on during his summer with Electron, you can read his report in the 2022 GSoC program archives.
有问题吗?
¥Questions?
如果你有任何我们未在博文中解答的问题,或者对你的提案草案有任何疑问,请发送电子邮件至 summer-of-code@electronjs.org 或查看 GSoC 常见问题解答。请在发送电子邮件前阅读 我们的贡献者指南。
¥If you have questions we didn’t address in this blog post or inquiries about your proposal draft, please send us an email at summer-of-code@electronjs.org or check the GSoC FAQ. Please read our contributor guidance before emailing.
资源
¥Resources