chore: add ESLint import ordering rule#14433
chore: add ESLint import ordering rule#14433ImBIOS wants to merge 1 commit intogoogle-gemini:mainfrom
Conversation
- Add import/order rule to enforce consistent import organization - Disable source.organizeImports in VS Code settings to prevent conflicts - Configure import groups: builtin → external → internal → parent → sibling - Enable alphabetical sorting within each group This prevents diff noise from inconsistent import ordering across different editors and contributors.
Summary of ChangesHello @ImBIOS, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request standardizes import statements throughout the project by integrating a new ESLint rule. The primary goal is to eliminate inconsistencies in import ordering, which often leads to unnecessary diff noise in pull requests and ensures a uniform code style for all contributors. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces an ESLint rule to enforce consistent import ordering, which is a great step towards improving code consistency and reducing diff noise. The changes are well-scoped, including a necessary adjustment to VS Code settings to prevent conflicts. My review includes one high-severity suggestion to enhance the import/order rule by adding pathGroups to correctly handle internal monorepo packages, ensuring they are grouped as intended.
| { | ||
| groups: [ | ||
| 'builtin', // Node.js built-in modules | ||
| 'external', // External npm packages | ||
| 'internal', // Internal modules (aliases, monorepo packages) | ||
| 'parent', // Parent directory imports | ||
| 'sibling', // Same directory imports | ||
| 'index', // Index file imports | ||
| 'type', // Type-only imports | ||
| ], | ||
| 'newlines-between': 'never', | ||
| alphabetize: { | ||
| order: 'asc', | ||
| caseInsensitive: true, | ||
| }, | ||
| }, |
There was a problem hiding this comment.
For this rule to correctly categorize internal monorepo packages (like @google/gemini-cli-core), you should define pathGroups. Without this, packages scoped under @google/ will be treated as external and won't be grouped with other internal modules as intended.
By adding a pathGroups configuration for @google/** and adjusting pathGroupsExcludedImportTypes, you can ensure that your monorepo's internal packages are correctly placed in the internal group.
{
groups: [
'builtin', // Node.js built-in modules
'external', // External npm packages
'internal', // Internal modules (aliases, monorepo packages)
'parent', // Parent directory imports
'sibling', // Same directory imports
'index', // Index file imports
'type', // Type-only imports
],
pathGroups: [
{
pattern: '@google/**',
group: 'internal',
},
],
pathGroupsExcludedImportTypes: ['builtin'],
'newlines-between': 'never',
alphabetize: {
order: 'asc',
caseInsensitive: true,
},
},|
Hi @ImBIOS, thank you so much for your contribution to Gemini CLI! We really appreciate the time and effort you've put into this. We're making some updates to our contribution process to improve how we track and review changes. Please take a moment to review our recent discussion post: Improving Our Contribution Process & Introducing New Guidelines. Key Update: Starting January 26, 2026, the Gemini CLI project will require all pull requests to be associated with an existing issue. Any pull requests not linked to an issue by that date will be automatically closed. Thank you for your understanding and for being a part of our community! |
|
Hi there! Thank you for your contribution to Gemini CLI. To improve our contribution process and better track changes, we now require all pull requests to be associated with an existing issue, as announced in our recent discussion and as detailed in our CONTRIBUTING.md. This pull request is being closed because it is not currently linked to an issue. You can easily reopen this PR once you have linked it to an issue. How to link an issue: Thank you for your understanding and for being a part of our community! |
Description
Adds ESLint
import/orderrule to enforce consistent import organization across the codebase, preventing diff noise from different editors auto-sorting imports differently.Changes
import/orderESLint rule with configured groups and alphabetical sortingsource.organizeImportsin VS Code settings to prevent conflicts with ESLintBenefits
npm run lint -- --fixNote
This PR only adds the ESLint configuration. A follow-up PR may be needed to apply
--fixacross the codebase to resolve existing violations.