Commit Graph
94 Commits
Author SHA1 Message Date
Thomas WaldmannandClaude Opus 5 42072ba341 CI: cross-platform-actions 1.5.0, haiku r1beta6
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]>
2026-09-03 14:13:25 +02:00
Thomas WaldmannandClaude Opus 5 19a9295219 add support for Python 3.15
- 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]>
2026-09-03 12:26:46 +02:00
Thomas WaldmannandClaude Fable 5 7a50b4a50d CI: put the OpenBSD test tmp tree on a memory fs (1.4-maint)
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]>
2026-08-17 04:21:48 +02:00
Thomas WaldmannandClaude Fable 5 463ad29eb0 CI: give the test VMs 4 cpus (1.4-maint)
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]>
2026-08-17 04:21:31 +02:00
Thomas WaldmannandClaude Fable 5 6fd1fb70d9 CI: run the NetBSD VM job on python 3.14 (1.4-maint)
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]>
2026-08-17 04:21:13 +02:00
Thomas WaldmannandClaude Fable 5 8fd335ff15 CI: give the macOS runners a resolvable hostname (1.4-maint)
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]>
2026-08-17 03:58:35 +02:00
Thomas WaldmannandClaude Opus 5 25f6a71b8e CI: run non-binary-building jobs on ubuntu 24.04
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]>
2026-08-16 21:08:13 +02:00
Thomas WaldmannandClaude Opus 5 0930e99584 CI: upgrade to OpenBSD 7.9
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]>
2026-08-16 21:04:44 +02:00
Thomas WaldmannandClaude Opus 5 9d688983ef NetBSD 11: / has EAs enabled, use a TMPDIR there
/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]>
2026-08-14 22:15:41 +02:00
Thomas WaldmannandClaude Opus 5 b3f404296f CI: upgrade cross-platform-actions to 1.4.0, NetBSD to 11.0
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]>
2026-08-14 22:15:11 +02:00
Thomas Waldmann c8b42baf27 CI: fix freebsd job
looks like they removed the pip and virtualenv package.
2026-07-18 23:20:31 +02:00
Thomas Waldmann 86e6dd4207 use cross-platform-actions/[email protected], fixes #9565 2026-05-04 19:00:17 +02:00
Mrityunjay Raj 99ee41e404 github: enhance pull request template (port from master) 2026-02-17 22:34:10 +05:30
Thomas Waldmann 5f6c794cb0 CI: build linux binaries with pyfuse3 2026-02-14 15:04:45 +01:00
Thomas Waldmann af232a539c CI: use macos-15 to build the binaries
Github EOLed the macOS 13 Intel runner and only
supports Intel on macOS 15 from now on.

Let's also use macOS 15 for the Apple Silicon build.
2025-12-16 20:22:22 +01:00
Thomas Waldmann 1298840de0 CI: increase timeout 2025-12-02 11:04:56 +01:00
Thomas Waldmann 9f61c1c693 freebsd: fix upload name for artifact zip 2025-12-02 08:59:33 +01:00
Thomas Waldmann c845565c4a CI: FUSE related fixes/improvements (1.4-maint)
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.
2025-11-30 10:54:46 +01:00
Thomas Waldmann c43a78accf freebsd/netbsd: set and display full hostname 2025-11-29 18:37:24 +01:00
Thomas Waldmann 4525e8dfe6 rename posix_tests -> native_tests 2025-11-21 23:53:23 +01:00
Thomas Waldmann a022d5623c CI: backport vm_tests (FreeBSD/NetBSD/OpenBSD/Haiku) from master branch 2025-11-21 21:55:29 +01:00
Thomas Waldmann 5b92b86e13 CI: do dynamic code analysis, #6819
Use:
- AddressSanitizer ASan
- UndefinedBehaviorSanitizer UBSan

