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

tomerfiliba / plumbum / 29888045439
88%

Build:
DEFAULT BRANCH: master
Ran 22 Jul 2026 03:17AM UTC
Jobs 15
Files 46
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

22 Jul 2026 03:16AM UTC coverage: 87.478% (-0.05%) from 87.526%
29888045439

push

github

web-flow
fix: harden subprocess and pipeline lifecycle handling (#822)

* fix: harden subprocess and pipeline lifecycle handling

Addresses several subprocess/pipeline lifecycle robustness issues:

- bgrun: wrap the yield in try/finally so the process is always reaped
  and pipes closed even if the with-body raises (incl. KeyboardInterrupt);
  the existing was_run guard keeps reaping to exactly once.
- CommandNotFound: pass (program, path) to super().__init__ instead of
  (self, program, path), fixing repr and pickling.
- timeout heap: add a monotonic counter tiebreaker so equal deadlines
  never make heapq compare uncomparable Popen objects and kill the
  singleton timeout thread.
- Pipeline.formulate: bind call-time args to the source command, matching
  popen's behaviour (e.g. (a | b)("x") -> a x | b).
- Pipeline.popen: close the source's leaked stderr/stdin pipes after both
  stages are reaped.
- async TEE: read stdout/stderr in fixed-size chunks (readline raises past
  the 64KiB limit) with a single incremental decoder per stream to keep
  multibyte chars intact across chunk boundaries; kill/reap the subprocess
  on any failure, not only on timeout.
- daemons: use ProcessLookupError/PermissionError instead of errno checks
  (EPERM means the process exists), accept and ignore wait(timeout=...),
  and use subprocess.DETACHED_PROCESS.

Refs #820

Assisted-by: ClaudeCode:claude-opus-4.8

* test: fix lint and make pipeline-args test path-agnostic for Windows

Addresses CI failures on #822: drop unused unpacked var, combine nested
with-statements (ruff), and assert pipeline arg placement by splitting on
the pipe so it tolerates absolute exe paths on Windows.

Assisted-by: ClaudeCode:claude-opus-4.8

* fix: kill process on bgrun body exception; honor daemon wait timeout

On an exceptional exit from bgrun, terminate (then kill) and reap the
process instead of waiting for natural completion, and skip return-code
validation so the body's exception is not delayed or... (continued)

1346 of 1797 branches covered (74.9%)

62 of 73 new or added lines in 4 files covered. (84.93%)

1 existing line in 1 file now uncovered.

5547 of 6341 relevant lines covered (87.48%)

12.41 hits per line

Uncovered Changes

Lines Coverage ∆ File
5
89.83
-0.55% plumbum/commands/async_.py
4
75.41
-0.11% plumbum/commands/processes.py
2
89.25
-0.75% plumbum/commands/daemons.py

Coverage Regressions

Lines Coverage ∆ File
1
89.83
-0.55% plumbum/commands/async_.py
Jobs
ID Job ID Ran Files Coverage
1 test-macos-latest-3.14 - 29888045439.1 22 Jul 2026 03:21AM UTC 46
85.75
GitHub Action Run
2 test-ubuntu-latest-3.14 - 29888045439.2 22 Jul 2026 03:21AM UTC 46
85.95
GitHub Action Run
3 test-macos-latest-3.15 - 29888045439.3 22 Jul 2026 03:21AM UTC 46
85.75
GitHub Action Run
4 test-ubuntu-latest-3.9 - 29888045439.4 22 Jul 2026 03:21AM UTC 46
85.95
GitHub Action Run
5 test-ubuntu-latest-3.13 - 29888045439.5 22 Jul 2026 03:21AM UTC 46
85.95
GitHub Action Run
6 test-windows-latest-3.11 - 29888045439.6 22 Jul 2026 03:21AM UTC 46
70.47
GitHub Action Run
7 test-ubuntu-latest-pypy-3.11 - 29888045439.7 22 Jul 2026 03:21AM UTC 46
85.94
GitHub Action Run
8 test-macos-latest-3.9 - 29888045439.8 22 Jul 2026 03:21AM UTC 46
85.74
GitHub Action Run
9 test-ubuntu-latest-3.15 - 29888045439.9 22 Jul 2026 03:21AM UTC 46
85.95
GitHub Action Run
10 test-macos-latest-3.11 - 29888045439.10 22 Jul 2026 03:21AM UTC 46
85.78
GitHub Action Run
11 test-windows-latest-3.9 - 29888045439.11 22 Jul 2026 03:21AM UTC 46
70.44
GitHub Action Run
12 test-ubuntu-latest-3.11 - 29888045439.12 22 Jul 2026 03:21AM UTC 46
85.78
GitHub Action Run
13 test-ubuntu-latest-3.12 - 29888045439.13 22 Jul 2026 03:21AM UTC 46
85.98
GitHub Action Run
14 test-ubuntu-latest-3.10 - 29888045439.14 22 Jul 2026 03:21AM UTC 46
85.98
GitHub Action Run
15 test-windows-latest-3.14 - 29888045439.15 22 Jul 2026 03:21AM UTC 46
70.3
GitHub Action Run
Source Files on build 29888045439
  • Tree
  • List 46
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • e50ba3a2 on github
  • Prev Build on master (#29882703861)
  • Next Build on master (#29888256867)
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