Skip to content

Commit

Permalink
🚀 Release v2.1.0
Browse files Browse the repository at this point in the history
* ❗️ Install test deps flexibly
* 👷 Expand Python+Django versions test matrices
* ✏️ Update ReadMe badges
* ✏️ Update docs with better compatibility info
* ✏️ Update PyPI classifiers
* ⬆️ Bump to version 2.1

PR #300
  • Loading branch information
jambonrose authored Aug 6, 2024
1 parent 9ff56a7 commit 2ff2ef4
Show file tree
Hide file tree
Showing 11 changed files with 110 additions and 60 deletions.
2 changes: 1 addition & 1 deletion .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 2.0.0
current_version = 2.1.0
commit = False
tag = False
parse = (?P<major>\d+)\.(?P<minor>\d+)((\.(?P<patch>\d+))|((?P<level>(a|b|rc|final))(?P<prerelease>\d+)))
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/run-project-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,14 @@ jobs:
matrix:
os: [ubuntu-20.04, windows-2022]
# Django LTS versions & latest version only
django-version: ["2.2", "3.2"]
django-version: ["2.2", "3.2", "4.2"]
project: ["extension", "integration", "replacement"]
exclude:
# Django Registration 2 does not support Django 3.2
# Django Registration 2 does not support Django above 2.2
- django-version: "3.2"
project: "integration"
- django-version: "4.2"
project: "integration"

