Skip to content

Migrate Python Codebase from 3.9 to 3.10 #3

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

Open
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

gitar-bot-staging[bot]
Copy link

Upgrade Python Runtime from 3.9 to 3.10 and Modernize Project Structure

Description

This PR systematically upgrades the entire osparc-simcore platform from Python 3.9 to Python 3.10 and modernizes the project structure by adopting contemporary Python packaging standards.

Motivation

  • Access to Python 3.10 Features: Enables use of structural pattern matching, improved error messages, and performance optimizations
  • Security & Maintenance: Python 3.9 reaches end-of-life soon, requiring migration to maintain security updates
  • Modern Packaging Standards: Adopts PEP 518/621 standards with pyproject.toml files for better dependency management and build reproducibility
  • Multi-Version Testing: Enables comprehensive testing across Python 3.10, 3.11, and 3.12 for future-proofing

Impact

Enhanced Performance: Leverages Python 3.10's performance improvements and optimizations
Better Developer Experience: Improved error messages and debugging capabilities
Future-Ready: Prepared for upcoming Python versions with modern packaging
Consistent Infrastructure: All 21 packages and services updated uniformly

Technical Details

Files Changed (92 total)

  • CI/CD Workflows: Updated GitHub Actions to use Python 3.10
  • Package Configuration: Added pyproject.toml to 21 packages/services
  • Testing Infrastructure: Added comprehensive tox.ini for multi-version testing
  • Documentation: Added PARSER_MIGRATION_REFERENCE.md for C extension compatibility
  • Dependencies: Updated requirements across all services and scripts
  • Docker Images: Updated base images to Python 3.10

Key Technical Changes

  • Runtime Version: python: ["3.9"]python: ["3.10"] across all workflows
  • Package Metadata: Migrated from setup.py to modern pyproject.toml configuration
  • Testing Matrix: Added support for Python 3.10, 3.11, and 3.12 in tox configuration
  • Build System: Standardized build backend to setuptools.build_meta

Migration Strategy

The upgrade was executed through a systematic 20-step process with checkpoints to ensure:

  • Zero downtime migration path
  • Consistent dependency resolution
  • Comprehensive test coverage across all components
  • Backward compatibility where needed

🎸 Generated with Jimy

Gitar added 10 commits June 2, 2025 19:00
Timestamp: 2025-06-02 19:00:53.544
Step ID: 0
Title: Rule 1
Timestamp: 2025-06-02 19:02:12.349
Step ID: 2
Title: Rule 3
Timestamp: 2025-06-02 19:05:55.392
Step ID: 4
Title: Rule 5
Timestamp: 2025-06-02 19:08:00.014
Step ID: 5
Title: Rule 6
Timestamp: 2025-06-02 19:11:08.294
Step ID: 6
Title: Rule 7
Timestamp: 2025-06-02 19:14:08.739
Step ID: 7
Title: Rule 8
Timestamp: 2025-06-02 19:21:25.250
Step ID: 8
Title: Rule 9
Timestamp: 2025-06-02 19:26:18.489
Step ID: 14
Title: Rule 15
Timestamp: 2025-06-02 19:31:02.051
Step ID: 18
Title: Rule 19
Timestamp: 2025-06-02 19:37:33.351
Step ID: 19
Title: Rule 20
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.

0 participants