Everyone is welcome to contribute, and we value everybody’s contribution. Code is thus not the only way to help the community. Answering questions, helping others, reaching out and improving the documentation are immensely valuable contributions as well.
It also helps us if you spread the word: reference the library from blog posts on the awesome projects it made possible, shout out on Twitter every time it has helped you, or simply star the repo to say "thank you".
Check out the official ludwig docs to get oriented around the codebase, and join the community!
Issues are listed at: https://github.com/ludwig-ai/ludwig/issues
If you would like to work on any of them, make sure it is not already assigned to someone else.
You can self-assign it by commenting on the Issue page with one of the keywords: #take
or
#self-assign
.
Work on your self-assigned issue and eventually create a Pull Request.
-
Fork the repository by clicking on the 'Fork' button on the repository's page. This creates a copy of the code under your GitHub user account.
-
Clone your fork to your local disk, and add the base repository as a remote:
git clone [email protected]:<your Github handle>/ludwig.git cd ludwig git remote add upstream https://github.com/ludwig-ai/ludwig.git
-
Create a new branch to hold your development changes:
git checkout -b a-descriptive-name-for-my-changes
Do not* work on the
master
branch. -
Set up a development environment by running the following command in a virtual environment:
pip install -e ".[dev]" pip install pre-commit pre-commit install
-
Develop features on your branch.
-
Format your code by running pre-commits so that your newly added files look nice:
pre-commit run
Pre-commits also run automatically when committing.
-
Once you're happy with your changes, make a commit to record your changes locally:
git add . git commit
It is a good idea to sync your copy of the code with the original repository regularly. This way you can quickly account for changes:
git fetch upstream git rebase upstream/master
Push the changes to your account using:
git push -u origin a-descriptive-name-for-my-changes
-
Once you are satisfied, go the webpage of your fork on GitHub. Click on "Pull request" to send your to the project maintainers for review.
- Use google/yapf to format Python code.
- Add unit tests for any new code you write.
- Make sure tests pass. See the Developer Guide for more details.
This contributing guideline is adapted from huggingface
, available at https://github.com/huggingface/datasets/blob/master/CONTRIBUTING.md.
Please be mindful of and adhere to the Linux Foundation's Code of Conduct when contributing to Ludwig.