At first, we thought that the OpenTelemetry project would eventually slow its development pace and become more backward compatible like many Go libraries.
We intentionally waited for this moment to continue otelchi
development. However, we were wrong; instead of slowing down, its evolution is becoming much faster. This makes otelchi
quickly obsolete in the OpenTelemetry ecosystem. ๐
On the other hand, we cannot just make otelchi
comply with the latest version of the OpenTelemetry Go library because we need to set the minimum Go requirement to at least 1.20
, which will make this library inaccessible for many Go versions (1.16 - 1.19
).
Yet, people usually start to implement tracing when their system is already proven to be stable. So changing the minimum Go version of the system to use the latest version of the otelchi
could lead to many unseen (and possibly catastrophic) consequences.
With these constraints in mind, we would like to share the new development strategy for this library:
base otelchi version |
min go version |
semconv version |
otel version |
0.6.0 โ
|
1.15-1.17 |
1.10.0 1.12.0 |
1.7.0 1.10.0 |
0.7.0 |
1.17 |
1.12.0 |
1.10.0 |
0.7.0 โ
|
1.18 |
1.17.0 |
1.14.0 |
0.8.0 โ
|
1.19 |
1.17.0 1.20.0 |
1.19.0 1.24.0 |
0.9.0 |
1.20 |
1.20.0 |
1.24.0 |
So, first, we will develop version 0.6.0
by adjusting the otelchi
implementation with the versions of semconv
and otel
shown in the table. After version 0.6.0
seems stable, we will develop 0.7.0
. This cycle repeats until 0.10.0
.
So what happens if there is a bug in version 0.6.0
? We will patch it and release version 0.6.1
. Then, we will merge this patch into all versions after 0.6.1
whenever applicable.
After these versions are stable enough (no bugs), we will start following the compatibility policy chosen by OpenTelemetry, which is mentioned here.
Update:
March 24, 2024 - 16:05 UTC+7
=> When I was working with #29, I discovered that it is possible to use otel v1.10.0
&
semconv v1.12.0
without setting the go version in go.mod
to go 1.17
. This is why I decided that otelchi v0.6.0
will cover go 1.15-1.17
.
April 29, 2024 - 09:50 UTC+7
=> In #41, @ProtozoaJr found that by setting minimum go version to 1.19
, otelchi
can use otel v1.24.0
& semconv v1.20.0
.