Skip to content

Commit feba097

Browse files
authored
chore: Add Contributing guide (#51)
* chore: Add Contributing guide Signed-off-by: Jacob Fuss <[email protected]> * Update based on feedback Signed-off-by: Jacob Fuss <[email protected]> --------- Signed-off-by: Jacob Fuss <[email protected]> Co-authored-by: Jacob Fuss <[email protected]>
1 parent 5d83c4e commit feba097

File tree

1 file changed

+136
-0
lines changed

1 file changed

+136
-0
lines changed

CONTRIBUTING.md

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
# Contributing Guide
2+
3+
* [Ways to Contribute](#ways-to-contribute)
4+
* [Development Environment Setup](#development-environment-setup)
5+
* [Pull Request Lifecycle](#pull-request-lifecycle)
6+
* [Sign off on Commits](#sign-off-on-commits)
7+
* [Ask for Help](#ask-for-help)
8+
9+
Welcome! We are so excited that you want to contribute to our project! 💖
10+
11+
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:
12+
13+
* Problems found during setting up a new developer environment
14+
* Gaps in our guides or documentation
15+
* Bugs in our tools and automation scripts
16+
17+
If anything doesn't make sense, or doesn't work when you try it, please open a bug report and let us know!
18+
19+
## Ways to Contribute
20+
21+
We welcome many different types of contributions including:
22+
23+
* [New features](https://github.com/kitops-ml/pykitops/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
24+
* [Bug fixes](https://github.com/kitops-ml/pykitops/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
25+
* [Documentation](https://github.com/kitops-ml/pykitops/issues?q=is%3Aopen+is%3Aissue+label%3Adocumentation)
26+
* [Builds and CI/CD](https://github.com/kitops-ml/pykitops/issues?q=is%3Aopen+is%3Aissue+label%3Abuild)
27+
* Answering questions on Discord, or the mailing list
28+
* Communications, social media, blog posts, or other marketing
29+
30+
If you think there's something else you can help with please contact us in the [#general channel of our Discord server](https://discord.gg/Tapeh8agYy) or during our [office hours meeting](https://github.com/jozu-ai/kitops/blob/main/GOVERNANCE.md#-meetings) and let's discuss how we can work together.
31+
32+
## Development Environment Setup
33+
34+
### Prerequisites
35+
36+
* Python: At least the minimum support version of Python.
37+
* Poetry: Latest version. Installation instructions are available at https://python-poetry.org/docs/#installation.
38+
* 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.
39+
40+
### Setting up the project
41+
42+
1. Clone the Repository: Clone the PyKitOps source code to your local machine:
43+
44+
```shell
45+
git clone https://github.com/kitops-ml/pykitops.git
46+
cd pykitops
47+
```
48+
49+
1. Install Project Dependencies: Inside the project directory, fetch and install the project's dependencies using the poetry command:
50+
51+
```shell
52+
poetry install --with=dev
53+
```
54+
55+
1. Run test
56+
57+
```shell
58+
poetry run pytest
59+
```
60+
61+
1. Run ruff: Execute the built CLI to see all available commands:
62+
63+
```shell
64+
poetry run ruff format
65+
poetry run ruff check
66+
```
67+
68+
1. Updating Dependencies: If you add or update dependencies:
69+
70+
```shell
71+
poetry add <dependency>
72+
```
73+
74+
or for development dependencies:
75+
```shell
76+
poetry add --group dev <dependency>
77+
```
78+
79+
## Reporting Bugs/Feature Requests
80+
81+
We use the project's GitHub issue tracker to report bugs or suggest features/enhancements.
82+
83+
Before creating an issue, please check [existing open](https://github.com/kitops-ml/pykitops/issuess) or [recently closed](https://github.com/kitops-ml/pykitops/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aclosed%20) issues to make sure somebody else hasn't already
84+
reported the issue. Please try to include as much information as you can. Details like these are incredibly useful:
85+
86+
* A series of steps to reproduce
87+
* The version of our code being used
88+
* Any modifications you've made relevant to the bug
89+
90+
## Pull Request Lifecycle
91+
92+
Pull requests are often called a "PR". KitOps generally follows the standard [GitHub pull request process](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests).
93+
94+
Before sending us a pull request, please ensure that:
95+
96+
1. You are working against the latest source on the *main* branch.
97+
2. You check existing open, and recently merged, pull requests to make sure someone else hasn't addressed the problem already.
98+
3. You open an issue to discuss any significant work - we would hate for your time to be wasted.
99+
4. PR is merged submitted to merge into *main* branch.
100+
101+
To send us a pull request, please:
102+
103+
1. Fork the repository.
104+
2. Modify the source; please focus on the specific change you are contributing.
105+
3. Ensure local tests pass.
106+
4. Commit to your fork using clear commit messages. Don't forget to [sign off on your commits](#sign-off-on-commits)!
107+
5. Send us a pull request, answering any default questions in the pull request interface.
108+
6. Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation.
109+
110+
GitHub provides additional documents on [forking a repository](https://help.github.com/articles/fork-a-repo/) and
111+
[creating a pull request](https://help.github.com/articles/creating-a-pull-request/).
112+
113+
## Sign off on Commits
114+
115+
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)](https://probot.github.io/apps/dco/) is a way to certify that you wrote and have the right to contribute the code you are submitting to the project.
116+
117+
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:
118+
119+
Signed-off-by: Your Name <[email protected]>
120+
121+
Git has a `-s` command line option to do this automatically:
122+
123+
git commit -s -m 'This is my commit message'
124+
125+
If you forgot to do this and have not yet pushed your changes to the remote
126+
repository, you can amend your commit with the sign-off by running
127+
128+
git commit --amend -s
129+
130+
## Ask for Help
131+
132+
The best way to reach us with a question when contributing is to ask on:
133+
134+
* The original github issue
135+
* Our [Discord server](https://discord.gg/Tapeh8agYy)
136+
* At our [office hours meeting](https://github.com/jozu-ai/kitops/blob/main/GOVERNANCE.md#-meetings)

0 commit comments

Comments
 (0)