Skip to content

Merge 3.3

Merge 3.3 #948

Workflow file for this run

---
name: Python package
"on": [push, pull_request]
env:
PYO3_USE_ABI3_FORWARD_COMPATIBILITY: "1"
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
python-version: [3.9, "3.10", "3.11", '3.12', '3.13', '3.14.0-rc.2']
# See https://github.com/actions/toolkit/issues/399
# include:
# - os: ubuntu-latest
# python-version: pypy3
# experimental: true
fail-fast: false
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies (apt)
run: |
sudo apt install quilt
if: "matrix.os == 'ubuntu-latest'"
- name: Install dependencies (brew)
run: |
brew install quilt
if: "matrix.os == 'macos-latest'"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install -U pip "setuptools>=60" setuptools-gettext cython setuptools-rust
python -m pip install -U pip coverage codecov cython testscenarios dulwich typing-extensions
# paramiko (via pynacl) is broken on python 3.14
if [[ "${{ matrix.python-version }}" == "3.14"* ]]; then
python -m pip install ".[dev,doc,launchpad,git,fastimport]";
else
python -m pip install ".[dev,paramiko,doc,launchpad,git,fastimport]";
fi
- name: Install dependencies (linux/pip)
run: |
pip install pyinotify
pip install ".[workspace]"
if: "matrix.os == 'ubuntu-latest'"
- name: Build docs
run: |
make docs PYTHON=python
- name: Build extensions
run: |
make extensions PYTHON=python
if: "matrix.python-version != 'pypy3'"
- name: Run ruff
run: |
python -m pip install ruff
ruff check .
ruff format --check .
if: "matrix.python-version != 'pypy3'"
- name: Test suite run (Linux)
run: |
./brz selftest
env:
PYTHONHASHSEED: random
BRZ_PLUGIN_PATH: -site:-user
PYTHONPATH: .
if: "matrix.os == 'ubuntu-latest'"
- name: Test suite run (Mac OS)
run: |
./brz selftest --subunit2 | subunit-filter --fixup-expected-failures=xfail.macos -s --passthrough | subunit2pyunit
env:
PYTHONHASHSEED: random
BRZ_PLUGIN_PATH: -site:-user
PYTHONPATH: .
if: "matrix.os == 'macos-latest'"
- name: Test suite run (Windows)
run: |
python -m breezy selftest --subunit2 | subunit-filter --fixup-expected-failures=xfail.windows -s --passthrough | subunit2pyunit
env:
PYTHONHASHSEED: random
BRZ_PLUGIN_PATH: -site:-user
PYTHONPATH: .
shell: bash
if: "matrix.os == 'windows-latest'"
- name: Run mypy
run: |
python -m pip install mypy types-PyYAML types-paramiko types-setuptools typing-extensions
python -m mypy breezy
if: "matrix.python-version != 'pypy3'"