From d86a5ce416160915557f2a1718f526eb495fad14 Mon Sep 17 00:00:00 2001 From: Jan Larwig Date: Sun, 24 Nov 2024 18:37:04 +0100 Subject: [PATCH] doc: add contribution guide --- CONTRIBUTING.md | 78 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..897639e --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,78 @@ +# Contributing + +This repository is the official **community maintained** helm chart for oauth2-proxy and is not to be confused with the helm chart published by bitnami. We rely on you to test your changes sufficiently. + +## Pull Requests + +All submissions, including submissions by project members, require review. We use GitHub pull requests for this purpose. + +### Pull Request Title + +We do not enforce the title of your pull request to follow guidelines but we do appreciate [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/). + +## Documentation + +The documentation in the chart [README.md](charts/oauth2-proxy) and the `values.yaml` should always be kept up to date if you make changes to existing parameters or introduce new ones. + +### Artifact Hub Annotation + +Since we release the chart on Artifact Hub we require you to update the `artifacthub.io/changes` annotation in the `Chart.yaml`. + +* [https://artifacthub.io/docs/topics/annotations/helm/](https://artifacthub.io/docs/topics/annotations/helm/) + + +## Versioning + +We follow the [semver standard](https://semver.org/) for the chart version and application version. + +Always consider your changes and try to avoid breaking changes where possible. + +### New Application Versions + +The application version is only to be updated if a new release of the oauth2-proxy application repo was published. + +### Immutability + +Each release must be immutable. Any change to a chart (even just documentation) requires a version bump. Trying to release the same version twice will result in an error. + + +## Testing + +When making changes to the logic or resources of the chart please make sure you tested those changes in two ways: + +* Existing helm release with the chart version before your changes: `helm upgrade` +* Fresh helm release with you changes: `helm install` + + +### Testing Charts + +As part of the Continuous Integration system we run Helm's [Chart Testing](https://github.com/helm/chart-testing) tool. + +The checks for Chart Testing are stricter than the standard Helm requirements. + +The configuration can be found in [ct.yaml](ct.yaml) + +If you have `ct` installed you can manually invoke the linting with the following command: + +```shell +ct lint --config ct.yaml +``` + +If you want to run the tests locally we recommend to use [kind](https://kind.sigs.k8s.io). + +Prerequisites: + +```shell +# Add monitoring CRD +kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/release-0.78/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml +``` + +Run the tests: + +```shell +ct --config ct.yaml install +``` + +## Publishing Changes + +Changes are automatically publish whenever a commit is merged to the `main` branch by the CI job (see `./.github/workflows/release.yml`). \ No newline at end of file