steps:
- uses: actions/checkout@v4
Expand Down
52 changes: 50 additions & 2 deletions .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,56 @@ jobs:
strategy:
matrix:
os: [ubuntu-20.04, windows-2022]
python-version: ["3.6", "3.7", "3.8", "3.9"]
django-version: ["2.2", "3.0", "3.1", "3.2"]
python-version: ["3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
django-version: ["2.2", "3.0", "3.1", "3.2", "4.0", "4.1", "4.2"]
exclude:
# Django 2.2
- django-version: "2.2"
python-version: "3.10"
- django-version: "2.2"
python-version: "3.11"
- django-version: "2.2"
python-version: "3.12"
# Django 3.0
- django-version: "3.0"
python-version: "3.10"
- django-version: "3.0"
python-version: "3.11"
- django-version: "3.0"
python-version: "3.12"
# Django 3.1
- django-version: "3.1"
python-version: "3.10"
- django-version: "3.1"
python-version: "3.11"
- django-version: "3.1"
python-version: "3.12"
# Django 3.2
- django-version: "3.2"
python-version: "3.11"
- django-version: "3.2"
python-version: "3.12"
# Django 4.0
- django-version: "4.0"
python-version: "3.6"
- django-version: "4.0"
python-version: "3.7"
- django-version: "4.0"
python-version: "3.11"
- django-version: "4.0"
python-version: "3.12"
# Django 4.1
- django-version: "4.1"
python-version: "3.6"
- django-version: "4.1"
python-version: "3.7"
- django-version: "4.1"
python-version: "3.12"
# Django 4.2
- django-version: "4.2"
python-version: "3.6"
- django-version: "4.2"
python-version: "3.7"

steps:
- uses: actions/checkout@v4
Expand Down
18 changes: 7 additions & 11 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,31 @@ Latest Release: |Version| |Tag|

Documentation: |StableDocs|

Compatibility: |Implementation| |Python| |Django| |License| |Black|
Compatibility: |Python| |Django| |License| |Black|

Tests: |Pre-commit| |Coverage|

.. |Version| image:: http://img.shields.io/pypi/v/django-improved-user.svg
.. |Version| image:: https://img.shields.io/pypi/v/django-improved-user
:target: https://pypi.org/project/django-improved-user/
:alt: PyPI Version

.. |Tag| image:: https://img.shields.io/github/tag/jambonrose/django-improved-user.svg
.. |Tag| image:: https://img.shields.io/github/v/tag/jambonrose/django-improved-user
:target: https://github.com/jambonrose/django-improved-user/releases
:alt: Github Tag

.. |StableDocs| image:: https://readthedocs.org/projects/django-improved-user/badge/?version=stable
:target: https://django-improved-user.readthedocs.io/en/stable/?badge=stable
:alt: Stable Documentation Status

.. |Implementation| image:: https://img.shields.io/pypi/implementation/django-improved-user.svg
:target: https://pypi.org/project/django-improved-user/
:alt: Python Implementation Support

.. |Python| image:: https://img.shields.io/pypi/pyversions/django-improved-user.svg
.. |Python| image:: https://img.shields.io/pypi/pyversions/django-improved-user
:target: https://pypi.org/project/django-improved-user/
:alt: Python Support

.. |Django| image:: https://img.shields.io/badge/Django-2.2%2C%203.0%2C%203.1%2C%203.2-blue.svg
.. |Django| image:: https://img.shields.io/pypi/frameworkversions/django/django-improved-user
:target: https://pypi.org/project/django-improved-user/
:alt: Django Support

.. |License| image:: http://img.shields.io/pypi/l/django-improved-user.svg
.. |License| image:: https://img.shields.io/pypi/l/django-improved-user
:target: http://opensource.org/licenses/BSD-2-Clause
:alt: License

Expand All @@ -42,7 +38,7 @@ Tests: |Pre-commit| |Coverage|
:target: https://codecov.io/gh/jambonrose/django-improved-user
:alt: Coverage Status

.. |Black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
.. |Black| image:: https://img.shields.io/badge/code%20style-black-000000
:target: https://github.com/psf/black

.. end-badges
Expand Down
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ def setup(app):
# The short X.Y version.
version = "2.0"
# The full version, including alpha/beta/rc tags.
release = "2.0.0"
release = "2.1.0"

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
3 changes: 3 additions & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ If you're in a rush, head over to :doc:`quickstart`.
If you're new and want to see what your options are, please read
:doc:`select_configuration_method`.

The documentation you are viewing covers Django Improved User 2.1,
compatible with Django 2.2, 3.0, 3.1, 3.2, 4.0, 4.1, 4.2.

.. toctree::
:caption: Contents:
:glob:
Expand Down
8 changes: 4 additions & 4 deletions docs/quickstart_contrib.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ You can limit tests or pass paramaters as when using ``manage.py test``.
$ ./runtests.py tests.test_basic -v 3
If you have all of the supported Python versions installed (Python 3.7,
3.8, 3.9, and 3.10), you may use ``tox`` to run all linters and test the
If you have all of the supported Python versions installed,
you may use ``tox`` to run all linters and test the
package with multiple versions of Python and Django.

.. code:: console
Expand All @@ -42,8 +42,8 @@ tox. For instance:

.. code:: console
$ tox -e py36-django111-unit tests.test_basic
$ tox -e py36-django111-integration user_integration.tests.TestViews.test_home
$ tox -e py311-django42-unit tests.test_basic
$ tox -e py311-django42-integration user_integration.tests.TestViews.test_home
Any change to the code should first be discussed in an issue.

Expand Down
5 changes: 5 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,18 @@ classifiers = [
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3 :: Only",
"Framework :: Django",
"Framework :: Django :: 2.2",
"Framework :: Django :: 3.0",
"Framework :: Django :: 3.1",
"Framework :: Django :: 3.2",
"Framework :: Django :: 4.0",
"Framework :: Django :: 4.1",
"Framework :: Django :: 4.2",
]

[project.urls]
Expand Down
26 changes: 13 additions & 13 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
astroid==2.9.2
bumpversion==0.6.0
check-manifest==0.47
coverage==6.2
docutils==0.18.1
factory-boy==3.2.1
Faker==11.3.0
flit==3.6.0
Pygments==2.11.2
pylint==2.12.2
pylint-django==2.5.0
python-dateutil==2.8.2
tox==3.24.5
astroid>=2.9.2
bumpversion>=0.6.0
check-manifest>=0.47
coverage>=6.2
docutils>=0.18.1
factory-boy>=3.2.1
Faker>=11.3.0
flit>=3.6.0
Pygments>=2.11.2
pylint>=2.12.2
pylint-django>=2.5.0
python-dateutil>=2.8.2
tox>=3.24.5
2 changes: 1 addition & 1 deletion src/improved_user/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# 2. set default app config

# pylint: disable=invalid-name
__version__ = "2.0.0"
__version__ = "2.1.0"
# https://docs.djangoproject.com/en/stable/ref/applications/#configuring-applications
default_app_config = "improved_user.apps.ImprovedUserConfig"
# pylint: enable=invalid-name
46 changes: 21 additions & 25 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -1,53 +1,49 @@
[tox]
isolated_build = True
envlist =
; py39-django32-lint,
; py39-django32-pylint,
py39-django32-pkgcheck,
py311-django42-pkgcheck,
py312-docs,
py{36,37,38,39}-django{22,30,31,32}-unit,
py39-django{22,32}-{extension,replacement}
py39-django{22}-{integration}
py310-djangomain-{unit,extension,integration,replacement}
py{36,37,38,39}-django{22,30,31}-unit,
py{36,37,38,39,310}-django32-unit,
py{38,39,310}-django40-unit,
py{38,39,310,311}-django41-unit,
py{38,39,310,311,312}-django42-unit,
py39-django{22,32,42}-{extension,replacement}

[testenv]
changedir =
docs: docs
extension: example_extension_project
integration: example_integration_project
replacement: example_replacement_project
unit: {toxinidir}
skip_install =
{fixme,lint,pkgcheck,pylint}: true
pkgcheck: true
extras =
{extension,fixme,integration,pylint,replacement,unit}: factory
{extension,
replacement,unit}: factory
setenv =
PYTHONDONTWRITEBYTECODE=1
{extension,integration,replacement,unit}: PYTHONWARNINGS=once
{extension,replacement,unit}: PYTHONWARNINGS=once
deps =
{extension,fixme,integration,lint,pkgcheck,pylint,replacement,unit}: -r{toxinidir}/requirements.txt
{extension,pkgcheck,replacement,unit}: -r{toxinidir}/requirements.txt
docs: -r{toxinidir}/doc-requirements.txt
{extension,fixme,pylint}: -r{toxinidir}/example_extension_project/requirements.txt
{fixme,integration,pylint}: -r{toxinidir}/example_integration_project/requirements.txt
{fixme,pylint,replacement}: -r{toxinidir}/example_replacement_project/requirements.txt
extension: -r{toxinidir}/example_extension_project/requirements.txt
replacement: -r{toxinidir}/example_replacement_project/requirements.txt
django22: Django>=2.2,<2.3
django30: Django>=3.0,<3.1
django31: Django>=3.1,<3.2
django32: Django>=3.2,<3.3
djangomain: https://github.com/django/django/archive/main.tar.gz
django40: Django>=4.0,<4.1
django41: Django>=4.1,<4.2
django42: Django>=4.2,<4.3
commands =
docs: sphinx-build -W -b html -d {envtmpdir}/doctrees . {envtmpdir}/html
docs: python -msphinx -b linkcheck . build/linkcheck
{extension,integration,replacement}: coverage erase
{extension,integration,replacement}: coverage run manage.py test {posargs}
{extension,integration,replacement}: coverage combine --append
{extension,integration,replacement}: coverage report
lint: flake8 src tests runtests.py example_extension_project example_integration_project example_extension_project
lint: isort --verbose --check-only --diff --recursive src tests setup.py runtests.py example_extension_project example_integration_project example_replacement_project
{extension,replacement}: coverage erase
{extension,replacement}: coverage run manage.py test {posargs}
{extension,replacement}: coverage combine --append
{extension,replacement}: coverage report
pkgcheck: check-manifest {toxinidir}
# example_*_project/manage.py example_*_project/config example_*_project/user_*
pylint: pylint -d duplicate-code -d fixme src tests setup.py runtests.py example_extension_project/manage.py example_integration_project/manage.py example_replacement_project/manage.py example_extension_project/config example_integration_project/config example_replacement_project/config example_extension_project/user_extension example_integration_project/user_integration example_replacement_project/user_replacement
fixme: pylint src tests setup.py runtests.py example_extension_project/manage.py example_integration_project/manage.py example_replacement_project/manage.py example_extension_project/config example_integration_project/config example_replacement_project/config example_extension_project/user_extension example_integration_project/user_integration example_replacement_project/user_replacement
unit: coverage erase
unit: coverage run runtests.py {posargs}
unit: coverage combine --append
Expand Down

0 comments on commit 2ff2ef4

Please sign in to comment.