diff --git a/.github/scripts/requirements-dev.txt b/.github/scripts/requirements-dev.txt index 6b9d9a4..9db1eaa 100644 --- a/.github/scripts/requirements-dev.txt +++ b/.github/scripts/requirements-dev.txt @@ -1,4 +1,5 @@ cffi>=1.1 +ply>=3.9 pyyaml jsonschema docutils diff --git a/.github/workflows/build-release.yaml b/.github/workflows/build-release.yaml index 4a695c5..f717738 100644 --- a/.github/workflows/build-release.yaml +++ b/.github/workflows/build-release.yaml @@ -13,8 +13,8 @@ on: description: 'Release candidate to build (for wheel)' default: "0" branch: - description: 'Branch to build from' - default: "master" + description: 'Branch or tag to build from (defaults to v)' + default: "" repo: description: 'Repository to build from' default: "https://github.com/flux-framework/flux-core" @@ -65,16 +65,18 @@ jobs: env: FLUX_BRANCH: ${{ inputs.branch }} FLUX_REPO: ${{ inputs.repo }} + FLUX_RELEASE_VERSION: ${{ inputs.release_version || '0.88.0' }} shell: bash run: | - echo "Flux Repo: ${FLUX_REPO}" - echo "Flux Branch: ${FLUX_BRANCH}" if [[ "${FLUX_REPO}" == "" ]]; then FLUX_REPO="https://github.com/flux-framework/flux-core" fi + # Match the bindings to the release that libflux was built from if [[ "${FLUX_BRANCH}" == "" ]]; then - FLUX_BRANCH="master" + FLUX_BRANCH="v${FLUX_RELEASE_VERSION}" fi + echo "Flux Repo: ${FLUX_REPO}" + echo "Flux Branch: ${FLUX_BRANCH}" git clone -b ${FLUX_BRANCH} ${FLUX_REPO} /tmp/flux-core mv /tmp/flux-core/src/bindings/python/flux ./flux /opt/conda/envs/build/bin/python3 setup.py sdist @@ -92,10 +94,11 @@ jobs: - name: Test Install shell: bash run: | - PIP_INSTALL="/opt/conda/envs/build/bin/python3 -m pip install" - ${PIP_INSTALL} ./dist/*.whl || ${PIP_INSTALL} ./dist/*.whl --break-system-packages + # Use a clean environment so the build env cannot mask missing dependencies + /opt/conda/envs/build/bin/python3 -m venv /tmp/test-env + /tmp/test-env/bin/python3 -m pip install ./dist/*.whl cd /tmp - /opt/conda/envs/build/bin/python3 -c "import flux, _flux._core, _flux._hostlist, _flux._idset; print(flux.__file__)" + /tmp/test-env/bin/python3 -c "import flux, flux.job, _flux._core, _flux._hostlist, _flux._idset; print(flux.__file__)" - name: Upload Artifacts if: success() diff --git a/pyproject.toml b/pyproject.toml index 72e80d4..4f30616 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,11 +33,13 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] # Corresponds to install_requires dependencies = [ "cffi>=1.1", + "ply>=3.9", "pyyaml" ] diff --git a/requirements.txt b/requirements.txt index 0d65176..93c0df3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ cffi>=1.1 +ply>=3.9 pyyaml