Skip to content

Commit

Permalink
chore: add release process and func_darwin_arm64 to the release artif…
Browse files Browse the repository at this point in the history
…acts (#945)

* fix: add func_darwin_arm64 to the release artifacts

Signed-off-by: Lance Ball <lball@redhat.com>

* chore: add ARM64 release target/propose process

I noticed in the most recent release, that a MacOS M1 binary was not
produced. This commit adds that target to `hack/release.sh`. Additionally
the CHANGELOG.md files and version.txt files have been updated to accurately
reflect the current status. Finally, I've proposed a release process in
the new file `docs/RELEASING.md`.

Signed-off-by: Lance Ball <lball@redhat.com>

* fixup: remove trailing whitespace

Signed-off-by: Lance Ball <lball@redhat.com>
  • Loading branch information
lance authored Apr 7, 2022
1 parent 48d081b commit 4e369a0
Show file tree
Hide file tree
Showing 5 changed files with 162 additions and 2 deletions.
16 changes: 16 additions & 0 deletions .versionrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"bumpFiles": [{
"filename": "version.txt",
"type": "plain-text"
}],
"types": [
{"type":"feat","section":"Features"},
{"type":"fix","section":"Bug Fixes"},
{"type":"chore","section":"Miscellaneous"},
{"type":"docs","section":"Documentation"},
{"type":"refactor","section":"Miscellaneous"}
],
"skip": {
"tag": true
}
}
78 changes: 78 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,84 @@
# Change Log

<a name="unreleased"></a>


---
### [0.23.0](https://github.com/knative-sandbox/kn-plugin-func/compare/v0.23.0...v0.22.0) (2022-04-06)


### Features

