Your message dated Tue, 23 Dec 2025 15:19:26 +0000
with message-id <[email protected]>
and subject line Bug#1123433: fixed in pydantic-settings 2.12.0-2
has caused the Debian Bug report #1123433,
regarding pydantic-settings: FTBFS:     example.py: error: unrecognized 
arguments: --bad-arg
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1123433: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1123433
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: src:pydantic-settings
Version: 2.12.0-1
Severity: serious
Tags: ftbfs forky sid

Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/202512/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:pydantic-settings, so that this is still
visible in the BTS web page for this package.

Thanks.

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
   dh_autoreconf_clean -O--buildsystem=pybuild
   dh_clean -O--buildsystem=pybuild
 debian/rules binary
dh binary --buildsystem=pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
   dh_auto_build -O--buildsystem=pybuild
I: pybuild plugin_pyproject:131: Building wheel for python3.14 with "build" 
module
I: pybuild base:317: python3.14 -m build --skip-dependency-check --no-isolation 
--wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_pydantic-settings  
* Building wheel...
Successfully built pydantic_settings-2.12.0-py3-none-any.whl

[... snipped ...]

            m.setattr(sys, 'argv', ['example.py', '--help'])
    
            with pytest.raises(SystemExit):
                CliApp.run(Settings)
    
            if PYTHON_3_14:
                if IS_WINDOWS:
                    text = """usage: example.py [-h] [--visible_obj [JSON]]
                                [--visible_obj.visible_a int]
                                [--visible_obj.visible_b int]"""
                else:
                    text = """usage: example.py [-h] [--visible_obj [JSON]]
                             [--visible_obj.visible_a int]
                             [--visible_obj.visible_b int]"""
    
            else:
                text = """usage: example.py [-h] [--visible_obj [JSON]] 
[--visible_obj.visible_a int]
                      [--visible_obj.visible_b int]"""
>           assert (
                sanitize_cli_output(capsys.readouterr().out)
                == f"""{text}
    
    {ARGPARSE_OPTIONS_TEXT}:
      -h, --help            show this help message and exit
    
    visible_obj options:
      --visible_obj [JSON]  set visible_obj from JSON string (default: {{}})
      --visible_obj.visible_a int
                            (required)
      --visible_obj.visible_b int
                            (required)
    """
            )
E           AssertionError: assert 'usage: pytho... (required)\n' == 'usage: 
examp... (required)\n'
E             
E             - usage: example.py [-h] [--visible_obj [JSON]]
E             + usage: python3.14 -m pytest [-h] [--visible_obj [JSON]]
E             -                          [--visible_obj.visible_a int]
E             +                             [--visible_obj.visible_a int]
E             ? +++
E             -                          [--visible_obj.visible_b int]...
E             
E             ...Full output truncated (12 lines hidden), use '-vv' to show

tests/test_source_cli.py:2328: AssertionError
______________________ test_cli_mutually_exclusive_group _______________________

