Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/workflows/actions.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# This file is machine-generated by `gh actions-lock`.
# Do not edit by hand; run `gh actions-lock` to update.
# Docs: https://gh.io/actions-lockfile
version: 'v0.0.3'
workflows:
'.github/workflows/ci.yml':
- 'actions/checkout@v7.0.1'
- 'actions/setup-python@v7.0.0'
- 'pex-tool/actions@main'
- 'pex-tool/pyenv-action@main'
dependencies:
'actions/checkout@v7.0.1':
ref: 'v7.0.1'
commit: 'sha1-3d3c42e5aac5ba805825da76410c181273ba90b1'
owner_id: 44036562
repo_id: 197814629
'actions/setup-python@v7.0.0':
ref: 'v7.0.0'
commit: 'sha1-5fda3b95a4ea91299a34e894583c3862153e4b97'
owner_id: 44036562
repo_id: 192625525
'pex-tool/actions@main':
ref: 'main'
commit: 'sha1-e22fe0e0fe85e1f7eb5bbfc7674c7cbbf24ae6b5'
owner_id: 159246247
repo_id: 891735357
'pex-tool/pyenv-action@main':
ref: 'main'
commit: 'sha1-dcccfcc2bb18b008eca1ee92bbb05425e7126ead'
owner_id: 159246247
repo_id: 759510979
87 changes: 62 additions & 25 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,74 +18,111 @@ jobs:
steps:
- name: Noop
run: "true"
tests-36-38:
tests-36-38-and-316:
name: (${{ matrix.os }}) Python ${{ matrix.python-version[0] }}.${{ matrix.python-version[1] }} Tests
needs: org-check
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-24.04, macos-13]
python-version: [[3, 6, 15], [3, 7, 17], [3, 8, 18]]
os: [ubuntu-24.04, macos-15]
python-version: [[3, 6, 15], [3, 7, 17], [3, 8, 18], [3, 16, "0a1"]]
steps:
- name: Checkout p537
uses: actions/checkout@v5
- name: "Setup Python ${{ join(matrix.python-version, '.') }}"
# Upgrade node16 -> node20: Out for review here:
# https://github.com/gabrielfalcao/pyenv-action/pull/444
uses: pex-tool/pyenv-action@baec18679698d2f80064cc04eb9ad0c8dc5ca8f8
env:
ENSUREPIP: no
uses: actions/checkout@v7.0.1
- name: Install Python Build Deps
if: matrix.os == 'ubuntu-24.04'
run: |
sudo apt update
DEBIAN_FRONTEND=noninteractive sudo apt install -y \
build-essential \
curl \
git \
libbz2-dev \
libffi-dev \
liblzma-dev \
libncursesw5-dev \
libreadline-dev \
libsqlite3-dev \
libssl-dev \
libxml2-dev \
libxmlsec1-dev \
libzstd-dev \
make \
tk-dev \
xz-utils \
zlib1g-dev
- name: Install Pyenv
run: |
cd "${RUNNER_TOOL_CACHE}"
git clone https://github.com/pyenv/pyenv
(
cd pyenv
src/configure
make -C src
)
export PYENV_ROOT="$PWD/pyenv"
echo "PYENV_ROOT=${PYENV_ROOT}" >> "${GITHUB_ENV}"
echo "${PYENV_ROOT}/bin" >> "${GITHUB_PATH}"
- name: Setup Python ${{ join(matrix.python-version, '.') }}
run: |
pyenv install ${{ join(matrix.python-version, '.') }}
echo "${PYENV_ROOT}/versions/${{ join(matrix.python-version, '.') }}/bin" >> "${GITHUB_PATH}"
- name: Setup Tox Python
uses: actions/setup-python@v7.0.0
with:
default: "${{ join(matrix.python-version, '.') }}"
command: pip install -U tox
python-version: 3.11
- name: Run Unit Tests
run: tox -e py${{ matrix.python-version[0] }}${{ matrix.python-version[1] }}
run: |
python3.11 -V
python3.11 -mpip install -U pip
python3.11 -mpip install -U tox
python3.11 -mtox -e py${{ matrix.python-version[0] }}${{ matrix.python-version[1] }} -- -vvs
tests-39-315:
name: (${{ matrix.os }}) Python 3.9 - 3.15 Tests
needs: org-check
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-24.04, macos-13, windows-2025]
os: [ubuntu-24.04, macos-15, windows-2025]
steps:
- name: Checkout p537
uses: actions/checkout@v5
uses: actions/checkout@v7.0.1
- name: Setup Python 3.9
uses: actions/setup-python@v6
uses: actions/setup-python@v7.0.0
with:
python-version: "3.9"
- name: Setup Python 3.10
uses: actions/setup-python@v6
uses: actions/setup-python@v7.0.0
with:
python-version: "3.10"
- name: Setup Python 3.11
uses: actions/setup-python@v6
uses: actions/setup-python@v7.0.0
with:
python-version: "3.11"
- name: Setup Python 3.12
uses: actions/setup-python@v6
uses: actions/setup-python@v7.0.0
with:
python-version: "3.12"
- name: Setup Python 3.13
uses: actions/setup-python@v6
uses: actions/setup-python@v7.0.0
with:
python-version: "3.13"
- name: Setup Python 3.14
uses: actions/setup-python@v6
uses: actions/setup-python@v7.0.0
with:
python-version: "3.14"
- name: Setup Python 3.15
uses: actions/setup-python@v6
uses: actions/setup-python@v7.0.0
with:
python-version: "3.15.0-alpha.1"
python-version: "3.15"
- name: Run Unit Tests
uses: pex-tool/actions/run-tox@7d8530c74d2e3ca4640d1ed9192b6e2b8c4f5f7b
uses: pex-tool/actions/run-tox@main
with:
tox-env: py39,py310,py311,py312,py313,py314,py315
final-status:
name: Gather Final Status
needs:
- tests-36-38
- tests-36-38-and-316
- tests-39-315
runs-on: ubuntu-24.04
steps:
Expand Down
73 changes: 55 additions & 18 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,30 +39,67 @@ jobs:
echo "::error::Release tag '${RELEASE_TAG}' must match 'v\d+.\d+.\d+'."
exit 1
fi
package-36-38-dists:
package-36-38-and-316-dists:
name: ${{ matrix.os }} Package for Python ${{ matrix.python-version[0] }}.${{ matrix.python-version[1] }}
needs: determine-tag
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-24.04, macos-13]
python-version: [[3, 6, 15], [3, 7, 17], [3, 8, 18]]
os: [ubuntu-24.04, macos-15]
python-version: [[3, 6, 15], [3, 7, 17], [3, 8, 18], [3, 16, "0a1"]]
steps:
- name: Checkout p537 ${{ needs.determine-tag.outputs.release-tag }}
uses: actions/checkout@v5
uses: actions/checkout@v7.0.1
with:
ref: ${{ needs.determine-tag.outputs.release-tag }}
- name: "Setup Python ${{ join(matrix.python-version, '.') }}"
# Upgrade node16 -> node20: Out for review here:
# https://github.com/gabrielfalcao/pyenv-action/pull/444
uses: pex-tool/pyenv-action@baec18679698d2f80064cc04eb9ad0c8dc5ca8f8
env:
ENSUREPIP: no
- name: Install Python Build Deps
if: matrix.os == 'ubuntu-24.04'
run: |
sudo apt update
DEBIAN_FRONTEND=noninteractive sudo apt install -y \
build-essential \
curl \
git \
libbz2-dev \
libffi-dev \
liblzma-dev \
libncursesw5-dev \
libreadline-dev \
libsqlite3-dev \
libssl-dev \
libxml2-dev \
libxmlsec1-dev \
libzstd-dev \
make \
tk-dev \
xz-utils \
zlib1g-dev
- name: Install Pyenv
run: |
cd "${RUNNER_TOOL_CACHE}"
git clone https://github.com/pyenv/pyenv
(
cd pyenv
src/configure
make -C src
)
export PYENV_ROOT="$PWD/pyenv"
echo "PYENV_ROOT=${PYENV_ROOT}" >> "${GITHUB_ENV}"
echo "${PYENV_ROOT}/bin" >> "${GITHUB_PATH}"
- name: Setup Python ${{ join(matrix.python-version, '.') }}
run: |
pyenv install ${{ join(matrix.python-version, '.') }}
echo "${PYENV_ROOT}/versions/${{ join(matrix.python-version, '.') }}/bin" >> "${GITHUB_PATH}"
- name: Setup Tox Python
uses: actions/setup-python@v7.0.0
with:
default: "${{ join(matrix.python-version, '.') }}"
command: pip install -U tox
python-version: 3.11
- name: Package ${{ needs.determine-tag.outputs.release-tag }}
run: tox -e package
run: |
python3.11 -V
python3.11 -mpip install -U pip
python3.11 -mpip install -U tox
python3.11 -mtox -e package
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
Expand All @@ -75,15 +112,15 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-24.04, macos-13, windows-2025]
python-version: [[3, 9], [3, 10], [3, 11], [3, 12], [3, 13], [3, 14], [3, 15, "0-alpha.1"]]
os: [ubuntu-24.04, macos-15, windows-2025]
python-version: [[3, 9], [3, 10], [3, 11], [3, 12], [3, 13], [3, 14], [3, 15]]
steps:
- name: Checkout p537 ${{ needs.determine-tag.outputs.release-tag }}
uses: actions/checkout@v5
uses: actions/checkout@v7.0.1
with:
ref: ${{ needs.determine-tag.outputs.release-tag }}
- name: Setup Python ${{ join(matrix.python-version, '.') }}
uses: actions/setup-python@v6
uses: actions/setup-python@v7.0.0
with:
python-version: "${{ join(matrix.python-version, '.') }}"
- name: Package ${{ needs.determine-tag.outputs.release-tag }}
Expand All @@ -100,7 +137,7 @@ jobs:
name: Publish sdist and wheel to PyPI
needs:
- determine-tag
- package-36-38-dists
- package-36-38-and-316-dists
- package-39-315-dists
runs-on: ubuntu-24.04
environment: Release
Expand Down
5 changes: 3 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ def long_description():

setup(
name='p537',
version='1.0.10',
version='1.0.11',
author="John Sirois",
author_email="john.sirois@gmail.com",
description='A tiny platform-specific distribution with a console script.',
Expand All @@ -33,8 +33,9 @@ def long_description():
'Programming Language :: Python :: 3.14',
'Programming Language :: Python :: 3.14',
'Programming Language :: Python :: 3.15',
'Programming Language :: Python :: 3.16',
],
python_requires=">=3.6,<3.16",
python_requires=">=3.6,<3.17",
ext_modules=[
Extension('p537', sources=['p537module.c']),
],
Expand Down
12 changes: 10 additions & 2 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
[tox]
minversion = 3.26.0
isolated_build = true
skip_missing_interpreters = True
skip_missing_interpreters = true

envlist =
py36
py37
Expand All @@ -13,10 +14,17 @@ envlist =
py313
py314
py315
py316

[testenv]
# We need newer Pip to operate under Python 3.14.
download = true

deps =
pytest
pytest==6.2.5; python_version == "3.6"
pytest==7.4.4; python_version == "3.7"
pytest==8.3.3; python_version >= "3.8"

commands = pytest -vs

[testenv:package]
Expand Down
Loading