Contributing to demml/opsml¶
Welcome¶
Hello! We're glad and grateful that you're interested in contributing to OpsML
! Below you will find the general guidelines for setting up your environment and creating/submitting pull requests
.
Very Important¶
To contribute to OpsML
you will need to sign a Contributor License Agreement (CLA) via HelloSign when you create your first pull_request
(this is an automated process). For a pull_request
to be valid, your Github email address must match the email address used to sign the CLA. Github has documentation on setting email addresses. Your git email must also match this email address
Table of contents¶
- Environment setup
- Contributing changes
- Contributing TLDR
- Community guidelines
- Reporting bugs
- Suggesting enhancements
Environment Setup¶
Steps:
1. Create a new env. OpsML
currently supports python 3.9 -> 3.11
2. Fork OpsML
3. Install all required and development packages in your new env (we use poetry for dependency management).
make setup
poetry install --all-extras --with dev,dev-lints
Contributing Changes¶
- Create a new branch for your addition
- General naming conventions (we're not picky):
/username/<featureName>
: for features/username/<fixName>
: for general refactoring or bug fixes
- Test your changes:
- You can run formatting, lints and tests locally via
make format
,make lints
andmake unit.tests
, respectively. - Submit a Draft Pull Request. Do it early and mark it
WIP
so a maintainer knows it's not ready for review just yet. You can also add a label to it if you feel like it . - If you haven't signed our CLA before, then you will receive an email from HelloSign to sign the CLA (mentioned above).
- The CLA request will be sent to the email address associated with your github account.
- You cannot have your PR merged without signing the PR.
- If you already submitted a PR and need to correct your user.name and/or user.email please do so and then use
git commit --amend --reset-author
and thengit push --force
to correct the PR.
- Move the
pull_request
out of draft state. - Make sure you fill out the
pull_request
template (included with everypull_request
) - Request review from one of our maintainers (this should happen automatically via
.github/CODEOWNERS
). - Get Approval. We'll let you know if there are any changes that are needed.
- Merge your changes into
OpsML
!
Contributing TLDR¶
- Create branch
- Add changes
- Test locally
- Create PR (fill out CLA if you haven't before)
- Get your awesome work reviewed and approved by a maintainer
- Merge
- Celebrate!
Community Guidelines¶
- Be Kind
- Working with us should be a fun learning opportunity, and we want it to be a good experience for everyone. Please treat each other with respect.
- If something looks outdated or incorrect, please let us know! We want to make
OpsML
as useful as possible.
- Own Your Work
- Creating a PR for
OpsML
is your first step to becoming a contributor, so make sure that you own your changes. - Our maintainers will do their best to respond to you in a timely manner, but we ask the same from you as the contributor.
- Creating a PR for
Submitting issues/bugs¶
We use GitHub issues to track bugs and suggested enhancements. You can report a bug by opening a new issue new issue Before reporting a bug/issue, please check that it has not already been reported, and that it is not already fixed in the latest version. If you find a closed issue related to your current issue, please open a new issue and include a link to the original issue in the body of your new one. Please include as much information about your bug as possible.
Suggesting enhancements¶
You can suggest an enhancement by opening a new feature request. Before creating an enhancement suggestion, please check that a similar issue does not already exist.
Please describe the behavior you want and why, and provide examples of how OpsML
would be used if your feature were added.