* command help text template preprocessing ([#875](https://github.com/knative-sandbox/kn-plugin-func/issues/875)) ([2bd5254](https://github.com/knative-sandbox/kn-plugin-func/commit/2bd5254f19a14d6aae9bd4a4b59971ef36e96fad))
* invoke verbose metadata ([#944](https://github.com/knative-sandbox/kn-plugin-func/issues/944)) ([c3c1456](https://github.com/knative-sandbox/kn-plugin-func/commit/c3c1456ede7b471a271d0680107657ac0e4f0568))
* on cluster build doens't require privileged cluster permissions ([#934](https://github.com/knative-sandbox/kn-plugin-func/issues/934)) ([e9251f5](https://github.com/knative-sandbox/kn-plugin-func/commit/e9251f518cc806768f0221f11e39f04fa4619537))
* s2i builder with preliminary node support ([#923](https://github.com/knative-sandbox/kn-plugin-func/issues/923)) ([a91bcc5](https://github.com/knative-sandbox/kn-plugin-func/commit/a91bcc5fcfe66948c86ce3e33cf0d28230536f1c)), closes [#921](https://github.com/knative-sandbox/kn-plugin-func/issues/921)


### Bug Fixes

* apply updated spring-boot-function dependency ([#936](https://github.com/knative-sandbox/kn-plugin-func/issues/936)) ([4a4cebb](https://github.com/knative-sandbox/kn-plugin-func/commit/4a4cebb1ea7226e7d7c1dbfb9e3fa8e5ec22c31d))
* bind verbose flag to root ([#884](https://github.com/knative-sandbox/kn-plugin-func/issues/884)) ([25524a1](https://github.com/knative-sandbox/kn-plugin-func/commit/25524a1f8435cd310b45f283e987eee7a8736ceb))
* full clone of template repos on add ([#904](https://github.com/knative-sandbox/kn-plugin-func/issues/904)) ([564a34b](https://github.com/knative-sandbox/kn-plugin-func/commit/564a34b3f53381bdd59262dcb78d2953f973c8bb))
* minor typos in docs ([#862](https://github.com/knative-sandbox/kn-plugin-func/issues/862)) ([efc3b20](https://github.com/knative-sandbox/kn-plugin-func/commit/efc3b208cb5ab76f1eb73801501bcbfc23f16928))
* use full root name for cmd help prefixes ([#873](https://github.com/knative-sandbox/kn-plugin-func/issues/873)) ([3f30c91](https://github.com/knative-sandbox/kn-plugin-func/commit/3f30c91116344b592bf392e92b63cb845b25428a))


### Miscellaneous

* add Apple M1 build in cross-platform target ([#932](https://github.com/knative-sandbox/kn-plugin-func/issues/932)) ([00d5a82](https://github.com/knative-sandbox/kn-plugin-func/commit/00d5a8272284ea40ebeefa4f22f12c2d375aadae))
---
## [0.22.0](https://www.github.com/knative-sandbox/kn-plugin-func/compare/v0.21.2...v0.22.0) (2022-02-22)

### Chore

- Bump Node.js builder image to the latest paketo builder, removing a non-fatal warning that was issued at function startup. (#[8](https://github.com/knative-sandbox/kn-plugin-func/runs/5297690460?check_suite_focus=true#step:6:8)26, @lance)
- Update boson builder images to most recent versions (#8[10](https://github.com/knative-sandbox/kn-plugin-func/runs/5297690460?check_suite_focus=true#step:6:10), @matejvasek)

### Enhancement

- Adds the --build flag for 'func deploy' to the shell completions (#802, @matejvasek)

### Documentation

- Clarify podman requirements on Linux vs. MacOS and Linux in podman.md guide (#836, @matejvasek)

### Bug or Regression

- Fix a bug where interactive prompt defaults were not being used (#821, @lkingland)
- Fixes a bug during func create when confirm option is used with the go language runtime (#8[15](https://github.com/knative-sandbox/kn-plugin-func/runs/5297690460?check_suite_focus=true#step:6:15), @senthilnathan)
- Fixes a bug where the invoke and describe commands could fail if Knative Eventing is not installed on the cluster. (#8[23](https://github.com/knative-sandbox/kn-plugin-func/runs/5297690460?check_suite_focus=true#step:6:23), @lance)
- Fixes missing `cloudevent` invocation format for Node.js, SpringBoot and Rust CloudEvent templates (#846, @lance)

### Uncategorized

- Detects when deploying to OpenShift and use internal registry (#8[25](https://github.com/knative-sandbox/kn-plugin-func/runs/5297690460?check_suite_focus=true#step:6:25), @matejvasek)

---
## [0.21.2](https://www.github.com/knative-sandbox/kn-plugin-func/compare/v0.21.1...v0.21.2) (2022-01-28)

## What's Changed
* backport: bug fixes for 0.21 by @lance in https://github.com/knative-sandbox/kn-plugin-func/pull/793


**Full Changelog**: https://github.com/knative-sandbox/kn-plugin-func/compare/v0.21.1...v0.21.2

---
## [0.21.1](https://www.github.com/knative-sandbox/kn-plugin-func/compare/v0.21.0...v0.21.1) (2022-01-27)

### Enhancement

- Adds a label `function.knative.dev/name: functionName` to every resouce created for a Function ([#757](https://github.com/knative-sandbox/kn-plugin-func/pull/757), [@zroubalik](https://github.com/zroubalik))
- Adds the ability to build a Function on the cluster using Tekton Pipelines. The build on the cluster is enabled by fetching Function source code from a remote Git repository. ([#743](https://github.com/knative-sandbox/kn-plugin-func/pull/743), [@zroubalik](https://github.com/zroubalik))

### Bug or Regression

- Changes the springboot function templates to use the base builder instead of the tiny builder. ([#792](https://github.com/knative-sandbox/kn-plugin-func/pull/792), [@lance](https://github.com/lance))


**Full Changelog**: https://github.com/knative-sandbox/kn-plugin-func/compare/v0.21.0...v0.21.1

---
## [0.21.0](https://www.github.com/knative-sandbox/kn-plugin-func/compare/v0.20.0...v0.21.0) (2022-01-12)


Expand Down
66 changes: 66 additions & 0 deletions docs/RELEASING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Releasing

The project releases are primarily handled by the Knative [`hack`](https://github.com/knative/hack) infrastructure. When a new branch with a specific naming convention is pushed to GitHub, the Knative Prow system kicks into action, creating a new release. Unfortunately, this does not handle some niceties such as CHANGELOG.md updates. Follow this guide to create a new release, or push a patch for an existing release.

## Prerequisites

You will need Node.js and NPM installed on your system to follow these steps. Managing the CHANGELOG.md and version.txt files is done with the npm package [`standard-version`](https://npmjs.com/package/standard-version).

## Creating a new release branch

Follow these steps to create a new release branch. Release branches use the `release-` prefix, and include the major and minor version numbers, for example, `release-0.23`.

### Steps

When you are ready to create a new release, check out the repository's main branch, and perform the following steps.

- Ensure you are on the most recent commit
```
git checkout main
git fetch
git reset --hard origin/main
```

- Update CHANGELOG.md and version.txt. Running this will command will update both of these files, and commit the changes with a "release" commit. To see what will happen before actually doing it, use the `--dry-run` flag.
```
standard-version
```

- Create the release branch and push it to GitHub
```
git push origin main:release-X.Y # X is the major version number, Y is the minor version number
```

At this point, prow will see the new branch and begin the release process. Once the release has been created in GitHub, update the release text to include the markdown from the CHANGELOG.txt changes.

## Creating a patch release on an existing release branch

If a release branch already exists, but you need to release a new version with backported bug fixes, follow these steps.

### Steps

When you are ready to create a patch release, check out the release branch to be updated, and perform the following steps.

- Ensure you are on the latest commit from the release branch
```
git checkout release-X.Y # X=major version, Y=minor
git fetch
git reset --hard origin/release-X.Y
```

- Backport the necessary changes/bug fixes onto this branch.
```
git cherry-pick [SHA]
```

- Update CHANGELOG.md and version.txt on this branch. Running this will command will update both of these files, and commit the changes with a "release" commit. To see what will happen before actually doing it, use the `--dry-run` flag.
```
standard-version
```

- Create the release branch and push it to GitHub
```
git push origin main:release-X.Y # X is the major version number, Y is the minor version number
```

At this point, prow will see the new branch and begin the release process. Once the release has been created in GitHub, update the release text to include the markdown from the CHANGELOG.txt changes.
2 changes: 1 addition & 1 deletion hack/release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ function build_release() {
echo "🚧 🐧 Building cross platform binaries: Linux 🐧 (amd64), MacOS 🍏, and Windows 🎠"
ETAG=${TAG} make cross-platform

ARTIFACTS_TO_PUBLISH="func_darwin_amd64 func_linux_amd64 func_windows_amd64.exe"
ARTIFACTS_TO_PUBLISH="func_darwin_amd64 func_darwin_arm64 func_linux_amd64 func_windows_amd64.exe"
sha256sum ${ARTIFACTS_TO_PUBLISH} > checksums.txt
ARTIFACTS_TO_PUBLISH="${ARTIFACTS_TO_PUBLISH} checksums.txt"
echo "🧮 Checksum:"
Expand Down
2 changes: 1 addition & 1 deletion version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.21.0
0.23.0

0 comments on commit 4e369a0

Please sign in to comment.