Skip to content

refactor: Bump eslint from 7.32.0 to 9.39.3#198

Merged
mtrezza merged 2 commits intoparse-community:mainfrom
mtrezza:refactor/eslint-9.39.3
Mar 29, 2026
Merged

refactor: Bump eslint from 7.32.0 to 9.39.3#198
mtrezza merged 2 commits intoparse-community:mainfrom
mtrezza:refactor/eslint-9.39.3

Conversation

@mtrezza
Copy link
Copy Markdown
Member

@mtrezza mtrezza commented Mar 29, 2026

Closes #182

Changes

  • eslint 9.39.3: Major upgrade from eslint 7.32.0
  • Removed deprecated babel-eslint (replaced by eslint's default parser with ecmaVersion: "latest")
  • Removed vestigial eslint-plugin-flowtype (no Flow types used in project)
  • Migrated from legacy .eslintrc.json to flat config eslint.config.mjs
  • Added @eslint/js and globals as required flat config dependencies
  • Fixed unused variable in src/ApiMailAdapter.js (catch (e)catch)

Breaking Changes

  • eslint 9.0.0: Flat config is now the default format; legacy .eslintrc format deprecated

Code Changes Required

  • Converted eslint config from .eslintrc.json to eslint.config.mjs (flat config)
  • Removed babel-eslint parser, using eslint's default parser with ecmaVersion: "latest" instead
  • Removed eslint-plugin-flowtype (unused)
  • Fixed one no-unused-vars error in src/ApiMailAdapter.js

@parse-github-assistant
Copy link
Copy Markdown

parse-github-assistant bot commented Mar 29, 2026

🚀 Thanks for opening this pull request! We appreciate your effort in improving the project. Please let us know once your pull request is ready for review.

Tip

  • Keep pull requests small. Large PRs will be rejected. Break complex features into smaller, incremental PRs.
  • Use Test Driven Development. Write failing tests before implementing functionality. Ensure tests pass.
  • Group code into logical blocks. Add a short comment before each block to explain its purpose.
  • We offer conceptual guidance. Coding is up to you. PRs must be merge-ready for human review.
  • Our review focuses on concept, not quality. PRs with code issues will be rejected. Use an AI agent.
  • Human review time is precious. Avoid review ping-pong. Inspect and test your AI-generated code.

Note

Please respond to review comments from AI agents just like you would to comments from a human reviewer. Let the reviewer resolve their own comments, unless they have reviewed and accepted your commit, or agreed with your explanation for why the feedback was incorrect.

Caution

Pull requests must be written using an AI agent with human supervision. Pull requests written entirely by a human will likely be rejected, because of lower code quality, higher review effort and the higher risk of introducing bugs. Please note that AI review comments on this pull request alone do not satisfy this requirement.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 29, 2026

Warning

Rate limit exceeded

@mtrezza has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 21 minutes and 8 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 21 minutes and 8 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 6bb8ca3e-1a98-457c-81c3-96bd7aef92f2

📥 Commits

Reviewing files that changed from the base of the PR and between 3e9aa36 and ab68cfc.

📒 Files selected for processing (3)
  • eslint.config.mjs
  • package-lock.json
  • package.json
📝 Walkthrough

Walkthrough

This pull request upgrades ESLint from v7.32.0 to v9.39.3 and migrates the configuration from the legacy .eslintrc.json format to the new flat config format in eslint.config.mjs. It removes deprecated dependencies (babel-eslint, eslint-plugin-flowtype) and introduces modern equivalents (@babel/eslint-parser, @eslint/js, globals).

Changes

Cohort / File(s) Summary
ESLint Configuration Migration
.eslintrc.json, eslint.config.mjs
Removed legacy JSON configuration file and replaced with flat config format (eslint.config.mjs) using @eslint/js recommended rules, @babel/eslint-parser, and updated rule definitions including new rule constraints and overrides for Jasmine test files.
Dependency Updates
package.json, package-lock.json
Upgraded ESLint from 7.32.0 to 9.39.3; removed babel-eslint and eslint-plugin-flowtype; added @babel/eslint-parser@7.27.5, @eslint/js@9.39.3, and globals@16.2.0. Updated transitive dependency graph to align with ESLint v9 ecosystem.
Code Adjustment
src/ApiMailAdapter.js
Modified _fileExists helper method catch block to use unnamed error handler (catch without binding variable) instead of capturing exception.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: upgrading ESLint from version 7.32.0 to 9.39.3, which is the primary focus of the PR.
Description check ✅ Passed The PR description is comprehensive and covers the core changes, but the template requires specific sections (Issue, Approach, Tasks) which are not explicitly structured in the provided description.
Linked Issues check ✅ Passed The PR successfully meets the linked issue #182 requirements: ESLint upgraded to 9.39.3, deprecated babel-eslint replaced, flowtype plugin removed, legacy config migrated to flat format, and lint errors fixed.
Out of Scope Changes check ✅ Passed All changes are directly related to the ESLint upgrade objectives; no out-of-scope modifications detected beyond the upgrade, config migration, and one lint fix in ApiMailAdapter.js.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 29, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (5d00b54) to head (ab68cfc).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #198   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            4         4           
  Lines          159       159           
=========================================
  Hits           159       159           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@mtrezza mtrezza merged commit 81ed391 into parse-community:main Mar 29, 2026
13 of 14 checks passed
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.

1 participant