Skip to content

chore(release): bump version to 0.3.9 #14

chore(release): bump version to 0.3.9

chore(release): bump version to 0.3.9 #14

Workflow file for this run

name: Publish to PyPI
on:
push:
tags:
- "v*"
permissions:
contents: write
id-token: write
env:
PROJECT_NAME: typeid-python
jobs:
test-native:
name: Build + import native extension (${{ matrix.os }}, py${{ matrix.python-version }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.11"]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- uses: dtolnay/rust-toolchain@stable
- uses: astral-sh/setup-uv@v3
- name: Create .venv + install deps
run: |
uv sync --locked --all-groups
- name: Build & install (maturin develop)
uses: PyO3/maturin-action@v1
with:
command: develop
args: --release
- name: Sanity check (import extension)
run: |
uv run python -c "import typeid; import typeid._base32; print('native ext OK')"
build-wheels:
name: Build wheels (${{ matrix.os }}, ${{ matrix.target || 'native' }}, py${{ matrix.python-version }})
runs-on: ${{ matrix.os }}
needs: [test-native]
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
include:
# macOS ARM64 (native on macos-latest which is ARM)
- os: macos-latest
target: aarch64-apple-darwin
python-version: "3.10"
- os: macos-latest
target: aarch64-apple-darwin
python-version: "3.11"
- os: macos-latest
target: aarch64-apple-darwin
python-version: "3.12"
- os: macos-latest
target: aarch64-apple-darwin
python-version: "3.13"
- os: macos-latest
target: aarch64-apple-darwin
python-version: "3.14"
# macOS x86_64 (cross-compile from ARM runner)
- os: macos-latest
target: x86_64-apple-darwin
python-version: "3.10"
- os: macos-latest
target: x86_64-apple-darwin
python-version: "3.11"
- os: macos-latest
target: x86_64-apple-darwin
python-version: "3.12"
- os: macos-latest
target: x86_64-apple-darwin
python-version: "3.13"
- os: macos-latest
target: x86_64-apple-darwin
python-version: "3.14"
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
# Build typeid-python wheel (includes rust extension)
- name: Build wheels (maturin)
uses: PyO3/maturin-action@v1
with:
command: build
args: --release --out dist -i python${{ matrix.python-version }}
target: ${{ matrix.target }}
manylinux: "2_28"
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.os }}-${{ matrix.target || 'native' }}-py${{ matrix.python-version }}
path: dist/*.whl
build-sdist:
runs-on: ubuntu-latest
needs: [build-wheels]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Build sdist (maturin)
uses: PyO3/maturin-action@v1
with:
command: sdist
args: --manifest-path rust-base32/Cargo.toml --out dist
- name: Upload sdist
uses: actions/upload-artifact@v4
with:
name: sdist
path: dist/*.tar.gz
publish-package:
runs-on: ubuntu-latest
needs: [build-sdist]
permissions:
contents: read
id-token: write
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: dist
- name: Flatten dist directory
shell: bash
run: |
mkdir -p out
find dist -type f \( -name "*.whl" -o -name "*.tar.gz" \) -maxdepth 4 -print -exec cp {} out/ \;
ls -la out
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: out
publish-docs:
runs-on: ubuntu-latest
needs: [publish-package]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install uv
uses: astral-sh/setup-uv@v3
- name: Sync dependencies (locked)
run: |
uv sync --locked --all-groups
- name: Deploy to Pages
run: uv run mkdocs gh-deploy --force