Use :func:shlex.split to split pager and editor commands into argv
lists for :class:subprocess.Popen, removing shell=True.
:issue:1026 :pr:1477 :pr:2775
Fix TypeError when rendering help for an option whose default value is
an object that doesn't support equality comparison with strings, such as semver.Version. :issue:3298 :pr:3299
Fix pager test pollution under parallel execution by using pytest's tmp_path fixture instead of a shared temporary file path. :pr:3238
Treat Sentinel.UNSET values in a default_map as absent, so they fall
through to the next default source instead of being used as the value.
:issue:3224 :pr:3240
Patch pdb.Pdb in CliRunner isolation so pdb.set_trace(), breakpoint(), and debuggers subclassing pdb.Pdb (ipdb, pdbpp) can
interact with the real terminal instead of the captured I/O streams.
:issue:654 :issue:824 :issue:843 :pr:951 :pr:3235
Add optional randomized parallel test execution using pytest-randomly and pytest-xdist to detect test pollution and race conditions. :pr:3151
Add contributor documentation for running stress tests, randomized
parallel tests, and Flask smoke tests. :pr:3151 :pr:3177
Show custom show_default string in prompts, matching the existing
help text behavior. :issue:2836 :pr:2837 :pr:3165 :pr:3262 :pr:3280
:pr:3328
Fix default=True with boolean flag_value always returning the flag_value instead of True. The default=True to flag_value
substitution now only applies to non-boolean flags, where True acts as a
sentinel meaning "activate this flag by default". For boolean flags, default=True is returned as a literal value. :issue:3111 :pr:3239
Mark make_default_short_help as private API. :issue:3189 :pr:3250
CliRunner's redirected streams now expose the original file descriptor
via fileno(), so that faulthandler, subprocess, and other
C-level consumers no longer crash with io.UnsupportedOperation.
:issue:2865
Change :class:ParameterSource to an :class:~enum.IntEnum and reorder
its members from most to least explicit, so values can be compared to
check whether a parameter was explicitly provided. :issue:2879 :pr:3248
Configuration
📅Schedule: (in timezone America/Edmonton)
Branch creation
At any time (no schedule defined)
Automerge
At any time (no schedule defined)
🚦Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕Ignore: Close this PR and you won't be reminded about this update again.
If you want to rebase/retry this PR, check this box
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [click](https://github.com/pallets/click) ([changelog](https://click.palletsprojects.com/page/changes/)) | patch | `==8.3.2` → `==8.3.3` |
---
### Release Notes
<details>
<summary>pallets/click (click)</summary>
### [`v8.3.3`](https://github.com/pallets/click/blob/HEAD/CHANGES.rst#Version-833)
[Compare Source](https://github.com/pallets/click/compare/8.3.2...8.3.3)
Released 2026-04-20
- Use :func:`shlex.split` to split pager and editor commands into `argv`
lists for :class:`subprocess.Popen`, removing `shell=True`.
:issue:`1026` :pr:`1477` :pr:`2775`
- Fix `TypeError` when rendering help for an option whose default value is
an object that doesn't support equality comparison with strings, such as
`semver.Version`. :issue:`3298` :pr:`3299`
- Fix pager test pollution under parallel execution by using pytest's
`tmp_path` fixture instead of a shared temporary file path. :pr:`3238`
- Treat `Sentinel.UNSET` values in a `default_map` as absent, so they fall
through to the next default source instead of being used as the value.
:issue:`3224` :pr:`3240`
- Patch `pdb.Pdb` in `CliRunner` isolation so `pdb.set_trace()`,
`breakpoint()`, and debuggers subclassing `pdb.Pdb` (ipdb, pdbpp) can
interact with the real terminal instead of the captured I/O streams.
:issue:`654` :issue:`824` :issue:`843` :pr:`951` :pr:`3235`
- Add optional randomized parallel test execution using `pytest-randomly` and
`pytest-xdist` to detect test pollution and race conditions. :pr:`3151`
- Add contributor documentation for running stress tests, randomized
parallel tests, and Flask smoke tests. :pr:`3151` :pr:`3177`
- Show custom `show_default` string in prompts, matching the existing
help text behavior. :issue:`2836` :pr:`2837` :pr:`3165` :pr:`3262` :pr:`3280`
:pr:`3328`
- Fix `default=True` with boolean `flag_value` always returning the
`flag_value` instead of `True`. The `default=True` to `flag_value`
substitution now only applies to non-boolean flags, where `True` acts as a
sentinel meaning "activate this flag by default". For boolean flags,
`default=True` is returned as a literal value. :issue:`3111` :pr:`3239`
- Mark `make_default_short_help` as private API. :issue:`3189` :pr:`3250`
- `CliRunner`'s redirected streams now expose the original file descriptor
via `fileno()`, so that `faulthandler`, `subprocess`, and other
C-level consumers no longer crash with `io.UnsupportedOperation`.
:issue:`2865`
- Change :class:`ParameterSource` to an :class:`~enum.IntEnum` and reorder
its members from most to least explicit, so values can be compared to
check whether a parameter was explicitly provided. :issue:`2879` :pr:`3248`
</details>
---
### Configuration
📅 **Schedule**: (in timezone America/Edmonton)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzkuNSIsInVwZGF0ZWRJblZlciI6IjQzLjEzOS44IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
==8.3.2→==8.3.3Release Notes
pallets/click (click)
v8.3.3Compare Source
Released 2026-04-20
shlex.splitto split pager and editor commands intoargvlists for :class:
subprocess.Popen, removingshell=True.:issue:
1026:pr:1477:pr:2775TypeErrorwhen rendering help for an option whose default value isan object that doesn't support equality comparison with strings, such as
semver.Version. :issue:3298:pr:3299tmp_pathfixture instead of a shared temporary file path. :pr:3238Sentinel.UNSETvalues in adefault_mapas absent, so they fallthrough to the next default source instead of being used as the value.
:issue:
3224:pr:3240pdb.PdbinCliRunnerisolation sopdb.set_trace(),breakpoint(), and debuggers subclassingpdb.Pdb(ipdb, pdbpp) caninteract with the real terminal instead of the captured I/O streams.
:issue:
654:issue:824:issue:843:pr:951:pr:3235pytest-randomlyandpytest-xdistto detect test pollution and race conditions. :pr:3151parallel tests, and Flask smoke tests. :pr:
3151:pr:3177show_defaultstring in prompts, matching the existinghelp text behavior. :issue:
2836:pr:2837:pr:3165:pr:3262:pr:3280:pr:
3328default=Truewith booleanflag_valuealways returning theflag_valueinstead ofTrue. Thedefault=Truetoflag_valuesubstitution now only applies to non-boolean flags, where
Trueacts as asentinel meaning "activate this flag by default". For boolean flags,
default=Trueis returned as a literal value. :issue:3111:pr:3239make_default_short_helpas private API. :issue:3189:pr:3250CliRunner's redirected streams now expose the original file descriptorvia
fileno(), so thatfaulthandler,subprocess, and otherC-level consumers no longer crash with
io.UnsupportedOperation.:issue:
2865ParameterSourceto an :class:~enum.IntEnumand reorderits members from most to least explicit, so values can be compared to
check whether a parameter was explicitly provided. :issue:
2879:pr:3248Configuration
📅 Schedule: (in timezone America/Edmonton)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate.