Skip to content

Python 3.10#370

Merged
JoeyRubas merged 45 commits intoMIT-Tab:masterfrom
JoeyRubas:just-py310
Oct 26, 2025
Merged

Python 3.10#370
JoeyRubas merged 45 commits intoMIT-Tab:masterfrom
JoeyRubas:just-py310

Conversation

@JoeyRubas
Copy link
Copy Markdown
Member

@JoeyRubas JoeyRubas commented Mar 7, 2025

The intended incrimental upgrade path is:

  1. Django 3.1 (Done)
  2. Python 3.10
  3. Django 5.1
  4. Python 3.12

I have branches for most of these ready and tested locally, going to test deploying them one at a time. I didn't keep great notes about where the breaking changes where for particulair associated updates (i.e. by the end up this chain, I know random=random.random needs to be removed but I'm not sure which specific update it breaks at) so some of these might be incorporated earlier than strictly nessicary.

Edit: Gtting tests working ended up (ironically enough) being far harder than getting this working locally and on DO, but with some more heavy handed updates to the selenium stuff, this should be good to go.

@JoeyRubas JoeyRubas force-pushed the just-py310 branch 3 times, most recently from a94032b to 349c286 Compare March 12, 2025 13:54
Comment thread mittab/libs/tests/test_case.py Outdated
@JoeyRubas JoeyRubas added this to the UVA Release Window milestone Oct 10, 2025
@JoeyRubas JoeyRubas requested a review from Copilot October 26, 2025 15:52
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR upgrades the project from Python 3.7 to Python 3.10, which is part of a multi-step upgrade path leading to Django 5.1 and Python 3.12. The changes include updating Python versions, dependency packages, test infrastructure, and fixing compatibility issues.

Key changes:

  • Python version upgraded from 3.7 to 3.10.16 across all environments
  • Major dependency updates including pytest, selenium, splinter, and gunicorn
  • Enhanced SSL/TLS support for MySQL database connections
  • Modernized test infrastructure with improved Selenium handling and proper transaction support

Reviewed Changes

Copilot reviewed 20 out of 24 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
Pipfile Updated Python version and dependency packages to Python 3.10-compatible versions
Dockerfile* Updated base images to use Python 3.10
.python-version Changed Python version specification to 3.10.16
.circleci/config.yml Updated CI configuration for Python 3.10 and improved dependency caching
mittab/settings.py Added SSL certificate configuration for remote MySQL connections
mittab/libs/backup/handlers.py Added SSL arguments to MySQL dump/restore commands
mittab/libs/tab_logic/init.py Fixed random.shuffle call to remove deprecated random parameter
mittab/libs/tests/test_case.py Modernized Selenium test infrastructure with explicit waits and headless Chrome
mittab/libs/tests/web/*.py Updated Selenium selectors to use XPath and replaced deprecated methods
mittab/libs/tests/tab_logic/*.py Added transaction=True to pytest.mark.django_db decorators
mittab/apps/tab/management/commands/ensure_tournament_initialized.py New management command for tournament initialization

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread mittab/libs/tests/tab_logic/test_pairing.py Outdated
Comment thread mittab/libs/tests/tab_logic/test_ranking_logic.py Outdated
Comment thread mittab/libs/tests/tab_logic/test_outround_pairing.py Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@JoeyRubas
Copy link
Copy Markdown
Member Author

Smoke test at UVA went great, but required some duct tape and scaffolding for the CA needed to use mysql over SSL. That's mostly cleaned up but probably could still benefit from a longer term solution. But it's working and ready to progress for now

@JoeyRubas JoeyRubas merged commit 203bcea into MIT-Tab:master Oct 26, 2025
3 checks passed
@JoeyRubas JoeyRubas deleted the just-py310 branch October 26, 2025 16:02
JoeyRubas added a commit that referenced this pull request Oct 26, 2025
 Update dependencies and tests and docker images where needed
JoeyRubas added a commit that referenced this pull request Oct 26, 2025
Switched to python 3.10. Updated tests, docker images, circle Ci and some dependencies.
---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
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.

2 participants