Open-Source Software
Opentrons believes that open-source software and hardware make science better. That's why we make our code available on GitHub and welcome contributions from the open-source community.
This appendix covers various ways to use Opentrons open-source resources and describes the structure of our repositories.
Opentrons on GitHub¶
The Opentrons GitHub organization can be found at https://github.com/Opentrons. All of our publicly hosted code resides there, including the OT-2 robot software, the Opentrons App, and our Python and HTTP APIs.
Our GitHub site has several useful resources for OT-2 users, and you can participate in our community even if you're not a coder.
Releases¶
Whenever we create a new version of the robot software and Opentrons App, we publish it on GitHub as a release. Past releases of Opentrons software are kept at https://github.com/Opentrons/opentrons/releases.
Opentrons recommends running the latest version of our software; however, we recognize that some users need access to previous versions (e.g., for validation or compliance purposes). Download previous versions of the Opentrons App or robot software under the Assets section of each release entry on GitHub.
Opening issues¶
Contact Opentrons Support first if you're having a problem with your robot. Before opening an issue, search through existing issues to prevent creating a duplicate.
We accept two types of issue reports: bugs and feature requests. Each has its own issue template. Fill out all parts of the template with as much detail as possible to help us address your issue completely and quickly.
Contributing code¶
Get started working with Opentrons code by following the development environment setup instructions. Work on your code in your own fork and then create a pull request to contribute to our codebase. For additional details on creating pull requests, including testing requirements, see the contributing guide.
Open-source licenses¶
Most Opentrons repositories are licensed under the Apache License 2.0, but some use other licenses. Consult the license on each repository before using or modifying the code it contains. Keep in mind that any code you contribute will be governed by the license in place on the corresponding repository.
Opentrons monorepo¶
Most of our software is in the Opentrons/opentrons monorepo. This is a single repository that contains multiple software projects, each in its own directory. The README.md file in each directory describes the project and gives advice on working with the code. The default branch in the monorepo is called edge.
The following (non-exhaustive) list of directories, subdirectories, and files can help you navigate the monorepo and find code relevant to using an OT-2.
| Directory | Description |
|---|---|
/api/ |
Source for the Python Protocol API, written in Python and distributed as the opentrons PyPI package. |
/api/docs/ |
Documentation for the Python Protocol API, written in ReStructuredText. |
/api/release-notes.md |
Release notes for the robot system software (as a whole, including changes outside of the /api/ directory). |
Other repositories¶
Opentrons also maintains software outside of the monorepo. A few key repositories include:
| Repository | Description |
|---|---|
buildroot |
The Opentrons fork of buildroot for building the OT2 system. |
opentrons-emulation |
Emulation of Opentrons robots and modules at either the hardware or firmware level. Uses Docker, configuration files, and a simple command-line interface. |
opentrons-modules |
Firmware for all Opentrons modules. |