-
Notifications
You must be signed in to change notification settings - Fork 10
chore: add support for Python 3.12 and Django 5.2 #250
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@jignaciopm we need to review and merge or close all dependabot PRs (like this one #249) for all plugins and xblock. Also let's make sure that all requirements in the workflows are updated to the latest compatible major version |
514fd77 to
3b2f600
Compare
I already checked, and all the workflows are updated to the last major version. |
a08b075 to
2cc7a23
Compare
@jignaciopm awesome, did we check this as well for the rest of the plugins/blocks? Let's please make sure we let the comment in the rest of the PRs, thanks |
magajh
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Calling out a few remaining items for this PR (and things to keep in mind for the other PRs):
- We still need to update the README: https://internal.docs.edunext.co/en/latest/internal/BusinessDivisions/Hosting/hd-teams/heimdell/Descontrol/Internal_processes/support_guide_for_eox_plugins_in_new_openedx_releases.html#actualizacion-de-readme
- For the rest of the PRs: Let’s verify whether the plugin’s own constraints are still needed; if not, remove them: https://internal.docs.edunext.co/en/latest/internal/BusinessDivisions/Hosting/hd-teams/heimdell/Descontrol/Internal_processes/support_guide_for_eox_plugins_in_new_openedx_releases.html#revisar-constraints. Please leave a short comment in each PR confirming that this check was done, so we know the step wasn’t skipped.
- Not sure if you already did this: we need to install these plugins/xblocks in Tutor main from the branch to ensure there are no backend errors: https://internal.docs.edunext.co/en/latest/internal/BusinessDivisions/Hosting/hd-teams/heimdell/Descontrol/Internal_processes/support_guide_for_eox_plugins_in_new_openedx_releases.html#verificacion-de-backends. If the installation goes smoothly, we’re good. Usually we do this with the Tutor version from the new release, but since the cut hasn’t happened yet, testing with Tutor main is fine. Please also add a note in each PR confirming whether the plugin was installed on Tutor main and whether it installed cleanly.
—
We’re skipping manual test cases execution and remote plugin installation for now because we don’t have ulmo.master yet: https://internal.docs.edunext.co/en/latest/internal/BusinessDivisions/Hosting/hd-teams/heimdell/Descontrol/Internal_processes/support_guide_for_eox_plugins_in_new_openedx_releases.html#ejecucion-de-casos-de-prueba
@jignaciopm please let me know once you’ve fixed this, or confirm we’re applying the same change across the other PRs so I can review those as well. thanks
2cc7a23 to
1901dd7
Compare
8a8f3d2 to
e287563
Compare
| # NOTE: Pylint 4.x introduces changes in how the "ignore" and "ignore-patterns" options | ||
| # are parsed from setup.cfg and other configuration files. This causes Django migration | ||
| # modules (e.g., eox_tenant/migrations) to be linted even when explicitly ignored. | ||
| # Until we find a stable fix or plugin-based workaround, we keep Pylint pinned below 4. | ||
| pylint<4 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I need to add this constraint because yesterday it was release pylint==4.0.0, and we have an issue with that:
$ make quality
find . -name '__pycache__' -exec rm -rf {} +
find . -name '*.pyc' -exec rm -f {} +
find . -name '*.pyo' -exec rm -f {} +
find . -name '*~' -exec rm -f {} +
pycodestyle ./eox_tenant
pylint ./eox_tenant --rcfile=./setup.cfg
************* Module eox_tenant.migrations.0005_auto_20191226_1225
eox_tenant/migrations/0005_auto_20191226_1225.py:1:0: C0114: Missing module docstring (missing-module-docstring)
eox_tenant/migrations/0005_auto_20191226_1225.py:1:0: C0103: Module name "0005_auto_20191226_1225" doesn't conform to snake_case naming style (invalid-name)
eox_tenant/migrations/0005_auto_20191226_1225.py:9:0: C0115: Missing class docstring (missing-class-docstring)
************* Module eox_tenant.migrations.0006_tenantorganization
eox_tenant/migrations/0006_tenantorganization.py:1:0: C0114: Missing module docstring (missing-module-docstring)
eox_tenant/migrations/0006_tenantorganization.py:1:0: C0103: Module name "0006_tenantorganization" doesn't conform to snake_case naming style (invalid-name)
eox_tenant/migrations/0006_tenantorganization.py:6:0: C0115: Missing class docstring (missing-class-docstring)
************* Module eox_tenant.migrations.0001_initial
eox_tenant/migrations/0001_initial.py:1:0: C0114: Missing module docstring (missing-module-docstring)
eox_tenant/migrations/0001_initial.py:1:0: C0103: Module name "0001_initial" doesn't conform to snake_case naming style (invalid-name)
eox_tenant/migrations/0001_initial.py:9:0: C0115: Missing class docstring (missing-class-docstring)
************* Module eox_tenant.migrations.0003_auto_20190620_1704
eox_tenant/migrations/0003_auto_20190620_1704.py:1:0: C0114: Missing module docstring (missing-module-docstring)
eox_tenant/migrations/0003_auto_20190620_1704.py:1:0: C0103: Module name "0003_auto_20190620_1704" doesn't conform to snake_case naming style (invalid-name)
eox_tenant/migrations/0003_auto_20190620_1704.py:10:0: C0115: Missing class docstring (missing-class-docstring)
************* Module eox_tenant.migrations.0008_synchronize_tenants
eox_tenant/migrations/0008_synchronize_tenants.py:1:0: C0114: Missing module docstring (missing-module-docstring)
eox_tenant/migrations/0008_synchronize_tenants.py:1:0: C0103: Module name "0008_synchronize_tenants" doesn't conform to snake_case naming style (invalid-name)
eox_tenant/migrations/0008_synchronize_tenants.py:9:0: C0116: Missing function or method docstring (missing-function-docstring)
eox_tenant/migrations/0008_synchronize_tenants.py:9:24: W0613: Unused argument 'apps' (unused-argument)
eox_tenant/migrations/0008_synchronize_tenants.py:9:30: W0613: Unused argument 'schema_editor' (unused-argument)
eox_tenant/migrations/0008_synchronize_tenants.py:13:0: C0115: Missing class docstring (missing-class-docstring)
************* Module eox_tenant.migrations.0007_auto_20200922_1421
eox_tenant/migrations/0007_auto_20200922_1421.py:30:0: C0301: Line too long (207/120) (line-too-long)
eox_tenant/migrations/0007_auto_20200922_1421.py:35:0: C0301: Line too long (207/120) (line-too-long)
eox_tenant/migrations/0007_auto_20200922_1421.py:40:0: C0301: Line too long (207/120) (line-too-long)
eox_tenant/migrations/0007_auto_20200922_1421.py:45:0: C0301: Line too long (207/120) (line-too-long)
eox_tenant/migrations/0007_auto_20200922_1421.py:50:0: C0301: Line too long (207/120) (line-too-long)
eox_tenant/migrations/0007_auto_20200922_1421.py:1:0: C0114: Missing module docstring (missing-module-docstring)
eox_tenant/migrations/0007_auto_20200922_1421.py:1:0: C0103: Module name "0007_auto_20200922_1421" doesn't conform to snake_case naming style (invalid-name)
eox_tenant/migrations/0007_auto_20200922_1421.py:10:0: C0115: Missing class docstring (missing-class-docstring)
------------------------------------------------------------------
Your code has been rated at 9.90/10 (previous run: 9.90/10, +0.00)
make: *** [Makefile:50: quality] Error 20I had a conversation with ChatGPT, but I didn't manage to resolve it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jignaciopm understood. I’d suggest we first try adjusting the config so pylint ignores this file in the new version. If due to a bug in the new version it still won’t ignore it, let’s not spend more time on it and keep this constraint as is
83008f1 to
d814990
Compare
magajh
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you @jignaciopm. Just a couple of minor comments left.
Please remember to leave the comment here once we have tested the installation in tutor main
13f46d5 to
a6633e6
Compare
a6633e6 to
98d7f32
Compare
98d7f32 to
cf9fe86
Compare
magajh
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
@Asespinel could you please confirm that this plugin was installed in tutor main without a problem?


🧩 Summary
This PR updates the project dependencies by running
make upgrade, aligning them with the latest compatible versions under Python 3.12.It also updates the Django version constraint to support Django 5.2 while maintaining compatibility with Python ≥3.11 (lower versions are no longer supported).
🛠️ Changes
✅ Rationale
🔍 Verification