smpmgr


Namesmpmgr JSON
Version 0.14.1 PyPI version JSON
download
home_pageNone
SummarySimple Management Protocol (SMP) Manager for remotely managing MCU firmware
upload_time2025-10-28 00:16:39
maintainerNone
docs_urlNone
authorJP Hutchins
requires_python<4,>=3.10
licenseNone
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, Linux, and macOS 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`.

## Custom SMP Groups

`smpmgr` supports user-provided plugins that implement proprietary SMP groups.
```
smpmgr --plugin-path=plugins --help
```

See [/plugins](/plugins) for more information and examples.

## 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 >= 2: 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": "<4,>=3.10",
    "maintainer_email": null,
    "keywords": null,
    "author": "JP Hutchins",
    "author_email": "jp@intercreate.io",
    "download_url": "https://files.pythonhosted.org/packages/3c/91/0bb94511efa80d5c1e33ad9ebc439237fa78a6066d58c2a024e6a3650fae/smpmgr-0.14.1.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, Linux, and macOS 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## Custom SMP Groups\n\n`smpmgr` supports user-provided plugins that implement proprietary SMP groups.\n```\nsmpmgr --plugin-path=plugins --help\n```\n\nSee [/plugins](/plugins) for more information and examples.\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 >= 2: 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": null,
    "summary": "Simple Management Protocol (SMP) Manager for remotely managing MCU firmware",
    "version": "0.14.1",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "313566c1b1132cd10b94c6e3628c1a186bb04f0c776cc4f840c90a1ea2025504",
                "md5": "3cfa9f25cd70b634d9248acfa62fa3b2",
                "sha256": "a09cf53175c76a5e20a7f8e353d73f0727ef46a9e68b905e0fbb582ccde375c2"
            },
            "downloads": -1,
            "filename": "smpmgr-0.14.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3cfa9f25cd70b634d9248acfa62fa3b2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4,>=3.10",
            "size": 23097,
            "upload_time": "2025-10-28T00:16:36",
            "upload_time_iso_8601": "2025-10-28T00:16:36.393312Z",
            "url": "https://files.pythonhosted.org/packages/31/35/66c1b1132cd10b94c6e3628c1a186bb04f0c776cc4f840c90a1ea2025504/smpmgr-0.14.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3c910bb94511efa80d5c1e33ad9ebc439237fa78a6066d58c2a024e6a3650fae",
                "md5": "f5fd8b29b2f8d1efae8c917d0ecda308",
                "sha256": "dc542ec9136d23d63946c303332b229978435912733aabb23e5d29ac192ffa49"
            },
            "downloads": -1,
            "filename": "smpmgr-0.14.1.tar.gz",
            "has_sig": false,
            "md5_digest": "f5fd8b29b2f8d1efae8c917d0ecda308",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4,>=3.10",
            "size": 17305,
            "upload_time": "2025-10-28T00:16:39",
            "upload_time_iso_8601": "2025-10-28T00:16:39.463724Z",
            "url": "https://files.pythonhosted.org/packages/3c/91/0bb94511efa80d5c1e33ad9ebc439237fa78a6066d58c2a024e6a3650fae/smpmgr-0.14.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-28 00:16:39",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "smpmgr"
}
        
Elapsed time: 2.77049s