Skip to content
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

Python 3.11/3.12 upgrade #1004

Closed
15 of 16 tasks
DawoudSheraz opened this issue Feb 20, 2024 · 3 comments
Closed
15 of 16 tasks

Python 3.11/3.12 upgrade #1004

DawoudSheraz opened this issue Feb 20, 2024 · 3 comments

Comments

@DawoudSheraz
Copy link
Contributor

DawoudSheraz commented Feb 20, 2024

Open edX Redwood release planned for June this year will be upgrading from Python 3.8 to Python 3.11 (for edx-platform) and Python 3.12 (for other services). That means the tutor core and its plugins need to be upgraded to support the new Python version. The Python upgrade is focused on two areas:

  1. Ensuring the plugin uses 3.11/3.12 to run the underlying service.
  2. Ensuring the tutor and tutor plugins code is compatible with 3.12.

The service upgrade is under progress (openedx/public-engineering#228). In the meantime, the upgrade can be done for tutor core itself. This task/issue will act as an epic for the underlying upgrade tasks.

General Guidelines

  • Ensure any issue encountered in the tutor, be it due to tutor or the upstream service, is documented on this main issue. If needed, create a separate task/issue to fix it.
  • Prioritize dockerfile changes for 3.11/3.12 compatibility. This is needed for the Redwood cut in late April.
  • Once done, you can add appropriate CI checks for 3.12
  • Start with existing test suites upgrade/compatibility i.e. ensure the test suites in the repo are passing on Python 3.12. Document any test failure and the fix done for remediate the failure
  • To make sure that changes are working as expected, ensure the following where needed
    • verify that the images are built correctly
    • verify the service is up and running after tutor local launch
  • The aim is to merge the Py3.12 changes directly in master (similar to Tutor claims to support Python 3.12, but apparently doesn't (if plugins are involved) #966).
  • Do not hesitate to ask for help, guidance, and/or clarity where needed.

This means the set of changes would need to be compatible with Py 3.8 as well (atleast until the redwood is not released). However, Dockerfile changes would go into nightly.

Action Items

  • Ensure the build is working as expected (core or plugins) with Py311/Py312 (via Dockerfile updates)
  • Add Python 3.12 CI pipeline alongside 3.8. This would remain in place until redwood release
  • Ensure the fixups for failures are done and the code is compatible with Py38

Tutor Codebase Upgrade Status

Depend on Upstream changes

Independent of An Upstream

@kdmccormick
Copy link
Collaborator

@DawoudSheraz We discussed in Lahore that upgrading Python to 3.12 in the Dockerfiles is top priority for Redwood, whereas testing the actual plugin code with 3.12 is not important for Redwood. Could you update the ticket description with that?

@DawoudSheraz
Copy link
Contributor Author

@DawoudSheraz We discussed in Lahore that upgrading Python to 3.12 in the Dockerfiles is top priority for Redwood, whereas testing the actual plugin code with 3.12 is not important for Redwood. Could you update the ticket description with that?

Updated. We have CI checks PRs up for most of the repos, so that is sort-of already done. For dockerfile changes, the changes have been categorized into "Dependent on Upstream" and "Independent of Upstream". For dependents, the issues/failures are being added to the related issues. We are opening PRs in upstreams where needed for 3.12 compatibilties. But for most parts, we are also monitoring 3.12 upgrades in upstream using openedx/public-engineering#234

@kdmccormick kdmccormick changed the title Python 3.12 upgrade Python 3.11/3.12 upgrade Mar 21, 2024
@DawoudSheraz
Copy link
Contributor Author

All the tasks have been completed, closing this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

2 participants