Read the following guide if you're interested in contributing to syself's charts.
If you're new to the project and want to help, but don't know where to start, we have a semi-curated list of issues that should not need deep knowledge of the system. Have a look and see if anything sounds interesting. Before starting to work on the issue, make sure that it doesn't have a lifecycle/active label. If the issue has been assigned, reach out to the assignee. Alternatively, read some of the docs on other controllers and try to write your own, file and fix any/all issues that come up, including gaps in documentation!
If you're a more experienced contributor, looking at unassigned issues in the next release milestone is a good way to find work that has been prioritized. For example, if the latest minor release is v1.0
, the next release milestone is v1.1
.
Help and contributions are very welcome in the form of code contributions but also in helping to moderate office hours, triaging issues, fixing/investigating flaky tests, cutting releases, helping new contributors with their questions, reviewing proposals, etc.
Charts has three types of branches: the main branch, release-X branches and the gh-pages branch.
The main branch is where development happens. All the latest and greatest code, including breaking changes, happens on main.
The release-X branches contain stable, backwards compatible code. On every major or minor release, a new branch is created. It is from these branches that minor and patch releases are tagged. In some cases, it may be necessary to open PRs for bugfixes directly against stable branches, but this should generally not be the case.
The gh-pages branch is for hosting the chart repository.
- If working on an issue, signal other contributors that you are actively working on it using
/lifecycle active
. - Fork the desired repo, develop and test your code changes.
- See the Development Guide for more instructions on setting up your environment and testing changes locally.
- Submit a pull request.
- All PRs should be labeled with one of the following kinds
/kind feature
for PRs releated to adding new features/tests/kind bug
for PRs releated to bug fixes and patches/kind api-change
for PRs releated to adding, removing, or otherwise changing an API/kind cleanup
for PRs releated to code refactoring and cleanup/kind deprecation
for PRs related to a feature/enhancement marked for deprecation./kind design
for PRs releated to design proposals/kind documentation
for PRs releated to documentation/kind failing-test
for PRs releated to to a consistently or frequently failing test./kind flake
for PRs related to a flaky test./kind other
for PRs releated to updating dependencies, minor changes or other
- All code PR must be have a title starting with one of
⚠️ (:warning:
, major or breaking changes)- ✨ (
:sparkles:
, feature additions) - 🐛 (
:bug:
, patch and bugfixes) - 📖 (
:book:
, documentation or proposals) - 🌱 (
:seedling:
, minor or other)
- If the PR requires additional action from users switching to a new release, include the string "action required" in the PR release-notes.
- All code changes must be covered by unit tests and E2E tests.
- All new features should come with user documentation.
- All PRs should be labeled with one of the following kinds
- Once the PR has been reviewed and is ready to be merged, commits should be squashed.
- Ensure that commit message(s) are be meaningful and commit history is readable.
All changes must be code reviewed.