Skip to content

Commit 1314cd8

Browse files
authored
chore: support manual changelog and version 2.0 for releases (#8880)
* chore(release): add manual changelog + 2.0 support * add comment * fix typo * fmt
1 parent 10da570 commit 1314cd8

File tree

11 files changed

+336
-4
lines changed

11 files changed

+336
-4
lines changed

.github/workflows/release.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ jobs:
8080
8181
# Generate notes.
8282
release_notes_file="$(mktemp -t release_notes.XXXXXX)"
83-
./scripts/release/generate_release_notes.sh --old-version "$old_version" --new-version "$version" --ref "$ref" >> "$release_notes_file"
83+
./scripts/release/generate_release_notes.sh --check-for-changelog --old-version "$old_version" --new-version "$version" --ref "$ref" >> "$release_notes_file"
8484
echo CODER_RELEASE_NOTES_FILE="$release_notes_file" >> $GITHUB_ENV
8585
8686
- name: Show release notes

docs/changelogs/README.md

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Changelogs
2+
3+
These are the changelogs used by [get-changelog.sh](https://github.com/coder/coder/blob/main/scripts/release/changelog.sh) for a release.
4+
5+
These changelogs are currently not kept in-sync with GitHub releases. Use [GitHub releases](https://github.com/coder/coder/releases) for the latest information!
6+
7+
## Writing a changelog
8+
9+
Run this command to generate release notes:
10+
11+
```sh
12+
./scripts/release/generate_release_notes.sh \
13+
--old-version=v0.27.0 \
14+
--new-version=v0.28.0 \
15+
--ref=$(git rev-parse --short "${ref:-origin/$branch}") \
16+
> ./docs/changelogs/v0.28.0.md
17+
```

docs/changelogs/v0.25.0.md

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
## Changelog
2+
3+
> **Warning**: This release has a known issue: #8351. Upgrade directly to v0.26.0 which includes a fix
4+
5+
### Features
6+
7+
- The `coder stat` fetches workspace utilization metrics, even from within a container. Our example templates have been updated to use this to show CPU, memory, disk via [agent metadata](https://coder.com/docs/v2/latest/templates/agent-metadata) (#8005)
8+
- Helm: `coder.command` can specify a different command for the Coder pod (#8116)
9+
- Enterprise deployments can create templates without 'everyone' group access (#7982)
10+
![Disable "everyone"](https://github.com/coder/coder/assets/22407953/1c31cb9b-be5c-4bef-abee-324856734215)
11+
- Add login type 'none' to prevent password login. This can come in handy for machine accounts for CI/CD pipelines or other automation (#8009)
12+
- Healthcheck endpoint has a database section: `/api/v2/debug/health`
13+
- Force DERP connections in CLI with `--disable-direct` flag (#8131)
14+
- Disable all direct connections for a Coder deployment with [--block-direct-connections](https://coder.com/docs/v2/latest/cli/server#--block-direct-connections) (#7936)
15+
- Search for workspaces based on last activity (#2658)
16+
```text
17+
last_seen_before:"2023-01-14T23:59:59Z" last_seen_after:"2023-01-08T00:00:00Z"
18+
```
19+
- Queue position of pending workspace builds are shown in the dashboard (#8244)
20+
<img width="1449" alt="Queue position" src="https://github.com/coder/coder/assets/22407953/44515a19-ddfb-4431-8c2a-203487c4efe8">
21+
- Enable Terraform debug mode via deployment configuration (#8260)
22+
- Add github device flow for authentication (#8232)
23+
- Sort Coder parameters with [display_order](https://registry.terraform.io/providers/coder/coder/latest/docs/data-sources/parameter) property (#8227)
24+
- Users can convert from username/password accounts to OIDC accounts in Account settings (#8105) (@Emyrk)
25+
![Convert account](https://github.com/coder/coder/assets/22407953/6ea28c1c-53d7-4eb5-8113-9a066739820c)
26+
- Show service banner in SSH/TTY sessions (#8186)
27+
- Helm chart now supports RBAC for deployments (#8233)
28+
29+
### Bug fixes
30+
31+
- `coder logout` will not invalidate long-lived API tokens (#8275)
32+
- Helm: use `/healthz` for liveness and readiness probes instead of `/api/v2/buildinfo` (#8035)
33+
- Close output writer before reader on Windows to unblock close (#8299)
34+
- Resize terminal when dismissing warning (#8028)
35+
- Fix footer year (#8036)
36+
- Prevent filter input update when focused (#8102)
37+
- Fix filters errors display (#8103)
38+
- Show error when parameter is invalid (#8125)
39+
- Display correct user_limit on license ui (#8118)
40+
- Only collect prometheus database metrics when explicitly enabled (#8045)
41+
- Avoid missed logs when streaming startup logs (#8029)
42+
- Show git provider id instead of type (#8075)
43+
- Disable websocket compression for startup logs in Safari (#8087)
44+
- Revert to canvas renderer for xterm (#8138)
45+
46+
### Documentation
47+
48+
- Template inheritance with Terraform modules (#8328) (@bpmct)
49+
- Steps for configuring trusted headers & origins in Helm chart (#8031)
50+
- OIDC keycloak docs (#8042)
51+
- Steps for registering a github app with coder (#7976)
52+
- Prometheus scrape_config example (#8113)
53+
- `coder ping` example for troubleshooting (#8133)
54+
- Application logs (#8166)
55+
- Strip CORS headers from applications (#8057)
56+
- Max lifetime docs and refactor UI helper text (#8185)
57+
- Add default dir for VS Code Desktop (#8184)
58+
- Agent metadata is now GA (#8111) (@bpmct)
59+
- Note SSH key location in workspaces (#8264)
60+
- Update examples of IDEs: remove JetBrains Projector and add VS Code Server (#8310)
61+
62+
Compare: [`v0.24.1...v0.25.0`](https://github.com/coder/coder/compare/v0.24.1...v0.25.0)
63+
64+
## Container image
65+
66+
- `docker pull ghcr.io/coder/coder:v0.25.0`
67+
68+
## Install/upgrade
69+
70+
Refer to our docs to [install](https://coder.com/docs/v2/latest/install) or [upgrade](https://coder.com/docs/v2/latest/admin/upgrade) Coder, or use a release asset below.

docs/changelogs/v0.26.0.md

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
## Changelog
2+
3+
### Important changes
4+
5+
- [Managed variables](https://coder.com/docs/v2/latest/templates/parameters#terraform-template-wide-variables) are enabled by default. The following block within templates is obsolete and can be removed from your templates:
6+
7+
```diff
8+
provider "coder" {
9+
- feature_use_managed_variables = "true"
10+
}
11+
```
12+
13+
> The change does not affect your templates because this attribute was previously necessary to activate this additional feature.
14+
15+
- Our scale test CLI is [experimental](https://coder.com/docs/v2/latest/contributing/feature-stages#experimental-features) to allow for rapid iteration. You can still interact with it via `coder exp scaletest` (#8339)
16+
17+
### Features
18+
19+
- [coder dotfiles](https://coder.com/docs/v2/latest/cli/dotfiles) can checkout a specific branch
20+
21+
### Bug fixes
22+
23+
- Delay "Workspace build is pending" banner to avoid quick re-render when a workspace is created (#8309)
24+
- `coder stat` handles cgroups with no limits
25+
- Remove concurrency to allow migrations when `coderd` runs on multiple replicas (#8353)
26+
- Pass oauth configs to site (#8390)
27+
- Improve error message for missing action in Audit log (#8335)
28+
- Add missing fields to extract api key config (#8393)
29+
- Resize terminal when alert is dismissed (#8368)
30+
- Report failed CompletedJob (#8318)
31+
- Resolve nil pointer dereference on missing oauth config (#8352)
32+
- Update fly.io example to remove deprecated parameters (#8194)
33+
34+
Compare: [`v0.25.0...0.26.0`](https://github.com/coder/coder/compare/v0.25.0...v0.26.0)
35+
36+
## Container image
37+
38+
- `docker pull ghcr.io/coder/coder:v0.26.0`
39+
40+
## Install/upgrade
41+
42+
Refer to our docs to [install](https://coder.com/docs/v2/latest/install) or [upgrade](https://coder.com/docs/v2/latest/admin/upgrade) Coder, or use a release asset below.

docs/changelogs/v0.26.1.md

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
## Changelog
2+
3+
### Features
4+
5+
- [Devcontainer templates](https://coder.com/docs/v2/latest/templates/devcontainers) for Coder (#8256)
6+
- The dashboard will warn users when a workspace is unhealthy (#8422)
7+
- Audit logs `resource_target` search query allows you to search by resource name (#8423)
8+
9+
### Refactors
10+
11+
- [pgCoordinator](https://github.com/coder/coder/pull/8044) is generally available (#8419)
12+
13+
### Bug fixes
14+
15+
- Git device flow will persist user tokens (#8411)
16+
- Check shell on darwin via dscl (#8366)
17+
- Handle oauth config removed for existing auth (#8420)
18+
- Prevent ExtractAPIKey from dirtying the HTML output (#8450)
19+
- Document workspace filter query param correctly (#8408)
20+
- Use numeric comparison to check monotonicity (#8436)
21+
22+
Compare: [`v0.26.0...v0.26.1`](https://github.com/coder/coder/compare/v0.26.0...v0.26.1)
23+
24+
## Container image
25+
26+
- `docker pull ghcr.io/coder/coder:v0.26.1`
27+
28+
## Install/upgrade
29+
30+
Refer to our docs to [install](https://coder.com/docs/v2/latest/install) or [upgrade](https://coder.com/docs/v2/latest/admin/upgrade) Coder, or use a release asset below.

docs/changelogs/v0.27.0.md

+113
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
## Changelog
2+
3+
### Breaking changes
4+
5+
Agent logs can be pushed after a workspace has started (#8528)
6+
7+
> ⚠️ **Warning:** You will need to [update](https://coder.com/docs/v2/latest/install) your local Coder CLI v0.27 to connect via `coder ssh`.
8+
9+
### Features
10+
11+
- [Empeheral parameters](https://registry.terraform.io/providers/coder/coder/latest/docs/data-sources/parameter#ephemeral) allow users to specify a value for a single build (#8415) (#8524)
12+
![Ephemeral parameters](https://github.com/coder/coder/assets/22407953/89df0888-9abc-453a-ac54-f5d0e221b0b9)
13+
> Upgrade to Coder Terraform Provider v0.11.1 to use ephemeral parameters in your templates
14+
- Create template, if it doesn't exist with `templates push --create` (#8454)
15+
- Workspaces now appear `unhealthy` in the dashboard and CLI if one or more agents do not exist (#8541) (#8548)
16+
![Workspace health](https://github.com/coder/coder/assets/22407953/edbb1d70-61b5-4b45-bfe8-51abdab417cc)
17+
- Reverse port-forward with `coder ssh -R` (#8515)
18+
- Helm: custom command arguments in Helm chart (#8567)
19+
- Template version messages (#8435)
20+
<img width="428" alt="252772262-087f1338-f1e2-49fb-81f2-358070a46484" src="https://github.com/coder/coder/assets/22407953/5f6e5e47-e61b-41f1-92fe-f624e92f8bd3">
21+
- TTL and max TTL validation increased to 30 days (#8258)
22+
- [Self-hosted docs](https://coder.com/docs/v2/latest/install/offline#offline-docs): Host your own copy of Coder's documentation in your own environment (#8527) (#8601)
23+
- Add custom coder bin path for `config-ssh` (#8425)
24+
- Admins can create workspaces for other users via the CLI (#8481)
25+
- `coder_app` supports localhost apps running https (#8585)
26+
- Base container image contains [jq](https://github.com/coder/coder/pull/8563) for parsing mounted JSON secrets
27+
28+
### Bug fixes
29+
30+
- Check agent metadata every second instead of minute (#8614)
31+
- `coder stat` fixes
32+
- Read from alternate cgroup path (#8591)
33+
- Improve detection of container environment (#8643)
34+
- Unskip TestStatCPUCmd/JSON and explicitly set --host in test cmd invocation (#8558)
35+
- Avoid initial license reconfig if feature isn't enabled (#8586)
36+
- Audit log records delete workspace action properly (#8494)
37+
- Audit logs are properly paginated (#8513)
38+
- Fix bottom border on build logs (#8554)
39+
- Don't mark metadata with `interval: 0` as stale (#8627)
40+
- Add some missing workspace updates (#7790)
41+
42+
### Documentation
43+
44+
## Changelog
45+
46+
### Breaking changes
47+
48+
Agent logs can be pushed after a workspace has started (#8528)
49+
50+
> ⚠️ **Warning:** You will need to [update](https://coder.com/docs/v2/latest/install) your local Coder CLI v0.27 to connect via `coder ssh`.
51+
52+
### Features
53+
54+
- [Empeheral parameters](https://registry.terraform.io/providers/coder/coder/latest/docs/data-sources/parameter#ephemeral) allow users to specify a value for a single build (#8415) (#8524)
55+
![Ephemeral parameters](https://github.com/coder/coder/assets/22407953/89df0888-9abc-453a-ac54-f5d0e221b0b9)
56+
> Upgrade to Coder Terraform Provider v0.11.1 to use ephemeral parameters in your templates
57+
- Create template, if it doesn't exist with `templates push --create` (#8454)
58+
- Workspaces now appear `unhealthy` in the dashboard and CLI if one or more agents do not exist (#8541) (#8548)
59+
![Workspace health](https://github.com/coder/coder/assets/22407953/edbb1d70-61b5-4b45-bfe8-51abdab417cc)
60+
- Reverse port-forward with `coder ssh -R` (#8515)
61+
- Helm: custom command arguments in Helm chart (#8567)
62+
- Template version messages (#8435)
63+
<img width="428" alt="252772262-087f1338-f1e2-49fb-81f2-358070a46484" src="https://github.com/coder/coder/assets/22407953/5f6e5e47-e61b-41f1-92fe-f624e92f8bd3">
64+
- TTL and max TTL validation increased to 30 days (#8258)
65+
- [Self-hosted docs](https://coder.com/docs/v2/latest/install/offline#offline-docs): Host your own copy of Coder's documentation in your own environment (#8527) (#8601)
66+
- Add custom coder bin path for `config-ssh` (#8425)
67+
- Admins can create workspaces for other users via the CLI (#8481)
68+
- `coder_app` supports localhost apps running https (#8585)
69+
- Base container image contains [jq](https://github.com/coder/coder/pull/8563) for parsing mounted JSON secrets
70+
71+
### Bug fixes
72+
73+
- Check agent metadata every second instead of minute (#8614)
74+
- `coder stat` fixes
75+
- Read from alternate cgroup path (#8591)
76+
- Improve detection of container environment (#8643)
77+
- Unskip TestStatCPUCmd/JSON and explicitly set --host in test cmd invocation (#8558)
78+
- Avoid initial license reconfig if feature isn't enabled (#8586)
79+
- Audit log records delete workspace action properly (#8494)
80+
- Audit logs are properly paginated (#8513)
81+
- Fix bottom border on build logs (#8554)
82+
- Don't mark metadata with `interval: 0` as stale (#8627)
83+
- Add some missing workspace updates (#7790)
84+
85+
### Documentation
86+
87+
- Custom API use cases (custom agent logs, CI/CD pipelines) (#8445)
88+
- Docs on using remote Docker hosts (#8479)
89+
- Added kubernetes option to workspace proxies (#8533)
90+
91+
Compare: [`v0.26.1...v0.26.2`](https://github.com/coder/coder/compare/v0.26.1...v0.27.0)
92+
93+
## Container image
94+
95+
- `docker pull ghcr.io/coder/coder:v0.26.2`
96+
97+
## Install/upgrade
98+
99+
Refer to our docs to [install](https://coder.com/docs/v2/latest/install) or [upgrade](https://coder.com/docs/v2/latest/admin/upgrade) Coder, or use a release asset below.
100+
101+
- Custom API use cases (custom agent logs, CI/CD pipelines) (#8445)
102+
- Docs on using remote Docker hosts (#8479)
103+
- Added kubernetes option to workspace proxies (#8533)
104+
105+
Compare: [`v0.26.1...v0.26.2`](https://github.com/coder/coder/compare/v0.26.1...v0.27.0)
106+
107+
## Container image
108+
109+
- `docker pull ghcr.io/coder/coder:v0.26.2`
110+
111+
## Install/upgrade
112+
113+
Refer to our docs to [install](https://coder.com/docs/v2/latest/install) or [upgrade](https://coder.com/docs/v2/latest/admin/upgrade) Coder, or use a release asset below.

docs/changelogs/v0.27.1.md

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
## Changelog
2+
3+
### Features
4+
5+
- Check if dotfiles install script is executable (#8588)
6+
7+
### Bug fixes
8+
9+
- Send build parameters over the confirmation dialog on restart (#8660)
10+
11+
### Documentation
12+
13+
- Add steps for postgres SSL cert config (#8648)
14+
15+
Compare: [`v0.27.0...v0.27.1`](https://github.com/coder/coder/compare/v0.27.0...v0.27.1)
16+
17+
## Container image
18+
19+
- `docker pull ghcr.io/coder/coder:v0.27.1`
20+
21+
## Install/upgrade
22+
23+
Refer to our docs to [install](https://coder.com/docs/v2/latest/install) or [upgrade](https://coder.com/docs/v2/latest/admin/upgrade) Coder, or use a release asset below.

docs/changelogs/v0.27.3.md

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# v0.27.3
2+
3+
## Changelog
4+
5+
### Bug fixes
6+
7+
- be2e6f443 fix(enterprise): ensure creating a SCIM user is idempotent (#8730)
8+
9+
Compare: [`v0.27.2...v0.27.3`](https://github.com/coder/coder/compare/v0.27.2...v0.27.3)
10+
11+
## Container image
12+
13+
- `docker pull ghcr.io/coder/coder:v0.27.3`
14+
15+
## Install/upgrade
16+
17+
Refer to our docs to [install](https://coder.com/docs/v2/latest/install) or [upgrade](https://coder.com/docs/v2/latest/admin/upgrade) Coder, or use a release asset below.

scripts/release.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ if ! [[ $continue_release =~ ^[Yy]$ ]]; then
133133
exit 0
134134
fi
135135

136-
release_notes="$(execrelative ./release/generate_release_notes.sh --old-version "$old_version" --new-version "$new_version" --ref "$ref")"
136+
release_notes="$(execrelative ./release/generate_release_notes.sh --check-for-changelog --old-version "$old_version" --new-version "$new_version" --ref "$ref")"
137137

138138
read -p "Preview release notes? (y/n) " -n 1 -r show_reply
139139
log

scripts/release/generate_release_notes.sh

+15-1
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,16 @@ source "$(dirname "$(dirname "${BASH_SOURCE[0]}")")/lib.sh"
1818
old_version=
1919
new_version=
2020
ref=
21+
check_for_changelog=0
2122

22-
args="$(getopt -o '' -l old-version:,new-version:,ref: -- "$@")"
23+
args="$(getopt -o '' -l check-for-changelog,old-version:,new-version:,ref: -- "$@")"
2324
eval set -- "$args"
2425
while true; do
2526
case "$1" in
27+
--check-for-changelog)
28+
check_for_changelog=1
29+
shift
30+
;;
2631
--old-version)
2732
old_version="$2"
2833
shift 2
@@ -61,6 +66,15 @@ if [[ -z $ref ]]; then
6166
error "No ref specified"
6267
fi
6368

69+
# Use a manual changelog, if present
70+
changelog_path="$(git rev-parse --show-toplevel)/docs/changelogs/$new_version.md"
71+
if [ "$check_for_changelog" -eq 1 ]; then
72+
if [ -f "$changelog_path" ]; then
73+
cat "$changelog_path"
74+
exit 0
75+
fi
76+
fi
77+
6478
# shellcheck source=scripts/release/check_commit_metadata.sh
6579
source "$SCRIPT_DIR/check_commit_metadata.sh" "$old_version" "$ref"
6680

scripts/release/tag_version.sh

+7-1
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,13 @@ minor)
118118
version_parts[2]=0
119119
;;
120120
major)
121-
version_parts[0]=$((version_parts[0] + 1))
121+
# Jump from v0.x to v2.x to avoid naming conflicts
122+
# with Coder v1 (https://coder.com/docs/v1)
123+
if [ "${version_parts[0]}" -eq 0 ]; then
124+
version_parts[0]=2
125+
else
126+
version_parts[0]=$((version_parts[0] + 1))
127+
fi
122128
version_parts[1]=0
123129
version_parts[2]=0
124130
;;

0 commit comments

Comments
 (0)