Skip to content
This repository has been archived by the owner on Aug 31, 2023. It is now read-only.

release: 10.0.0 #3526

Merged
merged 22 commits into from
Nov 8, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions .github/ISSUE_TEMPLATE/01_bug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ body:
id: environment
attributes:
label: Environment information
description: Please share any information about your environment that can help debug your issue (OS and OS version, CPU architecture, installation method, etc.).
render: bash
description: Run the command `rome rage` and paste its output here. Please review it, in case there are sensitive information you don't want to share.
render: block
validations:
required: true
- type: textarea
Expand All @@ -25,7 +25,10 @@ body:
label: What happened?
description: |
Provide a detailed list of steps that reproduce the issue
The more information and included steps, the quicker your report can be confirmed and addressed!
The more information and included steps, the quicker your report can be triaged and addressed!

You can also use the [playground](https://play.rome.tools) to share code snippets.
This is useful to reproduce the issue.
placeholder: |
1.
2.
Expand Down
78 changes: 78 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,83 @@
# Rome changelog

## 10.0.0

### CLI

- Added the new command `rome version`.
- Added the new command `rome rage`.
- Added the new command `rome lsp-proxy`.
- Added the new option`--version` as an alias for `rome version`
- Added a new argument `--files-max-size` to change the allowed size of files, in bytes.
- Added a new argument `--formatter-enabled` to the command `rome ci`.
- Added a new argument `--linter-enabled` to the command `rome ci`.
- Added the new `format` option `--trailing-comma` to configure where to add trailing commas.
- Correctly show the supported options for `rome ci`, closes [#3456](https://github.com/rome/tools/issues/3456).
- Fixed the command `rome ci` command to run the linter even if the formatter is disabled, closes [#3495](https://github.com/rome/tools/issues/3495).
- Fixed the messaging of some diagnostics, [#3460](https://github.com/rome/tools/pull/3460).
ematipico marked this conversation as resolved.
Show resolved Hide resolved

### Configuration

- Added `files.maxSize`, to change the allowed size of files, in bytes.

### Diagnostics

- Fix false positive for unknown lint rule in suppression comments during formatting [#3406](https://github.com/rome/tools/issues/3406).
- Correctly handle empty lines when printing code diffs [#3375](https://github.com/rome/tools/issues/3375).


### Formatter

- Added the new trailing comma option that configures where to add trailing commas. Supports the values: `all`, `es5` and `none`; refer to the [documentation](https://rome.tools/docs/#javascriptformattertrailingcomma) to learn more.
- Improved JSX formatting [#3499](https://github.com/rome/tools/issues/3499), [#3211](https://github.com/rome/tools/issues/3211), [#3377](https://github.com/rome/tools/issues/3377)
- Better formatting of object destructing
- Improved formatting of test calls
- Fixed formatting of trailing comments in arrow functions

### Linter

- **BREAKING CHANGE**: some rules have been moved to new groups to better reflect their purpose. This may result in Rome failing to load your configuration or suppression comments that now refer to unknown rules. Please check out [#3471](https://github.com/rome/tools/pull/3471) to learn more about the affected rules.
- Fixed issues in the `noUnreachable` rule
- Fixed false positive cases for `noNegationElse` [#3141](https://github.com/rome/tools/issues/3141)
- Fixed false positive cases for `noUnusedVariables` [#3169](https://github.com/rome/tools/issues/3169)
- Fixed an issue in our CFG [#3390](https://github.com/rome/tools/issues/3390)

#### New rules
ematipico marked this conversation as resolved.
Show resolved Hide resolved

- [`noAutoFocus`](https://rome.tools/docs/lint/rules/noAutoFocus/)
- [`useAltText`](https://rome.tools/docs/lint/rules/useAltText/)
- [`noBlankTarget`](https://rome.tools/docs/lint/rules/noBlankTarget/)
- [`useAnchorContent`](https://rome.tools/docs/lint/rules/useAnchorContent/)
- [`useKeyWithClickEvents`](https://rome.tools/docs/lint/rules/useKeyWithClickEvents/)
- [`useKeyWithMouseEvents`](https://rome.tools/docs/lint/rules/useKeyWithMouseEvents/)
- [`noPositiveTabIndex`](https://rome.tools/docs/lint/rules/noPositiveTabIndex/)
- [`useValidAnchor`](https://rome.tools/docs/lint/rules/useValidAnchor/)
- [`noRestrictedGlobals`](https://rome.tools/docs/lint/rules/noRestrictedGlobals/)
- [`useSimplifiedBooleanExpression`](https://rome.tools/docs/lint/rules/useSimplifiedBooleanExpression/)
- [`noInvalidConstructorSuper`](https://rome.tools/docs/lint/rules/noInvalidConstructorSuper/)
- [`useValidForDirection`](https://rome.tools/docs/lint/rules/useValidForDirection/)
- [`noConstAssign`](https://rome.tools/docs/lint/rules/noConstAssign/)
- [`noExplicitAny`](https://rome.tools/docs/lint/rules/noExplicitAny/)
- [`noBannedTypes`](https://rome.tools/docs/lint/rules/noBannedTypes/)
- [`useMapFlat`](https://rome.tools/docs/lint/rules/useMapFlat/)
- [`useExhaustiveDependencies`](https://rome.tools/docs/lint/rules/useExhaustiveDependencies/)

### Parser

- Improved messaging of diagnostics, using our new infrastructure
- Fixed an issue where diagnostics couldn't be printed in WASM [#3349](https://github.com/rome/tools/pull/3349)
- Allow arguments in d.ts files [#3388](https://github.com/rome/tools/issues/3388)
- Fix parsing of less than in optional call chains [#3486](https://github.com/rome/tools/issues/3486)
- Fixed a case where `export {"a"} from "b";` wasn't correctly parsed

### VSCode

- Make the "rename" command opt-in and use the VS Code provided "rename" feature that offers whole project renaming instead.
- Added the new command `Restart LSP Server`
- The LSP server is now able to listen to changes of `rome.json` and apply the new configuration



## 0.10.1

### CLI
Expand Down
16 changes: 8 additions & 8 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,12 @@ The VS Code extension can be installed from the [Marketplace](https://marketplac
"rome.lspBin": "/path/to/rome/target/debug/rome"
```

Please note that Windows disallows modifying an executable while it's running,
Please note that Windows disallows modifying an executable while it's running,
meaning you won't be able to recompile the Rome binary once the extension was activated in your editor.

The server is spawned as a background daemon, and continues to run even after the editor is closed.
The server is spawned as a background daemon, and continues to run even after the editor is closed.

To stop the running daemon instance use the `rome stop` command, with the editor closed as the extension
To stop the running daemon instance use the `rome stop` command, with the editor closed as the extension
will try to restart it otherwise.

To build the VS Code extension from source, navigate to the `editors/vscode` directory and run:
Expand Down Expand Up @@ -88,11 +88,11 @@ The npm module npm/rome contains Rome's Node JS API that supports different back
For testing and developing, you need to build these packages, following the steps:
1. install [wasm-pack](https://rustwasm.github.io/wasm-pack/installer/) globally;
2. run the `build` command inside the package `backend-jsonrpc`;
3. run the `build:wasm-node-dev` command inside the package `rome` (folder `npm/rome`);
4. run `pnpm i` inside the package `rome` (folder `npm/rome`), this will link the WebAssembly bindings and the
3. run the `build:wasm-node-dev` command inside the package `js-api` (folder `npm/js-api`);
4. run `pnpm i` inside the package `js-api` (folder `npm/js-api`), this will link the WebAssembly bindings and the
JSON-RPC bindings;

The tests are run against the compiled files, which means that you need to run the
The tests are run against the compiled files, which means that you need to run the
`build` command after you implemented features/bug fixes.

## Website
Expand Down Expand Up @@ -214,6 +214,6 @@ Even minor versions are dedicated to official releases, e.g. `*.6.*`.

### Snapshot tests

Internally, we use [`insta`](https://insta.rs/) for snapshot tests. This means that you
follow their [installation instructions](https://insta.rs/docs/cli/) to update/accept
Internally, we use [`insta`](https://insta.rs/) for snapshot tests. This means that you
follow their [installation instructions](https://insta.rs/docs/cli/) to update/accept
the new snapshot tests.
2 changes: 1 addition & 1 deletion crates/rome_service/src/configuration/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ impl Configuration {
#[serde(rename_all = "camelCase", default, deny_unknown_fields)]
pub struct FilesConfiguration {
/// The maximum allowed size for source code files in bytes. Files above
/// this limit will be ignore for performance reason. Defaults to 1 MiB
/// this limit will be ignored for performance reason. Defaults to 1 MiB
pub max_size: Option<NonZeroU64>,
}

Expand Down
2 changes: 1 addition & 1 deletion editors/vscode/configuration_schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -515,7 +515,7 @@
"type": "object",
"properties": {
"maxSize": {
"description": "The maximum allowed size for source code files in bytes. Files above this limit will be ignore for performance reason. Defaults to 1 MiB",
"description": "The maximum allowed size for source code files in bytes. Files above this limit will be ignored for performance reason. Defaults to 1 MiB",
"default": null,
"type": [
"integer",
Expand Down
2 changes: 1 addition & 1 deletion editors/vscode/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"publisher": "rome",
"displayName": "Rome",
"description": "Rome LSP VS Code Extension",
"version": "0.16.1",
"version": "0.18.0",
"icon": "icon.png",
"activationEvents": [
"onLanguage:javascript",
Expand Down
2 changes: 1 addition & 1 deletion npm/backend-jsonrpc/src/workspace.ts

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion npm/js-api/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@rometools/js-api",
"version": "0.0.0",
"version": "0.1.0",
"description": "JavaScript APIs for the Rome package",
"scripts": {
"tsc": "tsc --noEmit",
Expand Down
42 changes: 9 additions & 33 deletions npm/rome/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,60 +19,36 @@
[discord-url]: https://discord.gg/rome
[ci-badge]: https://github.com/rome/tools/actions/workflows/main.yml/badge.svg
[ci-url]: https://github.com/rome/tools/actions/workflows/main.yml
[npm-badge]: https://img.shields.io/npm/v/rome/next?color=brightgreen
[npm-url]: https://www.npmjs.com/package/rome/v/next
[npm-badge]: https://img.shields.io/npm/v/rome/latest?color=brightgreen
[npm-url]: https://www.npmjs.com/package/rome/v/latest
[vscode-badge]: https://img.shields.io/visual-studio-marketplace/v/rome.rome?color=brightgreen&label=vscode
[vscode-url]: (https://marketplace.visualstudio.com/items?itemName=rome.rome

</div>

**Rome** is a formatter, linter, bundler, and [more](https://rome.tools/#development-status) for JavaScript, TypeScript, JSON, HTML, Markdown, and CSS.
**Rome** is a formatter, linter, bundler, and [more](https://rome.tools/) for JavaScript, TypeScript, JSON, HTML, Markdown, and CSS.

**Rome** is designed to replace [Babel](https://babeljs.io/), [ESLint](https://eslint.org/), [webpack](https://webpack.js.org/), [Prettier](https://prettier.io/), [Jest](https://jestjs.io/), and others.

**Rome** unifies functionality that has previously been separate tools. Building upon a shared base allows us to provide a cohesive experience for processing code, displaying errors, parallelizing work, caching, and configuration.

**Rome** has strong conventions and aims to have minimal configuration. Read more about our [project philosophy](https://rome.tools/#philosophy).
**Rome** has strong conventions and aims to have minimal configuration. Read more about our [project philosophy](https://docs.rome.tools/internals/philosophy/).

**Rome** is [written in Rust](https://rome.tools/blog/2021/09/21/rome-will-be-rewritten-in-rust).
**Rome** is [written in Rust](https://rome.tools/blog/2021/09/21/rome-will-be-rewritten-in-rust.html).

**Rome** has first-class IDE support, with a sophisticated parser that represents the source text in full fidelity
and top-notch error recovery.

**Rome** is [MIT licensed](https://github.com/rome/tools/tree/main/LICENSE) and moderated under the [Contributor Covenant Code of Conduct](https://github.com/rome/tools/tree/main/CODE_OF_CONDUCT.md).


## Installation
## Documentation

```shell
npm i rome@next
```

## Usage

Format files:

```shell
rome format --write ./path ./path/to/file.js
```

For complete documentation, please visit the [official website].


## Philosophy

The project philosophy can be found on our [website](https://rome.tools/#philosophy).

## Community

Contribution and development instructions can be found in [CONTRIBUTING](./CONTRIBUTING.md).

Additional project coordination and real-time discussion happens on our [Discord server](https://discord.gg/rome). Remember that all activity on the Discord server is still moderated and will be strictly enforced under the project's [Code of Conduct](./CODE_OF_CONDUCT.md).
Check out our [homepage](https://rome.tools) to learn more about Rome, or directly head to the [Getting Started guide](https://docs.rome.tools/guides/getting-started/) if you want to start using Rome.

## Technical documentation

If you're curious to know our internals, you can browse our [technical documentation].
Browse Rome's internal [Rust API Documentation] if you're interested to learn more about how Rome works.

[official website]: https://rome.tools/
[technical documentation]: https://rome.github.io/tools/rome
[Rust API Documentation]: https://rome.github.io/tools/rome

2 changes: 1 addition & 1 deletion npm/rome/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "rome",
"version": "0.10.1",
"version": "10.0.0",
"bin": "bin/rome",
"scripts": {
"postinstall": "node scripts/postinstall.js"
Expand Down
6 changes: 3 additions & 3 deletions website/docs/src/guides/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,15 @@ Run the following commands in a directory with a `package.json` file to install
#### npm

```bash
npm install --save-dev rome@next
npm install --save-dev rome
```

You can now use `npx rome` to run Rome.

#### pnpm

```bash
pnpm install --save-dev rome@next
pnpm install --save-dev rome
```

You can now use `pnpm exec rome` to run Rome.
Expand All @@ -39,7 +39,7 @@ You can now use `pnpm exec rome` to run Rome.
#### yarn

```bash
yarn add rome@next --save-dev
yarn add rome --save-dev
```

You can now use `yarn run rome` to run Rome.
Expand Down
Loading