From 4a0d255bf2752178e372a95543f56f421caf197d Mon Sep 17 00:00:00 2001 From: Richard Case Date: Tue, 2 Nov 2021 08:21:38 +0000 Subject: [PATCH 1/2] docs: added releasing guide Initial documentation on how to release flintlock has been added. These instructions will need to be updated when we start to support prior versions (i.e with release branches). Signed-off-by: Richard Case --- README.md | 18 +++++++++--------- docs/image-creation.md | 4 ++-- docs/releasing.md | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 11 deletions(-) create mode 100644 docs/releasing.md diff --git a/README.md b/README.md index f1dc6088..6e362d34 100644 --- a/README.md +++ b/README.md @@ -5,15 +5,16 @@ [![codecov](https://codecov.io/gh/weaveworks/flintlock/branch/main/graph/badge.svg?token=ZNPNRDI8Z0)](https://codecov.io/gh/weaveworks/flintlock) [![Go Report Card](https://goreportcard.com/badge/github.com/weaveworks/flintlock)](https://goreportcard.com/report/github.com/weaveworks/flintlock) -## What is regnite? +## What is flintlock? -Flintlock is a service for creating and managing the lifecycle of microVMs on a host machine. Initially we will be supporting [Firecracker](https://firecracker-microvm.github.io/). +Flintlock is a service for creating and managing the lifecycle of microVMs on a host machine. Initially we will be supporting [Firecracker](https://firecracker-microvm.github.io/). The primary use case for flintlock is to create microVMs on a bare-metal host where the microVMs will be used as nodes in a virtualized Kubernetes cluster. It is an essential part of [Liquid Metal](https://www.weave.works/blog/multi-cluster-kubernetes-on-microvms-for-bare-metal) and will ultimately be driven by Cluster API Provider Microvm (coming soon). ## Features Using API requests (via gRPC or HTTP): + - Create, update, delete microVMs using Firecracker - Manage the lifecycle of microVMs (i.e. start, stop, pause) - Make metadata available to microVMs to support cloud-init, ignition etc @@ -26,20 +27,20 @@ See our [getting started with flintlock][quickstart] guide. ## Contributing -Contributions are welcome. Please read the [CONTRIBUTING.md][contrib] and our [Code Of Conduct][coc]. +Contributions are welcome. Please read the [CONTRIBUTING.md][contrib] and our [Code Of Conduct][coc]. We have the [#liquid-metal](https://weave-community.slack.com/archives/C02KARWGR7S) slack channel for discussions when contributors and users. Other interesting resources include: -* [The issue tracker][issues] -* [The list of milestones][milestones] -* [Architectural Decision Records (ADR)][adr] -* [Getting started with flintlock][quickstart] +- [The issue tracker][issues] +- [The list of milestones][milestones] +- [Architectural Decision Records (ADR)][adr] +- [Getting started with flintlock][quickstart] ## Getting Help If you have any questions about, feedback for or problems with flintlock: -* [File an issue][issues]. +- [File an issue][issues]. Your feedback is always welcome! @@ -47,7 +48,6 @@ Your feedback is always welcome! [MPL-2.0 License][license] - [quickstart]: ./docs/quick-start.md [contrib]: ./CONTRIBUTING.md [coc]: ./CODE_OF_CONDUCT.md diff --git a/docs/image-creation.md b/docs/image-creation.md index e76f9b27..431c217f 100644 --- a/docs/image-creation.md +++ b/docs/image-creation.md @@ -14,13 +14,13 @@ Run the following command to download the Ubuntu Server cloud images: hack/scripts/download_cloudimages.sh ``` -This downloads the Ubuntu Server Cloud Image files and and processes them. The downloaded files and processed files will be available in `out/images` by default. There are a number of flags that can be used for custimization: +This downloads the Ubuntu Server Cloud Image files and and processes them. The downloaded files and processed files will be available in `out/images` by default. There are a number of flags that can be used for customization: | Flag | Description | | --------------- | ---------------------------------------------------------------- | | -o/--output | Specifies the output folder to use. Defaults to `./out`. | | -v/--version | Specifies the ubuntu version to download. Defaults to `bionic`. | -| -s/--image-size | Specifies the size of the root fs to create. Defaluts to `10G`. | +| -s/--image-size | Specifies the size of the root fs to create. Defaults to `10G`. | The processed files (i.e. root filesystem, uncompressed kernel, initrd) can be used directly with Firecracker without flintlock. diff --git a/docs/releasing.md b/docs/releasing.md new file mode 100644 index 00000000..1ecf5c9e --- /dev/null +++ b/docs/releasing.md @@ -0,0 +1,38 @@ +# Releasing Flintlock + +> These instructions will change when we start supporting previous versions whilst using main for future versions. + +## Determine release version + +The projects follows [semantic versioning](https://semver.org/#semantic-versioning-200) and so the release version must adhere to this specification. Depending on the changes in the release you will need to decide the next appropriate version number. + +## Create tag + +* Checkout upstream main +* Create a tag with the version number: + +```bash +RELEASE_VERSION=v0.1.0-alpha.1 +git tag -s ${RELEASE_VERSION} -m "${RELEASE_VERSION} +``` + +* Push the tag (to upstream if working from a fork) + +``` bash +git push origin ${RELEASE_VERSION} +``` + +* Check the [release](https://github.com/weaveworks/flintlock/actions/workflows/release.yml) GitHub Actions workflow completes successfully. + +## Edit & Publish GitHub Release + +* Got to the draft release in GitHub. +* Make any edits to generated release notes + * If there are any breaking changes then manually add a note at the beginning of the release notes informing the user what they need to be aware of/do. + * Sometimes you may want to combine changes into 1 line +* If this is a pre-release tick `This is a pre-release` +* Publish the draft release and when asked say yes to creating a discussion. + +## Announce release + +When the release is available announce it in the #liquid-metal slack channel. From e60369eb556445a5bf88f1c20bd6e888425d4623 Mon Sep 17 00:00:00 2001 From: Richard Case Date: Wed, 3 Nov 2021 08:53:17 +0000 Subject: [PATCH 2/2] docs: review changes Minor edits and additions as a result of review. Signed-off-by: Richard Case --- README.md | 4 +++- docs/releasing.md | 12 ++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6e362d34..0363bb1a 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,9 @@ See our [getting started with flintlock][quickstart] guide. ## Contributing -Contributions are welcome. Please read the [CONTRIBUTING.md][contrib] and our [Code Of Conduct][coc]. We have the [#liquid-metal](https://weave-community.slack.com/archives/C02KARWGR7S) slack channel for discussions when contributors and users. +Contributions are welcome. Please read the [CONTRIBUTING.md][contrib] and our [Code Of Conduct][coc]. + +You can reach out to the maintainers and other contributors using the [#liquid-metal](https://weave-community.slack.com/archives/C02KARWGR7S) slack channel. Other interesting resources include: diff --git a/docs/releasing.md b/docs/releasing.md index 1ecf5c9e..35ba59ba 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -6,6 +6,14 @@ The projects follows [semantic versioning](https://semver.org/#semantic-versioning-200) and so the release version must adhere to this specification. Depending on the changes in the release you will need to decide the next appropriate version number. +Its advised that you pull the tags and view the latest release (i.e. tag): + +```bash +git pull --tags + +git describe --tags --abbrev=0 +``` + ## Create tag * Checkout upstream main @@ -13,13 +21,13 @@ The projects follows [semantic versioning](https://semver.org/#semantic-versioni ```bash RELEASE_VERSION=v0.1.0-alpha.1 -git tag -s ${RELEASE_VERSION} -m "${RELEASE_VERSION} +git tag -s "${RELEASE_VERSION}" -m "${RELEASE_VERSION}" ``` * Push the tag (to upstream if working from a fork) ``` bash -git push origin ${RELEASE_VERSION} +git push origin "${RELEASE_VERSION}" ``` * Check the [release](https://github.com/weaveworks/flintlock/actions/workflows/release.yml) GitHub Actions workflow completes successfully.