ESLint9 switched to a new config file format[1]. Using the old config format looks like this: ESLINT_USE_FLAT_CONFIG='false' eslint koha-tmpl/intranet-tmpl/prog/js/ajax.js So here we will be doing the migration like this: npx @eslint/migrate-config .eslintrc.json https://eslint.org/docs/latest/use/configure/migration-guide [1] https://eslint.org/docs/latest/use/configure/configuration-files https://eslint.org/blog/2022/08/new-config-system-part-1/ https://eslint.org/blog/2022/08/new-config-system-part-2/ ----- The goal of this is to make it easier to check guideline JS8 https://wiki.koha-community.org/wiki/Coding_Guidelines#JS8:_Follow_guidelines_set_by_ESLint And be one step closer to able to check it on .vue and .ts files
Created attachment 172754 [details] [review] Bug 38167: Migrate ESLint config to new flat format Test: 1. Do not apply 2. eslint koha-tmpl/intranet-tmpl/prog/js/ajax.js 3. It should fail 4. ESLINT_USE_FLAT_CONFIG='false' eslint koha-tmpl/intranet-tmpl/prog/js/ajax.js 5. It should work 6. Apply patches 7. Restart KTD to have a clean state of dependencies and check that provisionning still works. 8. ESLINT_USE_FLAT_CONFIG='false' eslint koha-tmpl/intranet-tmpl/prog/js/ajax.js 9. It should fail 10. eslint koha-tmpl/intranet-tmpl/prog/js/ajax.js 11. It should work 12 Double check rspack still works: rspack build Because we removed babel.
Created attachment 172755 [details] [review] Bug 38167: Remove Babel which was only used by Webpack And our old versions was depending on a old buggy version of "globals" that broke ESLint when using new config file format. Removing Babel if it's not used anymore instead of updating it. (There would be a way to test the updat works anyway. @vue/cli-service was depending on babel core. Removing it since it's deprecated (see replacements below) instead having to keep a subset of Babel packages and updating them. https://cli.vuejs.org/#getting-started https://github.com/vuejs/vue-cli
If this is merged as it is. A note will have to be left in bug 37824 because > - we can always fallback onto webpack, it's not going anywhere. To leave a trace of changes that relevant to an eventual fallback to webpack.
Created attachment 173070 [details] [review] Bug 38167: Remove remaining @vue/cli-service use
Created attachment 173071 [details] [review] Bug 38167: Make Prettier and ESLint happier for cypress/plugins/index.js
Created attachment 174429 [details] [review] Bug 38167: Migrate ESLint config to new flat format Test: 1. Do not apply 2. eslint koha-tmpl/intranet-tmpl/prog/js/ajax.js 3. It should fail 4. ESLINT_USE_FLAT_CONFIG='false' eslint koha-tmpl/intranet-tmpl/prog/js/ajax.js 5. It should work 6. Apply patches 7. Restart KTD to have a clean state of dependencies and check that provisionning still works. 8. ESLINT_USE_FLAT_CONFIG='false' eslint koha-tmpl/intranet-tmpl/prog/js/ajax.js 9. It should fail 10. eslint koha-tmpl/intranet-tmpl/prog/js/ajax.js 11. It should work 12 Double check rspack still works: rspack build Because we removed babel. Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Created attachment 174430 [details] [review] Bug 38167: Remove Babel which was only used by Webpack And our old versions was depending on a old buggy version of "globals" that broke ESLint when using new config file format. Removing Babel if it's not used anymore instead of updating it. (There would be a way to test the updat works anyway. @vue/cli-service was depending on babel core. Removing it since it's deprecated (see replacements below) instead having to keep a subset of Babel packages and updating them. https://cli.vuejs.org/#getting-started https://github.com/vuejs/vue-cli Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Created attachment 174431 [details] [review] Bug 38167: Remove remaining @vue/cli-service use Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Created attachment 174432 [details] [review] Bug 38167: Make Prettier and ESLint happier for cypress/plugins/index.js Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(In reply to Paul Derscheid from comment #8) > Created attachment 174431 [details] [review] [review] > Bug 38167: Remove remaining @vue/cli-service use > > Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de> Isn't this occurrence of "vue-cli" related? cypress.config.ts: framework: "vue-cli",