{"id":26674141,"url":"https://github.com/labgrid-project/labgrid","last_synced_at":"2025-03-26T02:17:36.873Z","repository":{"id":37487837,"uuid":"82293105","full_name":"labgrid-project/labgrid","owner":"labgrid-project","description":"Embedded systems control library for development, testing and installation","archived":false,"fork":false,"pushed_at":"2025-03-20T13:27:08.000Z","size":3729,"stargazers_count":379,"open_issues_count":166,"forks_count":197,"subscribers_count":31,"default_branch":"master","last_synced_at":"2025-03-20T14:36:53.334Z","etag":null,"topics":["automation-framework","boards","distributed","embedded","hacktoberfest","labgrid","testing"],"latest_commit_sha":null,"homepage":"https://labgrid.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/labgrid-project.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-17T11:59:20.000Z","updated_at":"2025-03-20T13:41:29.000Z","dependencies_parsed_at":"2023-12-21T11:58:46.763Z","dependency_job_id":"d5617353-f13a-44d0-96e7-50440eefc081","html_url":"https://github.com/labgrid-project/labgrid","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labgrid-project%2Flabgrid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labgrid-project%2Flabgrid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labgrid-project%2Flabgrid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labgrid-project%2Flabgrid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/labgrid-project","download_url":"https://codeload.github.com/labgrid-project/labgrid/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245573892,"owners_count":20637674,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation-framework","boards","distributed","embedded","hacktoberfest","labgrid","testing"],"created_at":"2025-03-26T02:17:35.852Z","updated_at":"2025-03-26T02:17:36.868Z","avatar_url":"https://github.com/labgrid-project.png","language":"Python","funding_links":[],"categories":["Test Frameworks"],"sub_categories":["Test Automation \u0026 Hardware-in-the-Loop (HIL)"],"readme":".. image:: https://raw.githubusercontent.com/labgrid-project/labgrid/master/labgrid_logo.png\n   :alt: labgrid logo\n   :align: center\n\nWelcome to labgrid\n==================\n|license| |unit-tests| |docker-build| |coverage-status| |docs-status| |chat| |calver|\n\nLabgrid is an embedded board control python library with a focus on testing, development\nand general automation.\nIt includes a remote control layer to control boards connected to other hosts.\n\n* `Getting started \u003c#Getting-started\u003e`_\n\n* `Purpose and Features \u003c#purpose-and-features\u003e`_\n\n* `Documentation \u003c#documentation\u003e`_\n\n* `Contributing \u003c#contributing\u003e`_\n\n* `Background \u003c#background\u003e`_\n\n* `Installation \u003c#installation\u003e`_\n\n  * `Install Latest Release \u003c#install-latest-release\u003e`_\n\n  * `Install Development State \u003c#install-development-state\u003e`_\n\nGetting started\n---------------\nThere is a tutorial series on the Pengutronix Youtube channel you can follow to\nget started: `Labgrid Tutorial Playlist\n\u003chttps://www.youtube.com/playlist?list=PLPy6BX4pJosCEq7CIU06bt2WM7lFAy1CF\u003e`_.\n\nThe other starting point is in the `documentation\n\u003chttps://labgrid.readthedocs.io/en/latest/getting_started.html\u003e`__.\n\nPurpose and Features\n--------------------\nThe idea behind labgrid is to create an abstraction of the hardware control\nlayer needed for testing of embedded systems, automatic software installation\nand automation during development.\nLabgrid itself is *not* a testing framework, but is intended to be combined with\n`pytest \u003chttps://docs.pytest.org\u003e`_ (and additional pytest plugins).\nPlease see `Design Decisions\n\u003chttps://labgrid.readthedocs.io/en/latest/design_decisions.html\u003e`_ for more\nbackground information.\n\nIt currently supports:\n\n- remote client-exporter-coordinator infrastructure to make boards available\n  from different computers on a network\n- pytest plugin to write automated tests for embedded systems\n- CLI and library usage for development and automation\n- interaction with bootloader and Linux shells on top of serial console or SSH\n- power/reset management via drivers for power switches\n- upload of binaries and device bootstrapping via USB\n- control of digital outputs, SD card and USB multiplexers\n- integration of audio/video/measurement devices for remote development and\n  testing\n- Docker/QEMU integration\n\nWhile labgrid is currently used for daily development on embedded boards and for\nautomated testing, several planned features are not yet implemented and the APIs\nmay be changed as more use-cases appear.\nWe appreciate code contributions and feedback on using labgrid on other\nenvironments (see `Contributing\n\u003chttps://labgrid.readthedocs.io/en/latest/development.html#contributing\u003e`__ for\ndetails).\nPlease consider contacting us (via a GitHub issue) before starting larger\nchanges, so we can discuss design trade-offs early and avoid redundant work.\nYou can also look at `Ideas\n\u003chttps://labgrid.readthedocs.io/en/latest/development.html#ideas\u003e`_ for\nenhancements which are not yet implemented.\n\nDocumentation\n-------------\nlabgrid's documentation is hosted on `Read the Docs \u003chttp://labgrid.readthedocs.io/en/latest/\u003e`_.\n\nContributing\n------------\nSee our `Development Docs \u003chttp://labgrid.readthedocs.io/en/latest/development.html\u003e`_.\n\nVisit us in our IRC channel ``#labgrid`` on libera.chat (bridged to the\n`Matrix channel #labgrid:matrix.org \u003chttps://app.element.io/#/room/#labgrid:matrix.org\u003e`_)\n\nBackground\n----------\nWork on labgrid started at `Pengutronix \u003chttp://pengutronix.de/\u003e`_ in late 2016\nand is currently in active use and development.\n\nInstallation\n------------\nSee the `Installation section\n\u003chttp://labgrid.readthedocs.io/en/latest/getting_started.html#installation\u003e`_\nfor more details.\n\nInstall Latest Release\n^^^^^^^^^^^^^^^^^^^^^^\nInstall labgrid via PyPi:\n\n.. code-block:: bash\n\n   $ virtualenv -p python3 venv\n   $ source venv/bin/activate\n   venv $ pip install --upgrade pip\n   venv $ pip install labgrid\n\nInstall Development State\n^^^^^^^^^^^^^^^^^^^^^^^^^\nClone the git repository:\n\n.. code-block:: bash\n\n   $ git clone https://github.com/labgrid-project/labgrid\n\nCreate and activate a virtualenv for labgrid:\n\n.. code-block:: bash\n\n   $ virtualenv -p python3 venv\n   $ source venv/bin/activate\n   venv $ pip install --upgrade pip\n\n\nInstall labgrid into the virtualenv:\n\n.. code-block:: bash\n\n   venv $ pip install .\n\nTests can now run via:\n\n.. code-block:: bash\n\n   venv $ python -m pytest --lg-env \u003cconfig\u003e\n\n\n.. |license| image:: https://img.shields.io/badge/license-LGPLv2.1-blue.svg\n    :alt: LGPLv2.1\n    :target: https://raw.githubusercontent.com/labgrid-project/labgrid/master/LICENSE\n\n.. |unit-tests| image:: https://github.com/labgrid-project/labgrid/workflows/unit%20tests/badge.svg\n    :alt: unit tests status\n    :target: https://github.com/labgrid-project/labgrid/actions?query=workflow%3A%22unit+tests%22+branch%3Amaster\n\n.. |docker-build| image:: https://github.com/labgrid-project/labgrid/workflows/docker%20build/badge.svg\n    :alt: docker build status\n    :target: https://github.com/labgrid-project/labgrid/actions?query=workflow%3A%22docker+build%22+branch%3Amaster\n\n.. |coverage-status| image:: https://codecov.io/gh/labgrid-project/labgrid/branch/master/graph/badge.svg\n    :alt: coverage status\n    :target: https://codecov.io/gh/labgrid-project/labgrid\n\n.. |docs-status| image:: https://readthedocs.org/projects/labgrid/badge/?version=latest\n    :alt: documentation status\n    :target: https://labgrid.readthedocs.io/en/latest/?badge=latest\n\n.. |chat| image:: https://matrix.to/img/matrix-badge.svg\n    :alt: chat\n    :target: https://app.element.io/#/room/#labgrid:matrix.org\n\n.. |calver| image:: https://img.shields.io/badge/calver-YY.MINOR%5B.MICRO%5D-22bfda.svg\n    :alt: chat\n    :target: https://calver.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flabgrid-project%2Flabgrid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flabgrid-project%2Flabgrid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flabgrid-project%2Flabgrid/lists"}