Skip to content

chore(handwritten): centralize mypy configuration and update handwritten package noxfiles#17409

Draft
chalmerlowe wants to merge 4 commits into
mainfrom
feat/centralize-mypy-handwritten
Draft

chore(handwritten): centralize mypy configuration and update handwritten package noxfiles#17409
chalmerlowe wants to merge 4 commits into
mainfrom
feat/centralize-mypy-handwritten

Conversation

@chalmerlowe

@chalmerlowe chalmerlowe commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Note

This is a POC for discussion. It is incomplete and is intended to get buy-in on the general process. It is focused solely on handwritten libraries within the monorepo.

  • Adds a centralized mypy.ini file at the root of the repository to consolidate all shared and package-specific mypy exceptions.
  • Deletes the individual mypy.ini files from the 15 strictly handwritten libraries, establishing the root configuration as the source of truth.
  • Refactored their noxfile.py files to define MYPY_CONFIG_FILE dynamically and standardized their session.run("mypy", ...) invocations.

Note

Work on generated and hybrid libraries is outside the scope of this PR and can be found here: #17408

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request consolidates multiple package-specific mypy.ini configuration files into a single, centralized mypy.ini at the root directory, and updates the noxfile.py files across various packages to reference this central configuration. The reviewer pointed out that setting a global python_version = 3.14 in the centralized configuration and overriding it in individual packages can lead to inconsistent configurations, suggesting that shared configurations should be applied consistently.

Comment thread mypy.ini Outdated
@@ -0,0 +1,94 @@
[mypy]
python_version = 3.14

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

high

Changes to shared configurations, like mypy flags, should be applied consistently across all relevant packages in a dedicated, universal change rather than piecemeal in individual pull requests. Setting a global python_version = 3.14 in the centralized mypy.ini and then overriding it with --python-version in individual package noxfile.py files creates inconsistent configurations. We should avoid these piecemeal overrides and ensure shared configurations are applied consistently.

References
  1. Changes to shared configurations, like mypy flags, should be applied consistently across all relevant packages in a dedicated, universal change rather than piecemeal in individual pull requests.

@chalmerlowe chalmerlowe force-pushed the feat/centralize-mypy-handwritten branch from 3a99b94 to 1afd309 Compare June 9, 2026 19:19
chalmerlowe added a commit that referenced this pull request Jun 16, 2026
…-cloud-datastore POC (#17408)

> [!note]
> This is step one of a multi-step process. The work done here is
outlined below.
Additional steps (to be completed in other PRs) include:
> * generate the remaining **generated packages**
> * generate and/or post process **hybrid packages**

This work:
* Adds a centralized `mypy.ini` file at the root of the repository.
* Updates GAPIC generator templates to omit local `mypy.ini` and
dynamically resolve the root config via a `MYPY_CONFIG_FILE` constant.
* Removes `mypy.ini` replacements from `datastore-integration.yaml`
post-processing.
* Regenerates `google-cloud-datastore` using the updated generator
configurations to serve as a proof of concept.

> [!note]
> Work on strictly handwritten libraries is outside the scope of this PR
and can be found here:
#17409
@chalmerlowe chalmerlowe force-pushed the feat/centralize-mypy-handwritten branch from 3a08f78 to 4854f7e Compare June 17, 2026 13:55
@chalmerlowe chalmerlowe added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Jun 17, 2026
@yoshi-kokoro yoshi-kokoro removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Jun 17, 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