Skip to content

发布 Biome

The name of the project - "Biome", with the slogan underneath that says "Toolchain of the web" The name of the project - "Biome", with the slogan underneath that says "Toolchain of the web"

我们很高兴地宣布 Biome,Web 工具链正式发布。

¥We are happy to announce Biome, toolchain of the web.

Biome 是 Rome 的官方分支,并将继续传承 Rome 的精髓。

¥Biome is the official fork of Rome and it will continue to be Rome’s legacy.

Biome 由 Rome 的原班人马负责开发和维护。

¥Biome is led and maintained by the same people that maintained Rome so far.

关注我们:

¥Follow us:

¥Background

我想先介绍一些背景信息,以便你理解核心团队为何要创建一个新项目并启用新名称。如果你不感兴趣,请直接跳转到 下一版块 版本。

¥I want to give you some background and context, which could help you to get why the core team created a new project with a new name. If you’re not interested, feel free to jump to the next section

¥How it started

在解释此次 fork 的原因之前,我想先介绍一些背景和上下文:这将帮助你理解导致此决定的原因。

¥Before explaining the reasons for the fork, I’d like to give you some background and context; this would help you understand the reasons that led to this decision.

当我使用 joined 标记 Rome 项目时,该项目还处于早期阶段,是用 TypeScript 编写的。项目历经多年,经历了多次转型。

¥When I joined the Rome project, the project was still young and written in TypeScript. A long time passed, and the project underwent many transitions.

Rome 最初是在 Meta OSS 框架下发布和授权的。Meta 是一个优秀的开源软件项目孵化器,但有些人并不喜欢它。至少,我的印象是他们不需要。

¥Rome was initially released and licensed under the Meta OSS umbrella. Meta is an excellent incubator for OSS projects, but some people didn’t like it. At least, my impression was that they didn’t.

npm 包 rome 属于其他人,因此在所有权变更时,已经使用了很多版本号。团队一直苦于版本控制。软件版本控制应该不难!

¥The npm package rome belonged to another person, so when ownership changed, there were already a lot of version numbers used. The team always struggled with versioning. It shouldn’t be hard to version a software!

经过几个月的努力,该项目已脱离 Meta 的开源项目体系。六个月后,创始人 Sebastian McKenzie 创建了 Rome Tools Inc. 公司,以继续开发 Rome 项目,最终实现可持续发展。

¥After a few months, the project got out of Meta’s OSS umbrella. In six months, the creator Sebastian McKenzie created the company Rome Tools Inc., to keep working on the Rome project so to eventually became sustainable.

我听到这个消息非常兴奋,因为我认同 Rome 的使命,所以我决定辞职加入这个项目。几周后,我加入了 Rome Tools Inc.。作为一名全职员工,我的日常工作是开发工具。对我来说,这简直是梦想成真!

¥I was excited about the news because I believed in Rome’s mission, so I decided to quit my job and join the adventure. In a few weeks, I joined Rome Tools Inc. as a full-time employee to work on developer tools as my daily job. For me, it was like a dream coming true!

它的结局(或者说,它真的结束了吗?)

Section titled “它的结局(或者说,它真的结束了吗?)”

¥How it ended (or did it?)

并非所有创业公司都能成功,Rome Tools Inc. 就是其中之一。我没那么幸运。最终,所有员工都被退出了。

¥Not all startups manage to succeed, and Rome Tools Inc. wasn’t one of the lucky ones. Eventually, all the employees were laid off.

我的 Rome Tools Inc. 之旅可惜项目结束了,但幸运的是,我从事开发者工具相关工作的生涯仍在继续!几个月后,我加入了 Astro Technology Company 团队,开始全职工作。这里是一个很棒的工作场所,我每天都能和一群优秀的人一起做我喜欢的事情。我喜欢它!

¥My adventure with Rome Tools Inc. sadly ended, but fortunately, my career working with developer tools continued! A few months later, I joined the Astro Technology Company working full-time. It’s a great place to work, and I get to do what I love every day with fantastic people. I love it!

不过,我仍然对罗马的使命充满向往。然而,事情并非如此简单。我喜欢在空闲时间开发解析器/编译器。我热爱 Rust 语言,而 Rome 是一个完美的开源项目,我可以在这里使用它。

¥Part of me was still charmed by Rome’s mission though. However, it wasn’t just that. I like working on parsers/compilers in my free time. I love the Rust language, and Rome is the perfect OSS project where I can use it.

因此,在我的空闲时间里,我尽可能地继续为 Rome 项目做出贡献;幸运的是,我仍然拥有一些权限,可以发布项目的新版本。尽管与 Rome Tools Inc. 的合作并不成功,但我仍然希望继续推进这个项目。

¥So, in my free time, I continued with my contributions to Rome as much as possible; luckily, I still had some rights that allowed me to publish new versions of the project. Despite the unsuccessful adventure with Rome Tools Inc., I wanted to keep the project alive.

