diff --git a/.github/workflows/cibuildwheel-impl/action.yml b/.github/workflows/cibuildwheel-impl/action.yml index 6494189c928a8..deebfaed7d72a 100644 --- a/.github/workflows/cibuildwheel-impl/action.yml +++ b/.github/workflows/cibuildwheel-impl/action.yml @@ -9,7 +9,7 @@ runs: using: "composite" steps: - name: Build wheel - uses: pypa/cibuildwheel@v3.0.1 + uses: pypa/cibuildwheel@v3.4.1 env: CIBW_BUILD: ${{ inputs.build-tag }} diff --git a/.github/workflows/python_wheel_build.yml b/.github/workflows/python_wheel_build.yml index 62c29eed29a2b..bfa6db5eacd91 100644 --- a/.github/workflows/python_wheel_build.yml +++ b/.github/workflows/python_wheel_build.yml @@ -3,11 +3,11 @@ name: 'ROOT Python wheels' on: workflow_dispatch: inputs: - branch: - description: 'The branch for which the Python wheel has to be generated' + ref: + description: 'The git ref to build the wheel from (branch, tag, or commit SHA).' type: string required: true - default: "master" + default: '' schedule: - cron: '01 1 * * *' pull_request: @@ -28,10 +28,12 @@ jobs: strategy: fail-fast: false matrix: - target: [cp310-manylinux_x86_64, cp311-manylinux_x86_64, cp312-manylinux_x86_64, cp313-manylinux_x86_64] + target: [cp310-manylinux_x86_64, cp311-manylinux_x86_64, cp312-manylinux_x86_64, cp313-manylinux_x86_64, cp314-manylinux_x86_64] name: ${{ matrix.target }} steps: - uses: actions/checkout@v6 + with: + ref: ${{ github.event.inputs.ref }} - uses: ./.github/workflows/cibuildwheel-impl with: build-tag: ${{ matrix.target }} @@ -42,11 +44,12 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.10", "3.11", "3.12", "3.13"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] name: test-wheel-cp${{ matrix.python-version }} steps: - uses: actions/checkout@v6 - + with: + ref: ${{ github.event.inputs.ref }} - name: Download produced wheels uses: actions/download-artifact@v4 with: @@ -121,3 +124,23 @@ jobs: kinit -p ${{ secrets.KRB5USER }}@${{ secrets.KRB5REALM }} -kt ${KT_FILE_NAME} echo +++ Running the copy xrdcp --parallel ${NFILES} -rf wheelhouse/* ${EOS_ENDPOINT}/${EOS_PATH}/ + + publish-to-pypi: + if: github.event_name == 'workflow_dispatch' + needs: build-wheels + runs-on: ubuntu-latest + name: >- + Publish Python distribution to PyPI + environment: + name: pypi + url: https://pypi.org/p/root + permissions: + id-token: write + steps: + - name: Download produced wheels + uses: actions/download-artifact@v4 + with: + merge-multiple: true + path: dist/ + - name: Publish distribution to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/pyproject.toml b/pyproject.toml index 45753dd4ad054..8fde443741696 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,12 +3,12 @@ requires = ["cmake", "setuptools<72", "wheel", "numpy"] [project] name = "ROOT" -version = "0.1a9" -requires-python = ">=3.9" +version = "0.1a12" +requires-python = ">=3.10" maintainers = [ {name = "Vincenzo Eduardo Padulano", email = "vincenzo.eduardo.padulano@cern.ch"} ] -description = "An open-source data analysis framework used by high energy physics and others." +description = "Analyzing petabytes of data, scientifically." readme = "README.md" license = {file = "LICENSE"} dependencies = [