capsys = <_pytest.capture.CaptureFixture object at 0x7f5b76699bd0>
monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f5b766939a0>

    def test_cli_mutually_exclusive_group(capsys, monkeypatch):
        class Circle(CliMutuallyExclusiveGroup):
            radius: float | None = 21
            diameter: float | None = 22
            perimeter: float | None = 23
    
        class Settings(BaseModel):
            circle_optional: Circle = Circle(radius=None, diameter=None, 
perimeter=24)
            circle_required: Circle
    
        CliApp.run(Settings, cli_args=['--circle-required.radius=1', 
'--circle-optional.radius=1']).model_dump() == {
            'circle_optional': {'radius': 1, 'diameter': 22, 'perimeter': 24},
            'circle_required': {'radius': 1, 'diameter': 22, 'perimeter': 23},
        }
    
        with pytest.raises(SystemExit):
            CliApp.run(Settings, cli_args=['--circle-required.radius=1', 
'--circle-required.diameter=2'])
        assert (
            'error: argument --circle-required.diameter: not allowed with 
argument --circle-required.radius'
            in capsys.readouterr().err
        )
    
        with pytest.raises(SystemExit):
            CliApp.run(
                Settings,
                cli_args=['--circle-required.radius=1', 
'--circle-optional.radius=1', '--circle-optional.diameter=2'],
            )
        assert (
            'error: argument --circle-optional.diameter: not allowed with 
argument --circle-optional.radius'
            in capsys.readouterr().err
        )
    
        with monkeypatch.context() as m:
            m.setattr(sys, 'argv', ['example.py', '--help'])
            with pytest.raises(SystemExit):
                CliApp.run(Settings)
            if PYTHON_3_14:
                if IS_WINDOWS:
                    usage = """usage: example.py [-h] [--circle-optional.radius 
float |
                                --circle-optional.diameter float |
                                --circle-optional.perimeter float]
                                (--circle-required.radius float |
                                --circle-required.diameter float |
                                --circle-required.perimeter float)"""
                else:
                    usage = """usage: example.py [-h] [--circle-optional.radius 
float |
                             --circle-optional.diameter float |
                             --circle-optional.perimeter float]
                             (--circle-required.radius float |
                             --circle-required.diameter float |
                             --circle-required.perimeter float)"""
            elif sys.version_info >= (3, 13):
                usage = """usage: example.py [-h] [--circle-optional.radius 
float |
                      --circle-optional.diameter float |
                      --circle-optional.perimeter float]
                      (--circle-required.radius float |
                      --circle-required.diameter float |
                      --circle-required.perimeter float)"""
            else:
                usage = """usage: example.py [-h]
                      [--circle-optional.radius float | 
--circle-optional.diameter float | --circle-optional.perimeter float]
                      (--circle-required.radius float | 
--circle-required.diameter float | --circle-required.perimeter float)"""
>           assert (
                sanitize_cli_output(capsys.readouterr().out)
                == f"""{usage}
    
    {ARGPARSE_OPTIONS_TEXT}:
      -h, --help            show this help message and exit
    
    circle-optional options (mutually exclusive):
      --circle-optional.radius float
                            (default: None)
      --circle-optional.diameter float
                            (default: None)
      --circle-optional.perimeter float
                            (default: 24.0)
    
    circle-required options (mutually exclusive):
      --circle-required.radius float
                            (default: 21)
      --circle-required.diameter float
                            (default: 22)
      --circle-required.perimeter float
                            (default: 23)
    """
            )