一些新的 开源软件贡献者 成员也加入了进来,为项目做出了贡献。我并非孤身一人,这正是开源的魅力所在。你最终会找到喜欢这个项目并想做出贡献的人。

¥A few new OSS contributors joined the cause and helped in contributing to the project. I wasn’t alone, and that’s the great thing about OSS. You eventually find people who like the project and want to contribute too.

2023 年 6 月,我在 JsNation 大会上用 发表演讲 奖项奖励了关于罗马的项目。

¥In June, I gave a talk about Rome at JsNation 2023.

Emanuele Stoppa on the stage of JsNation

因此,该项目仍在运行,但维护它变得越来越具有挑战性:

¥So, the project is still alive, but maintaining it has become challenging:

  • 我没有 Discord 的管理员权限,因此我无法将管理权限委托给其他人;

    ¥I don’t have admin rights on Discord, so I can’t delegate moderation rights to other people;

  • 我没有网站的托管平台的访问权限;

    ¥I don’t have access to the hosting platform of the website;

  • 我没有任何注册表(npm、VSCode 等)的访问权限;

    ¥I don’t have access to any registry (npm, VSCode, etc.);

  • 该项目仍采用 Rome Tools Inc. 的 MIT 许可证,这使得从法律角度来看,归属和贡献问题显得模糊不清(这家公司在哪里?我不知道)。

    ¥the project is still under the MIT license of Rome Tools Inc., which makes attributions and contributions seem foggy from a legal point of view (where’s the company? I don’t know).

多次尝试联系当前所有者均未成功。我只能做一件事。我们可以做

¥Many attempts to reach out to the current owner were all void. There was only one thing I could do. We could do.

¥Enters: Biome

我们创建了 Biome。经过核心团队成员数周的讨论以及与一些朋友的交流,我们认为彻底推倒重来是最佳方案。

¥We created Biome. After weeks of discussions among the members of the core team and conversations with some friends, we thought that a clean slate was the best course of action.

我们曾考虑在新分支中保留 “rome” 名称,但最终发现难以实现:

¥We pondered the idea of keeping the “rome” name in the new fork, but that was proven difficult:

  • Sebastian 已注册了大量名为 “rome” 的内容(GitHub 组织、网站域名、开源项目、npm 组织)。找到合适的组合并不容易;

    ¥Sebastian has registered tons of stuff with the “rome” name (GitHub organizations, website domains, open collectives, npm organizations). Finding the right combination wasn’t easy;

  • 如果没有 Discord 服务器的相应权限,我们无法委派管理权限。Discord 是社区建设中非常重要的工具;

    ¥without the proper rights in the Discord server, we couldn’t delegate the moderation rights. Discord is a very important asset for community building;

  • 保留原名会导致代码归属到 Rome Tools Inc.,这使得源代码的法律问题仍然扑朔迷离;

    ¥keeping the name would have caused some attribution to Rome Tools Inc., making things still foggy when it comes to the legal aspects of the source code;

  • 我们不知道 “rome” 这个名称是否已被注册;如果情况确实如此,我们可能会遇到一些法律问题;

    ¥we don’t know if the “rome” name is registered; if it turns out it is, we could have incurred some legal troubles;

  • 如前所述,“Rome” 存在许多历史遗留问题(例如,启动时元数据失败);

    ¥“Rome” has a lot of historical baggage, as explained before (Meta and, fail as a startup);

鉴于所有这些困难,核心团队决定创建一个新项目。

¥Given all these difficulties, the core team settled for a new project.

¥“New is always better.”

Biome 将秉承古罗马的 philosophy 和相同的使命。不过,开发路线图可能会有所调整,核心团队也可能决定将重点放在提升现有功能的稳定性上,而不是发布新功能。

¥Biome will embrace the same philosophy of the old Rome and the same mission. Although, the roadmap will likely change, and the core team could decide to focus on making the current features more stable instead of releasing new ones.

Biome 的主要目标依然不变,它希望成为一个全方位的工具链;我们最近开始着手处理转换功能,这最终将构成编译器的基础。

¥Still, the primary mission is alive, and Biome wants to be a 360° toolchain; we recently started working on transformations, which will eventually set up the foundations of the compiler.

¥Why Biome

团队希望创建第二个 “Rome”,即它的第二个版本。因此,我们将 “Bis” 和 “Rome” 这两个词合并。**Biome""。

¥The team wanted to create a second “Rome”, a second version of it. So we fused the words “Bis” and “Rome”. **Biome"".

我仍然在使用 rome 包。我应该怎么做?

Section titled “我仍然在使用 rome 包。我应该怎么做?”

¥I still use the rome package. What should I do?

rome 包将不再由核心团队维护,因此你将不会收到任何新版本。

