Skip to content

code that overrides process_value receives Sentinel object #3065

@ggainey

Description

@ggainey

I am running our release process 27 minutes after click/8.3.0 release, and failing with the stacktrace seen here: https://github.com/pulp/pulpcore/actions/runs/17837218351/job/50717339446#step:7:29

Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.11.13/x64/bin/bump-my-version", line 7, in <module>
    sys.exit(cli())
             ^^^^^
  File "/opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/rich_click/rich_command.py", line 395, in __call__
    return super().__call__(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/click/core.py", line 1462, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/rich_click/rich_command.py", line 209, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/click/core.py", line 1848, in invoke
    sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/click/core.py", line 1206, in make_context
    self.parse_args(ctx, args)
  File "/opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/click/core.py", line 1217, in parse_args
    _, args = param.handle_parse_result(ctx, opts, args)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/click/core.py", line 2516, in handle_parse_result
    value = self.process_value(ctx, value)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/bumpversion/click_config.py", line 71, in process_value
    return resolve_conf_location(value) if value else None
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/bumpversion/click_config.py", line 117, in resolve_conf_location
    parsed_url = urlparse(url_or_path)
                 ^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/urllib/parse.py", line 394, in urlparse
    url, scheme, _coerce_result = _coerce_args(url, scheme)
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/urllib/parse.py", line 133, in _coerce_args
    return _decode_args(args) + (_encode_result,)
           ^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/urllib/parse.py", line 117, in _decode_args
    return tuple(x.decode(encoding, errors) if x else '' for x in args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/urllib/parse.py", line 117, in <genexpr>
    return tuple(x.decode(encoding, errors) if x else '' for x in args)
                 ^^^^^^^^
AttributeError: 'Sentinel' object has no attribute 'decode'
Error: Process completed with exit code 1.

The only difference between this failure, and a previous run in a different repo about 30 minutes prior, is the click-update:

diff --git a/core.sorted b/rpm.sorted
index 121f62a..d193b72 100644
--- a/core.sorted
+++ b/rpm.sorted
@@ -1,9 +1,10 @@
+
 annotated-types-0.7.0
 anyio-4.10.0
 bracex-2.6
 bump-my-version-1.2.2
 certifi-2025.8.3
-click-8.3.0
+click-8.2.1
 h11-0.16.0
 httpcore-1.0.9
 httpx-0.28.1

You can see the release-script here: https://github.com/pulp/pulpcore/blob/main/.github/workflows/scripts/release.sh

I don't have an isolated reproducer yet - thought I'd get a notification up ASAP.

Environment:

  • Python version: 3.11
  • Click version: 8.3.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions