Skip to content

chore!: align with eslint 10 on node.js >=20.19.0#121

Merged
voxpelli merged 3 commits intomainfrom
voxpelli/modernize-setup
Feb 10, 2026
Merged

chore!: align with eslint 10 on node.js >=20.19.0#121
voxpelli merged 3 commits intomainfrom
voxpelli/modernize-setup

Conversation

@voxpelli
Copy link
Copy Markdown
Owner

This pull request introduces several updates to modernize the project, improve automation, and enhance test reliability. Notably, it upgrades Node.js and dependency requirements, migrates to the new flat ESLint config, adds automated release and compliance workflows, and improves test output normalization. Below are the most important changes grouped by theme:

Automation & CI/CD Improvements

  • Added GitHub Actions workflows for automated releases (release-please.yml) and compliance checks (compliance.yml), and configured release-please with custom changelog sections and manifest tracking. (.github/release-please/config.json [1] .github/release-please/manifest.json [2] .github/workflows/release-please.yml [3] .github/workflows/compliance.yml [4]
  • Updated Node.js test matrix to include versions 20, 22, 24, and 25 for broader compatibility testing. (.github/workflows/nodejs.yml .github/workflows/nodejs.ymlL20-R20)

Dependency & Engine Upgrades

  • Increased minimum supported Node.js version to 20.19.0 (dropping support for Node 18), and updated both runtime and development dependencies to their latest major versions. (package.json [1] cli-wrapper.cjs [2]
  • Updated the CLI to use node:path as pathModule for compatibility with newer Node.js versions. (cli.js [1] [2]

Linting Configuration Modernization

  • Migrated from legacy .eslintrc to the new flat config (eslint.config.js), and removed unnecessary ESLint plugins and options from scripts. (.eslintrc [1] eslint.config.js [2] package.json [3]

Test Robustness Improvements

  • Enhanced test helpers and output normalization to consistently strip ANSI color codes, ensuring reliable assertions across environments. (test/helpers.js [1] [2] test/test-readme.js [3]

Code Quality & Minor Fixes

  • Added targeted ESLint disables for specific lines to address code style and security plugin warnings. (test/integration.js [1] test/test-readme.js [2]

These changes collectively improve the maintainability, automation, and reliability of the project.

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

This pull request modernizes the project by upgrading to ESLint 10 (which uses the new flat config format) and dropping support for Node.js 18 in favor of Node.js >=20.19.0. The changes align dependencies, configuration, and testing infrastructure with the new requirements while adding automated release workflows.

Changes:

  • Migrated from legacy .eslintrc to flat config (eslint.config.js) for ESLint 9+ compatibility
  • Updated minimum Node.js version from 18.6.0 to 20.19.0 and expanded test matrix to include Node 20, 22, 24, and 25
  • Enhanced test robustness by adding ANSI color code stripping to ensure consistent assertions across environments

Reviewed changes

Copilot reviewed 13 out of 14 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tsconfig.json Updated TypeScript config to extend node20.json instead of node18.json
package.json Updated engines requirement, upgraded dependencies (ESLint 9, removed individual ESLint plugins), and simplified lint script
eslint.config.js New flat config file using @voxpelli/eslint-config
.eslintrc Removed legacy ESLint configuration file
cli.js Changed path import from named import to namespace import for unicorn/import-style compliance
cli-wrapper.cjs Updated version-guard to require Node 20.19 instead of 18.6
test/helpers.js Added ANSI stripping function to normalize test output
test/test-readme.js Added ANSI stripping to output normalization and eslint-disable for security/detect-non-literal-fs-filename
test/integration.js Added eslint-disable for unicorn/import-style to allow named imports from node:path
.github/workflows/nodejs.yml Updated test matrix from Node 18,20,22 to 20,22,24,25
.github/workflows/release-please.yml New automated release workflow using release-please with OIDC
.github/workflows/compliance.yml New PR compliance check workflow
.github/release-please/config.json Release-please configuration with changelog sections
.github/release-please/manifest.json Version manifest tracking current version 9.3.0

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

Comment thread test/helpers.js Outdated
@voxpelli voxpelli force-pushed the voxpelli/modernize-setup branch from 84a8dfa to 6cbdeb3 Compare February 10, 2026 20:22
@voxpelli voxpelli merged commit 465a346 into main Feb 10, 2026
1 check passed
@voxpelli voxpelli deleted the voxpelli/modernize-setup branch February 10, 2026 20:22
@vp-helper vp-helper bot mentioned this pull request Feb 10, 2026
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.

2 participants