Skip to content

chore[v1]: prepare for v1.6.1 - #1181

Merged
henryiii merged 9 commits into
pypa:v1from
henryiii:henryiii/chore/v1
Sep 9, 2026
Merged

chore[v1]: prepare for v1.6.1#1181
henryiii merged 9 commits into
pypa:v1from
henryiii:henryiii/chore/v1

Conversation

@henryiii

@henryiii henryiii commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Description

This cherry-picks all but one commit from main into v1, to prepare for a 1.6.1 bugfix release.

This must be rebase merged. This PR targets v1, not main.

gaborbernat and others added 9 commits August 27, 2026 15:39
Co-authored-by: layday <layday@protonmail.com>
Format the generated changelog with [docstrfmt
2.2.1](https://github.com/LilSpazJoekp/docstrfmt/releases/tag/v2.2.1)
before creating a release commit. v2.2.0 skipped `CHANGELOG.rst` in
GitHub's `build/build` checkout, leaving the 1.6.0 changelog over 120
columns.

Pin the release dependency and pre-commit hook to v2.2.1, with a
package-specific cutoff timestamp so uv can install it before the
seven-day window expires. Reformat the existing changelog to match
docstrfmt's output.
## Description

Fixes docstrfmt. See
LilSpazJoekp/docstrfmt#176.

<!-- Describe what changes you made and why -->

## Changelog

<!-- All PRs should include a changelog fragment in docs/changelog/ -->

Not needed.

- [ ] Added changelog fragment: `docs/changelog/<pr_number>.<type>.rst`
  - Types: `feature`, `bugfix`, `doc`, `removal`, `misc`
- Example: `123.feature.rst` containing `` Add custom backend support -
by :user:`yourname` ``

## Checklist

- [ ] Tests pass locally (`tox`)
- [ ] Code follows project style (`tox -e fix`)
- [ ] Type checks pass (`tox -e type`)
- [x] Documentation builds (`tox -e docs`)

Signed-off-by: Henry Schreiner <henryfs@princeton.edu>
## Description

Fix up the display of the changelog; now just a normal entry, the ToC is
now nested properly (first entry was raised a level before due to
docstrfmt rewriting it).

<!-- Describe what changes you made and why -->

## Changelog

<!-- All PRs should include a changelog fragment in docs/changelog/ -->

None needed.

- [ ] Added changelog fragment: `docs/changelog/<pr_number>.<type>.rst`
  - Types: `feature`, `bugfix`, `doc`, `removal`, `misc`
- Example: `123.feature.rst` containing `` Add custom backend support -
by :user:`yourname` ``

## Checklist

- [ ] Tests pass locally (`tox`)
- [ ] Code follows project style (`tox -e fix`)
- [ ] Type checks pass (`tox -e type`)
- [x] Documentation builds (`tox -e docs`)
Co-authored-by: Bernát Gábor <gaborjbernat@gmail.com>
…hub-actions group (pypa#1174)

Bumps the github-actions group with 1 update:
[re-actors/alls-green](https://github.com/re-actors/alls-green).

Updates `re-actors/alls-green` from 1.2.2 to 1.3.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/re-actors/alls-green/releases">re-actors/alls-green's
releases</a>.</em></p>
<blockquote>
<h2>v1.3.0</h2>
<!-- raw HTML omitted -->
<h2>🛡️ What's Unmessed</h2>
<blockquote>
<p>[!caution]</p>
<p>There was a small command injection risk in prior versions. I
consider it very low because of the specifics of the action use case.
But still, do upgrade, okay?</p>
<p><a href="https://github.com/illera88"><code>@​illera88</code></a><a
href="https://github.com/sponsors/max-sixty">💰</a> fixed this <a
href="https://docs.zizmor.sh/audits/#template-injection">template
injection</a> bug in <a
href="https://redirect.github.com/re-actors/alls-green/issues/37">#37</a>
by passing inputs via env vars.</p>
<p>See GHSA-gj76-h2ch-5m76 for more detail that was first reported by <a
href="https://github.com/Corbynx010"><code>@​Corbynx010</code></a><a
href="https://github.com/sponsors/Corbynx010">💰</a> while I was at
EuroPython.</p>
</blockquote>
<h2>✨ What's Improved</h2>
<p>I did a bunch of internal refactoring including hints of what <a
href="https://github.com/max-sixty"><code>@​max-sixty</code></a><a
href="https://github.com/sponsors/max-sixty">💰</a> reported in <a
href="https://redirect.github.com/re-actors/alls-green/issues/23">#23</a>.
And took a small patch of <a
href="https://github.com/krokofant"><code>@​krokofant</code></a><a
href="https://github.com/sponsors/krokofant">💰</a> in. This involved a
bunch of preparatory infra work with testing infra.</p>
<p>One notable improvement is that now thanks to <a
href="https://github.com/tomasr8"><code>@​tomasr8</code></a><a
href="https://github.com/sponsors/tomasr8">💰</a>'s and <a
href="https://github.com/hugovk"><code>@​hugovk</code></a><a
href="https://github.com/sponsors/hugovk">💰</a>'s UX suggestions in <a
href="https://redirect.github.com/re-actors/alls-green/issues/31">#31</a>,
the gate status output is colored in the console and should be easier to
scan in the log output per line. They entries now have leading
<code>✓</code>/<code>❌</code> acceptance marks and the actual incoming
job outcomes are labeled with
<code>🟢</code>/<code>🔴</code>/<code>⬜</code>/<code>⚫</code>.</p>
<h2>🐛 What's Fixed</h2>
<p>The job-statuses summary could print &quot;Some of the allowed to be
skipped jobs did not succeed&quot; based on the wrong condition — it's
now tied to <code>allowed-skips</code> as intended, not
<code>allowed-failures</code>.</p>
<h2>💪 New Contributors</h2>
<ul>
<li><a
href="https://github.com/Corbynx010"><code>@​Corbynx010</code></a><a
href="https://github.com/sponsors/Corbynx010">💰</a> lurked in
GHSA-gj76-h2ch-5m76 before everyone else 😉</li>
<li><a href="https://github.com/illera88"><code>@​illera88</code></a>
made their first contribution in <a
href="https://redirect.github.com/re-actors/alls-green/issues/37">#37</a>
and GHSA-gj76-h2ch-5m76</li>
<li><a href="https://github.com/krokofant"><code>@​krokofant</code></a>
and <a href="https://github.com/max-sixty"><code>@​max-sixty</code></a>
first contributed in <a
href="https://redirect.github.com/re-actors/alls-green/issues/23">#23</a></li>
<li><a href="https://github.com/tomasr8"><code>@​tomasr8</code></a> and
<a href="https://github.com/hugovk"><code>@​hugovk</code></a> in <a
href="https://redirect.github.com/re-actors/alls-green/issues/31">#31</a></li>
</ul>
<p><strong>🪞 Full Diff</strong>: <a
href="https://github.com/re-actors/alls-green/compare/v1.2.2...v1.3.0">https://github.com/re-actors/alls-green/compare/v1.2.2...v1.3.0</a></p>
<p><strong>🧔‍♂️ Release Manager:</strong> <a
href="https://github.com/sponsors/webknjaz"><code>@​webknjaz</code></a>
<a href="https://stand-with-ukraine.pp.ua">🇺🇦</a></p>
<p><strong>💬 Discuss</strong> <a
href="https://bsky.app/profile/did:plc:ve6s3mxkefjaxty3m4fdqumn/post/3mtn27ckwcs2g">on
Bluesky 🦋</a>, <a
href="https://mastodon.social/@webknjaz/117136385624434132">on Mastodon
🐘</a> and <a
href="https://github.com/re-actors/alls-green/discussions/41">on
GitHub</a>.</p>
<p><a href="https://github.com/sponsors/webknjaz"><img
src="https://img.shields.io/badge/%40webknjaz-transparent?logo=githubsponsors&amp;logoColor=%23EA4AAA&amp;label=Sponsor&amp;color=2a313c"
alt="GH Sponsors badge" /></a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/re-actors/alls-green/commit/b5b5b37504aa4183270bd3d855c52a67f212be35"><code>b5b5b37</code></a>
Merge pull request <a
href="https://redirect.github.com/re-actors/alls-green/issues/38">#38</a>
from re-actors/pre-commit-ci-update-config</li>
<li><a
href="https://github.com/re-actors/alls-green/commit/bd6edd6ad7041501d63ef0c4db5b2a91844258db"><code>bd6edd6</code></a>
[pre-commit.ci] pre-commit autoupdate</li>
<li><a
href="https://github.com/re-actors/alls-green/commit/3967c811870ad806b96fe6fc92c30945e28c7f83"><code>3967c81</code></a>
💅 Make the output easier to scan</li>
<li><a
href="https://github.com/re-actors/alls-green/commit/e68df088d4e9ee6bc36b8ea7deacf96161902d2a"><code>e68df08</code></a>
💅 Style job statuses title with a 🔮</li>
<li><a
href="https://github.com/re-actors/alls-green/commit/62d37b2e61967193e11080807fa07b65a5da2f1e"><code>62d37b2</code></a>
🧪 Unxfail 'success-of-some-allowed-to-skip-or-fail'</li>
<li><a
href="https://github.com/re-actors/alls-green/commit/7b5df6d203876347f566cd7054f1e14c4fe7feab"><code>7b5df6d</code></a>
💅 Add a Codecov badge to README</li>
<li><a
href="https://github.com/re-actors/alls-green/commit/2410c4cfd1739b8daac80b163f67b3bc7e82fa8a"><code>2410c4c</code></a>
🐛 Correct reporting failed skipped jobs</li>
<li><a
href="https://github.com/re-actors/alls-green/commit/6457593303d1f188ac0d1f1b6c215f89606a7820"><code>6457593</code></a>
💅 Add a GH Sponsors badge</li>
<li><a
href="https://github.com/re-actors/alls-green/commit/a617895ce910f6b620c770a79fc80d7fdc3cb0a3"><code>a617895</code></a>
💅 Add a pre-commit.ci badge</li>
<li><a
href="https://github.com/re-actors/alls-green/commit/8de05dc10f508bf473c58ea66a5ee252fe7e63bd"><code>8de05dc</code></a>
🧪 Force <code>ctrace</code> core in coveragepy</li>
<li>Additional commits viewable in <a
href="https://github.com/re-actors/alls-green/compare/05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe...b5b5b37504aa4183270bd3d855c52a67f212be35">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=re-actors/alls-green&package-manager=github_actions&previous-version=1.2.2&new-version=1.3.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
The broken probe fixed in pypa#1118 (1.6.0, broken previously) wasn't
actually supposed to be there; `python -m venv` doesn't check for
symlink support. Even if symlinks are supported, python don't always
work symlinked on Windows. This PR removes the check.

Fixes pypa#1175.

:robot: _AI text below_ :robot:



Version 1.6.0 fixed the symlink probe in pypa#1118. Before that fix the
probe always failed on Windows, so every isolated environment was built
from copies. After the fix, GitHub Windows runners report symlink
support, and `venv` started to symlink `python.exe`. A symlinked
interpreter cannot find the DLLs of some Python builds, most visibly
conda, and pip fails with `DLL load failed while importing _ssl` /
`_ctypes`. Projects such as xgboost, LightGBM, and partcad have pinned
`build<1.6` to work around this.

This change removes the probe and hardcodes `symlinks=os.name != 'nt'`,
which is the `venv` CLI default and the behavior all releases before
1.6.0 had in practice. The two tests for the probe are removed with it.
### What was wrong

Two pages give the location of pip's Windows configuration file, and
both write the path with two backslashes per separator inside an inline
literal:

- `docs/reference/environment-variables.rst` — "Alternative:
Configuration Files"
- `docs/how-to/corporate-environments.rst` — "Configuration Files"

reStructuredText does not treat backslashes as escape characters inside
inline literals, so the doubled separators are rendered verbatim.
Readers are shown a path with doubled separators, which is not a valid
Windows path — anyone copying it to find or create their `pip.ini` gets
the wrong location.

This is visible on the published docs today, on both `stable` and
`latest`:

- <https://build.pypa.io/en/stable/reference/environment-variables.html>
- <https://build.pypa.io/en/latest/how-to/corporate-environments.html>

pip's own documentation gives this location with single separators
(<https://pip.pypa.io/en/stable/topics/configuration/>), and the
surrounding docs are already consistent with that — the `TEMP` example a
few sections up in the same reference page uses single separators.

### How it was verified

- Rendered the exact source lines through docutils before and after: the
current source renders with doubled separators, the fixed source renders
the correct path.
- Built the full docs with the project's own settings, `sphinx-build -W
-n -b html docs`, which **succeeded**, and diffed the generated HTML for
both pages — each now renders the correct single-separator path.
- Cross-checked against the live published pages (linked above) and
against pip's documentation.
- Confirmed `git grep` finds no other occurrence of the doubled form in
the repository.

### What changed

One line in each of the two files, changing the doubled separators in
the inline literal to single ones. Nothing else — no prose, formatting,
or unrelated files.

### Validation performed

`sphinx-build -W -n` completed with no warnings or errors. I could not
run the full `tox -e docs` environment locally (it pins `base_python =
"3.14"`; I have 3.12), so `proselint` did not run — but this change
touches no prose, only the contents of an inline literal.

Happy to fold in the second file separately if you would rather keep the
how-to and reference changes apart.

### Before / after on Read the Docs

The Read the Docs preview for this PR renders the correct path on both
pages, which can be compared directly against the currently published
docs:

| | Reference page | How-to page |
|---|---|---|
| Published today |
[environment-variables](https://build.pypa.io/en/latest/reference/environment-variables.html)
|
[corporate-environments](https://build.pypa.io/en/latest/how-to/corporate-environments.html)
|
| This PR |
[environment-variables](https://pypa-build--1149.org.readthedocs.build/en/1149/reference/environment-variables.html)
|
[corporate-environments](https://pypa-build--1149.org.readthedocs.build/en/1149/how-to/corporate-environments.html)
|
🤖 _AI text below_ 🤖

The pre-release workflow, the local release script, and the test
workflow only accepted `main`. This lets them also run on `v*`
maintenance branches:

- `pre-release.yml`: run on `main` or `v*`, check out the dispatched
ref, push back to the dispatched branch.
- `tasks/release.py`: push to the current branch instead of `main`.
- `test.yml` and `cd.yml`: trigger on pushes and PRs for `v*` branches.

The `release` and `pypi` GitHub environments need `v*` added to their
branch rules before a release from a `v1` branch can run.
@henryiii
henryiii merged commit a6f707a into pypa:v1 Sep 9, 2026
60 checks passed
@henryiii
henryiii deleted the henryiii/chore/v1 branch September 9, 2026 20:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants