chore(handwritten): centralize mypy configuration and update handwritten package noxfiles#17409
chore(handwritten): centralize mypy configuration and update handwritten package noxfiles#17409chalmerlowe wants to merge 4 commits into
Conversation
There was a problem hiding this comment.
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.
| @@ -0,0 +1,94 @@ | |||
| [mypy] | |||
| python_version = 3.14 | |||
There was a problem hiding this comment.
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
- 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.
3a99b94 to
1afd309
Compare
…-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
3a08f78 to
4854f7e
Compare
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.
mypy.inifile at the root of the repository to consolidate all shared and package-specific mypy exceptions.mypy.inifiles from the 15 strictly handwritten libraries, establishing the root configuration as the source of truth.noxfile.pyfiles to defineMYPY_CONFIG_FILEdynamically and standardized theirsession.run("mypy", ...)invocations.Note
Work on generated and hybrid libraries is outside the scope of this PR and can be found here: #17408