Contributing to FiftyOne#

FiftyOne is open source and built by contributors like you. Whether you’re fixing a typo, adding a feature, or building a plugin, every contribution makes FiftyOne better for everyone.

Note

Check out the FiftyOne GitHub repository to get started, or join our Discord community to connect with other contributors.

Ways to contribute#

There are many ways to contribute to FiftyOne, from writing code to improving documentation. Choose the path that best matches your skills and interests:

Report bugs & request features

Found a bug or have an idea for a new feature? Open a GitHub issue to let us know. Quality bug reports and well-thought-out feature requests are incredibly valuable.

Open an Issue

Contribute code

Fix bugs, implement new features, or improve existing functionality. Our codebase is Python-based with a TypeScript frontend, and we welcome contributions of all sizes.

Contributing Guide

Improve documentation

Help make FiftyOne easier to use by improving our docs. Fix typos, add examples, write tutorials, or translate content. Great docs make great software.

Docs README

Build plugins

Extend FiftyOne's capabilities by creating plugins. Share your integrations, custom panels, and workflows with the community.

Plugin Guide

Contribute to the App

Help improve the FiftyOne App, our TypeScript frontend. Enhance the user interface, add new visualizations, or improve performance.

App Contributing Guide

Help the community

Answer questions on Discord, help triage issues, review pull requests, or share your FiftyOne workflows and tutorials with others.

Join Discord

Getting started#

Ready to make your first contribution? Follow these steps to set up your development environment:

Follow these steps to contribute to the FiftyOne SDK (Python):

Step 1: Fork and clone

# Fork https://github.com/voxel51/fiftyone on GitHub...

# Then clone it locally
git clone https://github.com/YOUR_USERNAME/fiftyone.git
cd fiftyone

Step 2: Install in development mode

# Install FiftyOne as an editable package with pre-commit hooks
bash install.sh -d

Step 3: Add FiftyOne to your PYTHONPATH

export PYTHONPATH=$PYTHONPATH:$(pwd)

Tip

Add this to your shell profile to make it permanent.

Step 4: Create a branch and make changes

# Create a branch from develop
git checkout develop
git checkout -b feature/my-feature-branch

# Make changes...

Step 5: Run unit tests locally

# Run tests locally to verify your changes
pytest tests/unittests

Step 6: Submit a pull request

git push -u origin feature/my-feature-branch

# Open a PR targeting the develop branch on github.com...

Refer to the contributing guide and style guide for complete guidelines.

Good first issues#

Looking for something to work on? These issues are great for newcomers:

Our amazing contributors#

FiftyOne would not be possible without the contributions of our amazing community. Thank you to every developer who has submitted a pull request, reported a bug, or helped improve the project. Your contributions make FiftyOne better for everyone—and now you can be part of this growing community of developers!

FiftyOne Contributors

Need help?#

Don’t hesitate to ask for help! The FiftyOne community is friendly and welcoming: