- Ways to Contribute
- Development Environment Setup
- Pull Request Lifecycle
- Sign off on Commits
- Ask for Help
Welcome! We are so excited that you want to contribute to our project! 💖
As you get started, you are in the best position to give us feedback on areas of our project that we need help with including:
- Problems found during setting up a new developer environment
- Gaps in our guides or documentation
- Bugs in our tools and automation scripts
If anything doesn't make sense, or doesn't work when you try it, please open a bug report and let us know!
We welcome many different types of contributions including:
- New features
- Bug fixes
- Documentation
- Builds and CI/CD
- Answering questions on Discord, or the mailing list
- Communications, social media, blog posts, or other marketing
If you think there's something else you can help with please contact us in the #general channel of our Discord server or during our office hours meeting and let's discuss how we can work together.
- Python: At least the minimum support version of Python.
- Poetry: Latest version. Installation instructions are available at https://python-poetry.org/docs/#installation.
- Git: Version control system for cloning the repository and managing code changes. Installation instructions are available at https://git-scm.com/book/en/v2/Getting-Started-Installing-Git.
-
Clone the Repository: Clone the PyKitOps source code to your local machine:
git clone https://github.com/kitops-ml/pykitops.git cd pykitops -
Install Project Dependencies: Inside the project directory, fetch and install the project's dependencies using the poetry command:
poetry install --with=dev
-
Run test
poetry run pytest
-
Run ruff: Execute the built CLI to see all available commands:
poetry run ruff format poetry run ruff check
-
Updating Dependencies: If you add or update dependencies:
poetry add <dependency>
or for development dependencies:
poetry add --group dev <dependency>
We use the project's GitHub issue tracker to report bugs or suggest features/enhancements.
Before creating an issue, please check existing open or recently closed issues to make sure somebody else hasn't already reported the issue. Please try to include as much information as you can. Details like these are incredibly useful:
- A series of steps to reproduce
- The version of our code being used
- Any modifications you've made relevant to the bug
Pull requests are often called a "PR". KitOps generally follows the standard GitHub pull request process.
Before sending us a pull request, please ensure that:
- You are working against the latest source on the main branch.
- You check existing open, and recently merged, pull requests to make sure someone else hasn't addressed the problem already.
- You open an issue to discuss any significant work - we would hate for your time to be wasted.
- PR is merged submitted to merge into main branch.
To send us a pull request, please:
- Fork the repository.
- Modify the source; please focus on the specific change you are contributing.
- Ensure local tests pass.
- Commit to your fork using clear commit messages. Don't forget to sign off on your commits!
- Send us a pull request, answering any default questions in the pull request interface.
- Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation.
GitHub provides additional documents on forking a repository and creating a pull request.
Licensing is important to open source projects. It provides some assurances that the software will continue to be available based under the terms that the author(s) desired. We require that contributors sign off on commits submitted to our project's repositories. The Developer Certificate of Origin (DCO) is a way to certify that you wrote and have the right to contribute the code you are submitting to the project.
You sign-off by adding the following to your commit messages. Your sign-off must match the git user and email associated with the commit. Your commit message should be followed by:
Signed-off-by: Your Name <your.name@example.com>
Git has a -s command line option to do this automatically:
git commit -s -m 'This is my commit message'
If you forgot to do this and have not yet pushed your changes to the remote repository, you can amend your commit with the sign-off by running
git commit --amend -s
The best way to reach us with a question when contributing is to ask on:
- The original github issue
- Our Discord server
- At our office hours meeting