Skip to content

Commit 4a36f63

Browse files
authored
Merge branch 'main' into patch-1
2 parents 1ed0166 + 3e93430 commit 4a36f63

File tree

20 files changed

+500
-114
lines changed

20 files changed

+500
-114
lines changed

.devcontainer/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
FROM ghcr.io/containerbase/devcontainer:13.25.24
1+
FROM ghcr.io/containerbase/devcontainer:13.26.0

.github/workflows/build.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,9 @@ jobs:
213213
node-version: ${{ needs.setup-build.outputs.node-version }}
214214
os: ${{ runner.os }}
215215

216+
- name: Lint with oxlint
217+
run: pnpm oxlint
218+
216219
- name: Restore eslint cache
217220
uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
218221
with:
@@ -221,7 +224,7 @@ jobs:
221224
key: eslint-cache-${{ hashFiles('pnpm-lock.yaml', 'package.json') }}
222225
restore-keys: eslint-cache-${{ hashFiles('pnpm-lock.yaml', 'package.json') }}-
223226

224-
- name: Lint
227+
- name: Lint with eslint
225228
run: pnpm eslint-ci
226229
env:
227230
NODE_OPTIONS: --max-old-space-size=8192

.nvmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
24.12.0
1+
24.13.0

.oxlintrc.json

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
{
2+
"$schema": "https://raw.githubusercontent.com/oxc-project/oxc/main/npm/oxlint/configuration_schema.json",
3+
"plugins": ["import", "typescript"],
4+
"categories": {},
5+
"rules": {
6+
"eqeqeq": "error",
7+
"no-console": "error",
8+
"no-param-reassign": "error",
9+
"no-negated-condition": "error",
10+
"no-template-curly-in-string": "error",
11+
"curly": "error",
12+
"radix": ["error", "as-needed"],
13+
"sort-imports": [
14+
"error",
15+
{
16+
"ignoreCase": false,
17+
"ignoreDeclarationSort": true,
18+
"ignoreMemberSort": false,
19+
"memberSyntaxSortOrder": ["none", "all", "multiple", "single"]
20+
}
21+
],
22+
"import/no-cycle": "error",
23+
"import/default": "error",
24+
"import/named": "error",
25+
"import/namespace": "error",
26+
"typescript/consistent-type-imports": [
27+
"error",
28+
{
29+
"disallowTypeAnnotations": false
30+
}
31+
],
32+
"no-unused-vars": "off"
33+
},
34+
"overrides": [
35+
{
36+
"files": ["**/*.spec.ts", "test/**"],
37+
"rules": {
38+
"no-template-curly-in-string": "off"
39+
}
40+
},
41+
{
42+
"files": [
43+
"*.config.cjs",
44+
"*.config.cts",
45+
"*.config.js",
46+
"*.config.mjs",
47+
"*.config.mts",
48+
"*.config.ts",
49+
"tools/**/*.cjs",
50+
"tools/**/*.cts",
51+
"tools/**/*.js",
52+
"tools/**/*.mjs",
53+
"tools/**/*.mts",
54+
"tools/**/*.ts"
55+
],
56+
"rules": {
57+
"no-console": "off"
58+
}
59+
}
60+
],
61+
"ignorePatterns": [
62+
"**/node_modules",
63+
"**/.pnpm-store",
64+
"**/dist",
65+
"**/coverage",
66+
"**/__fixtures__/**/*",
67+
"**/__mocks__/**/*",
68+
"**/*.d.ts",
69+
"config.js",
70+
"**/.clinic/",
71+
"**/.cache/",
72+
"**/*.generated.ts",
73+
"tools/dist",
74+
"patches",
75+
"**/tmp/",
76+
"**/.venv/",
77+
"tools/mkdocs/docs",
78+
"tools/mkdocs/site",
79+
".github/workflows/**/*.js",
80+
".worktrees/**/*",
81+
".markdownlint-cli2.mjs"
82+
]
83+
}