¥The rome package won’t be maintained anymore by the core team, so you won’t get any more releases.

  1. 你应该使用 @biomejs/biome 包。请注意,Biome 还包含许多新功能和修复。我们刚刚为此准备了一个 博客文章 版本。

    ¥You should use the @biomejs/biome package. Note that Biome also comes with a lot of new features and fixes. We’ve just prepared a blog post for that.

    {
    "rome": "12.1.3"
    "@biomejs/biome": "1.0.0"
    }
  2. 请更改脚本中的 CLI 名称:

    ¥And change the CLI name in your scripts:

    {
    "scripts": {
    "format": "rome format --write ./src",
    "format": "biome format --write ./src"
    }
    }
  3. 在你的 rome.json 文件中,更新 $schema 字段的 URL:

    ¥In your rome.json file, update the URL of the $schema field:

    {
    "$schema": "https://docs.rome.tools/schemas/12.1.3/schema.json",
    "$schema": "https://biome.nodejs.cn/schemas/1.0.0/schema.json"
    }
  4. 然后安装新的官方 VSCodeOpen VSX 扩展。如果你使用这些扩展,这将是重要的一步。

    ¥Then install the new official VSCode or open VSX extension. That’s an important step if you use these extensions.

  5. 安装扩展程序后,打开 settings.json。如果你在其中有一些与 Rome 相关的设置,则需要更新它们:

    ¥After the installation of the extension, open the settings.json. If you have some Rome related settings there, you’ll have to update them:

    {
    "[javascript]": {
    "editor.defaultFormatter": "rome.rome"
    "editor.defaultFormatter": "biomejs.biome"
    },
    "editor.codeActionsOnSave": {
    "quickfix.rome": true,
    "source.organizeImports.rome": true
    "quickfix.biome": true,
    "source.organizeImports.biome": true
    }
    }

Biome 仍然接受 rome.json 文件作为配置,因此你暂时无需执行任何操作。Biome 还将 biome.json 作为配置文件。

¥Biome still accepts the rome.json file as a configuration, so you don’t need to do anything yet. Biome also takes biome.json as a configuration file.

我们最终会停用 biome.jsonrome.json 配置文件,但 Biome 将在后续版本中自动补齐此操作。所以,除非你想更新,否则不必担心更新所有内容。

¥We will eventually sunset the rome.json configuration file for biome.json, but Biome will do that for you in the subsequent releases. So, don’t worry about updating everything unless you want to.

¥The core team

  • Emanuele Stoppa:我,项目负责人 🤓

    ¥Emanuele Stoppa: me, the lead of the project 🤓

  • Denis Bezrukov:Denis 长期为该项目做出贡献,他为格式化程序和解析器等许多工具做出了贡献;

    ¥Denis Bezrukov: Denis has contributed to the project for a long time He made contributions to many tools like formatter and parser;

  • Victorien Elvinger:Victorien 充满热情,他为 Biome 代码检查工具做出了大量贡献,包括创建新规则和优化他加入时已有的规则;

    ¥Victorien Elvinger: Victorien is very passionate, and he’s made tons of contributions to the Biome linter by creating new rules and optimising the ones that were already there when he joined;

  • Daiki Nishikawa:Daiki 对代码检查器和解析器进行了改进,包括添加新规则、修复现有规则、改进内部语义模型以及为 JavaScript/TypeScript 解析器添加新的语法;

    ¥Daiki Nishikawa: Daiki worked on linter and parser, by adding new rules, fixing the existing ones, improving the internal semantic model, and adding new grammar to the JavaScript/TypeScript parser;

  • unvalley:unvalley 为代码检查器和解析器增添了许多价值。它们处理了一些复杂的规则,例如,特别是与正则表达式相关的规则;

    ¥unvalley: unvalley added a lot of value to the linter and parser. They tackled some complex rules, for example, especially the ones around regex;

¥Special thanks

  • Strager:正是他为项目提供的意见和建设性批评,才使得 Biome 能够发展到今天的阶段;

    ¥Strager: his inputs and constructive criticisms to the project are what helped Biome to arrive to this point;

  • Boshen:自 Rust 重写以来,我一直是该项目最忠实的拥护者之一;他加入 Biome 社区是为了向我们学习并尽可能多地做出贡献。他现在领导着一个与 Biome 类似的项目,即 oxc。来看看吧。

    ¥Boshen: one of the greatest admirers of the project since the Rust rewrite; he joined the Biome community to learn from us and contribute as much as possible. He now leads a similar project to Biome, oxc. Check it out.

  • Micha:他曾是 Rome Tools Inc. 的员工,现在是 Ruff 项目的全职开发者。他给了我很多宝贵的建议,而且在我难以做出正确决策时,他总是耐心倾听。

    ¥Micha: ex-employee of Rome Tools Inc., he is now a full-time developer of the project Ruff, he gave a lot of good pieces of advice, and he was a good listener when I was struggling to make the right decisions.

¥Translations