- Ways to Contribute
- Development Environment Setup
- Pull Request Lifecycle
- Sign Your 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
- Release management
- Issue triage
- Answering questions on Discord, or the mailing list
- Web design
- 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.
- Go (Golang): The latest version of Go, as the project is written in this language. Go's installation guide can be found at https://golang.org/doc/install.
- 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 KitOps source code to your local machine:
git clone https://github.com/jozu-ai/kitops.git cd kitops
-
Install Go Dependencies: Inside the project directory, fetch and install the project's dependencies using the Go command:
go mod tidy
-
Generate the dev mode harness and ui
go generate ./...
-
Build the Kit CLI: Compile the source code into an executable named kit:
go build -o kit
-
Run Your Build: Execute the built CLI to see all available commands:
go run .
-
Updating Dependencies: If you add or update dependencies, ensure to update the go.mod and go.sum files by running
go mod tidy
again and include these changes in your commits.
Pull requests are often called a "PR". KitOps generally follows the standard GitHub pull request process.
There are two aspects of code review: giving and receiving. To make it easier for your PR to receive reviews, consider that reviewers will need you to:
- Follow the project coding conventions
- Write good commit messages
- Break large changes into a logical series of smaller patches which individually make easily understandable changes, and in aggregate solve a broader issue
Reviewers, the people giving the review, are highly encouraged to revisit our Code of Conduct and must go above and beyond to promote a collaborative, respectful community. When reviewing PRs from others The Gentle Art of Patch Review suggests an iterative series of focuses which is designed to lead new contributors to positive collaboration without inundating them initially with a pile of suggestions:
- Is the idea behind the contribution sound?
- Is the contribution architected correctly?
- Is the contribution polished?
If your PR isn't getting any attention after 3-4 days (remember Maintainers tend to be very busy) please ping one of the Maintainers in Discord.
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 channel (TODO)
- At our office hours meeting