.vscode/extensions.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"recommendations": [
33
"dbaeumer.vscode-eslint",
4+
"oxc.oxc-vscode",
45
"esbenp.prettier-vscode",
56
"vitest.explorer",
67
"editorconfig.editorconfig",

docs/development/local-development.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,23 @@ You usually don't need to fix any Prettier errors by hand.
174174

175175
If you're only working on the documentation files, you can use the `pnpm doc-fix` command to format your work.
176176

177+
### IDE extensions
178+
179+
We recommend installing the extensions listed in `.vscode/extensions.json`.
180+
VS Code will prompt you to install them when you open the project.
181+
182+
For linting, we use both ESLint and [oxlint](https://oxc.rs):
183+
184+
- **ESLint** handles type-aware rules (requires TypeScript)
185+
- **oxlint** handles syntax rules (near-instant feedback)
186+
187+
To get real-time oxlint diagnostics, install the extension for your editor:
188+
189+
- **VS Code**: [oxc](https://marketplace.visualstudio.com/items?itemName=oxc.oxc-vscode)
190+
- **Zed**: [oxc](https://github.com/zed-extensions/oxc)
191+
- **IntelliJ/WebStorm**: [Oxlint](https://plugins.jetbrains.com/plugin/25948-oxlint)
192+
- **Neovim**: [nvim-oxlint](https://github.com/soulsam480/nvim-oxlint) or via native LSP
193+
177194
## Documentation
178195

179196
We use [MkDocs](https://www.mkdocs.org) to generate the documentation.

docs/usage/configuration-options.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4324,6 +4324,7 @@ Renovate applies _all_ `registryAliases` objects, from top to bottom.
43244324
This feature works with the following managers:
43254325

43264326
- [`ansible`](modules/manager/ansible/index.md)
4327+
- [`bazel-module`](modules/manager/bazel-module/index.md)
43274328
- [`bitbucket-pipelines`](modules/manager/bitbucket-pipelines/index.md)
43284329
- [`circleci`](modules/manager/circleci/index.md)
43294330
- [`crow`](modules/manager/crow/index.md)

docs/usage/security-and-permissions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ This is particularly true during, for example:
9999
These scripts can contain arbitrary code.
100100
This may pose a significant security risk if the repository's integrity is compromised, or if the repository maintainers have malicious intentions.
101101

102-
Because such insider attack is an inherent and unavoidable risk, the Renovate project will not issue CVEs for such attacks or weaknesses other than in exceptional circumstances.
102+
Because such insider attack is an inherent and unavoidable risk, the Renovate project will not issue CVEs (or GHSAs) for such attacks or weaknesses other than in exceptional circumstances.
103103

104104
Note that when Renovate runs `postUpgradeTasks`, the script executes inside a shell, which means that they can call out to other commands or access shell variables, if the allowlist via `allowedCommands` does not restrict it.
105105
As it is difficult to craft a regular expression that may deny usage of special characters to shells, it is likely that this will not be possible to avoid at this time.

eslint.config.mjs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import vitest from '@vitest/eslint-plugin';
44
import eslintConfigPrettier from 'eslint-config-prettier';
55
import { createTypeScriptImportResolver } from 'eslint-import-resolver-typescript';
66
import * as importX from 'eslint-plugin-import-x';
7+
import oxlint from 'eslint-plugin-oxlint';
78
import eslintPluginPromise from 'eslint-plugin-promise';
89
import globals from 'globals';
910
import tseslint from 'typescript-eslint';
@@ -333,4 +334,9 @@ export default tseslint.config(
333334
'@typescript-eslint/no-floating-promises': 0,
334335
},
335336
},
337+
338+
// Disable ESLint rules that oxlint handles (must be last).
339+
// This reads .oxlintrc.json and turns off corresponding ESLint rules,
340+
// avoiding duplicate diagnostics while allowing gradual migration to oxlint.
341+
...oxlint.buildFromOxlintConfigFile('./.oxlintrc.json'),
336342
);

lib/config-validator.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ interface PackageJson {
156156
}
157157
logger.info('Config validated successfully');
158158
})().catch((e) => {
159-
// eslint-disable-next-line no-console
159+
// oxlint-disable-next-line no-console -- intentional: display critical error on CLI
160160
console.error(e);
161161
process.exit(99);
162162
});

0 commit comments

Comments
 (0)