Skip to content

Conversation

@JulianOpper
Copy link
Collaborator

Description

This PR establishes a comprehensive CI/CD infrastructure for the FTIO project and significantly improves the test suite quality.

Key Contributions

CI/CD Pipeline Implementation:

Three new workflow files under .github/workflows/:

  1. CI.yml (triggers on push to any branch):

    • Ruff linting + Black formatting checks (non-blocking)
    • Matrix testing across Python 3.11 and 3.12 with JUnit test results in Actions tab
    • Coverage reporting with pytest-cov, rendered as markdown table in workflow run summary via $GITHUB_STEP_SUMMARY
    • Build verification via twine
  2. draft-release.yml (triggers on PR merge to main):

    • Automatic draft release creation
    • Version number extracted from ftio/__init__.py (must be updated before merge)
    • Auto-generated release description based on merged PRs and commits
  3. python-publish.yml (triggers on release publishing):

    • PyPI publishing (previously implemented, now integrated)
    • Build & push Docker image to GitHub Container Registry
    • Build & push Docker image to Docker Hub (disabled, awaiting credentials)

Test Suite Improvements:

  • Refactored legacy tests from broad assertTrue assertions to granular, specific checks for easier debugging
  • Added new unit tests for previously untested functionality
  • Increased test coverage from 41% to 52% (currently 46% due to new merges without full test coverage)

Challenges

  • Legacy test refactoring: Identifying and rewriting assertions while maintaining test validity required analysis of the original test
  • Multi-workflow: Coordinating three separate workflows triggered at different stages (push, merge, release) to work together
  • Balancing coverage goals with active development: New code merged during this work reduced coverage metrics

Immediate Improvements

  • Docker Hub Integration (needs credentials via secrets)
  • Excluded linting rules in pyproject.toml need to be fixed manually

JulianOpper and others added 30 commits December 23, 2025 12:53
@A-Tarraf A-Tarraf self-assigned this Jan 27, 2026
@A-Tarraf A-Tarraf added the feature feature request label Jan 27, 2026
@A-Tarraf
Copy link
Member

Please also add yourself as contributors (PPT Lab)

@A-Tarraf
Copy link
Member

I added you to the contributors list. Thanks for your good work!

@A-Tarraf A-Tarraf merged commit b1f9193 into development Jan 27, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature feature request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants