Skip to content

Latest commit

 

History

History
98 lines (62 loc) · 6.36 KB

CONTRIBUTING.md

File metadata and controls

98 lines (62 loc) · 6.36 KB

How to contribute

This repository contains the source of the cert-manager app for the Giant Swarm App platform. It is Apache 2.0 licensed and accepts contributions via GitHub pull requests.

This document outlines some of the conventions on commit message formatting, contact points for developers and other resources to make getting your contribution into cert-manager easier.

Getting started

This repository is managed using vendir. This means all files located in and below helm/cert-manager are sourced from our upstream fork. Exceptions are subcharts located in helm/cert-manager/charts.

If you want to make a change to the main helm chart, you can either

This chart can be tested locally on a kind cluster using app-build-suite and app-test-suite.

Development workflow

Files in helm/cert-manager are managed using vendir. Exceptions are subcharts located in helm/cert-manager/charts. Any direct changes to these files will be lost the next time the chart will be synced to upstream.

To make changes to these files, follow the instructions in the "Contributions" section in the upstream fork.

To test your changes locally, you can use a kind cluster, build the chart using app-build-suite then test it using app-test-suite.

Executing ./dabs.sh -c helm/cert-manager in the root of the repository will launch a container executing app-build-suite. The result will be a .tgz file inside of a build directory. It means the charts syntax is valid.

Copy the .tgz file from inside the build directory into the root of the repository.

Execute ./dats.sh <name-of-the-chart-archive.tgz> will spin up a temporary kind cluster, then execute the tests located in tests/ats against the installed chart.

Check out .ats/main.yaml for instructions for running against externally created clusters. This can help debugging failed tests.

Once you create PR, app-build-suite and app-test-suite will be executed again as part of CI.

Update from upstream

Reporting Bugs and Creating Issues

Reporting bugs is one of the best ways to contribute. If you find bugs or documentation mistakes in the cert-manager project, please let us know by opening an issue. We treat bugs and mistakes very seriously and believe no issue is too small. Before creating a bug report, please check there that one does not already exist.

To make your bug report accurate and easy to understand, please try to create bug reports that are:

  • Specific. Include as much details as possible: which version, what environment, what configuration etc. You can also attach logs.

  • Reproducible. Include the steps to reproduce the problem. We understand some issues might be hard to reproduce, please includes the steps that might lead to the problem. If applicable, you can also attach affected data dir(s) and a stack trace to the bug report.

  • Isolated. Please try to isolate and reproduce the bug with minimum dependencies. It would significantly slow down the speed to fix a bug if too many dependencies are involved in a bug report. Debugging external systems that rely on cert-manager is out of scope, but we are happy to point you in the right direction or help you interact with cert-manager in the correct manner.

  • Unique. Do not duplicate existing bug reports.

  • Scoped. One bug per report. Do not follow up with another bug inside one report.

You might also want to read Elika Etemad’s article on filing good bug reports before creating a bug report.

We might ask you for further information to locate a bug. A duplicated bug report will be closed.

Contribution flow

This is a rough outline of what a contributor's workflow looks like:

  • Create a feature branch from where you want to base your work. This is usually main.
  • Make commits of logical units.
  • Make sure your commit messages are in the proper format (see below).
  • Push your changes to a topic branch in your fork of the repository.
  • Submit a pull request to giantswarm/cert-manager-app.
  • Adding unit tests will greatly improve the chance for getting a quick review and your PR accepted.
  • Your PR must receive a LGTM from a maintainer.
  • We merge your PR and release a new version eventually

Thanks for your contributions!

Format of the Commit Message

We follow a rough convention for commit messages that is designed to answer two questions: what changed and why. The subject line should feature the what and the body of the commit should describe the why.