python3Packages.smpclient: 6.0.0 -> 7.0.1#520696
Conversation
|
Hi @Hexa @dotlambda — would either of you have a moment to look at this? Upstream migrated the build system from |
|
There's a breaking change. Serial and BLE dependencies are now optional. We're seeing more usage on embedded Linux, so I recommend that the nix package not force users to bring in transport dependencies that they don't need. |
|
@JPHutchins, please review. |
JPHutchins
left a comment
There was a problem hiding this comment.
Cool! What is the nix interface for enabling them?
|
@JPHutchins on the Nix side it surfaces as an Ad-hoc Python environment ( # shell.nix
let pkgs = import <nixpkgs> { };
in pkgs.python3.withPackages (ps:
[ ps.smpclient ]
# pick only what you need; omit both for a pure embedded-Linux setup
++ ps.smpclient.optional-dependencies.serial
++ ps.smpclient.optional-dependencies.ble)Inside another nixpkgs package (e.g. how dependencies = with python3Packages; [
smpclient
] ++ lib.concatAttrValues smpclient.optional-dependencies; |
|
That's really nice. I asked because I think I've been doing it wrong, thanks! |
|
|
LGTM. Just fix the formatting so CI doesn't fail. |
|
|
Thanks for the review @dotlambda! All four points addressed:
Force-pushed; tests still pass for |
|
You obviously used AI but didn't follow the policy. |
|
While we are bumping: https://github.com/intercreate/smpclient/releases/tag/7.0.1 |
1b2d38b to
c7ae0bd
Compare
Upstream migrated from poetry-core / poetry-dynamic-versioning to hatchling / hatch-vcs, and made the serial (pyserial) and BLE (bleak) transports optional. Expose them via `optional-dependencies` so consumers can opt in to only the transports they need. Changelog: https://github.com/intercreate/smpclient/releases/tag/7.0.1 Assisted-by: Claude Code (claude-opus-4-7)
Upstream uses `poetry-version-plugin` with `source = "git-tag"` to derive the version. Tarball builds have no git tree, so the version falls back to `"0"`, which breaks downstream version-pin checks (smpclient required a `pythonRelaxDeps = [ "smp" ]` workaround). Substitute the version in `pyproject.toml` instead. Assisted-by: Claude Code (claude-opus-4-7)
smpclient 7.0.0 made the serial, BLE, and UDP transports optional. Upstream's `smpmgr` pins `smpclient[all]`, so pull in all transports via `smpclient.optional-dependencies.all` to keep the previous behaviour. Assisted-by: Claude Code (claude-opus-4-7)
|
@JPHutchins bumped to 7.0.1 in 281cf61. Tests still pass (185 passed, 14 skipped). Thanks for the heads-up! |
|
Hi @dotlambda — apologies, you were right and I was mistaken; I initially thought the policy was still in proposed status, but it was merged in #514587. I've added |
|
Things done
Summary
Upstream migrated from `poetry-core` / `poetry-dynamic-versioning` to `hatchling` / `hatch-vcs`. The build system inputs are updated accordingly; `pythonRelaxDeps` still relaxes `smp` because the `smp` package reports version `0` in nixpkgs.
Changelog: https://github.com/intercreate/smpclient/releases/tag/7.0.0
Add a 👍 reaction to pull requests you find important.