(cherry picked from commit add19da678)
2025-11-21 19:13:54 +01:00
Thomas Waldmann a25856a33d ci: add tag-based workflows and provenance attestation for GitHub-built binaries
backport of #9135 and #9136.
2025-11-02 22:06:08 +01:00
Thomas Waldmann cb0157ca55 drop Python 3.9 (EOL'ed by python.org) 2025-11-01 13:09:28 +01:00
Thomas Waldmann 687c34e89b CI: fix indentation in windows.yml 2025-10-15 17:42:12 +02:00
Thomas Waldmann 4d6ad22353 go back to macOS 13 for Intel
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.
2025-10-14 22:50:07 +02:00
Thomas Waldmann d595f04398 fix macos-14 label
macos-14-intel does not exist (yet?).
2025-10-14 22:33:38 +02:00
Thomas Waldmann 1a75569590 use macos-14 for the intel binary
the macOS 13 runner is already deprecated
and going away in 2 months already.
2025-10-14 22:16:08 +02:00
Thomas Waldmann 1759ff295a ci: check out exact tag during tagged commit builds 2025-10-14 19:30:28 +02:00
Thomas Waldmann 815aa560ac ci: improved tagged commit detection 2025-10-14 19:27:28 +02:00
Thomas Waldmann 5a3a0c4808 ci: build and test binaries only for tagged commits 2025-10-14 18:32:48 +02:00
Thomas Waldmann a768027de6 binaries: don't use .exe extension 2025-10-14 15:36:39 +02:00
Thomas Waldmann 43a39f5f08 binaries: directly give the binary name 2025-10-14 15:23:56 +02:00
Thomas Waldmann 8a4782d1aa ci: speed up pull requests
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).
2025-10-14 15:23:54 +02:00
Thomas Waldmann 33ab2dc688 binary builds for macOS and Ubuntu 2025-10-14 15:23:53 +02:00
Thomas Waldmann 116c2eee23 ci: add GitHub Actions workflow for building binaries on macOS 2025-10-14 00:12:49 +02:00
Thomas Waldmann 4915c26795 test on Python 3.14 (w/o -dev) 2025-10-09 17:36:03 +02:00
Thomas Waldmann 1bb32057d2 github workflows: fix typos and grammar 2025-08-12 11:15:11 +02:00
Thomas Waldmann 1b68676b8e github templates: fix typos and grammar 2025-08-11 22:21:49 +02:00
Thomas Waldmann 779a94bb20 support Python 3.14 2025-07-25 13:36:31 +02:00
Thomas Waldmann f3a61ae350 CI: test on ubuntu 22.04 or 24.04
20.04 was removed.
2025-04-17 15:17:57 +02:00
Thomas Waldmann 69151c7a1a support and test on Python 3.13 2024-12-25 13:49:01 +01:00
Thomas Waldmann de913cc251 github CI: windows msys2 build: broken, disable it for now, see #8264 2024-07-07 14:42:02 +02:00
Thomas Waldmann b9617928d4 github CI: fix PKG_CONFIG_PATH for openssl 3.0 2024-05-12 14:59:02 +02:00
Thomas Waldmann 28bd4d1bc6 github CI: misc updates
- 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
2024-03-15 16:38:30 +01:00
Thomas Waldmann 009a88626f gh actions: increase timeout
especially the macos workers are sometimes
extremely slow.
2024-01-30 00:39:53 +01:00
Stephen bfe81ab1d7 github CI (macOS): use brew bundle install (uses Brewfile) 2024-01-14 19:53:45 +01:00
Thomas Waldmann 915e58653b replace flake8 by ruff 2023-12-25 04:20:15 +01:00
Thomas Waldmann 84df37a19f use less setup.py, use pip and build
todo: clean clean2 build_usage build_man
2023-12-24 20:50:19 +01:00
Thomas Waldmann 6b402896a6 require python >= 3.9, drop py38, fixes #6383 2023-12-24 03:01:21 +01:00