Skip to content

chore: bump smpclient to 7.0.1 and == pin runtime deps#98

Merged
JPHutchins merged 1 commit into
mainfrom
fix/bump-smpclient-7.0.1
May 24, 2026
Merged

chore: bump smpclient to 7.0.1 and == pin runtime deps#98
JPHutchins merged 1 commit into
mainfrom
fix/bump-smpclient-7.0.1

Conversation

@JPHutchins
Copy link
Copy Markdown
Collaborator

@JPHutchins JPHutchins commented May 22, 2026

Summary

  • Bumps smpclient to ==7.0.1, which fixes the BLE connect hang on peer disconnect mid-pairing — the root cause behind Regression in 0.18.0: Stuck on Connecting... even after closed BLE connection #97. Fix landed in intercreate/smpclient#108.
  • == pins the other runtime deps (typer, readchar) to current locked versions. smpmgr is an app, not a library, so leaving floors unpinned just risks downstream installs picking surprising versions. Dev deps still float per the lock file.
  • poetry.lock regenerated; bleak is now resolved to 3.0.2 (smpclient 7.0.1 floor), up from 2.1.1.

Closes #97 once a release is cut.

Test plan

  • poetry lock resolves cleanly to smpclient==7.0.1, bleak==3.0.2.
  • lint (black / isort / flake8 / mypy) clean.
  • test passes.
  • Reporter (@tormodvolden) confirms on real hardware once a smpmgr release ships with this change.

🤖 Generated with Claude Code

smpclient 7.0.1 fixes the BLE connect hang on peer disconnect mid-pairing
(#97) and tightens its bleak floor to >=3.0.2,<4 to
avoid the AcquireNotify regression in bleak 2.0.x.

Also `==` pins the direct runtime deps (typer, readchar) to current
locked versions — smpmgr is an app, not a library, so leaving floors
unpinned just risks downstream installs picking surprising versions.
Dev deps continue to track the lock file.
Copilot AI review requested due to automatic review settings May 22, 2026 19:40
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates runtime dependency pinning to ensure reproducible installs and pulls in smpclient==7.0.1, which (per PR description) includes the upstream fix for the BLE connect hang on peer disconnect mid-pairing (issue #97).

Changes:

  • Pin smpclient to ==7.0.1 (with extras = ["all"] preserved).
  • Pin other direct runtime dependencies (typer, readchar) to exact versions.
  • Regenerate poetry.lock, resulting in bleak==3.0.2 resolution and updated environment markers/normalized dependency names.

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.

File Description
pyproject.toml Pins direct runtime dependencies to exact versions, including smpclient==7.0.1.
poetry.lock Updates resolved dependency graph (notably bleak==3.0.2) and refreshes markers/metadata from the lock regeneration.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@tormodvolden
Copy link
Copy Markdown
Contributor

Seems to work as expected.

Built from this PR:

$ ~/SOURCES/smpmgr/dist/smpmgr/smpmgr --version
0.18.0.dev1+ge078566

With long timeout so the device will disconnect first, after 30s:

$ time ~/SOURCES/smpmgr/dist/smpmgr/smpmgr --timeout 60.0 --ble aa:bb:cc:dd:ee:ff  upgrade --slot 2 app_update.bin

[12:37:12] WARNING  Disconnected from aa:bb:cc:dd:ee:ff - ble:243    ble.py:243
⠸ Connecting to aa:bb:cc:dd:ee:ff...
╭───────────────────── Traceback (most recent call last) ─────────────────────╮
│ in upgrade:302                                                              │
│                                                                             │
│ in run:194                                                                  │
│                                                                             │
│ in run:118                                                                  │
│                                                                             │
│ in run_until_complete:687                                                   │
│                                                                             │
│ in f:231                                                                    │
│                                                                             │
│ in connect_with_spinner:136                                                 │
│                                                                             │
│ in connect:115                                                              │
│                                                                             │
│ in connect:91                                                               │
│                                                                             │
│ in wait_for:520                                                             │
│                                                                             │
│ in _connect:153                                                             │
│                                                                             │
│ in _await_or_disconnect:282                                                 │
╰─────────────────────────────────────────────────────────────────────────────╯
SMPTransportDisconnected: SMPBLETransport disconnected from aa:bb:cc:dd:ee:ff
[PYI-1450534:ERROR] Failed to execute script '__main__' due to unhandled exception!

real	0m32.112s
user	0m1.139s
sys	0m0.048s

With short timeout:

$ time ~/SOURCES/smpmgr/dist/smpmgr/smpmgr --timeout 10.0 --ble aa:bb:cc:dd:ee:ff upgrade --slot 2 app_update.bin
[12:40:25] WARNING  Disconnected from aa:bb:cc:dd:ee:ff - ble:243    ble.py:243
           ERROR    Transport error: connection timeout -         common.py:142
                    common:142                                                 
⠏ Connecting to aa:bb:cc:dd:ee:ff... error

real	0m13.386s
user	0m0.835s
sys	0m0.036s

@JPHutchins
Copy link
Copy Markdown
Collaborator Author

Thanks for testing!

@JPHutchins JPHutchins merged commit d459285 into main May 24, 2026
14 checks passed
@JPHutchins JPHutchins deleted the fix/bump-smpclient-7.0.1 branch May 24, 2026 17:37
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.

Regression in 0.18.0: Stuck on Connecting... even after closed BLE connection

4 participants