Skip to content

Latest commit

 

History

History
100 lines (57 loc) · 4.52 KB

CONTRIBUTING.md

File metadata and controls

100 lines (57 loc) · 4.52 KB

Contributing to modelstore

👋🏽 We'd love for you to contribute!

If you have any questions or ideas, feel free to reach out.

💬 Come and find us in the MLOps Community Slack's #oss-modelstore channel.

Contribute your experience

If you've ever used modelstore, we've love for you to blog about your experience and link to your blog post in the repo's README.md in the "Read more about modelstore" section.

You can also contribute to the modelstore documentation, which is in a separate Github repo.

Contribute to the code base

To contribute to modelstore's code base, we recommend taking the following journey:

  1. Get familiar with the code base
  2. Contribute fixes for bugs or issues
  3. Contribute new feature ideas from the discussions section

👨🏽‍💻 Get familiar with the code base

Pre-requisitings

This library has been developed on Mac OS. To get started:

❯ make setup

Will update brew, install pyenv and other things an required by ML libraries (e.g libomp, required by xgboost).

Setup a virtual environment

This library has been developed using pyenv and pyenv-virtualenv, using the requirements that are in requirements.txt and requirements-dev.txt.

This project has two types of requirements files:

  • requirements.txt contains any dependencies that modelstore users must have in order to use modelstore. This should be as lightweight as possible. We do not require users to install every single machine learning library - just the ones that they want to use.
  • requirements-dev[X].txt contains all of the dependencies that modelstore developers must have. These files contain all of the machine learning frameworks that are supported by modelstore - they must be installed to enable running all of the unit tests.

Once you have set up pyenv and pyenv-virtualenv installed, use this Makefile command that does the rest for you:

❯ make install

This will create a Python virtual environment, using pyenv-virtualenv, and install all of the dependencies in the requirements files. If you want to use a different version of Python, update the bin/_config file.

Notes:

  • I've seen trouble with installing prophet and have sometimes had to install it manually
  • Even when prophet installs, there are sometimes issues with running test_prophet? See this issue. Uninstalling and reinstalling has worked for me.

Run the tests

This project has a lot of dependencies. To run the tests, I'm using Docker:

❯ make test

Run the examples

We have two types of examples:

  • examples-by-ml-library, which has iterates over machine learning model library and writes to three different model stores (GCP, AWS, file system)
  • cli-examples shows how to use the modelstore command line interface

For details, head over to the README.md in the examples directory.

🐛 Contribute fixes for bugs or issues

All of modelstore's bugs are publicly tracked via Github issues.

💡 Contribute new feature ideas

There are a variety of ideas that have been listed in the repo's discussions section. For example:

Add support for a new machine learning framework

The list of machine learning frameworks that are supported by modelstore are found in the modelstore/models/ directory.

For a tutorial on how to add a new framework, refer to the CONTRIBUTING.md guide in that directory.

Add support for a new storage type

The list of storage types that are supported by modelstore are found in the modelstore/storage/ directory.

For a tutorial on how to add a new storage type, refer to the CONTRIBUTING.md guide in that directory.

Adding other features

Do you have ideas for other features that it may be useful to add to modelstore?

Please get in touch by opening a discussion or issue on Github.