support for "local plugins" (configured explicitly instead of via entry points)
We have a number of repo-specific lint rules we'd like to apply. It's important that engineers working in the repo can add or update lint rules with low friction, so we want the plugin code in the same repo that is being checked. It's possible to achieve this by adding a setup.py to a flake8 plugin subdirectory and modifying requirements files to separately editable-install it, but it's a bit unpleasant: generates egg-info metadata that has to be committed or ignored, takes extra time on pip install because editable installs are always reinstalled, requires a full directory with at least three files in it, where otherwise you'd probably just need a single module.
It would be really nice to have a way to configure a plugin purely in setup.cfg
, without having to involve setuptools at all. Pytest is an example of a project that uses setuptools entry points, but also provides a way to configure local plugins without the use of setuptools.