Name | smpmgr JSON |
Version |
0.10.3
JSON |
| download |
home_page | None |
Summary | Simple Management Protocol (SMP) Manager for remotely managing MCU firmware |
upload_time | 2025-02-12 05:42:45 |
maintainer | None |
docs_url | None |
author | J.P. Hutchins |
requires_python | <3.14,>=3.10 |
license | Apache-2.0 |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Simple Management Protocol (SMP) Manager
`smpmgr` is a CLI application for interacting with device firmware over a
**serial (UART or USB)**, **Bluetooth (BLE)**, or **UDP**, connection. It can be used as a
reference implementation of the [smp](https://github.com/JPHutchins/smp) and
[smpclient](https://github.com/intercreate/smpclient) libraries when developing your own SMP
application.
The SMP specification can be found
[here](https://docs.zephyrproject.org/latest/services/device_mgmt/smp_protocol.html).
## Install
You can download a portable executable for Windows or Linux from the
[latest releases page](https://github.com/intercreate/smpmgr/releases/latest).
`smpmgr` is also [distributed by PyPI](https://pypi.org/project/smpmgr/). If you already have a
Python environment setup, then it is **strongly recommended** to install `smpmgr` with
[pipx](https://github.com/pypa/pipx) instead of `pip`.
## Development Quickstart
> Assumes that you've already [setup your development environment](#development-environment-setup).
1. activate [envr](https://github.com/JPhutchins/envr), the environment manager for **bash**, **zsh**, and **PS**:
```
. ./envr.ps1
```
2. run `poetry install` when pulling in new changes
3. run `lint` after making changes
4. run `test` after making changes
5. run `build` to build a portable executable bundle at `dist/smpmgr-<git tag>`. Refer to `portably.py` for details.
6. add library dependencies with `poetry`:
```
poetry add <my_new_dependency>
```
7. add test or other development dependencies using [poetry groups](https://python-poetry.org/docs/managing-dependencies#dependency-groups):
```
poetry add -G dev <my_dev_dependency>
```
## Development Environment Setup
### Install Dependencies
- poetry==1.8.5: https://python-poetry.org/docs/#installation
### Create the venv
```
poetry install
```
The `venv` should be installed to `.venv`.
### Activate envr
> [envr](https://github.com/JPhutchins/envr) supports **bash**, **zsh**, and **PS** in Linux, MacOS, and Windows. If you are using an unsupported shell, you can activate the `.venv` environment manually, use `poetry run` and `poetry shell`, and refer to `envr-default` for useful aliases.
```
. ./envr.ps1
```
### Verify Your Setup
To verify the installation, make sure that all of the tests are passing using these envr aliases:
```
lint
test
```
### Enable the githooks
> The pre-commit hook will run the linters but not the unit tests.
```
git config core.hooksPath .githooks
```
Raw data
{
"_id": null,
"home_page": null,
"name": "smpmgr",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.14,>=3.10",
"maintainer_email": null,
"keywords": null,
"author": "J.P. Hutchins",
"author_email": "jp@intercreate.io",
"download_url": "https://files.pythonhosted.org/packages/9a/f6/332b30ef935018345dc10178e86af8344379c738378e23e71c32b52f33ed/smpmgr-0.10.3.tar.gz",
"platform": null,
"description": "# Simple Management Protocol (SMP) Manager\n\n`smpmgr` is a CLI application for interacting with device firmware over a\n**serial (UART or USB)**, **Bluetooth (BLE)**, or **UDP**, connection. It can be used as a\nreference implementation of the [smp](https://github.com/JPHutchins/smp) and\n[smpclient](https://github.com/intercreate/smpclient) libraries when developing your own SMP\napplication.\n\nThe SMP specification can be found\n[here](https://docs.zephyrproject.org/latest/services/device_mgmt/smp_protocol.html).\n\n## Install\n\nYou can download a portable executable for Windows or Linux from the\n[latest releases page](https://github.com/intercreate/smpmgr/releases/latest).\n\n`smpmgr` is also [distributed by PyPI](https://pypi.org/project/smpmgr/). If you already have a\nPython environment setup, then it is **strongly recommended** to install `smpmgr` with\n[pipx](https://github.com/pypa/pipx) instead of `pip`.\n\n## Development Quickstart\n\n> Assumes that you've already [setup your development environment](#development-environment-setup).\n\n1. activate [envr](https://github.com/JPhutchins/envr), the environment manager for **bash**, **zsh**, and **PS**:\n ```\n . ./envr.ps1\n ```\n2. run `poetry install` when pulling in new changes\n3. run `lint` after making changes\n4. run `test` after making changes\n5. run `build` to build a portable executable bundle at `dist/smpmgr-<git tag>`. Refer to `portably.py` for details.\n6. add library dependencies with `poetry`:\n ```\n poetry add <my_new_dependency>\n ```\n7. add test or other development dependencies using [poetry groups](https://python-poetry.org/docs/managing-dependencies#dependency-groups):\n ```\n poetry add -G dev <my_dev_dependency>\n ```\n\n## Development Environment Setup\n\n### Install Dependencies\n\n- poetry==1.8.5: https://python-poetry.org/docs/#installation\n\n### Create the venv\n\n```\npoetry install\n```\n\nThe `venv` should be installed to `.venv`.\n\n### Activate envr\n\n> [envr](https://github.com/JPhutchins/envr) supports **bash**, **zsh**, and **PS** in Linux, MacOS, and Windows. If you are using an unsupported shell, you can activate the `.venv` environment manually, use `poetry run` and `poetry shell`, and refer to `envr-default` for useful aliases.\n\n```\n. ./envr.ps1\n```\n\n### Verify Your Setup\n\nTo verify the installation, make sure that all of the tests are passing using these envr aliases:\n\n```\nlint\ntest\n```\n\n### Enable the githooks\n\n> The pre-commit hook will run the linters but not the unit tests.\n\n```\ngit config core.hooksPath .githooks\n```\n\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Simple Management Protocol (SMP) Manager for remotely managing MCU firmware",
"version": "0.10.3",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "28c3d4ab312bde821a7efd3b011d4b08e48b2d91615556d57b916389e11955a6",
"md5": "c26609866b8b56ac3cef6d34aa35a326",
"sha256": "b53f6a0f14db57052807d67fd5926f6dbb4342544124c42a9f373bfd02ad082a"
},
"downloads": -1,
"filename": "smpmgr-0.10.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c26609866b8b56ac3cef6d34aa35a326",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.14,>=3.10",
"size": 18295,
"upload_time": "2025-02-12T05:42:44",
"upload_time_iso_8601": "2025-02-12T05:42:44.301502Z",
"url": "https://files.pythonhosted.org/packages/28/c3/d4ab312bde821a7efd3b011d4b08e48b2d91615556d57b916389e11955a6/smpmgr-0.10.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9af6332b30ef935018345dc10178e86af8344379c738378e23e71c32b52f33ed",
"md5": "16fe731a08caf613a0d7cfc5d52f1115",
"sha256": "0e254345f05f4bf7746a5221d97fea6d196059691804e257107291383a3509c1"
},
"downloads": -1,
"filename": "smpmgr-0.10.3.tar.gz",
"has_sig": false,
"md5_digest": "16fe731a08caf613a0d7cfc5d52f1115",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.14,>=3.10",
"size": 14003,
"upload_time": "2025-02-12T05:42:45",
"upload_time_iso_8601": "2025-02-12T05:42:45.552807Z",
"url": "https://files.pythonhosted.org/packages/9a/f6/332b30ef935018345dc10178e86af8344379c738378e23e71c32b52f33ed/smpmgr-0.10.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-12 05:42:45",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "smpmgr"
}