Repository navigation
[SCF-2416] [Part 2] Upgrade test and lint tooling (ESLint 8, Prettier 3, ember-try 3, stylelint) - #17
Open
Gaurav0 wants to merge 7 commits into
Conversation
…OTYPES: false The 5.4 addon blueprint drops the ember-disable-prototype-extensions addon and sets EmberENV.EXTEND_PROTOTYPES to false in the dummy app instead, which also covers the Date.parse case the old setting guarded. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bumps the dummy-app and test devDependencies the 5.4 addon blueprint touches: qunit ^2.20.0, qunit-dom ^2.0.0, ember-page-title ^8.0.0, @embroider/test-setup ^3.0.2, ember-cli-dependency-checker ^3.3.2, webpack ^5.89.0, and @glimmer/component and @glimmer/tracking ^1.1.2. @ember/test-helpers (^2.9.6), ember-qunit (^6.2.0) and ember-resolver (^8.1.0) are held below the blueprint's versions for now. ember-cli 3.28's test-support suffix calls Testem.hookIntoTestFramework() before ember-qunit 7+, a v2 addon, has loaded QUnit, so testem fails with "unable to detect a test framework". They move to the blueprint's versions after the ember-cli-update. ember-qunit 6 asks for ember-auto-import ^2 itself, so the ember-qunit/ember-auto-import resolution is no longer needed. The Embroider build that @embroider/test-setup 3 installs runs on webpack 5, which no longer polyfills node's built-in modules, and sinon (via ember-sinon) imports util. The dummy app's webpack config falls back to the util package, a new devDependency, so the Embroider scenarios build again. util reads process.env.NODE_DEBUG when it loads, so a DefinePlugin replaces that with false; without it the first sinon import throws "process is not defined" and every sinon test fails. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ember-try 3 is the 5.4 addon blueprint's version. It reads its config from ember-addon.configPath (tests/dummy/config), falling back to config/ember-try.js, so the existing config keeps working. ember-try-config now asks for ember-source-channel-url ^3 itself, so the **/ember-try-config/ember-source-channel-url resolution is no longer needed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The 5.4 addon blueprint's lint toolchain: - eslint ^8.52.0, eslint-plugin-ember ^11.11.1, eslint-config-prettier ^9 - @babel/eslint-parser (with @babel/plugin-proposal-decorators for decorator syntax) replaces the unmaintained babel-eslint - eslint-plugin-n replaces the unmaintained eslint-plugin-node eslint-plugin-qunit stays ^6: v8 adds 44 no-assert-equal errors, which is a follow-up. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
prettier ^3.0.3 and eslint-plugin-prettier ^5 (which needs ESLint 8), the 5.4 addon blueprint's versions. trailingComma 'es5' keeps Prettier 2's default, so the only reformatting is Prettier 3's nested-ternary indentation. ember-source 4.8's remove-types still asks for prettier ^2.5.1, so a nested Prettier 2 copy stays in the lockfile. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The 5.4 addon blueprint runs the lint and test scripts through concurrently; npm-run-all is unmaintained. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The 5.4 addon blueprint lints CSS with stylelint (stylelint-config-standard plus stylelint-prettier, which needs Prettier 3) via the lint:css and lint:css:fix scripts. /docs/ and /vendor/ are not linted here. The dummy app's empty app.css gets the blueprint's comment so it doesn't trip no-empty-source. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Nov 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Moves the test and lint tooling to the ember-cli 5.4 addon blueprint's versions, ahead of the blueprint sync in Part 8. Devtools only: nothing here changes what consumers install.
EXTEND_PROTOTYPES: falsein the dummy app replaces theember-disable-prototype-extensionsaddon.qunit,qunit-dom2,ember-page-title8,@embroider/test-setup3,webpack5.89 and others.@ember/test-helpers,ember-qunitandember-resolverare held back. On ember-cli 3.28, ember-qunit 7+ makes testem fail with "unable to detect a test framework". Part 8 finishes them.utilpackage for sinon. ADefinePluginsetsprocess.env.NODE_DEBUGto false, so sinon loads.@babel/eslint-parserreplacesbabel-eslintandeslint-plugin-nreplaceseslint-plugin-node.eslint-plugin-qunitstays at ^6, because v8 adds 44 errors (follow-up).trailingComma: 'es5'. The only reformatting is nested-ternary indentation.concurrentlyreplaces the unmaintainednpm-run-all.stylelint-config-standardandstylelint-prettier, through newlint:cssscripts.+74/−38 lines, not counting
yarn.lock.Stack
Part of the SCF-2416 work (ember-bootstrap 5.0.0), split from
scf-2416-reworkfor easier review. This is part 2 of 9. Stacked on Part 1: its base isgaurav/chore/SCF-2416-part-1-drop-ember-3-28-and-4-4, so the diff only shows this part. Merge in order.Review notes
The Embroider
utilfallback andDefinePlugininember-cli-build.jsneed the closest look. Without theDefinePlugin, every sinon test fails under Embroider with "process is not defined".Testing
Run on this branch with Node 20.19.6:
yarn install --frozen-lockfilepasses,yarn lintreports 0 errors (the same 150 warnings asscf_master), andember test(Ember 4.8, the default) has 532 passed, 9 skipped and 0 failed. No new tests. CI covers the ember-try matrix.🤖 Generated with Claude Code