• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pybuilder / pybuilder / 32796125867
84%

Build:
DEFAULT BRANCH: master
Ran 25 Aug 2026 01:12AM UTC
Jobs 46
Files 57
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

25 Aug 2026 01:04AM UTC coverage: 83.781% (+0.9%) from 82.885%
32796125867

push

github

web-flow
Add Python 3.15 support, drop pre-3.10 workarounds, update vendorized dependencies [release] (#948)

Releases 0.13.21.

## Python 3.15 support

Python 3.15 removed the legacy `load_module()` fallback from the import
machinery, so meta path loaders must implement the PEP 451
`create_module()`/`exec_module()` protocol. Both `VendorImporter` and
`CoverageImporter` failed at import time without it:

```
AttributeError: 'VendorImporter' object has no attribute 'exec_module'
```

There is a subtlety beyond simply adding the two methods.
`module_from_spec()` unconditionally overwrites `__spec__` on whatever
`create_module()` returns, so returning the vendored module directly
replaces its real spec with the alias spec — which has no origin and a
loader unable to locate resources. That surfaced as a second failure:

```
FileNotFoundError: Can't open orphan path (importlib/resources/_adapters.py:139)
```

when virtualenv looked up its own embedded payload. Both loaders now
stash the real spec in `create_module()` and restore it in
`exec_module()`, preserving the pre-3.15 behaviour exactly.

New regression tests (`extern_tests.py`, `coverage_shim_tests.py`) cover
the alias import, submodule import, spec preservation and resource
lookup. They fail without the fix on 3.10, 3.14 and 3.15.

## Pre-3.10 workaround removal

* `collections.abc` fallback in `utils`
* `types.WrapperDescriptorType` et al. fallback in `remote`
* `multiprocessing.semaphore_tracker` fallback in `remote`
* `importlib_metadata` backport fallback in `pip_common`
* 3.8-only `find_distributions` wrapper in `extern`
* hand-rolled `NodeVisitor` computing `end_lineno` in `vendorize`
* `pybuilder_venv.version >= (3, 3)` gate in `sphinx`
* `py2`/`py3` branching in the scaffolded `setup.py`
* `from __future__ import unicode_literals` in `pep517`
* Python 2 residue in `python_utils`
* version guards in the unit and integration tests

The `datetime.UTC` and `unittest.case._addError` fallbacks are retaine... (continued)

1427 of 1868 branches covered (76.39%)

Branch coverage included in aggregate %.

27 of 27 new or added lines in 8 files covered. (100.0%)

23 existing lines in 1 file now uncovered.

5619 of 6542 relevant lines covered (85.89%)

38.45 hits per line

Coverage Regressions

Lines Coverage ∆ File
23
42.03
-18.9% src/main/python/pybuilder/python_utils.py
Jobs
ID Job ID Ran Files Coverage
1 32796125867.1 25 Aug 2026 01:12AM UTC 57
83.06
GitHub Action Run
2 32796125867.2 25 Aug 2026 01:13AM UTC 57
83.06
GitHub Action Run
3 32796125867.3 25 Aug 2026 01:13AM UTC 57
83.29
GitHub Action Run
4 32796125867.4 25 Aug 2026 01:13AM UTC 57
83.29
GitHub Action Run
5 32796125867.5 25 Aug 2026 01:14AM UTC 57
83.02
GitHub Action Run
6 32796125867.6 25 Aug 2026 01:15AM UTC 57
83.29
GitHub Action Run
7 32796125867.7 25 Aug 2026 01:15AM UTC 57
83.02
GitHub Action Run
8 32796125867.8 25 Aug 2026 01:16AM UTC 57
83.29
GitHub Action Run
9 32796125867.9 25 Aug 2026 01:16AM UTC 57
83.31
GitHub Action Run
10 32796125867.10 25 Aug 2026 01:16AM UTC 57
83.31
GitHub Action Run
11 32796125867.11 25 Aug 2026 01:16AM UTC 57
83.31
GitHub Action Run
12 32796125867.12 25 Aug 2026 01:16AM UTC 57
83.31
GitHub Action Run
13 32796125867.13 25 Aug 2026 01:39AM UTC 55
79.91
GitHub Action Run
14 32796125867.14 25 Aug 2026 01:39AM UTC 55
79.63
GitHub Action Run
15 32796125867.15 25 Aug 2026 01:45AM UTC 55
79.91
GitHub Action Run
16 32796125867.16 25 Aug 2026 01:45AM UTC 55
79.92
GitHub Action Run
17 32796125867.17 25 Aug 2026 01:46AM UTC 55
79.92
GitHub Action Run
18 32796125867.18 25 Aug 2026 01:46AM UTC 55
79.91
GitHub Action Run
19 32796125867.19 25 Aug 2026 01:46AM UTC 55
79.92
GitHub Action Run
20 32796125867.20 25 Aug 2026 01:49AM UTC 55
79.91
GitHub Action Run
21 32796125867.21 25 Aug 2026 01:51AM UTC 55
79.66
GitHub Action Run
22 32796125867.22 25 Aug 2026 01:51AM UTC 55
79.63
GitHub Action Run
23 32796125867.23 25 Aug 2026 01:51AM UTC 55
79.66
GitHub Action Run
24 32796125867.24 25 Aug 2026 01:52AM UTC 57
83.33
GitHub Action Run
25 32796125867.25 25 Aug 2026 01:52AM UTC 55
79.92
GitHub Action Run
26 32796125867.26 25 Aug 2026 02:11AM UTC 57
83.33
GitHub Action Run
27 32796125867.27 25 Aug 2026 02:22AM UTC 57
83.34
GitHub Action Run
28 32796125867.28 25 Aug 2026 02:56AM UTC 57
83.34
GitHub Action Run
29 32796125867.29 25 Aug 2026 03:19AM UTC 55
79.56
GitHub Action Run
30 32796125867.30 25 Aug 2026 03:29AM UTC 57
83.34
GitHub Action Run
31 32796125867.31 25 Aug 2026 03:47AM UTC 55
79.58
GitHub Action Run
32 32796125867.32 25 Aug 2026 03:48AM UTC 57
83.34
GitHub Action Run
33 32796125867.33 25 Aug 2026 03:52AM UTC 57
83.33
GitHub Action Run
34 32796125867.34 25 Aug 2026 04:01AM UTC 57
83.33
GitHub Action Run
35 32796125867.35 25 Aug 2026 04:05AM UTC 57
83.33
GitHub Action Run
36 32796125867.36 25 Aug 2026 04:07AM UTC 57
83.33
GitHub Action Run
37 32796125867.37 25 Aug 2026 04:19AM UTC 55
79.58
GitHub Action Run
38 32796125867.38 25 Aug 2026 04:26AM UTC 55
79.59
GitHub Action Run
39 32796125867.39 25 Aug 2026 04:34AM UTC 55
79.56
GitHub Action Run
40 32796125867.40 25 Aug 2026 04:34AM UTC 57
83.34
GitHub Action Run
41 32796125867.41 25 Aug 2026 04:37AM UTC 57
83.33
GitHub Action Run
42 32796125867.42 25 Aug 2026 04:46AM UTC 55
79.59
GitHub Action Run
43 32796125867.43 25 Aug 2026 04:50AM UTC 57
83.33
GitHub Action Run
44 32796125867.44 25 Aug 2026 04:57AM UTC 55
79.56
GitHub Action Run
45 32796125867.45 25 Aug 2026 05:00AM UTC 55
79.56
GitHub Action Run
46 32796125867.46 25 Aug 2026 05:03AM UTC 57
83.34
GitHub Action Run
Source Files on build 32796125867
  • Tree
  • List 57
  • Changed 10
  • Source Changed 0
  • Coverage Changed 10
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 7e4be42a on github
  • Prev Build on master (#23886302068)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc