Skip to content

[FEAT]: Extend Python version support with multi-version CI workflows #495

@marcvergees

Description

@marcvergees

📝 Description

Currently, FireForm only supports Python 3.12. To improve compatibility and allow broader adoption, we need to extend support to multiple Python versions. This requires setting up CI/CD workflows that test against different Python versions and determining appropriate dependency versions for each supported version.

💡 Rationale

  • Increases portability and adoption across different environments and projects that may be locked to older Python versions.
  • Ensures the codebase is compatible with multiple Python minor versions.
  • Identifies version-specific issues early through automated testing.
  • Allows users with legacy Python environments to use FireForm.

🛠️ Proposed Solution

  • Determine target Python versions to support (e.g., 3.10, 3.11, 3.12, potentially 3.13).
  • Create GitHub Actions workflows to run tests against multiple Python versions.
  • Audit and pin dependency versions for compatibility across each Python version.
  • Update requirements.txt and/or pyproject.toml with version constraints.
  • Document supported Python versions in README.md and project metadata.
  • Ensure CI passes for all supported Python versions before merging PRs.

✅ Acceptance Criteria

  • Multi-version Python testing workflows are implemented and passing.
  • Dependency versions are evaluated and constraints applied for each supported Python version.
  • Documentation clearly lists supported Python versions.
  • CI/CD pipeline validates compatibility across all supported versions.
  • New PRs are blocked if they break compatibility with any supported Python version.

📌 Additional Context

This is a foundational step for broader Python version support. Once in place, it allows the project to incrementally support newer Python versions as they are released.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions