Release Notes
6 min
Latest release: view on GitHub. Wheels are downloaded from the same page.
2.6.0
Highlights
- raw=True opt-out added to most devicehub list functions. Returns the API JSON unchanged, skipping pydantic validation. Useful when the schema drifts ahead of your installed SDK or you only need a subset of fields.
- Critical bug fix: binary flow downloads (flows.download_flow_file, flows.download_flow_logs) were silently corrupted by UTF-8 decode in prior versions. They now return proper bytes. If you saw mangled output or the literal string "None" from these functions before, upgrade.
- Critical bug fix: system.templates.download_template_complete() raised TypeError on every call due to a wrong internal kwarg name. Now works as documented.
- Bug fix: litmussdk.flows.__all__ raised NameError on package import in some setups. Resolved.
- New: litmussdk.__version__ package attribute, read from package metadata.
raw=True opt-out
The following list functions now accept raw: bool = False:
- devicehub.devices.list_devices
- devicehub.devices.list_device_by_id
- devicehub.drivers.list_all_drivers
- devicehub.tags.list_all_tags
- devicehub.tags.list_registers_from_single_device
- devicehub.browse.list_browse_tasks
- devicehub.browse.cart_get_items_by_device
When raw=True, the function returns list[dict[str, Any]] (or dict[str, Any] for single-item getters) instead of the parsed Pydantic model. The default remains raw=False, so existing code keeps working unchanged.
# parsed model (default, unchanged)
devices.list_devices() # list[Device]
# raw API JSON
devices.list_devices(raw=True) # list[dict[str, Any]]Internal Changes
These don't affect your code, but are worth noting if you maintain SDK forks or read internals:
- The default-connection substitution decorator now matches sentinels by identity (is) instead of value-equality. Half-constructed Connection objects are no longer silently swapped for the env-loaded default; they fail loudly downstream. Audited as a no-op for any documented usage.
- Added simple_binary_api_call in litmussdk.utils.api for binary endpoints (used by the flow download functions).
- Substantial type-stub coverage improvements across lem.lifecycle.*, devicehub.devices, and devicehub.drivers.
CI / Infrastructure
- CI/CD migrated from GitLab to GitHub Actions.
- Coverage badges published to GitHub Pages (separate LE and LEM badges).
- Action versions bumped to ones running on Node.js 24.
- actions/upload-artifact v5 -> v7, actions/download-artifact v5 -> v8.
Dependency Updates
- black 25.1.0 -> 26.3.1
- brotli 1.1.0 -> 1.2.0
- python-dotenv 1.1.0 -> 1.2.2
- urllib3 2.4.0 -> 2.6.3
- requests 2.32.3 -> 2.33.0
- wheel 0.45.1 -> 0.46.2
- setuptools 78.1.0 -> 78.1.1
Breaking Changes
None for documented usage. The decorator identity-match change above is technically a tighter contract but audited as having zero impact on any internal or external code path.
For older releases, see the GitHub release archive.