The Universal Data Tool aims to be a community-driven solution to managing the creation, labeling and exporting of datasets. All contributions are welcome and appreciated!
Contributing to open-source is fun!
- Together, we can build some awesome software and enable people to build awesome AI!
- Tons of people will appreciate the work you do
- The issues and slack are a great place for discussing design, architectures, and new helpful technologies
- If you have a good idea and put in some effort, it can be a part of a package used by thousands of people
- You'll be credited for the work you do in the README, which you should use to get a cushy job!
- Thumbs up features or bugs you think are important!
- Create issues for features or bugs you find
- Solve UI bugs in existing issues
- Create react components for new UI features ("stories")
- Implement big features in draft PRs, taking breaks for feedback by messaging people on Slack
- Just fix a bunch of bugs and do a massive pull request with no description but all the tests pass and it looks pretty good so I guess it's fine
- Watch this video by one of our maintainers explaining how he starts working on a new feature
- If you don't know react, this is an introduction video that should get you up to speed.
- Check out Setup for Development for instructions on how to run the project locally
Still feeling like: "hhh'what is going on?" Check out this sweet guide to contributing to open-source
Your git history will be messy and hard to maintain if you don't rebase from the latest version of UDT when you're working on features. There are two ways to do this easily that we recommend:
- When you want to update your branch/fork, do
git pull origin master --rebase
. The--rebase
flag will make sure that your changes are on top of the latest version of UDT and not jumbled around. - If you want to do (1) by default without having to use the
--rebase
flag, just executegit config --global pull.rebase true
one time on your computer.
You'll need two terminals. One will run the electron app, the other will run the electron app.
- Run
yarn start
- Run
yarn start:desktop
Cypress integration tests will run the web application and make sure that everything is working.
You'll need two terminals to run the cypress integration tests. One test needs to run the web server with yarn start
, the other needs to run yarn test:integration:dev
. After you run the latter command, you'll see a screen like this that will let you run any of the automated tests!