The scenario here is that smpmgr connects to the device, but because of failed pairing the SMP upload doesn't start. This device will disconnect BLE after 30 seconds if certain conditions are not met. On 0.17.0 smpmgr will exit with "Aborted." as soon as the BLE connection is dropped. On 0.18.0 smpmgr just hangs at ⠏ Connecting to ... seemingly forever (at least 10 minutes).
Also, I use --timeout 10 but that doesn't prevent the 30 s from passing on both versions, is this by design? 0.13.0 will fail already after 10 s here (0.13.1 or later won't):
[14:11:56] ERROR Transport error: connection timeout - common.py:97
common:97
BTW, I also tried going back to smpmgr 0.9.0 which I have been using earlier, this now fails to parse arguments, which obviously worked when I had 0.9.0 before. Same up to 0.12.1. I wonder if this is due to upgraded dependencies even though I thought the Python virtual environment would take care of that. Has anyone seen this failure to parse arguments at some point?
Details
$ /tmp/test_venv9/bin/smpmgr --help
Usage: smpmgr [OPTIONS] COMMAND [ARGS]...
Simple Management Protocol (SMP) Manager Version 0.9.0
Copyright (c) 2023-2024 Intercreate, Inc. and Contributors
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /tmp/test_venv9/bin/smpmgr:8 in <module> │
│ │
│ 5 from smpmgr.main import app │
│ 6 if __name__ == '__main__': │
│ 7 │ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) │
│ ❱ 8 │ sys.exit(app()) │
│ 9 │
│ │
│ ╭─────────────────────────── locals ────────────────────────────╮ │
│ │ app = <typer.main.Typer object at 0x7376493c00b0> │ │
│ │ re = <module 're' from '/usr/lib/python3.12/re/__init__.py'> │ │
│ │ sys = <module 'sys' (built-in)> │ │
│ ╰───────────────────────────────────────────────────────────────╯ │
│ │
│ /tmp/test_venv9/lib/python3.12/site-packages/typer/main.py:328 in __call__ │
│ │
│ /tmp/test_venv9/lib/python3.12/site-packages/typer/main.py:311 in __call__ │
│ │
│ /tmp/test_venv9/lib/python3.12/site-packages/click/core.py:1524 in __call__ │
│ │
│ /tmp/test_venv9/lib/python3.12/site-packages/typer/core.py:783 in main │
│ │
│ /tmp/test_venv9/lib/python3.12/site-packages/typer/core.py:224 in _main │
│ │
│ /tmp/test_venv9/lib/python3.12/site-packages/click/core.py:1255 in make_context │
│ │
│ /tmp/test_venv9/lib/python3.12/site-packages/click/core.py:1868 in parse_args │
│ │
│ /tmp/test_venv9/lib/python3.12/site-packages/click/core.py:1266 in parse_args │
│ │
│ /tmp/test_venv9/lib/python3.12/site-packages/click/core.py:2635 in handle_parse_result │
│ │
│ /tmp/test_venv9/lib/python3.12/site-packages/click/core.py:3436 in process_value │
│ │
│ /tmp/test_venv9/lib/python3.12/site-packages/click/core.py:2497 in process_value │
│ │
│ /tmp/test_venv9/lib/python3.12/site-packages/click/decorators.py:539 in show_help │
│ │
│ /tmp/test_venv9/lib/python3.12/site-packages/click/core.py:805 in get_help │
│ │
│ /tmp/test_venv9/lib/python3.12/site-packages/click/core.py:1147 in get_help │
│ │
│ /tmp/test_venv9/lib/python3.12/site-packages/typer/core.py:796 in format_help │
│ │
│ /tmp/test_venv9/lib/python3.12/site-packages/typer/rich_utils.py:605 in rich_format_help │
│ │
│ /tmp/test_venv9/lib/python3.12/site-packages/typer/rich_utils.py:370 in _print_options_panel │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
TypeError: Parameter.make_metavar() missing 1 required positional argument: 'ctx'
The scenario here is that smpmgr connects to the device, but because of failed pairing the SMP upload doesn't start. This device will disconnect BLE after 30 seconds if certain conditions are not met. On 0.17.0 smpmgr will exit with "
Aborted." as soon as the BLE connection is dropped. On 0.18.0 smpmgr just hangs at⠏ Connecting to... seemingly forever (at least 10 minutes).Also, I use
--timeout 10but that doesn't prevent the 30 s from passing on both versions, is this by design? 0.13.0 will fail already after 10 s here (0.13.1 or later won't):BTW, I also tried going back to smpmgr 0.9.0 which I have been using earlier, this now fails to parse arguments, which obviously worked when I had 0.9.0 before. Same up to 0.12.1. I wonder if this is due to upgraded dependencies even though I thought the Python virtual environment would take care of that. Has anyone seen this failure to parse arguments at some point?
Details