Skip to content

fused-ops: Python 3.12 support, manylinux retagging, TestPyPI toggle, wheel caching#96

Open
jilei-hao wants to merge 14 commits intorohitrango:mainfrom
jilei-hao:test/fused-op-pypi
Open

fused-ops: Python 3.12 support, manylinux retagging, TestPyPI toggle, wheel caching#96
jilei-hao wants to merge 14 commits intorohitrango:mainfrom
jilei-hao:test/fused-op-pypi

Conversation

@jilei-hao
Copy link
Copy Markdown
Contributor

Summary

  • Python 3.12 support: adds 3 new build matrix entries (CUDA 11.8/12.1/12.4 × Py3.12)
    via deadsnakes/ppa; drops python3.12-distutils (not available) and bootstraps
    pip with get-pip.py instead
  • Manylinux retagging: renames built wheels from linux_x86_64
    manylinux2014_x86_64 so PyPI accepts them without a manual upload step
  • TestPyPI toggle: workflow_dispatch now exposes a use_testpypi boolean input;
    the publish step routes credentials and repository URL accordingly — no more
    editing the YAML to test a release
  • Wheel caching: actions/cache keyed on source file hashes skips rebuild when
    sources haven't changed, cutting CI time on re-runs
  • Build tooling cleanup:
    • Switched from python setup.py bdist_wheelpython -m pip wheel (avoids
      setup.py deprecation warnings)
    • Used python -m pip consistently throughout
    • set -euo pipefail on all steps via defaults.run.shell
    • twine upload --skip-existing --verbose to survive partial re-uploads
  • Dynamic package name in setup.py: name is derived from CUDA_VERSION env var
    (e.g. fireants-fused-ops-cu124); version bumped to 1.2.0; torch lower-bound
    relaxed to >=2.1.0
  • Test script: scripts/test_fusedops_import_from_pypi.sh installs each
    CUDA/Torch/Python variant from TestPyPI into isolated conda envs and runs the
    import + optional pytest suite

Test plan

  • Trigger publish_fusedops workflow via workflow_dispatch with
    use_testpypi: true and verify all 9 matrix jobs (Py3.10/3.11/3.12 ×
    CUDA 11.8/12.1/12.4) produce valid .whl artifacts tagged manylinux2014_x86_64
  • Run scripts/test_fusedops_import_from_pypi.sh on a CUDA-capable machine
    against TestPyPI wheels to confirm import succeeds for each variant
  • Trigger again with use_testpypi: false on a release tag and confirm upload
    to PyPI succeeds with --skip-existing handling duplicates gracefully

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.

1 participant