
2024年的计划是发布ESLint v9.0.0的最终版本,然后开始开发语言插件,使ESLint能够正式检查非JavaScript语言。我们花了一整年时间在这些工作上,并在2024年底之前交付了所有这些插件,以及一些有用的工具。
🌐 The plan for 2024 was to release the final version of ESLint v9.0.0 and then start working on language plugins that allow ESLint to officially lint non-JavaScript languages. We spent the year working on these and delivered them all, along with some helpful tools, by the end of 2024.
ESLint v9.0.0 及新配置系统的发布
🌐 Release of ESLint v9.0.0 and the new configuration system
ESLint v9.0.0 已于 四月发布,新配置系统默认启用。这是我们自 2021年以来的第一个重大版本发布,在最初的几个月里,我们经历了困难期,因为不仅新配置系统带来了错误和投诉,v9.0.0 的其他 更改 也引发了问题。我们用上半年时间更新文档,创建了 配置迁移工具 以简化过渡,并开发了 Config Inspector 帮助用户调试新的配置文件。
🌐 ESLint v9.0.0 was released in April with the new configuration system enabled by default. This being our first major release since 2021, we experienced a difficult first few months as we fielded bugs and complaints related not just to the new configuration system, but the other changes in v9.0.0. We spent the first half of the year updating documentation, creating a configuration migration tool to ease the transition, and the Config Inspector to help people debug their new configuration files.
到了2024年的最后一个季度,情况开始有所稳定,我们回到了改善配置系统的工作上,以解决一些用户报告的常见问题。
🌐 Towards the last quarter of 2024, things had started to settle and we went back to work on improving the configuration system to address some of the common issues users reported.
语言插件 API 的发布
🌐 Release of the language plugins API
迁移到新的配置系统的部分原因是为了通过创建语言插件使 ESLint 与语言无关。这涉及大量核心工作,将 JavaScript 特定的功能移到它自己的类中,这反过来又允许我们为其他语言替换类似的类。
🌐 Part of the move to the new configuration system was with an eye towards making ESLint language-agnostic through the creation of language plugins. This involved a lot of core work to move the JavaScript-specific functionality into its own classes, which in turn allowed us to swap in similar classes for other languages.
最终,我们发布了适用于 Markdown 和 JSON 的官方语言插件,以及 CSS 的原型。所有语言插件都允许你创建和分发针对特定语言 AST 运行的自定义规则。为了方便创建这些自定义规则,我们还引入了 代码浏览器。
🌐 In the end, we released official language plugins for Markdown and JSON, as well as a prototype for CSS. All language plugins allow you to create and distribute your own rules that run against the language-specific ASTs. To facilitate the creation of these custom rules, we also introduced the Code Explorer.
更新以支持最新的 ECMAScript 特性
🌐 Updates to support the latest ECMAScript features
和大多数年份一样,团队花了大量时间监控 JavaScript 标准化过程,以确保 ESLint 能尽快更新以支持新的语法。在 2024 年,我们增加了对以下新 JavaScript 特性的支持:
🌐 As with most years, the team spent a lot of time monitoring the JavaScript standardization process to ensure ESLint is updated to support new syntax as quickly as possible. In 2024 we added support for the following new JavaScript features:
这些功能不仅涉及解析的更改,还涉及与正则表达式和模块配合使用的规则的更改。
🌐 These features involved changes not just to parsing but also to rules that work with regular expressions and modules.
财务审查
🌐 Financials review
接下来的几节将深入探讨项目财务。所有这些信息都是从 Open Collective 交易列表中收集的,Tidelift 的付款除外(这些付款是直接从 Tidelift 获取的)。由于交易会在一天中的各个时间发生,我们决定将从 2024 年 1 月 1 日 UTC 午夜开始,到 2024 年 12 月 31 日 UTC 晚上 11:59 结束的交易视为我们的 2024 财年。
🌐 The next few sections dig into the project financials. All of this information is gathered from the Open Collective transaction list with the exception of Tidelift payments (which are retrieved from Tidelift directly). Because transactions come in all throughout the course of a day, we decided to consider transactions beginning on January 1, 2024 at midnight UTC and ending on December 31, 2024 at 11:59 p.m. UTC as our fiscal 2024.
收入审查
🌐 Income review
在2024年,ESLint从我们所有的收入来源共收到187,964.30美元。你可以在下表中看到我们的收入来源明细。
🌐 During 2024, ESLint received $187,964.30 USD from all of our income sources. You can see the breakdown of our income sources in the following table.
| 来源 | 2024 金额 | 2023 金额 | 增减 % |
|---|---|---|---|
| Open Collective | $122,996.60 | $118,381.30 | +3.90% |
| GitHub 赞助 | $35,928.93 | $25,190.89 | +42.63% |
| Tidelift | $18,449.16 | $30,077.84 | -38.66% |
| 网站广告 | $6,345.54 | $6,380.89 | -0.55% |
| Thanks.dev | $4,234.09 | $524.61 | +707.09% |
| Threadless | $9.98 | $0.00 | +100% |
| Stackaid.us | $0.00 | $91.00 | -100% |
| 总计 | $187,964.30 | $180,646.53 | +4.05% |
像往常一样,我们的大部分捐款都是通过 Open Collective 实现的。我们很感激,与 2023 年相比,通过 Open Collective、GitHub Sponsors 和 Thanks.dev 的捐款有所增加。随着我们从 Carbon Ads 转向 Ethical Ads 以增加广告收入,我们的网站广告收入基本保持平稳。总体来看,网站广告收入仍然比 2023 年之前低得多,因此我们至少能够保持在同一水平,感到高兴。
🌐 As usual, most of our donations came through Open Collective. We are grateful that we saw an increase in donations through Open Collective, GitHub Sponsors, and Thanks.dev as compared to 2023. Our website ad revenue stayed mostly flat as we switched from Carbon Ads to Ethical Ads to increase ad revenue. Overall website advertising is still a lot softer than it was prior to 2023, so we are happy to at least have stayed in the same range.
今年的不速之客是 Tidelift 付款的急剧下降。我们在 2024 年初被告知 Tidelift 正在重新计算我们将收到的付款,因此我们剩余几个月的月付款最终被削减了一半。
🌐 An unwelcome surprise during the year was the steep dropoff in Tidelift payments. We were informed early in 2024 that Tidelift was recalculating payments we’d be receiving and so our monthly payment ended up cut in half for the remaining months.
这凸显了赞助对于像 ESLint 这样的项目有多么重要,因为像 Tidelift 这样的公司可以更改它们的付款计算方式,从而对项目的健康产生重大影响。
🌐 This highlights just how important sponsorships are for projects like ESLint, as a company like Tidelift can change their payout calculations and dramatically impact the health of projects.
顶层赞助商
🌐 Top sponsors
在2024年,我们收到了许多公司的慷慨捐赠,其中以Automattic(24,000美元)、Meta(20,000美元)和Airbnb(18,000美元)为首。捐赠1,000美元或以上的公司总额为139,302.42美元,占我们总收入的74%。
🌐 In 2024, we received generous donations from many companies, led by Automattic ($24,000), Meta ($20,000), and Airbnb ($18,000). Those companies donating $1,000 or more totaled $139,302.42 USD, representing 74% of our total income.
| 赞助商 | 2024 年捐款总额 |
|---|---|
| Automattic | $24,000.00 |
| Meta 开源 | $20,000.00 |
| Airbnb | $18,000.00 |
| trunk.io | $7,000.00 |
| Salesforce | $7,000.00 |
| Liftoff | $6,000.00 |
| Chrome 框架基金 | $6,000.00 |
| Workleap | $6,000.00 |
| 美国运通 | $6,000.00 |
| JetBrains | $5,500.00 |
| Cybozu | $4,200.00 |
| Canva | $3,000.00 |
| Sanity | $2,400.00 |
| Icons8 | $2,400.00 |
| Discord | $2,400.00 |
| Anagram Solver | $2,400.00 |
| Nx | $2,400.00 |
| HeroCoders | $2,400.00 |
| SERP Triumph | $2,000.00 |
| Principal Financial Group | $1,800.00 |
| (已编辑) | $1,741.94 |
| Nextbase 入门套件 | $1,612.48 |
| Ignition | $1,600.00 |
| Notion | $1,400.00 |
| Bitwarden | $1,048.00 |
| 西门子 | $1,000.00 |
注意: 被涂抹的赞助商名称来自一个来源可疑的账户,该账户最终被 GitHub 封禁。然而,这笔钱确实进入了我们的账户,因此我们将其包含在表格中以保持透明。
费用审查
🌐 Expenses review
在2024年,我们在ESLint项目上的总支出为247,669.54美元,而收入为187,964.30美元,净亏损为-59,705.24美元。支出包括常规维护和开发以及与项目相关的其他费用。请参见下表以获取概览。
🌐 In 2024, we spent $247,669.54 USD on the ESLint project as a whole vs. $187,964.30 of income for a net loss of -$59,705.24. Expenses include regular maintenance and development as well as other costs related to the project. See the table below for an overview.
| 类别 | 2024 年金额 | 2023 年金额 | 增减百分比 |
|---|---|---|---|
| 维护与开发 | $147,273.43 | $66,910.37 | +120.11% |
| TSC 津贴(Tidelift) | $18,449.16 | $30,077.84 | -38.66% |
| 分诊与支持 | $3,985.50 | $10,307.78 | -61.34% |
| 技术写作 | $0.00 | $8,155.00 | -100.00% |
| 贡献者资金池 | $14,100.30 | $4,500.00 | +213.34% |
| 支付处理费用 | $3,808.97 | $2,854.51 | +33.44% |
| 健康保险 | $12,698.40 | $13,447.41 | -5.57% |
| 开源集合会费 | $11,696.69 | $9,206.88 | +27.04% |
| 生态系统/依赖 | $16,100.00 | $24,400.00 | -34.02% |
| eslint 社区管理 | $9,825.03 | $15,599.84 | -37.02% |
| Google Workspace | $182.06 | $187.35 | -2.82% |
| 代码探索器 | $7,200.00 | $0.00 | +100% |
| 配置检查器 | $2,350.00 | $0.00 | +100% |
| 总计 | $247,669.54 | $185,646.98 | +33.41% |
2024年对 ESLint 来说在许多方面都是创纪录的一年。完成的工作量归功于大量的贡献者,不仅有团队内部的,还有外部贡献者的。今年我们的维护和开发成本因此飙升,外部贡献者池的成本也同样增加,这是我们为 ESLint 的重大贡献支付给外部贡献者的费用。我们还有额外的帮助来分类问题和拉取请求,这也导致了成本的增加。
我们是如何弥补收入和开支之间的差额的?ESLint 团队一直相信至少要建立一年的储备,以便任何突发的收入中断不会立即影响项目。在2023年之前,我们主要专注于修复错误、稳定性以及跟上 JavaScript 语言的变化。在那段时间里,成本相对较低,因此我们花费的少于收入,以建立我们的储备。从2023年开始,我们开始对 ESLint 项目进行重大改造,因此,那一年是我们首次花费略高于收入的年份。2024年,由于更多的贡献导致成本增加,这些变化进一步加快了。
🌐 How were we able to make up the difference between income and expenses? The ESLint team has long had a belief in building up at least a year of reserves so that any abrupt disruption of income wouldn’t disrupt the project immediately. Prior to 2023, we were mostly focusing on bug fixes, stability, and keeping up with changes to the JavaScript language. During that time, costs were relatively low and so we spent less than we received in order to build up our reserves. Starting in 2023, we started significantly overhauling the ESLint project, and a result, that was the first year we spent slightly more than we took in. 2024 accelerated those changes as more contributions led to higher costs.
支持我们的依赖和生态系统
🌐 Supporting our dependencies and ecosystem
ESLint 致力于维护我们依赖和整个 ESLint 生态系统的财务健康。作为这一承诺的一部分,我们会向我们依赖的项目以及重要的 ESLint 相关项目捐款。(在前表中,这被列为“生态系统/依赖”。)下表显示了我们在 2024 年捐赠的项目。
🌐 ESLint is committed to the financial health of our dependencies and the ESLint ecosystem as a whole. As part of that commitment, we donate to projects that we depend on as well as important ESLint-related projects. (This is listed as “Ecosystem/Dependencies” in the previous table.) The following table shows the projects to which we donated in 2024.
| 项目 | 捐款 |
|---|---|
| Ajv | $1,800.00 |
| debug | $1,800.00 |
| eslint-plugin-import | $1,800.00 |
| jsx-eslint | $1,800.00 |
| lint-staged | $1,800.00 |
| Rollup | $1,800.00 |
| Sindre Sorhus | $1,800.00 |
| typescript-eslint | $1,800.00 |
| WebdriverIO | $1,100.00 |
| Eleventy | $600.00 |
| 总计 | $16,100.00 |
期待2025年
🌐 Looking forward to 2025
现在 ESLint v9.0.0 和语言插件已经发布,我们认为 ESLint 在可预见的未来有了一个坚实的基础。我们将继续迭代新的配置系统,同时探索如何使其更直观、更易于使用。我们的下一个重大步骤是核心重写,旨在将现有的 API 拆分为更小的部分,以便更容易组合和匹配。这将使 ESLint 在插件功能方面更加灵活,同时支持多种不同的运行时环境。
🌐 Now that ESLint v9.0.0 and language plugins are released, we feel that ESLint is on a solid foundation for the foreseeable future. We’ll continue iterating on the new configuration system, as we explore ways to make it more intuitive and easier to use. Our next big step is a rewrite of the core, which aims to break apart our existing API into smaller pieces that are easier to mix and match. This will allow ESLint to be more flexible in terms of plugin capabilities as well as supporting multiple different runtimes.
2024年对 ESLint 来说是激动人心且充满挑战的一年,这一年项目经历了一些最戏剧性的变化。我们感谢你在这一年中与我们分享的所有反馈,以及在我们处理这一重大版本更新的变化时所表现出的耐心。
我们也感谢我们的赞助商,不仅在2024年,而且在前几年,他们让我们能够吸收近60,000美元的持续成本亏损。我们希望2024年我们所取得的所有成就表明,每一美元的赞助资金都用于惠及ESLint、它的用户以及整个ESLint生态系统。
🌐 We’re also grateful to our sponsors not just in 2024, but also in the preceding years, which allowed us to absorb a nearly $60,000 deficit in our ongoing costs. We hope that all we’ve accomplished in 2024 shows that every dollar of sponsorship money is being spent to benefit ESLint, its users, and the entire ESLint ecosystem.