E           AssertionError: assert 'usage: pytho...efault: 23)\n' == 'usage: 
examp...efault: 23)\n'
E             
E             - usage: example.py [-h] [--circle-optional.radius float |
E             ?        --------
E             + usage: python3.14 -m pytest [-h] [--circle-optional.radius 
float |
E             ?          ++++++++++++++++++
E             -                          --circle-optional.diameter float |
E             +                             --circle-optional.diameter float 
|...
E             
E             ...Full output truncated (32 lines hidden), use '-vv' to show

tests/test_source_cli.py:2407: AssertionError
_____________________________ test_cli_kebab_case ______________________________

capsys = <_pytest.capture.CaptureFixture object at 0x7f5b75ee8410>
monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f5b75b9e660>

    def test_cli_kebab_case(capsys, monkeypatch):
        class DeepSubModel(BaseModel):
            deep_pos_arg: CliPositionalArg[str]
            deep_arg: str
    
        class SubModel(BaseModel):
            sub_subcmd: CliSubCommand[DeepSubModel]
            sub_other_subcmd: CliSubCommand[DeepSubModel]
            sub_arg: str
    
        class Root(BaseModel):
            root_subcmd: CliSubCommand[SubModel]
            other_subcmd: CliSubCommand[SubModel]
            root_arg: str
    
        root = CliApp.run(
            Root,
            cli_args=[
                '--root-arg=hi',
                'root-subcmd',
                '--sub-arg=hello',
                'sub-subcmd',
                'hey',
                '--deep-arg=bye',
            ],
        )
        assert root.model_dump() == {
            'root_arg': 'hi',
            'other_subcmd': None,
            'root_subcmd': {
                'sub_arg': 'hello',
                'sub_subcmd': {'deep_pos_arg': 'hey', 'deep_arg': 'bye'},
                'sub_other_subcmd': None,
            },
        }
    
        serialized_cli_args = CliApp.serialize(root)
        assert serialized_cli_args == [
            '--root-arg',
            'hi',
            'root-subcmd',
            '--sub-arg',
            'hello',
            'sub-subcmd',
            '--deep-arg',
            'bye',
            'hey',
        ]
    
        with monkeypatch.context() as m:
            m.setattr(sys, 'argv', ['example.py', '--help'])
            with pytest.raises(SystemExit):
                CliApp.run(Root)
>           assert (
                sanitize_cli_output(capsys.readouterr().out)
                == f"""usage: example.py [-h] --root-arg str 
{{root-subcmd,other-subcmd}} ...
    
    {ARGPARSE_OPTIONS_TEXT}:
      -h, --help            show this help message and exit
      --root-arg str        (required)
    
    subcommands:
      {{root-subcmd,other-subcmd}}
        root-subcmd
        other-subcmd
    """
            )
E           AssertionError: assert 'usage: pytho...ther-subcmd\n' == 'usage: 
examp...ther-subcmd\n'
E             
E             - usage: example.py [-h] --root-arg str 
{root-subcmd,other-subcmd} ...
E             ?        --------
E             + usage: python3.14 -m pytest [-h] --root-arg str 
{root-subcmd,other-subcmd} ...
E             ?          ++++++++++++++++++
E               
E               options:...
E             
E             ...Full output truncated (7 lines hidden), use '-vv' to show

tests/test_source_cli.py:2604: AssertionError
=========================== short test summary info ============================
FAILED tests/test_source_cli.py::test_cli_alias_subcommand_and_positional_args
FAILED tests/test_source_cli.py::test_cli_help_differentiation - AssertionErr...
FAILED tests/test_source_cli.py::test_cli_help_string_format - AssertionError...
FAILED tests/test_source_cli.py::test_cli_help_union_of_models - AssertionErr...
FAILED tests/test_source_cli.py::test_cli_help_default_or_none_model - Assert...
FAILED tests/test_source_cli.py::test_cli_subcommand_union - AssertionError: ...
FAILED tests/test_source_cli.py::test_cli_enums - AssertionError: assert 'usa...
FAILED tests/test_source_cli.py::test_cli_avoid_json - AssertionError: assert...
FAILED tests/test_source_cli.py::test_cli_remove_empty_groups - AssertionErro...
FAILED tests/test_source_cli.py::test_cli_hide_none_type - AssertionError: as...
FAILED tests/test_source_cli.py::test_cli_use_class_docs_for_groups - Asserti...
FAILED tests/test_source_cli.py::test_cli_exit_on_error - AssertionError: ass...
FAILED tests/test_source_cli.py::test_cli_suppress - AssertionError: assert '...
FAILED tests/test_source_cli.py::test_cli_mutually_exclusive_group - Assertio...
FAILED tests/test_source_cli.py::test_cli_kebab_case - AssertionError: assert...
================== 15 failed, 391 passed, 21 skipped in 1.82s ==================
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_pydantic-settings/build; python3.14 -m 
pytest tests
I: pybuild base:317: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pydantic-settings/build; python3.13 -m 
pytest tests
============================= test session starts ==============================
platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pydantic-settings/build
configfile: pyproject.toml
plugins: typeguard-4.4.4, mock-3.15.1, anyio-4.11.0
collected 425 items / 2 skipped

tests/test_precedence_and_merging.py ......                              [  1%]
tests/test_settings.py ................................................. [ 12%]
........................................................................ [ 29%]
.........................................................                [ 43%]
tests/test_source_azure_key_vault.py ......                              [ 44%]
tests/test_source_cli.py ............................................... [ 55%]
................s......ss............................................... [ 72%]
.....................................                                    [ 81%]
tests/test_source_gcp_secret_manager.py sssssssssssssss                  [ 84%]
tests/test_source_json.py ....                                           [ 85%]
tests/test_source_nested_secrets.py ...............................      [ 93%]
tests/test_source_pyproject_toml.py ................                     [ 96%]
tests/test_source_toml.py ....                                           [ 97%]
tests/test_source_yaml.py .s......                                       [ 99%]
tests/test_utils.py .                                                    [100%]

======================= 406 passed, 21 skipped in 1.40s ========================
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 
3.13" returned exit code 13
make: *** [debian/rules:15: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

--- End Message ---
--- Begin Message ---
Source: pydantic-settings
Source-Version: 2.12.0-2
Done: Colin Watson <[email protected]>

We believe that the bug you reported is fixed in the latest version of
pydantic-settings, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Colin Watson <[email protected]> (supplier of updated pydantic-settings 
package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Tue, 23 Dec 2025 15:07:24 +0000
Source: pydantic-settings
Architecture: source
Version: 2.12.0-2
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <[email protected]>
Changed-By: Colin Watson <[email protected]>
Closes: 1123433
Changes:
 pydantic-settings (2.12.0-2) unstable; urgency=medium
 .
   * CLI test fixes for help text formatting (closes: #1123433).
Checksums-Sha1:
 5c9b707b73c8c0cfb6646f9f8948301bfcffabf3 2802 pydantic-settings_2.12.0-2.dsc
 0846d1fa1764eb743db0a359e040cb332daf135e 6864 
pydantic-settings_2.12.0-2.debian.tar.xz
 8fff25653bea4a026c005aeb7856eedab8e78736 450824 
pydantic-settings_2.12.0-2.git.tar.xz
 838d364dfbc897b03e646f11ce3cfb8f774c9904 17179 
pydantic-settings_2.12.0-2_source.buildinfo
Checksums-Sha256:
 03ad668fc03442fc5487e0ba217f9089931bc54b235a14b1524aacc5887af4d1 2802 
pydantic-settings_2.12.0-2.dsc
 e1a249dd260bcf6f8050cab3cc2ddc4b691dbcdb3e118561dfaf2033590e6165 6864 
pydantic-settings_2.12.0-2.debian.tar.xz
 45be248fc878a307d6ce8e2251cd9b090883fa61bd362c19976f4ff27c082d06 450824 
pydantic-settings_2.12.0-2.git.tar.xz
 f7c22731309c649edc28895819814c1b506359a92d41a105f7267017dab4999d 17179 
pydantic-settings_2.12.0-2_source.buildinfo
Files:
 9c9db60227c38bd6f40c7044206f79e1 2802 python optional 
pydantic-settings_2.12.0-2.dsc
 0c3c2d9fe06ef0000431d795f850d461 6864 python optional 
pydantic-settings_2.12.0-2.debian.tar.xz
 a52d04b5c3b580dc8a18b3c2c15a209c 450824 python optional 
pydantic-settings_2.12.0-2.git.tar.xz
 429f0989277980fabd2fc5fa9744fd23 17179 python optional 
pydantic-settings_2.12.0-2_source.buildinfo
Git-Tag-Info: tag=12454366ea26ff73eca77eb76cf0e04ecdcae9a6 
fp=ac0a4ff12611b6fccf01c111393587d97d86500b
Git-Tag-Tagger: Colin Watson <[email protected]>

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEN02M5NuW6cvUwJcqYG0ITkaDwHkFAmlKsIYACgkQYG0ITkaD
wHm2UxAA4bzFur4/hC1B7JORZzGeAocxbuNY17prx2NYiy3OQ5bQKVTBpSexpXEE
r8Y8EmXoV8vNM24Fbf7lWyf99zLN0JFEa7Wk9egDff1Xo7WBv04EZsgYW700Z/od
Vn5s58qFFpY2Qjw8tLZurB1N95+QxQ5cQbYCSDJ4eZKuoGAvOzVyjo/mO8xMSRFO
G0z9CNPi4nUmSCYA9UITVzquOHHFu8NmCNj97dom+N690Wtj3vk3PC0J9c1OHVFJ
fRWYHWsdZlQEARRDLlpyDtnnNr4fcashO1Y0qP7U8TANLrLXSj3HODvq/vpKX2RM
5wImB/zhPJaWYo2cyvT7ywmqZCxWlA09xWhJSmkwvz3eX8dU8QsEKk2x/NYHxIW0
TFfbhHPfVW3/CXn+hJcs5GRkwREKR5vIWgunDgXQs/Y8s/81Y2IIVq0p/a8NqMJw
MXlHoaeB8dhgQbfPA9XIE/eOztyj5niGMiVw0AHtDiInOcIDV7bofCnKVSAwhHve
Ts6Ka2ZtfgutSt6LoEIWq1GIgn1ch1oKL91M9XPQZCAr3U95v8MA2DPVQABJxczn
aKGLVSmzYy2kmKOitb+1GV8tz3A6DbcMQXcvn+KIikgLLzWVtUe6T1bD0YN13kjN
DmIlV+QvNYyFszkgJ0eibGFxaALJmYPmNyfzzi8s9RTdAl2wkaU=
=n2kl
-----END PGP SIGNATURE-----

Attachment: pgpkdiOcJza8J.pgp
Description: PGP signature


--- End Message ---

Reply via email to