Skip to main content
Version: v0.4

Contributing Guide

Contributing Guide that introduces how to participate and contribute to the community.

To help us create a safe and positive community experience for all, we require all participants adhere to the CNCF Community Code of Conduct.

Before contributing

Find a Contribution Point

You can contribute to Karpor in several ways including code and non-code contributions, we appreciate every effort you contribute to the community.

Here are some examples:

  • Contribute to the codebase and docs.
  • Report and triage issues.
  • Organize meetups and user groups in your local area.
  • Help others by answering questions about Karpor.

And:

How to Contribute Non-code

We regard non-coding contribution as equally important with code contribution for the community's very existence and its future growth.

How to Contribute Code

Unsure where to begin contributing to Karpor codebase? Start by browsing issues labeled good first issue or help wanted.

Learn Code Conventions and Test Conventions and understand what to pay attention to when writing code.

And learn the Release Process And Cadence to know when your code changes will be released.

Contribute a Pull Request

After opening or claiming an issue, you could contribute codes or non-codes to karpor by a pull request. Here are the steps you should follow:

Fork Repository

Karpor adopts trunk-based development, i.e., the code used for release is maintained on the main branch.

Thus, to develop karpor, you have to fork one project in karpor repository to your workspace, and then check out a new branch to develop coding.

Develop Code/Non-Code

Now you can start writing to solve the issue. To maintain the quality of karpor, after submitting the PR, some necessary checks will be triggered.

After the development is completed, commit and push to your forked repository. Since the PR Title will be used as a merging commit message, we ask your PR Title to meet the Commit Conventions.

Here are some simple explanations:

PR Title should be organized following this structure:

<type>[optional scope]: <subject>

[optional body]

The required type helps better capture the area of the commit, based on the Angular guidelines.

We use lowercase for <type> to avoid spending time on case-sensitive issues. <type> can be one of the following:

feat: A new feature
fix: A bug fix
docs: Documentation only changes
build: Changes that affect the build system or external dependencies
style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
refactor: A code change that neither fixes a bug nor adds a feature
perf: A code change that improves performance
test: Adding missing tests or correcting existing tests
chore: Changes to the build process or auxiliary tools and libraries such as documentation generation

Open a Pull Request

Open a pull request from the develop branch of your forked repository to the main branch of karpor. You should clearly describe what you do in the PR, and link it to an issue. Besides, the PR title should also follow the commit conventions described above, and must be 5-256 characters in length, prefix WIP and [WIP] are not allowed.

Sign CLA

If it was your first pull request, you need to sign our CLA(Contributor License Agreement). The only thing you need to do is to post a pull request comment same as the below format:

I have read the CLA Document and I hereby sign the CLA

If your CLA signature failed, you may find the solutions below:

  • The comment must be in the same format as above, with no extra spaces, line breaks, etc.
  • The git committer must be the same one who created the Karpor PR

PR Checks

To keep the reliability of the karpor project, the following check will get triggered automatically:

  • Unit Test
  • Golang Lint
  • Commit Lint
  • PR Title Lint
  • License Lint
  • Markdown Link Lint

Please make sure your PR passes these checks.

Become a Community Member

If you're interested to become a community member or learn more about the governance, please check the Roles for details.

Enjoy coding and collaboration in Karpor world!