Up Django req to 4.1, PostgreSQL 11+

This commit is contained in:
Griatch 2022-11-16 20:53:08 +01:00
parent 7f2fb9a121
commit 070ac15418
4 changed files with 82 additions and 50 deletions

View file

@ -29,7 +29,7 @@ jobs:
uses: harmon758/postgresql-action@v1
if: ${{ matrix.TESTING_DB == 'postgresql' }}
with:
postgresql version: '10.7'
postgresql version: '11'
postgresql db: 'evennia'
postgresql user: 'evennia'
postgresql password: 'password'

View file

@ -5,7 +5,7 @@
> Not released yet
> 2019-2022 develop branch (WIP)
Up requirements to Django 4.0+, Twisted 22+, Python 3.9 or 3.10
Increase requirements: Django 4.1+, Twisted 22+ Python 3.9, 3.10, 3.11. PostgreSQL 11+.
- New `drop:holds()` lock default to limit dropping nonsensical things. Access check
defaults to True for backwards-compatibility in 0.9, will be False in 1.0

View file

@ -371,18 +371,18 @@ ERROR_LOGDIR_MISSING = """
"""
ERROR_PYTHON_VERSION = """
ERROR: Python {pversion} used. Evennia requires version
ERROR: Python {python_version} used. Evennia requires version
{python_min} or higher.
"""
WARNING_PYTHON_MAX_TESTED_VERSION = """
WARNING: Python {pversion} used. Evennia is only tested with Python
WARNING: Python {python_version} used. Evennia is only tested with Python
versions {python_min} to {python_max_tested}. If you see unexpected errors, try
reinstalling with a tested Python version instead.
"""
ERROR_TWISTED_VERSION = """
ERROR: Twisted {tversion} found. Evennia requires
ERROR: Twisted {twisted_version} found. Evennia requires
version {twisted_min} or higher.
"""
@ -391,8 +391,8 @@ ERROR_NOTWISTED = """
"""
ERROR_DJANGO_MIN = """
ERROR: Django {dversion} found. Evennia requires at least version {django_min} (but
below version {django_lt}).
ERROR: Django {django_version} found. Evennia supports Django
{django_min} - {django_max_tested}. Using an older version is not supported.
If you are using a virtualenv, use the command `pip install --upgrade -e evennia` where
`evennia` is the folder to where you cloned the Evennia library. If not
@ -404,8 +404,8 @@ ERROR_DJANGO_MIN = """
"""
NOTE_DJANGO_NEW = """
NOTE: Django {dversion} found. This is newer than Evennia's
recommended version ({django_rec}). It might work, but is new
NOTE: Django {django_version} found. This is newer than Evennia's
recommended version ({django_max_tested}). It might work, but is new
enough to not be fully tested yet. Report any issues.
"""
@ -1274,53 +1274,85 @@ def check_main_evennia_dependencies():
not_error (bool): True if no dependency error was found.
"""
error = False
# Python
pversion = ".".join(str(num) for num in sys.version_info if isinstance(num, int))
if LooseVersion(pversion) < LooseVersion(PYTHON_MIN):
print(ERROR_PYTHON_VERSION.format(pversion=pversion, python_min=PYTHON_MIN))
error = True
if LooseVersion(pversion) > LooseVersion(PYTHON_MAX_TESTED):
print(
WARNING_PYTHON_MAX_TESTED_VERSION.format(
pversion=pversion, python_min=PYTHON_MIN, python_max_tested=PYTHON_MAX_TESTED
)
)
def _test_python_version():
"""Test Python version"""
python_version = ".".join(str(num) for num in sys.version_info if isinstance(num, int))
python_curr = LooseVersion(python_version)
python_min = LooseVersion(PYTHON_MIN)
python_max = LooseVersion(PYTHON_MAX_TESTED)
# Twisted
try:
import twisted
tversion = twisted.version.short()
if LooseVersion(tversion) < LooseVersion(TWISTED_MIN):
print(ERROR_TWISTED_VERSION.format(tversion=tversion, twisted_min=TWISTED_MIN))
error = True
except ImportError:
print(ERROR_NOTWISTED)
error = True
# Django
try:
dversion = ".".join(str(num) for num in django.VERSION if isinstance(num, int))
# only the main version (1.5, not 1.5.4.0)
dversion_main = ".".join(dversion.split(".")[:2])
if LooseVersion(dversion) < LooseVersion(DJANGO_MIN):
if python_curr < python_min:
print(ERROR_PYTHON_VERSION.format(python_version=python_version, python_min=PYTHON_MIN))
return False
elif python_curr > python_max:
print(
ERROR_DJANGO_MIN.format(
dversion=dversion_main, django_min=DJANGO_MIN, django_lt=DJANGO_MAX_TESTED
WARNING_PYTHON_MAX_TESTED_VERSION.format(
python_version=python_version,
python_min=PYTHON_MIN,
python_max_tested=PYTHON_MAX_TESTED,
)
)
error = True
elif LooseVersion(DJANGO_MAX_TESTED) <= LooseVersion(dversion_main):
print(NOTE_DJANGO_NEW.format(dversion=dversion_main, django_rec=DJANGO_MAX_TESTED))
except ImportError:
print(ERROR_NODJANGO)
error = True
if error:
sys.exit()
return True
def _test_twisted_version():
"""Test Twisted version"""
try:
import twisted
except ImportError:
print(ERROR_NOTWISTED)
return False
else:
twisted_version = twisted.version.short()
twisted_curr = LooseVersion(twisted_version)
twisted_min = LooseVersion(TWISTED_MIN)
if twisted_curr < twisted_min:
print(
ERROR_TWISTED_VERSION.format(
twisted_version=twisted_version, twisted_min=TWISTED_MIN
)
)
return False
else:
return True
def _test_django_version():
"""Test Django version"""
try:
import django
except ImportError:
print(ERROR_NODJANGO)
return False
else:
django_version = ".".join(str(num) for num in django.VERSION if isinstance(num, int))
# only the main version (1.5, not 1.5.4.0)
django_version = ".".join(django_version.split(".")[:2])
django_curr = LooseVersion(django_version)
django_min = LooseVersion(DJANGO_MIN)
django_max = LooseVersion(DJANGO_MAX_TESTED)
print(django_version, django_curr, django_max, DJANGO_MAX_TESTED)
if django_curr < django_min:
print(
ERROR_DJANGO_MIN.format(
django_version=django_version,
django_min=DJANGO_MIN,
django_max_tested=DJANGO_MAX_TESTED,
)
)
return False
elif django_curr > django_max:
print(
NOTE_DJANGO_NEW.format(
django_version=django_version, django_max_tested=DJANGO_MAX_TESTED
)
)
return True
# return True/False if error was reported or not
return not error
return all((_test_python_version(), _test_twisted_version(), _test_django_version()))
def set_gamedir(path):

View file

@ -2,7 +2,7 @@
# general
attrs >= 19.2.0
django >= 4.0.2, < 4.1
django >= 4.1.3, < 4.2
twisted >= 21.7.0, < 22.0.0
pytz
djangorestframework >= 3.13.1, < 3.14