Skip to content

chore(deps): update @oclif/core to v4 and @adobe/eslint-config-aio-lib-config to v5#793

Merged
shazron merged 6 commits intomasterfrom
feat/update-oclif-core-v4
Apr 7, 2026
Merged

chore(deps): update @oclif/core to v4 and @adobe/eslint-config-aio-lib-config to v5#793
shazron merged 6 commits intomasterfrom
feat/update-oclif-core-v4

Conversation

@shazron
Copy link
Copy Markdown
Member

@shazron shazron commented Mar 26, 2026

Fixes #792

Summary

  • Updates @oclif/core from 2.16.0 to ^4.9.0 (closes chore: update @oclif/core to latest version #792)
  • Updates @oclif/plugin-not-found from ^2.3.26 to ^3 (required for core v4 compatibility)
  • Updates @adobe/eslint-config-aio-lib-config from ^4.0.0 to ^5.0.0
  • Migrates ESLint config from legacy .eslintrc.json files to ESLint 9 flat config (eslint.config.js)
  • Swaps out old standard plugins (eslint-config-standard, eslint-plugin-import, eslint-plugin-n, eslint-plugin-node, eslint-plugin-promise) for neostandard
  • Updates eslint from ^8 to ^9 and eslint-plugin-jest from ^27 to ^28

Breaking changes addressed

Change Fix
Config.plugins is now a Map (was an array) Use config.getPluginsList() in rollback.js and update.js
ux.table() removed from @oclif/core New src/table.js helper with identical column-definition API
Command.parse() now calls config.runHook() internally Added runHook mock to test configs
ESLint 9 uses flat config by default Migrated to eslint.config.js

Test plan

  • All 53 existing tests pass
  • 100% code coverage maintained
  • Lint passes cleanly

🤖 Generated with Claude Code

…b-config to v5

- Update @oclif/core from 2.16.0 to ^4.9.0
- Update @oclif/plugin-not-found from ^2.3.26 to ^3 (required for core v4)
- Replace Config.plugins array access with Config.getPluginsList() (plugins is now a Map in v4)
- Replace removed ux.table() with a new src/table.js helper using the same column API
- Update @adobe/eslint-config-aio-lib-config from ^4.0.0 to ^5.0.0 (ESLint 9 + neostandard)
- Migrate ESLint config from legacy .eslintrc.json files to flat config (eslint.config.js)
- Update eslint from ^8 to ^9, swap old standard plugins for neostandard
- Update eslint-plugin-jest from ^27 to ^28 for ESLint 9 compatibility
- Update test mocks to add getPluginsList() and runHook() required by oclif core v4

Closes #792

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 26, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Node.js 18 reached EOL in April 2025.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the CLI’s dependency/tooling stack to support @oclif/core v4 and ESLint 9, including required code/test adjustments for breaking changes.

Changes:

  • Bumped @oclif/core to v4 (and @oclif/plugin-not-found to v3) and adapted plugin enumeration + hooks in commands/tests.
  • Replaced removed ux.table() usage with a new src/table.js helper.
  • Migrated from legacy .eslintrc.json files to ESLint 9 flat config (eslint.config.js) and switched standard plugin set to neostandard.

Reviewed changes

Copilot reviewed 14 out of 15 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/commands/update.js Switches from ux.table to printTable and uses config.getPluginsList() for oclif v4 compatibility.
src/commands/rollback.js Uses printTable and config.getPluginsList() to align with oclif v4 changes.
src/commands/discover.js Uses printTable instead of ux.table.
src/table.js Adds a table-printing helper intended to replace ux.table().
test/commands/update.test.js Updates command config mocks to include runHook and getPluginsList.
test/commands/rollback.test.js Updates command config mocks to include runHook and getPluginsList.
test/commands/discover.test.js Updates command config mock to include runHook.
eslint.config.js Introduces ESLint 9 flat config and test/e2e overrides (incl. setFetchMock global).
.eslintrc.json Removes legacy root ESLint config.
test/.eslintrc.json Removes legacy test ESLint config (moved into flat config override).
e2e/.eslintrc.json Removes legacy e2e ESLint config (moved into flat config override).
package.json Updates oclif/eslint deps and replaces standard plugin set with neostandard.
package-lock.json Locks updated dependency graph for the above upgrades.
.github/workflows/node.js.yml Drops Node 18 from the CI matrix.
.github/workflows/daily-install-cli.yml Drops Node 18 from the daily install matrix.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

shazron and others added 2 commits April 7, 2026 19:15
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link
Copy Markdown

Copilot AI commented Apr 7, 2026

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • scarf.sh
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node ./report.js (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

@shazron shazron merged commit 4f35459 into master Apr 7, 2026
9 checks passed
@shazron shazron deleted the feat/update-oclif-core-v4 branch April 7, 2026 12:11
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.

chore: update @oclif/core to latest version

4 participants