From 8e4bb73fb2d75579c297a4b952497bea50777d1c Mon Sep 17 00:00:00 2001 From: Dario Tranchitella Date: Fri, 25 Aug 2023 17:33:35 +0200 Subject: [PATCH] feat(docs): release process --- docs/content/contributing/release.md | 34 ++++++++++++++++++++++++++++ docs/gridsome.server.js | 7 ++++-- 2 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 docs/content/contributing/release.md diff --git a/docs/content/contributing/release.md b/docs/content/contributing/release.md new file mode 100644 index 000000000..965136815 --- /dev/null +++ b/docs/content/contributing/release.md @@ -0,0 +1,34 @@ +# Release Process + +The Capsule release process is constrained to _GitHub Releases_, following the git tag semantic versioning. + +## Semantic versioning convention + +Capsule is taking advantage of the [Semantic Versioning](https://semver.org/), although with some rules about the patch, the minor and the major bump versions. + +- `patch` (e.g.: 0.1.0 to 0.1.1): + a patch bumping occurs when some bugs are fixed, and no Kubernetes CRDs API changes are introduced. + The patch can contain also new features not yet promoted to a specific Kubernetes CRDs API type. + A patch may be used also to address CVE patches. +- `minor` (e.g.: 0.1.0 to 0.2.0): + a minor bumping occurs when a new CRDs API object is introduced, or rather, when some CRDs schemes are updated. + The minor bump is used to inform the Capsule adopters to manually update the Capsule CRDs, since Helm, the suggested tool for the release lifecycle management, is not able to automatically update the objects. + Upon every minor release, on the GitHub Release page, a list of API updates is described, and a link to the [upgrade guide](https://capsule.clastix.io/docs/guides/upgrading) is provided. +- `major` (e.g.: 0.1.0 to 1.0.0): + a major bump occurs when a breaking change, such as backward incompatible changes is introduced. + +## Container hosting + +All the Capsule container images are publicly hosted on [CLASTIX](https://clastix.io) [Docker Hub repository](https://hub.docker.com/r/clastix/capsule). + +The Capsule container image is built upon a git tag (issued thanks to the _GitHub Release_ feature) starting with the prefix `v` (e.g.: `v1.0.1`). +This will trigger a _GitHub Action_ which builds a multi-arch container image, then pushes it to the container registry. + +> The `latest` tag is not available to avoid moving git commit sha reference. + +## Helm Chart hosting + +The suggested installation tool is [Helm](https://helm.sh), and the Capsule chart is hosted in the [GitHub repository](https://github.com/clastix/capsule/tree/master/charts/capsule). +For each Helm Chart release, a tit tag with the prefix `helm-v` will be issued to help developers to address the corresponding commit. + +The built Helm Charts are then automatically pushed upon tag release to the [CLASTIX Helm repository](https://clastix.github.io/charts). diff --git a/docs/gridsome.server.js b/docs/gridsome.server.js index ad2ccbb8d..ac07591a3 100644 --- a/docs/gridsome.server.js +++ b/docs/gridsome.server.js @@ -123,14 +123,17 @@ module.exports = function (api) { { label: 'Governance', path: '/docs/contributing/governance' - } + }, + { + label: 'Release process', + path: '/docs/contributing/release' + } ] } ] }) }) - api.createPages(({ createPage }) => { // Use the Pages API here: https://gridsome.org/docs/pages-api/ })