Skip to content

chore: upgrade @oclif/core to v4 and eslint-config to v5#241

Open
shazron wants to merge 1 commit intomasterfrom
oclif-core-v4-upgrade
Open

chore: upgrade @oclif/core to v4 and eslint-config to v5#241
shazron wants to merge 1 commit intomasterfrom
oclif-core-v4-upgrade

Conversation

@shazron
Copy link
Copy Markdown
Member

@shazron shazron commented Mar 25, 2026

Fixes #240

Summary

  • Upgrades @oclif/core from ^2 to ^4 (resolves chore: update @oclif/core to latest version #240)
  • Upgrades @adobe/eslint-config-aio-lib-config from v4 to v5 (ESLint 9 flat config)
  • Migrates ESLint config from legacy .eslintrc.json to eslint.config.js

Key changes

@oclif/core v4 migration:

  • ux.table() was removed in v4 — replaced with src/utils/table.js, a custom renderer that produces identical output (verified against all test fixtures)
  • Command.prototype.parse() now requires this.config.runHook — added a mock in test/jest.setup.js for tests that instantiate commands directly
  • eslint-plugin-node's no-missing-require rule can't resolve packages with only an exports field (no main) — resolved by migrating to neostandard which uses eslint-plugin-n

ESLint v9 / flat config migration:

  • Replaced eslint-config-standard, eslint-plugin-node, eslint-plugin-n, eslint-plugin-import, eslint-plugin-promise with neostandard
  • Upgraded eslint-plugin-jest to ^29 for ESLint 9 flat config support
  • Removed stale eslint-disable directives that were suppressing rules no longer present

Test plan

  • All 208 unit tests pass
  • 100% code coverage (statements, branches, functions, lines)
  • ESLint passes with zero errors or warnings

🤖 Generated with Claude Code

…fig to v5

- Bump @oclif/core from ^2 to ^4
- Replace ux.table() (removed in v4) with a custom table utility that
  replicates the same output format (src/utils/table.js)
- Patch Command.prototype.parse in jest setup to provide a mock config.runHook,
  required by @oclif/core v4 when commands are instantiated directly in tests
- Upgrade @adobe/eslint-config-aio-lib-config from v4 to v5 (ESLint 9 flat config)
- Replace .eslintrc.json with eslint.config.js using new flat config format
- Upgrade eslint from ^8 to ^9 and eslint-plugin-jest to ^29
- Add neostandard as peer dependency; remove eslint-plugin-node,
  eslint-config-standard, eslint-plugin-import, eslint-plugin-n,
  eslint-plugin-promise (all superseded by neostandard)
- Remove stale eslint-disable directives obsoleted by the new config

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

codecov bot commented Mar 25, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Copy link
Copy Markdown
Member

@purplecabbage purplecabbage left a comment

Choose a reason for hiding this comment

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

nit: 2020->2026

@@ -0,0 +1,62 @@
/*
Copyright 2020 Adobe. All rights reserved.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

new file, 2026

@@ -0,0 +1,58 @@
/*
Copyright 2020 Adobe. All rights reserved.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

here too

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

2 participants