Backport of 74d943092 and 9004e3c22 from master.
cross-platform-actions 1.5.0 adds support for Haiku R1/beta6, so use that
instead of r1beta5 (2024), which was too painful to work with, see #9463.
The r1beta6 image already has git, pkgconfig, lz4 and openssl3, and it
comes with a usable python3, so it does not need a python or cffi package
installed anymore (1.4 does not use argon2-cffi).
Also, from master:
The VM corrupts data every now and then: rustc crashed on crate metadata
it had written itself ("assertion failed: bytes[len] == STR_SENTINEL")
and pip found sha256 mismatches reading big wheels back from its own
cache. So build outside /boot/system/cache/tmp (haiku's /tmp), run one
rustc at a time and retry a pip install with a purged cache, so a damaged
file does not fail the whole job.
Co-Authored-By: Claude Opus 5 <[email protected]>
- pyproject.toml: add the "Programming Language :: Python :: 3.15" classifier
- tox: add 315 to env_list and the py315-{none,fuse2,fuse3} env sections
- CI: add an ubuntu-26.04 / 3.15-dev / py315-fuse3 entry to both native_tests
matrices (PR and push)
3.15 is still a prerelease, so the CI entry is marked "allow-failure": true and
the job gets continue-on-error: ${{ matrix.allow-failure || false }} - a broken
prerelease python (or a dependency without 3.15 wheels / not compiling for 3.15
yet) then does not fail the build. Remove the "allow-failure" entries once 3.15
is final.
Verified locally on macOS/arm64 with 3.15.0rc1: the C/Cython extensions build
and the full test suite passes.
Co-Authored-By: Claude Opus 5 <[email protected]>
Backport of #10075 (master): the pytest tmp dirs (and the borg test repos
in them) were on OpenBSD's slow FFS disk. OpenBSD 7.9 has no python 3.14
package, so it cannot get the faster coverage core - this is the
equivalent speedup for that job.
Co-Authored-By: Claude Fable 5 <[email protected]>
Backport from master: the cross-platform-actions default VM has 2 cpus,
so half of the runner's 4 vcpus sat idle while pytest -n auto only had
2 workers.
Co-Authored-By: Claude Fable 5 <[email protected]>
Backport of #10133 (master). On python 3.14, coverage.py uses its
sys.monitoring based core, which measures with ~zero tracing overhead,
while the C tracer core used on older pythons roughly doubles the test
suite's user CPU time. On master this took the NetBSD pytest phase from
972s (3.13) down to 627s (3.14).
pkgsrc for NetBSD 11.0 ships python314 and py314-pip/tox/virtualenv.
Co-Authored-By: Claude Fable 5 <[email protected]>
Backport of #10135 (master). The runner hostname is a long, unresolvable
.local name and macOS needs ~35s to give up resolving it. borg resolves
the fqdn at import time (platform/base.py), so every spawned borg process
paid those 35s - the 1.4-maint macOS jobs took ~4h47m (intel) and the
arm one often even longer.
Co-Authored-By: Claude Fable 5 <[email protected]>
ubuntu 22.04 GHA runners are being phased out; master already runs
everything on 24.04. Moves the CodeQL job, the lint job and the
py310-fuse2 test job over.
The remaining ubuntu-22.04 jobs (x86_64 and arm64) build the release
binaries and must stay there for glibc 2.35 compatibility.
Co-Authored-By: Claude Opus 5 <[email protected]>
Image available since cross-platform-actions/openbsd-builder v0.14.0,
which is included in the cross-platform-actions/action v1.4.0 we use.
7.9's default python3 is 3.13 (was: 3.12 on 7.7), so switch the tox env
accordingly. The packaged openssl is 3.5 now (was: 3.4).
Co-Authored-By: Claude Opus 5 <[email protected]>
/tmp is a tmpfs without EAs, we can't use that for our tests. On
NetBSD 11 the root filesystem has extended attributes enabled, so a
plain directory there works and we do not need to build, attach and
mount a separate FFS image anymore.
Co-Authored-By: Claude Opus 5 <[email protected]>
cross-platform-actions 1.4.0 adds NetBSD 11.0 VM images and bounds
waiting for VM boot by a wall clock timeout, so a VM that never becomes
ssh-reachable fails early instead of retrying for hours.
The FreeBSD, OpenBSD and Haiku images used here are unaffected: 14.3,
7.7 and r1beta5 are all still supported by 1.4.0.
Also point the pkgin repository at the NetBSD 11.0 pkgsrc package set
(py311 pip/virtualenv/tox and all other used packages are available
there) and fetch it via https.
Co-Authored-By: Claude Opus 5 <[email protected]>
fixes#9182
- install OS fuse support packages as indicated by the tox env
on the macOS runners, we do not have any fuse support.
on the linux runners, we may have fuse2 or fuse3.
on FreeBSD, we have fuse2.
- install fuse python library for binary build
- first build/upload binaries, then run tests (including binary tests).
early uploading makes inspection of a malfunctioning binary possible.
- for now, use llfuse, as there is an issue with pyinstaller and pyfuse3.
Also:
- remove || true - this just hides errors, not what we want.
there are no other free macOS Intel gh
action runners for opensource projects. :-(
the macOS 13 runner is deprecated, so guess
it will be game-over for macOS Intel 2025-12.
only run py39 fuse2 ubuntu 22.04 and py314 fuse3 ubuntu 24.04.
there are no binary builds in these matrix entries.
the macOS runners are usually super slow.
testing all pythons and building binaries consumes quite some
resources.
thus, only do that on "push" (e.g. when the PR is merged).
- move most Linux tests to ubuntu 22.04
- macOS: run on macos-14 (on Apple Silicon!)
- macOS: use OpenSSL 3.0 from brew
- macOS: run with Python 3.11
- pip install -e .: add -v
- trigger CI run for changed .toml files
- use up-to-date github actions
- remove libb2 references - since borg 1.2, we use blake2 indirectly via python stdlib