Skip to content

protocols: drop ipv6_opts' stray SMF_DPD test field, fix two length underflows #323

protocols: drop ipv6_opts' stray SMF_DPD test field, fix two length underflows

protocols: drop ipv6_opts' stray SMF_DPD test field, fix two length underflows #323

name: "Python Compatibility"
on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
- cron: '0 4 * * 6'
permissions:
contents: read
# Only pull-request runs may be superseded. Keying every event on the ref (as
# this did) coalesces all of main's pushes into one group, and GitHub cancels a
# *pending* run whenever a newer one joins the group -- `cancel-in-progress:
# false` protects a run that has already started, never one still queued. So a
# commit merged while its predecessor was still running lost its validation
# entirely. Keying non-PR events on the run id gives each one its own group,
# which is what "validate every commit" actually requires.
concurrency:
group: python-compatibility-${{ github.event_name == 'pull_request' && github.ref || github.run_id }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
compatibility:
# Named "Python ${{ matrix.python-version }}" until now, which collided
# exactly with the Unit Tests matrix job of the same name: `gh pr checks`
# showed two rows reading `Python 3.10`, one a 13-second import smoke test
# and one a three-minute test run, with nothing to tell them apart.
name: Compat Python ${{ matrix.python-version }}
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.experimental == true }}
strategy:
fail-fast: false
matrix:
python-version:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
- "3.14"
experimental:
- false
include:
- python-version: "3.15"
experimental: true
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: ${{ matrix.experimental }}
- name: Install package
run: |
python -m pip install -U pip setuptools wheel
python -m pip install -e .
- name: Verify package
run: |
python -m compileall -q pcapkit
python -c 'import pcapkit; print(pcapkit.__version__)'