Skip to content

docs(migrate): add resolution steps for cyclic references in ESLint migration#4261

Open
Dotify71 wants to merge 4 commits into
biomejs:mainfrom
Dotify71:fix-1818-cyclic-references
Open

docs(migrate): add resolution steps for cyclic references in ESLint migration#4261
Dotify71 wants to merge 4 commits into
biomejs:mainfrom
Dotify71:fix-1818-cyclic-references

Conversation

@Dotify71
Copy link
Copy Markdown
Contributor

Fixes #1818

This PR adds a workaround to the ESLint migration guide for cyclic reference errors. It explains how to temporarily comment out problematic plugins or shared configurations (e.g., React, @Stylistic, or @typescript-eslint) in the ESLint configuration file during the migration, and then restore them afterward.

@netlify
Copy link
Copy Markdown

netlify Bot commented May 20, 2026

Deploy Preview for biomejs ready!

Name Link
🔨 Latest commit d60627d
🔍 Latest deploy log https://app.netlify.com/projects/biomejs/deploys/6a156dc9054e530008854e5f
😎 Deploy Preview https://deploy-preview-4261--biomejs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 20, 2026

Lunaria Status Overview

🌕 This pull request will trigger status changes.

Learn more

By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.

You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale File Note
en src/content/docs/guides/migrate-eslint-prettier.mdx Source changed, localizations will be marked as outdated.
Warnings reference
Icon Description
🔄️ The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 20, 2026

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: ce58ee7b-e1ce-45e2-96e7-256811654cae

📥 Commits

Reviewing files that changed from the base of the PR and between 61b5aa0 and 4760313.

📒 Files selected for processing (1)
  • src/content/docs/guides/migrate-eslint-prettier.mdx
✅ Files skipped from review due to trivial changes (1)
  • src/content/docs/guides/migrate-eslint-prettier.mdx

Walkthrough

This PR expands the ESLint→Biome migration guide to replace a brief cyclic-reference warning with a detailed caution describing the failure mode and a concrete isolation workflow: temporarily comment out suspected plugin/shared-config entries in eslint.config.js, rerun biome migrate eslint to find the culprit, then re-enable entries one-by-one. An eslint.config.js example and instructions to restore and manually configure affected rules in the resulting biome.json are included.

Suggested reviewers

  • ematipico
🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: adding resolution steps for cyclic reference errors in the ESLint migration guide.
Description check ✅ Passed The description clearly relates to the changeset, explaining the workaround for cyclic reference issues and referencing the linked issue #1818.
Linked Issues check ✅ Passed The PR directly addresses issue #1818 by providing concrete resolution steps (temporary commenting, re-enabling one by one) rather than just acknowledging the problem.
Out of Scope Changes check ✅ Passed All changes are scoped to the ESLint migration documentation as required by issue #1818; no unrelated modifications detected.

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

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

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint skipped: no ESLint configuration detected in root package.json. To enable, add eslint to devDependencies.


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.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/content/docs/guides/migrate-eslint-prettier.mdx`:
- Around line 138-153: The snippet uses jsxA11y.flatConfigs.recommended and
defineConfig but neither is imported, causing runtime/syntax errors; import the
missing symbols by adding an import for jsxA11y (e.g., from
'eslint-plugin-jsx-a11y') and an import for defineConfig (e.g., from
'`@eslint/config`' or the appropriate package) at the top of the shown snippet so
jsxA11y and defineConfig are defined before they are referenced in the array
returned by defineConfig.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: cd2557be-f1f0-40f8-be06-da0ca9ad3baf

📥 Commits

Reviewing files that changed from the base of the PR and between 7d074b1 and bbf670f.

📒 Files selected for processing (1)
  • src/content/docs/guides/migrate-eslint-prettier.mdx

Comment thread src/content/docs/guides/migrate-eslint-prettier.mdx Outdated
Copy link
Copy Markdown
Member

@ematipico ematipico left a comment

Choose a reason for hiding this comment

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

Thank you! I left some suggestions

Comment thread src/content/docs/guides/migrate-eslint-prettier.mdx Outdated
Comment thread src/content/docs/guides/migrate-eslint-prettier.mdx Outdated
Comment thread src/content/docs/guides/migrate-eslint-prettier.mdx Outdated
@Dotify71
Copy link
Copy Markdown
Contributor Author

I've applied all the suggested changes! Note: It looks like the CI code-quality check is currently failing on src/playground/... due to some GritTargetLanguage TypeScript errors, but since I only touched the migration docs, I believe this is unrelated to my PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

📚 Add resolution steps for cyclic references when migrating from ESLint

2 participants