Thanks for taking the time to contribute! Contributions from people like you help make Label Studio an amazing tool to use.
This document provides guidelines for contributing code and documentation to Label Studio. Following these guidelines makes it easier for the maintainers to respond to your pull requests and provide timely and helpful feedback to help you finalize your requested changes.
You can contribute to Label Studio by submitting bug reports and feature requests, or by writing code to do any of the following:
- Fix a bug.
- Provide example machine learning backend code to help others add a machine learning backend for a specific model.
- Share example annotation templates for specific use cases.
- Add new export formats for labeling projects.
- Support a new type of labeling or extend existing labeling functionality.
We also welcome contributions to the documentation!
Please don't use the issue tracker to ask questions. Instead, join the Label Studio Slack Community to get help!
If you're not sure whether an idea you have for Label Studio matches up with our planned direction, check out the public roadmap first.
If you want to contribute to Label Studio, but aren't sure where to start, review the issues tagged with "good first issue" or take a look at the existing issues to see if any interest you.
If you decide to work on an issue, leave a comment so that you don't duplicate work that might be in progress and to coordinate work with others.
If you haven't opened a pull request before, check out the GitHub documentation on pull requests.
We value input from each member of the community, and we ask that you follow our code of conduct. We are a small team, but we try to respond to issues and pull requests within 2 business days.
For changes that you contribute to any of the Label Studio repositories, please do the following:
- Create issues for any major changes and enhancements that you want to make.
- Keep pull requests specific to one issue. Shorter pull requests are preferred and are easier to review.
Make sure that you contribute your changes to the correct repository. Label Studio is built in a few separate repositories including this one:
- Changes to the data manager belong in the data manager repository.
- Changes to the labeling or editing workflow belong in the label-studio-frontend repository.
- Changes to the export formats available in Label Studio belong in the label studio converter repository.
- Changes to the machine learning backend functionality belong in the label-studio-ml-backend repository.
Follow these code formatting guidelines:
- Lint your Python code with black using
--skip-string-normalization
. - Use single quotes for strings.
- Use comments to describe code blocks.
- When possible, use the following conventions for your commit messages:
- prefix with [fix] for bugfix changes
- prefix with [ext] for feature or external-facing changes
- prefix with [docs] for doc-only changes
- Make sure that changes you make work on Windows, Mac, and Linux operating systems.
- Include unit tests when you contribute bug fixes and new features. Unit tests help prove that your code works correctly and protects against future breaking changes.
- Make sure that the code coverage checks and automatic tests for pull requests pass.
If you have any questions that aren't answered in these guidelines, please find us in the #contributor channel of the Label Studio Slack Community.