Skip to content

Commit 7b96c56

Browse files
authored
Update release instructions (#2654)
* Add components section when generating changelog * Update release instructions * Add updating the Helm Chart to the release guide * fixup! Update release instructions
1 parent 9bdde35 commit 7b96c56

File tree

2 files changed

+36
-15
lines changed

2 files changed

+36
-15
lines changed

Makefile

+17-1
Original file line numberDiff line numberDiff line change
@@ -488,9 +488,25 @@ chlog-preview: chlog-install
488488
$(CHLOGGEN) update --dry
489489

490490
.PHONY: chlog-update
491-
chlog-update: chlog-install
491+
chlog-update: chlog-install chlog-insert-components
492492
$(CHLOGGEN) update --version $(VERSION)
493493

494+
.PHONY: chlog-insert-components
495+
chlog-insert-components:
496+
@echo "### Components" > components.md
497+
@echo "" >>components.md
498+
@echo "* [OpenTelemetry Collector - v${OTELCOL_VERSION}](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v${OTELCOL_VERSION})" >>components.md
499+
@echo "* [OpenTelemetry Contrib - v${OTELCOL_VERSION}](https://github.com/open-telemetry/opentelemetry-collector-contrib/releases/tag/v${OTELCOL_VERSION})" >>components.md
500+
@echo "* [Java auto-instrumentation - ${AUTO_INSTRUMENTATION_JAVA_VERSION}](https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/tag/v${AUTO_INSTRUMENTATION_JAVA_VERSION})" >>components.md
501+
@echo "* [.NET auto-instrumentation - ${AUTO_INSTRUMENTATION_DOTNET_VERSION}](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/tag/${AUTO_INSTRUMENTATION_DOTNET_VERSION})" >>components.md
502+
@echo "* [Node.JS - ${AUTO_INSTRUMENTATION_NODEJS_VERSION}](https://github.com/open-telemetry/opentelemetry-js-contrib/releases/tag/auto-instrumentations-node-${AUTO_INSTRUMENTATION_NODEJS_VERSION})" >>components.md
503+
@echo "* [Python - ${AUTO_INSTRUMENTATION_PYTHON_VERSION}](https://github.com/open-telemetry/opentelemetry-python-contrib/releases/tag/${AUTO_INSTRUMENTATION_PYTHON_VERSION})" >>components.md
504+
@echo "* [Go - v${AUTO_INSTRUMENTATION_GO_VERSION}](https://github.com/open-telemetry/opentelemetry-go-instrumentation/releases/tag/v${AUTO_INSTRUMENTATION_GO_VERSION})" >>components.md
505+
@echo "* [ApacheHTTPD - ${AUTO_INSTRUMENTATION_APACHE_HTTPD_VERSION}](https://github.com/open-telemetry/opentelemetry-cpp-contrib/releases/tag/webserver%2Fv${AUTO_INSTRUMENTATION_APACHE_HTTPD_VERSION})" >>components.md
506+
@echo "* [Nginx - ${AUTO_INSTRUMENTATION_NGINX_VERSION}](https://github.com/open-telemetry/opentelemetry-cpp-contrib/releases/tag/webserver%2Fv${AUTO_INSTRUMENTATION_NGINX_VERSION})" >>components.md
507+
@sed -i '/<!-- next version -->/rcomponents.md' CHANGELOG.md
508+
@sed -i '/<!-- next version -->/G' CHANGELOG.md
509+
@rm components.md
494510

495511
.PHONY: opm
496512
OPM = ./bin/opm

RELEASE.md

+19-14
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,32 @@
22

33
Steps to release a new version of the OpenTelemetry Operator:
44

5-
1. Change the `versions.txt`, so that it lists the target version of the OpenTelemetry Collector (operand), and the desired version for the target allocator and the operator. The `major.minor` should typically match, with the patch portion being possibly different.
6-
2. Change the `autoinstrumentation-*` versions in `versions.txt` as per the latest supported versions in `autoinstrumentation/`.
7-
- :warning: DO NOT BUMP JAVA PAST `1.32.X` AND DO NOT BUMP .NET PAST `1.2.0`. :warning: Upgrades past these versions will introduce breaking HTTP semantic convention changes.
5+
1. Set the version you're releasing as an environment variable for convenience: `export VERSION=0.n+1.0`
6+
2. Update `versions.txt`
7+
- Operator, target allocator and opamp-bridge should be `$VERSION`.
8+
- OpenTelemetry Collector should be the latest collector version. The `major.minor` should typically match, with the patch portion being possibly different.
9+
- The `autoinstrumentation-*` versions should match the latest supported versions in `autoinstrumentation/`.
10+
> [!WARNING]
11+
> DO NOT BUMP JAVA PAST `1.32.X` AND DO NOT BUMP .NET PAST `1.2.0`. Upgrades past these versions will introduce breaking HTTP semantic convention changes.
812
3. Check if the compatible OpenShift versions are updated in the `hack/add-openshift-annotations.sh` script.
9-
4. Run `make bundle DOCKER_USER=open-telemetry VERSION=0.38.0`, using the version that will be released.
10-
5. Change the compatibility matrix in the [readme](./README.md) file, using the OpenTelemetry Operator version to be released and the current latest Kubernetes version as the latest supported version. Remove the oldest entry.
11-
6. Add the changes to the changelog. Manually add versions of all operator components.
12-
7. Check the OpenTelemetry Collector's changelog and ensure migration steps are present in `pkg/collector/upgrade`
13-
8. Once the changes above are merged and available in `main`, tag it with the desired version, prefixed with `v`: `v0.38.0`
14-
9. The GitHub Workflow will take it from here, creating a GitHub release with the generated artifacts (manifests) and publishing the images
15-
10. The GitHub Workflow, submits two pull requests to the Operator hub repositories. Make sure the pull requests are approved and merged.
16-
1. `community-operators-prod` is used by OLM on OpenShift. Example: [`operator-framework/community-operators-prod`](https://github.com/redhat-openshift-ecosystem/community-operators-prod/pull/494)
17-
1. `community-operators` is used by Operatorhub.io. Example: [`operator-framework/community-operators`](https://github.com/k8s-operatorhub/community-operators/pull/461)
18-
11. Update release schedule table, by moving the current release manager to the end of the table with updated release version.
13+
3. Update the bundle by running `make bundle VERSION=$VERSION`.
14+
3. Change the compatibility matrix in the [readme](./README.md) file, using the OpenTelemetry Operator version to be released and the current latest Kubernetes version as the latest supported version. Remove the oldest entry.
15+
3. Update release schedule table, by moving the current release manager to the end of the table with updated release version.
16+
3. Add the changes to the changelog by running `make chlog-update VERSION=$VERSION`.
17+
3. Check the OpenTelemetry Collector's changelog and ensure migration steps are present in `pkg/collector/upgrade`
18+
3. Once the changes above are merged and available in `main`, one of the maintainers will tag the release.
19+
3. The GitHub Workflow will take it from here, creating a GitHub release with the generated artifacts (manifests) and publishing the images.
20+
3. Update the operator version in the Helm Chart, as per the [release guide](https://github.com/open-telemetry/opentelemetry-helm-charts/blob/main/charts/opentelemetry-operator/CONTRIBUTING.md)
21+
3. The GitHub Workflow, submits two pull requests to the Operator hub repositories. Make sure the pull requests are approved and merged.
22+
- `community-operators-prod` is used by OLM on OpenShift. Example: [`operator-framework/community-operators-prod`](https://github.com/redhat-openshift-ecosystem/community-operators-prod/pull/494)
23+
- `community-operators` is used by Operatorhub.io. Example: [`operator-framework/community-operators`](https://github.com/k8s-operatorhub/community-operators/pull/461)
1924

2025
## Generating the changelog
2126

2227
We now use the chloggen to generate the changelog, simply run the following to generate the Changelog:
2328

2429
```bash
25-
make chlog-update
30+
make chlog-update VERSION=$VERSION
2631
```
2732

2833
This will delete all entries (other than the template) in the `.chloggen` directory and create a populated Changelog.md entry. Make sure that the PR you are generating for the release has the `[chore]` prefix, otherwise CI will not pass.

0 commit comments

Comments
 (0)