Improvements for project by using automated tooling for dependencies and code style
Hi! I maintain this project as a package for Arch Linux. When looking into simple updates for e.g. django (see !457 (merged) or !456 (merged)) I often run into myriads of other issues to fix (e.g. code styling).
Given that the list of active contributors and maintainers is short, I would like to propose to automate a lot of things, which would greatly improve the reliability of this code base and allow for easier and faster updates to the dependencies. Especially given that soon python minor versions will be released more frequently, it is important for the project to be able to keep up with the changes.
only support the upstream supported versions of python (e.g. currently 3.7 - 3.10) and django (e.g. currently 3.2, 4.0, 4.1), as anything outside of it is unnecessary maintenance burden and blows up the test matrix in CIswitch to using pyproject.toml for dependencies and configuration instead of scattering them across MANIFEST.in, tox.ini, setup.py, setup.cfg, pytest.ini, requirements*.txt (the only odd one out would be flake8, as they do not support pyproject.toml yet) - it is easier for anyone to understand where things are configured and automated tooling can more easily access it to bump dependencies (see below)- use black to auto-format code (no more issues with code styling)
- use mypy to detect typing issues (this might be a bit more involved, as it would also require typing the code base - but this would be very beneficial for understanding and also debugging the code base in the future for anyone working on it)
- use renovate bot to automatically provide merge requests for updating the dependencies
- run scheduled job (e.g. daily) to test against the latest versions of all dependencies
Edited by Abhilash Raj