Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement monorepo-friendly mypy.ini discovery rule #16070

Open
sfc-gh-bwarsaw opened this issue Sep 8, 2023 · 2 comments
Open

Implement monorepo-friendly mypy.ini discovery rule #16070

sfc-gh-bwarsaw opened this issue Sep 8, 2023 · 2 comments
Labels
feature topic-configuration Configuration files and flags

Comments

@sfc-gh-bwarsaw
Copy link

Feature

Enhance mypy's mypy.ini discovery rules to look in ancestor directories, in the same way that ruff looks for its ruff.toml file.

Pitch

Let's say I'm working in a monorepo, where subpackages live next to each other in a file system layout similar to this:

README.md
# other monorepo top level files
ruff.toml
libs/
    subpackageA/
        pyproject.toml
        mypy.ini
        src/
        tests/
        docs/
    subpackageB/
        pyproject.toml
        mypy.ini
        src/
        tests/
        docs/
...

When I cd libs/subpackageA to do development work in just subpackageA, I would like for my type checking to be driven by a common mypy.ini file, at the top level of my repo. However, mypy won't walk up the filesystem to discover the mypy.ini file at the top-level. Contrast that with ruff's discovery rules which do walk up the filesystem until it finds a ruff.toml file.

There are workarounds: 1) symlink the subprojects's mypy.ini to the root level mypy.ini; 2) copy the same mypy.ini file into each subpackage directory. Neither option is all that great. A rule similar to ruff's would let me eliminate the symlinks and move the mypy.ini file to the root of my repo, so that its settings can be easily shared across all subpackages in my monorepo.

@AlexWaygood AlexWaygood added the topic-configuration Configuration files and flags label Sep 9, 2023
@michealroberts
Copy link

Could the priority on this be bumped please, we have a pressing need for mypy to play a little nicer with monorepos.

Currently, I am unsure as to why mypy cannot follow the same rules as Python ... could someone explain to me why this is not possible?

@Goldziher
Copy link

+1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature topic-configuration Configuration files and flags
Projects
None yet
Development

No branches or pull requests

4 participants