diff --git a/.github/actions/install_requirements/action.yml b/.github/actions/install_requirements/action.yml index c5d4db43..614ce70a 100644 --- a/.github/actions/install_requirements/action.yml +++ b/.github/actions/install_requirements/action.yml @@ -29,16 +29,16 @@ runs: - name: Create lockfile run: | - mkdir -p lockfiles - pip freeze --exclude-editable > lockfiles/${{ inputs.requirements_file }} + mkdir -p lockfiles-${{ inputs.python_version }} + pip freeze --exclude-editable > lockfiles-${{ inputs.python_version }}/${{ inputs.requirements_file }} # delete the self referencing line and make sure it isn't blank - sed -i'' -e '/file:/d' lockfiles/${{ inputs.requirements_file }} + sed -i'' -e '/file:/d' lockfiles-${{ inputs.python_version }}/${{ inputs.requirements_file }} shell: bash - name: Upload lockfiles - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: lockfiles + name: lockfiles-${{ inputs.python_version }} path: lockfiles # This eliminates the class of problems where the requirements being given no @@ -49,10 +49,9 @@ runs: - name: If requirements file exists, check it matches pip installed packages run: | if [ -s ${{ inputs.requirements_file }} ]; then - if ! diff -u ${{ inputs.requirements_file }} lockfiles/${{ inputs.requirements_file }}; then + if ! diff -u ${{ inputs.requirements_file }} lockfiles-${{ inputs.python_version }}/${{ inputs.requirements_file }}; then echo "Error: ${{ inputs.requirements_file }} need the above changes to be exhaustive" exit 1 fi fi shell: bash - diff --git a/.github/workflows/code.yml b/.github/workflows/code.yml index bbaae0a2..25845626 100644 --- a/.github/workflows/code.yml +++ b/.github/workflows/code.yml @@ -11,17 +11,17 @@ jobs: fail-fast: false matrix: os: ["ubuntu-latest"] # can add windows-latest, macos-latest - python: ["3.8", "3.9", "3.10", "3.11"] + python: ["3.9", "3.10", "3.11", "3.12"] install: ["-e .[dev]"] # Make one version be non-editable to test both paths of version code include: - os: "ubuntu-latest" - python: "3.7" + python: "3.8" install: ".[dev]" runs-on: ${{ matrix.os }} container: - image: ghcr.io/epics-containers/epics-base-linux-developer:23.6.1 + image: ghcr.io/epics-containers/epics-base-developer:7.0.9ec3 volumes: - /opt/hostedtoolcache:/opt/hostedtoolcache @@ -86,9 +86,9 @@ jobs: CIBW_SKIP: pp* *i686* - name: Upload sdist and wheels as artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: dist + name: dist-${{ matrix.os }}-${{ matrix.python }} path: dist - name: Check for packaging errors @@ -104,7 +104,11 @@ jobs: HAS_PYPI_TOKEN: ${{ secrets.PYPI_TOKEN != '' }} steps: - - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v4 + with: + pattern: dist* + path: dist + merge-multiple: true - name: Fixup blank lockfiles # Github release artifacts can't be blank diff --git a/pyproject.toml b/pyproject.toml index f6b15adb..79ccdf8f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,6 +16,7 @@ classifiers = [ "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)", ] description = "Build tools using cooperative threading" @@ -33,7 +34,6 @@ dev = [ "pre-commit", "pydata-sphinx-theme>=0.12", "pytest", - "pytest-cov", "sphinx-autobuild", "sphinx-copybutton", "sphinx-design", @@ -106,7 +106,7 @@ allowlist_externals = sphinx-build sphinx-autobuild commands = - pytest: pytest --cov=cothread --cov-report term --cov-report xml:cov.xml {posargs} + pytest: pytest {posargs} pre-commit: pre-commit run --all-files {posargs} docs: sphinx-{posargs:build -EW --keep-going} -T docs build/html """