Contributing Guide#

We are striving to build an open and inclusive community around UnionML. Whether you are a novice or experienced software developer, data scientist, or machine learning practitioner, all contributions and suggestions are welcome!

Ways to Contribute#

There are many ways to contribute to this project:

  • 📖 Improve the documentation: See typos and grammatical errors? Open up a PR to fix them!

  • 🐞 Report Bugfixes: Coming up against unexpected behavior? Open up an issue!

  • 🙏 Feature Requests: Have ideas on new features or improvements? Open up an issue!

  • 🔧 Pull Requests: Pick up one of the issues in the issue log and submit a PR!

Roadmap#

Roadmap OSS Planning

The release roadmap is a living being 🌳, so you can also participate in roadmapping and prioritization!

Each milestone in the roadmap is made up of multiple issues, and you can upvote roadmap items by going to the issue page and giving it a thumbs up 👍.

The UnionML maintainers hold a bi-weekly open source sync up and re-prioritize the roadmap based on community interest, so subscribe to the google calendar event by clicking on the “OSS Planning” badge above if you’re interested in joining.

Development Environment Setup#

Create a virtual environment:

python -m venv ~/venvs/unionml
source activate ~/venvs/unionml/bin/activate

Install dependencies:

pip install -r requirements-docs.txt

pre-commit Setup#

This project uses pre-commit to ensure code standards. Follow the installation instructions, then setup the pre-commit hooks:

pre-commit install

Make sure everything is working correctly by running:

pre-commit run --all

Run Unit Tests#

Finally, to make sure your development environment is ready to go, run the unit tests:

pytest tests/unit

Run Integration Tests [Optional]#

Optionally, you can run integration tests locally. First install flytectl, then:

pytest tests/integration

DCO-signing Commits#

This project enforces the DCO standard for contributions, which requires authors to sign off on their commits. This can be done with the -s or --signoff flag:

git commit -s -m 'my commit'

Installing#

Install using conda:

conda install -c conda-forge unionml

Install using pip:

pip install unionml