Skip to content

Feature Request: Publish the Python SDK to PyPI #4

Description

@Chise1

Summary

Currently, the Python SDK in the python/ directory can only be used by cloning this entire repository:

git clone https://github.com/BrainCoTech/brainco-hand-sdk.git
cd brainco-hand-sdk/python
pip3 install -r requirements.txt

It would be great to publish the Python SDK as a proper package on PyPI, so users can simply run:

pip install brainco-hand-sdk

and start developing against the Revo1/Revo2 hand without pulling the whole repo.

Background

I noticed that the underlying core library bc-stark-sdk is already published on PyPI (v2.0.3, pip install bc-stark-sdk), which is great. However, the higher-level Python layer in this repo — common_imports.py, common_init.py, common_socketcan.py, common_utils.py, logger.py, and the protocol wrappers under revo1/, revo2/, revo2_can/, revo2_canfd/, revo2_ethercat/, etc. — is only distributed as source code in the repository.

Pain Points

  1. No pip install support — users must clone the entire repo (including c/, archive/, docs, etc.) just to use the Python SDK.
  2. Version management — there is no versioned, installable artifact for the Python layer, making it hard to pin or upgrade the SDK in requirements.txt.
  3. Offline / restricted environments — environments without access to GitHub (e.g. intranet, CI inside corporate networks) cannot easily install the SDK.
  4. First-run friction — the current flow requires checking out the repo, reading the docs to find the right directory, and manually installing dependencies.

Proposed Solution

  • Add proper packaging config (e.g. pyproject.toml with [build-system] and [project]) for the python/ directory — note the current pyproject.toml has packages = [] and [tool.uv] package = false, so the SDK modules are not actually bundled.
  • Publish the package to PyPI, e.g. as brainco-hand-sdk (the name is currently available on PyPI).
  • Have it depend on bc-stark-sdk so pip install brainco-hand-sdk pulls in everything needed.
  • Optionally add a GitHub Actions workflow to build and publish automatically on tagged releases.
  • Update the README install section to mention pip install brainco-hand-sdk as the recommended path, while keeping the repo-clone instructions for the examples.

Expected Outcome

pip install brainco-hand-sdk

→ SDK ready to use for Revo1/Revo2 development (RS-485, CAN, CANFD, EtherCAT), with the repo kept for examples, demos and the C++ layer.

Thanks for maintaining this SDK — it would significantly improve the developer experience for Python users!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions