Repository: jazzband/django-axes

Issue:
Version 6 release
**django-axes version 6** has been released in May 2023 and has introduced some breaking changes that may require you to update your project configuration from version 5 and earlier configurations if you have used deprecated configuration keys. Please consult this issue as well as the **version 5 to version 6 RTD upgrade guide**:

https://django-axes.readthedocs.io/en/latest/2_installation.html#version-6-breaking-changes-and-upgrading-from-django-axes-version-5

---

The goal for the next major version 6 is to produce an improved version of Axes where the functionality and configuration is more consistent and documentation has more examples of configuring the project to suit individual project scenarios.

This issue will track larger design points and deprecating functionality as a whole and act as an entrypoint for people wanting to participate in the version 6 design, development, testing, and release process.

There is no official timeline or feature set agreed upon as of yet, the project is open for participation and discussion.

Larger features that will cause deprecation in settings and APIs and require the major semantic versioning bump to 6.x include.

- Improvement of HTTP status codes based on #570
- Improvement of sensitive data processing based on #663
- Redesign of lockout parameter resolution based on #690 and #692

Version 6 also includes issues:

- #1038 
- #784 
- #772 

And PRs:

- #1057 
- #1055 
- #1050 
- #1048 
- #1044 
- #1036


Discussion:
Hey @hirotasoshu, do you happen to have thoughts on what to include in the initial `6.0.0` release?

I would kind of want to see #690 and #692 as part of the breaking release as they have been on the backlog for quite some time, any thoughts on those? I think specifying either a callable or a list of arguments to take into account would be a good approach?
All related issues and proposals are merged. The next would be to check the current docs and instructions, bake release notes, and write upgrade instructions in the docs for anyone updating from version 5.x to 6.x. Are there any other blockers for making the release after that?
@aleksihakli I think we should also include #772 to new release. Since we already deprecate a lot of old stuff, deprecate `is_admin_site` will look harmonious in a major release
Agreed. I don't have time to update the implementations myself any time soon but would you or anyone else happen to have the chance of making a PR for that?
We should make release notes and upgrade instructions for people who wish to use Axes and keep the same behaviour as they had in the previous release. 

After that I think we could roll out version 6.0.0 as a latest stable release?

The RTD documentation and changelog could perhaps be a good place to include the instructions in.

Resolving patch:
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -35,7 +35,7 @@
     package_dir={"axes": "axes"},
     use_scm_version=True,
     setup_requires=["setuptools_scm"],
-    python_requires=">=3.7",
+    python_requires=">=3.8",
     install_requires=["django>=3.2", "setuptools"],
     extras_require={
         "ipware": "django-ipware>=3",
@@ -56,7 +56,6 @@
         "Operating System :: OS Independent",
         "Programming Language :: Python",
         "Programming Language :: Python :: 3",
-        "Programming Language :: Python :: 3.7",
         "Programming Language :: Python :: 3.8",
         "Programming Language :: Python :: 3.9",
         "Programming Language :: Python :: 3.10",


Test patch:
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -13,7 +13,7 @@ jobs:
       fail-fast: false
       max-parallel: 5
       matrix:
-        python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
+        python-version: ['3.8', '3.9', '3.10', '3.11']
         django-version: ['3.2', '4.1', '4.2']
         include:
           # Tox configuration for QA environment
@@ -34,13 +34,6 @@ jobs:
             django-version: '4.2'
             experimental: true
         exclude:
-          # Exclude Python 3.7 for Django 4.x and Django main
-          - python-version: '3.7'
-            django-version: '4.1'
-          - python-version: '3.7'
-            django-version: '4.2'
-          - python-version: '3.7'
-            django-version: 'main'
           # Exclude Python 3.11 for Django 3.2 and Django 4.0
           - python-version: '3.11'
             django-version: '3.2'