Skip to content

chore: migrate to @nextcloud/eslint-config 9 - #99

Merged
oleksandr-nc merged 1 commit into
mainfrom
chore/eslint-config-9
Sep 29, 2026
Merged

oleksandr-nc merged 1 commit into
mainfrom
chore/eslint-config-9

Conversation

@oleksandr-nc

@oleksandr-nc oleksandr-nc commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

@nextcloud/eslint-config 9 brings ESLint 10, which reads a flat config only and ignores .eslintrc.*.

The config

.eslintrc becomes a flat config, spreading recommendedJavascript because the components here are plain JavaScript. The overrides that still exist are kept, no-console is spelled out because the old config had it built in, and three things are dropped: import/extensions, since the shared config no longer ships eslint-plugin-import, the babel parser options, and the appVersion global the sources never use.

The sources

What the new rules ask for, which eslint --fix applied: imports sorted, blank lines between multi line component options, attributes and events camel cased in templates. By hand: the unused response argument of a promise callback is gone.

One of those rules asks for the ellipsis character in a translatable string, so Searching... became Searching… and loses its existing translations until Transifex catches up. The picker test follows the new spelling.

The rules of this app apply to its own sources, so the exemption version 9 grants test files survives, and eslint.config.js is excluded from the released archive, where the .eslintrc.js of the ignore list never existed.

Its ESLint 10 reads a flat config only, so .eslintrc.cjs becomes eslint.config.js.

The import rules are gone from the shared config, so 'import/extensions' goes with
them, as do the babel parser options and the appVersion global the sources do not
use, which the shared config declares anyway. 'no-console' was built into the old
config and is now spelled out, for the app sources only: version 9 allows it in
tests on purpose.

The sources follow what the new rules ask for: sorted imports, blank lines between
multi line component options, and camel cased attributes and events in templates.
The unused response argument of a promise callback is gone, and one rule asks for the
ellipsis character in a translatable string, so 'Searching...' became 'Searching…'
and the picker test follows.

eslint.config.js has no place in the released archive, and the .eslintrc.js the
ignore list named never existed here.

Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>

The lint scripts passed --ext, which ESLint 10 ignores, and the change filter of the
build did not watch the config file the build now reads.

Signed-off-by: Oleksander Piskun <oleksandr2088@icloud.com>
@oleksandr-nc
oleksandr-nc merged commit 1836357 into main Sep 29, 2026
19 checks passed
@oleksandr-nc
oleksandr-nc deleted the chore/eslint-config-9 branch September 29, 2026 11:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant