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

zopefoundation / meta / 31674013441
19%

Build:
DEFAULT BRANCH: master
Ran 13 Aug 2026 06:30AM UTC
Jobs 1
Files 17
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

13 Aug 2026 06:29AM UTC coverage: 14.834%. Remained the same
31674013441

push

github

web-flow
Fix silent pip upgrade failure on Windows in the c-code template (#437)

* Fix silent pip upgrade failure on Windows in c-code template

On Windows the `pip.exe` shim refuses to replace itself:

    ERROR: To modify pip, please run the following command:
    ...\python.exe -m pip install -U pip

Because a multi-line `run:` under pwsh only propagates the last command's
exit code, that failure went unnoticed, leaving PyPy/Windows on the pip 24.0
that ensurepip ships. That pip does not invalidate corrupt entries in its
HTTP cache, so once the persisted cache contained a bad record, every run
restoring it failed with `OSError: Connection broken: IncompleteRead(...)`
until GitHub happened to evict the entry.

Upgrade pip via `python -m pip`, and set `defaults.run.shell` to `bash` so a
failing command in a multi-command block aborts the step on Windows, too.
Since bash is now used everywhere, the OS-split pip cache steps collapse
into one pair; `$Env:GITHUB_OUTPUT` was the only pwsh-specific syntax in
any template.

Verified in zopefoundation/zope.interface#378.

* Quote the $GITHUB_OUTPUT redirect target

Now that the step runs under bash on Windows too, the redirect target is a
Windows path (`D:\a\_temp\...`). Quoting matches the form GitHub documents
for bash and removes any doubt about word splitting or globbing.

* Set pip_pre for the free-threaded future Python variant

The envlist already contains py<future>t when both free-threaded and future
Python are enabled, but pip_pre only listed the non-free-threaded variant, so
its pre-release dependencies could not be installed. zope.interface carried a
hand-edit for this, which the template would otherwise revert.

* Rotate the pip cache key weekly

`actions/cache` never replaces an entry: "if the provided key matches an
existing cache, a new cache is not created". The pip cache key never varied,
so once an entry held a truncated download every run restoring it failed with
`OSError: Connection broken: Inco... (continued)

5 of 452 branches covered (1.11%)

Branch coverage included in aggregate %.

250 of 1267 relevant lines covered (19.73%)

0.2 hits per line

Jobs
ID Job ID Ran Files Coverage
1 31674013441.1 13 Aug 2026 06:30AM UTC 17
14.83
GitHub Action Run
Source Files on build 31674013441
  • Tree
  • List 17
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 15db09e6 on github
  • Prev Build on master (#31038014151)
  • Next Build on master (#31674155062)
  • Delete
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