You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+8-6Lines changed: 8 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,8 @@
2
2
3
3
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/).
4
4
5
+
For details on how to release individual or all components, see the [release documentation](./docs/release.md).
6
+
5
7
## Code of Conduct
6
8
7
9
See [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md).
@@ -14,24 +16,24 @@ This software is licensed under the [Apache 2 license](LICENSE).
14
16
15
17
In order to build a collector with a custom component, e.g. for testing purposes, follow these steps:
16
18
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
18
20
`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
20
22
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).
22
24
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
24
26
(see next bullet) - use the following command:
25
27
```shell
26
28
TARGET_GOOS=linux CGO_ENABLED=0 make genelasticcol
27
29
```
28
30
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).
30
32
This target requires the environment variable `TAG` to be set. The resulting image will be tagged as `elastic-collector-components:<TAG>`.
31
33
You may also specify the `USERNAME` environment variable to name the image as `<USERNAME>/elastic-collector-components:<TAG>`. For example:
Copy file name to clipboardExpand all lines: docs/release.md
+28-6Lines changed: 28 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,26 @@
1
1
# Releasing opentelemetry-collector-components
2
2
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.
Normally the following steps are not required for releasing the components. The update of otel based on upstream
6
26
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
19
39
- Open the PR
20
40
π **Do not move forward until this PR is merged.** π
21
41
22
-
## Create the new tags
42
+
###Create the new tags
23
43
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).
25
47
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`
27
49
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:
29
51
30
52
β οΈ If you set your remote using `https`, you need to
31
53
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
48
70
make push-tags
49
71
```
50
72
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
0 commit comments