chore: update @oclif/core to v4 and migrate to ESLint 9#183
Merged
Conversation
- Bump @oclif/core from ^2.0.0 to ^4.0.0 and oclif devDep to ^4.0.0 - Replace removed ux.prompt() with a readline-based prompt utility (src/prompt.js) - Fix tests: pass mock config with runHook to Command constructor (required by v4) - Convert set.js tests from instance-based to static Command.run() approach - Add allowModules for @oclif/core in eslint settings (v4 uses exports-only, no main field) Closes #182 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Bump @adobe/eslint-config-aio-lib-config from ^4.0.0 to ^5.0.0 - Update eslint from ^8 to ^9 - Migrate from .eslintrc.json to eslint.config.js (ESLint v9 flat config) - Migrate .eslintignore to ignores in eslint.config.js - Remove eslint plugins now provided by neostandard (via the shared config): eslint-config-oclif, eslint-config-standard, eslint-plugin-import, eslint-plugin-node, eslint-plugin-promise, eslint-plugin-standard, eslint-plugin-n Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
eslint-plugin-jest@27 only supports eslint@^7||^8; v29 adds ^9 support. Also add neostandard as an explicit devDependency (peer dep of @adobe/eslint-config-aio-lib-config that npm does not auto-install). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…bility neostandard uses ESM-only packages (find-up) that cannot be require()'d in Node 18. Using .mjs forces ESLint to load the config as an ES module, avoiding the ERR_REQUIRE_ESM error. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
neostandard bundles find-up@8 (ESM-only), which cannot be require()'d in Node 18. The npm overrides field forces neostandard to use find-up@5 (CJS) which exports the same findUpSync API that neostandard uses. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Member
Author
|
A lot of deps require node-20, and puts out warnings when deps are installed in node-18: |
Member
Author
|
wait for adobe/aio-reusable-workflows#14 and revert any node-18 changes |
Member
Author
|
reverted the node-18 changes, re-ran reusable workflows 👍 |
purplecabbage
approved these changes
Mar 27, 2026
purplecabbage
left a comment
Member
There was a problem hiding this comment.
nit: copyright years for new files should be current
Member
Author
|
@copilot copyright years for new files should be current year: 2026 |
Agent-Logs-Url: https://github.com/adobe/aio-cli-plugin-config/sessions/8ff9a4c5-d281-4fcc-bcce-e9e9c698b99b Co-authored-by: shazron <36107+shazron@users.noreply.github.com>
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
Fixes #182 — updates
@oclif/corefrom^2.0.0to^4.0.0(v4.10.2).Bump
@oclif/core→^4.0.0andoclifdevDep →^4.0.0Replace removed
ux.prompt()with an@inquirer/prompts-based utility (src/prompt.js), sinceux.promptwas removed in@oclif/corev3+Add
@inquirer/promptsas a direct dependencyFix tests: pass mock config with
runHooktoCommandconstructor (required by v4'sparse())Convert
set.jstests from instance-based (new Command([])) to staticCommand.run()approachBump
@adobe/eslint-config-aio-lib-config→^5.0.0andeslint→^9.0.0Migrate ESLint config from
.eslintrc.jsontoeslint.config.js(ESLint v9 flat config)Migrate
.eslintignoretoignoresineslint.config.jsRemove eslint plugins now provided transitively by
neostandard(via the shared config):eslint-config-oclif,eslint-config-standard,eslint-plugin-import,eslint-plugin-node,eslint-plugin-n,eslint-plugin-promise,eslint-plugin-standardAdd
@oclif/coretoallowModulesin ESLintnplugin settings — v4 uses packageexportsonly (nomainfield), which requires explicit whitelistingNote: do node-18 manual testing if it is still required - see the comment below about engines warnings.
Test plan
🤖 Generated with Claude Code