Skip to content

chore: update to Python 3.11/3.12 and Django 4.2/5.2#13

Open
Gi-ron wants to merge 4 commits intomainfrom
sgb/upgrade-python-django-versions
Open

chore: update to Python 3.11/3.12 and Django 4.2/5.2#13
Gi-ron wants to merge 4 commits intomainfrom
sgb/upgrade-python-django-versions

Conversation

@Gi-ron
Copy link
Copy Markdown

@Gi-ron Gi-ron commented Mar 26, 2026

#Actualización a Python 3.11/3.12 y Django 4.2/5.2

1. Archivos modificados

Archivo Cambio
requirements/pip.txt pip 20.3→24.3, setuptools 51.3→75.8, wheel 0.36→0.45
requirements/constraints.txt social-auth-core==4.1.0>=4.5.0
requirements/base.in Agregado Django>=4.2,<5.3, django-cas-ng>=5.0.0
requirements/ci.in Eliminado codecov (discontinuado)
requirements/base.txt Regenerado con pip-compile
requirements/test.txt Regenerado + removido pin de Django
requirements/quality.txt Regenerado con pip-compile
requirements/doc.txt Regenerado con pip-compile
requirements/ci.txt Regenerado (sin codecov)
requirements/dev.txt Regenerado con pip-compile
requirements/pip-tools.txt Regenerado con pip-compile
tox.ini envlist→py{311,312}-django{42,52}, deps actualizados, whitelist_externalsallowlist_externals
setup.cfg Eliminado [wheel] universal = 1
setup.py python_requires>=3.11, classifiers Django 4.2/5.2 + Python 3.11/3.12, BaseExceptionRuntimeError, os.systemsubprocess.run, open() con context managers
.github/workflows/ci.yml runner→ubuntu-22.04, actions v4/v5, matrix Python 3.11/3.12 × Django 4.2/5.2
.github/workflows/pypi-publish.yml runner→ubuntu-22.04, actions v4/v5, Python 3.12, python -m build, pypi-publish @release/v1
openedx_cas/__init__.py Eliminado default_app_config (deprecado Django 3.2+)
openedx_cas/apps.py Agregado default_auto_field = 'django.db.models.AutoField'
openedx_cas/backends.py is not!= (SyntaxWarning Python 3.12+)
openedx_cas/settings/test.py Agregado DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'

2. Deprecaciones encontradas y corregidas

Archivo Qué era deprecado Reemplazo
openedx_cas/__init__.py default_app_config Eliminado (auto-detección desde Django 3.2)
openedx_cas/backends.py (línea 132) is not para comparar strings !=
setup.py BaseException(...) RuntimeError(...)
setup.py os.system(...) subprocess.run(...)
setup.py open() sin context manager with open() as f:
setup.py python setup.py sdist bdist_wheel python -m build (en workflow)
tox.ini whitelist_externals allowlist_externals (tox 4)
setup.cfg [wheel] universal = 1 Eliminado (artefacto Py2/3)

3. Dependencias actualizadas

Paquete Versión anterior Nueva versión Razón
django-cas-ng 4.3.0 >=5.0.0 (resuelve a 5.1.0) Soporte Django 4.2/5.2
social-auth-core ==4.1.0 (pin) >=4.5.0 (resuelve a 4.8.5) Soporte Django 5.2
python-cas 1.6.0 1.7.1 Actualizado via pip-compile
lxml 4.9.1 6.0.2 4.9.1 no compila en Python 3.12+
pip 20.3.3 24.3.1 Incompatible con Python 3.12
setuptools 51.3.3 75.8.0 Incompatible con Python 3.12
codecov 2.1.12 Eliminado Paquete discontinuado

4. Compatibilidad y restricciones remotas

  • edx-lint common_constraints.txt: Ahora dice Django<6.0compatible con Django 4.2 y 5.2. No fue necesario comentarla.
  • Migración 0001_initial.py: Usa models.AutoField explícito — compatible con Django 5.2.
  • No se encontraron imports deprecados de Django (force_text, smart_text, ugettext_lazy, url(), etc.) en ningún archivo .py.
  • No se encontraron imports deprecados de Python (collections.Callable, typing.List, distutils, datetime.utcnow()) en ningún archivo.
  • No se encontraron métodos de unittest deprecados (assertEquals, etc.) en los tests.

5. Resultados de tests

15 tests pasados, 0 fallos
Django 5.2.12, Python 3.13.12
Sin DeprecationWarnings

6. Trabajo manual restante

  • Verificar CI en GitHub: Los archivos .txt fueron generados con Python 3.13 (disponible en este entorno). Idealmente regenerar con make upgrade en Linux con Python 3.12 para máxima fidelidad.
  • Codecov reporting en CI: Se eliminó el paquete Python codecov. Si se necesita reportar coverage, agregar el Codecov GitHub Action al workflow ci.yml.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant