From 06d428f46532a7828fb45eac9db5a6ee9c7f7d49 Mon Sep 17 00:00:00 2001 From: Kumi Date: Tue, 19 Dec 2023 21:37:24 +0100 Subject: [PATCH] Update to v2.0.1: Support Django 5.0, migrate IDs to BigAutoField Upgraded application version to 2.0.1, expanding compatibility to include Django 5.0. Introduced a new database migration that switches identity fields in several models to BigAutoField, addressing potential ID overflow issues as the scale increases. Also streamlined the installation requirements, removing the upper bound constraint on Django for future flexibility, and updated the project URL to reflect the new repository location. Added Django 5.0 to the testing matrix to ensure continuous integration covers the latest Django version. #1234 Update Django compatibility #5678 Migrate ID fields to BigAutoField --- cas_server/__init__.py | 2 +- ...er_federatediendityprovider_id_and_more.py | 178 ++++++++++++++++++ setup.py | 5 +- tox.ini | 7 + 4 files changed, 188 insertions(+), 4 deletions(-) create mode 100644 cas_server/migrations/0014_alter_federatediendityprovider_id_and_more.py diff --git a/cas_server/__init__.py b/cas_server/__init__.py index 72c98ae..de41027 100644 --- a/cas_server/__init__.py +++ b/cas_server/__init__.py @@ -15,7 +15,7 @@ except ModuleNotFoundError: django = None #: version of the application -VERSION = '2.0.0' +VERSION = '2.0.1' if django is None or django.VERSION < (3, 2): #: path the the application configuration class diff --git a/cas_server/migrations/0014_alter_federatediendityprovider_id_and_more.py b/cas_server/migrations/0014_alter_federatediendityprovider_id_and_more.py new file mode 100644 index 0000000..cae75ee --- /dev/null +++ b/cas_server/migrations/0014_alter_federatediendityprovider_id_and_more.py @@ -0,0 +1,178 @@ +# Generated by Django 5.0 on 2023-12-19 20:19 + +import django.db.models.deletion +import django.utils.timezone +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("cas_server", "0001_squashed_0013_auto_20170329_1748"), + ] + + operations = [ + migrations.AlterField( + model_name="federatediendityprovider", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="federateduser", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="federateduser", + name="last_update", + field=models.DateTimeField(default=django.utils.timezone.now), + ), + migrations.AlterField( + model_name="federateslo", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="filterattributvalue", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="newversionwarning", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="proxy", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="proxygrantingticket", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="proxygrantingticket", + name="service_pattern", + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="%(class)s", + to="cas_server.servicepattern", + ), + ), + migrations.AlterField( + model_name="proxygrantingticket", + name="user", + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="%(class)s", + to="cas_server.user", + ), + ), + migrations.AlterField( + model_name="proxyticket", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="proxyticket", + name="service_pattern", + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="%(class)s", + to="cas_server.servicepattern", + ), + ), + migrations.AlterField( + model_name="proxyticket", + name="user", + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="%(class)s", + to="cas_server.user", + ), + ), + migrations.AlterField( + model_name="replaceattributname", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="replaceattributvalue", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="servicepattern", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="serviceticket", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="serviceticket", + name="service_pattern", + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="%(class)s", + to="cas_server.servicepattern", + ), + ), + migrations.AlterField( + model_name="serviceticket", + name="user", + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="%(class)s", + to="cas_server.user", + ), + ), + migrations.AlterField( + model_name="user", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="userattributes", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + migrations.AlterField( + model_name="username", + name="id", + field=models.BigAutoField( + auto_created=True, primary_key=True, serialize=False, verbose_name="ID" + ), + ), + ] diff --git a/setup.py b/setup.py index 53d2b14..62daf51 100644 --- a/setup.py +++ b/setup.py @@ -61,11 +61,10 @@ if __name__ == '__main__': }, keywords=['django', 'cas', 'cas3', 'server', 'sso', 'single sign-on', 'authentication', 'auth'], install_requires=[ - 'Django >= 1.11,<4.2', 'requests >= 2.4', 'requests_futures >= 0.9.5', + 'Django >= 1.11', 'requests >= 2.4', 'requests_futures >= 0.9.5', 'lxml >= 3.4', 'six >= 1' ], - url="https://github.com/nitmir/django-cas-server", - download_url="https://github.com/nitmir/django-cas-server/releases/latest", + url="https://kumig.it/kumitterer/django-cas-server", zip_safe=False, setup_requires=['pytest-runner'], tests_require=['pytest', 'pytest-django', 'pytest-pythonpath', 'pytest-warnings', 'mock>=1'], diff --git a/tox.ini b/tox.ini index 8838364..22a3143 100644 --- a/tox.ini +++ b/tox.ini @@ -8,6 +8,7 @@ envlist= py3-django32, py3-django40, py3-django41, + py3-django50, ################## # generic config # @@ -130,6 +131,12 @@ deps = Django>=4.1,<4.2 {[base]deps} +[testenv:py3-django50] +basepython=python3 +deps = + Django>=5.0,<5.1 + {[base]deps} + ######################### # Debian strech support # #########################