Skip to content

feat: Modernize Python packaging and CI/CD infrastructure#15

Merged
Letme merged 6 commits intomasterfrom
modernize
Jun 23, 2025
Merged

feat: Modernize Python packaging and CI/CD infrastructure#15
Letme merged 6 commits intomasterfrom
modernize

Conversation

@JasperCraeghs
Copy link
Member

@JasperCraeghs JasperCraeghs commented Jun 23, 2025

📦 Build System Modernization

  • Replaced setup.py with pyproject.toml (PEP 621)
  • Migrated all configuration to pyproject.toml
  • Removed setup.cfg (consolidated into pyproject.toml)
  • Updated build backend to modern setuptools

🐍 Python Version Support

Version Before After Status
3.7 EOL June 2023
3.8 EOL October 2024
3.9 Supported
3.10 Supported
3.11 New
3.12 New
3.13 New

🚀 CI/CD Improvements

  • Updated GitHub Actions to latest versions (v4/v5)
  • Modernized build process using python -m build
  • Added proper dependency management for deploy job
  • Enhanced version detection with fetch-depth: 0

📋 Configuration Consolidation

All tool configurations now live in pyproject.toml:

  • pytest configuration
  • flake8 linting rules
  • check-manifest settings

🔧 Dependency Updates

  • setuptools: Minimum version 77.0 (latest stable)
  • jira: Updated to >=3.2.0
  • mlx.traceability: Updated to >=11.0.0

Testing

  • Updated tox.ini for Python 3.9-3.13
  • All existing tests should continue to work
  • Package structure maintains backward compatibility
  • Import paths remain the same: from mlx.jira_traceability import ...

🎯 Benefits

  1. Performance: Faster imports (no pkg_resources dependency)
  2. Maintainability: Single configuration file, standard tooling
  3. Security: Updated dependencies and CI actions
  4. Future-proofing: Ready for Python 3.13+ and modern packaging ecosystem
  5. Developer Experience: Standard build commands, better error messages

🔍 Migration Guide

For end users: No changes required - the package imports and API remain identical.

For developers:

# Old build process
python setup.py sdist bdist_wheel

# New build process  
python -m build

📚 Standards Compliance

This PR implements the following PEPs:

  • PEP 420: Implicit Namespace Packages
  • PEP 517: Build System Interface
  • PEP 518: Build System Requirements
  • PEP 621: Project Metadata in pyproject.toml

Related: needed by #14

@JasperCraeghs JasperCraeghs added enhancement New feature or request breaking-change A backwards incompatible change or a Python version is no longer supported build-system labels Jun 23, 2025
@Letme Letme merged commit 9ec4406 into master Jun 23, 2025
6 checks passed
@Letme Letme deleted the modernize branch June 23, 2025 09:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking-change A backwards incompatible change or a Python version is no longer supported build-system enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants