Skip to content

Commit 1f41aa1

Browse files
authored
docs: add individual release instructions (#902)
* docs: add single component release instructions * fix: headers level * docs: clarify repo-wide release tag
1 parent 3072580 commit 1f41aa1

File tree

2 files changed

+36
-12
lines changed

2 files changed

+36
-12
lines changed

β€ŽREADME.mdβ€Ž

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
OpenTelemetry Collector Components is a collection of components of the [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) that were created at [Elastic](https://www.elastic.co/).
44

5+
For details on how to release individual or all components, see the [release documentation](./docs/release.md).
6+
57
## Code of Conduct
68

79
See [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md).
@@ -14,24 +16,24 @@ This software is licensed under the [Apache 2 license](LICENSE).
1416

1517
In order to build a collector with a custom component, e.g. for testing purposes, follow these steps:
1618
1. Edit the [manifest.yaml](distributions/elastic-components/manifest.yaml) file:
17-
- Add the component you want to test to the proper component section. For example, if you are testing a processor, add it to the
19+
- Add the component you want to test to the proper component section. For example, if you are testing a processor, add it to the
1820
`processors` section.
19-
- If you are testing a non-published version of the component, add an entry to the `replace` section, pointing to the local path of
21+
- If you are testing a non-published version of the component, add an entry to the `replace` section, pointing to the local path of
2022
the component's source.
21-
2. Build the collector through the `genelasticcol` target of the root [Makefile](Makefile).
23+
2. Build the collector through the `genelasticcol` target of the root [Makefile](Makefile).
2224
Make sure to provide `TARGET_GOOS` and/or `TARGET_GOARCH` environment variables if you are building for a different platform.
23-
For example, when building on macOS in order to run through the Linux Docker image that is built by the `builddocker` make target
25+
For example, when building on macOS in order to run through the Linux Docker image that is built by the `builddocker` make target
2426
(see next bullet) - use the following command:
2527
```shell
2628
TARGET_GOOS=linux CGO_ENABLED=0 make genelasticcol
2729
```
2830
The resulting binary will be placed in the `_build` directory.
29-
3. In order to build a Docker image with the collector, run the `builddocker` target of the root [Makefile](Makefile).
31+
3. In order to build a Docker image with the collector, run the `builddocker` target of the root [Makefile](Makefile).
3032
This target requires the environment variable `TAG` to be set. The resulting image will be tagged as `elastic-collector-components:<TAG>`.
3133
You may also specify the `USERNAME` environment variable to name the image as `<USERNAME>/elastic-collector-components:<TAG>`. For example:
3234
```shell
3335
make builddocker TAG=v0.1.0 USERNAME=johndoe
34-
```
36+
```
3537

3638
## Load generator
3739

β€Ždocs/release.mdβ€Ž

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,26 @@
11
# Releasing opentelemetry-collector-components
22

3-
## Optional steps
3+
## Single component
4+
5+
Single components should only be released independently when there is a bug fix or new feature that needs to be shipped for that specific component, without waiting for a full repository release.
6+
7+
To release a single component:
8+
9+
1. Identify the component path β€” for example: `processor/ratelimitprocessor`
10+
2. Check the latest released tag for that component (e.g. `processor/ratelimitprocessor/v0.1.0`).
11+
3. Decide the next version:
12+
- Use a patch version bump for bug fixes (v0.1.1 β†’ v0.1.2).
13+
- Use a minor version bump for new features (v0.1.1 β†’ v0.2.0).
14+
4. Create a new tag following the Go module path naming convention, either:
15+
- Via GitHub UI: Go to Releases β†’ Draft a new release, select or create the new tag (e.g. `processor/ratelimit/v0.2.0`), and publish it.
16+
- Via Git CLI
17+
18+
## All repository components
19+
20+
All components in the repository can be released together as part of a coordinated release.
21+
The process for releasing all components is described in the section below.
22+
23+
### (Optional) Updating upstream OTel dependencies
424

525
Normally the following steps are not required for releasing the components. The update of otel based on upstream
626
is automated and should not be performed manually unless there are specific reasons for this.
@@ -19,13 +39,15 @@ is automated and should not be performed manually unless there are specific reas
1939
- Open the PR
2040
πŸ›‘ **Do not move forward until this PR is merged.** πŸ›‘
2141

22-
## Create the new tags
42+
### Create the new tags
2343

24-
2. Bump up the `module-sets.edit-base.version` in `versions.yaml` i.e. from `v0.20.0` to `v0.21.0`
44+
2. Decide the next version:
45+
- πŸ›‘ **Cross-check the [repository tags](https://github.com/elastic/opentelemetry-collector-components/tags) against the modules defined in [versions.yaml](../versions.yaml). Identify the highest version number currently in use.** πŸ›‘
46+
- The next version should be a **minor update** of the highest existing tag (i.e. processor/ratelimitprocessor/v0.20.1 β†’ v0.21.0).
2547

26-
πŸ›‘ **Cross check latest version used by [EDOT](https://github.com/elastic/elastic-agent/blob/main/internal/pkg/otel/README.md?plain=1#L30) and https://github.com/elastic/opentelemetry-collector-components/tags** πŸ›‘
48+
3. Bump up the `module-sets.edit-base.version` in `versions.yaml` i.e. from `v0.20.0` to `v0.21.0`
2749

28-
3. Tag the module groups with the new release version by running:
50+
4. Tag the module groups with the new release version by running:
2951

3052
⚠️ If you set your remote using `https`, you need to
3153
include `REMOTE=https://github.com/elastic/opentelemetry-collector-components.git` in each command. ⚠️
@@ -48,5 +70,5 @@ is automated and should not be performed manually unless there are specific reas
4870
make push-tags
4971
```
5072

51-
4. Last step is to commit the change of `module-sets.edit-base.version` in `versions.yaml` and push it so as to store
73+
5. Last step is to commit the change of `module-sets.edit-base.version` in `versions.yaml` and push it so as to store
5274
the new latest version.

0 commit comments

Comments
Β (0)