Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update readme to reflect new artifact strategy #53

Merged
merged 1 commit into from
Mar 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 8 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
# OpenTelemetry Semantic Conventions for Java
[![Continuous Build][ci-image]][ci-url]
[![Maven Central][maven-image]][maven-url]

Java code-generation for the [OpenTelemetry Semantic Conventions](https://github.com/open-telemetry/semantic-conventions).

## Published released

Published releases are available on maven central. Replace `{{version}}` with the latest released version:

[![Maven Central][maven-image]][maven-url]
| Artifact `{group}:{artifcatId}:{version}` | Latest Version | Description |
|-------------------------------------------------------------------------|----------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `io.opentelemetry.semconv:opentelemetry-semconv:{{version}}` | [![Maven Central][maven-image-stable]][maven-url-stable] | Generated code for stable semantic conventions.</br>**NOTE:** Although this is for stable semantic conventions, the artifact still has the [-alpha][versioning] and comes with no compatibility guarantees. The goal is to mark this artifact stable. |
| `io.opentelemetry.semconv:opentelemetry-semconv-incubating:{{version}}` | TODO: add badge after first publish | Generated code for experimental semantic conventions.</br>**NOTE:** This artifact has the [-alpha][versioning] and comes with no compatibility guarantees. Libraries can use this for testing, but should make copies of the attributes to avoid possible runtime errors from version conflicts. |


### Maven

Expand Down Expand Up @@ -67,23 +70,6 @@ of [open-telemetry/semantic-conventions](https://github.com/open-telemetry/seman
defined in the `semanticConventionsVersion` variable of [build.gradle.kts](./build.gradle.kts) and
generate semantic conventions classes from the release contents.

TODO: Update the following paragraph with new strategy for managing compatibility

This repository publishes `-alpha` artifacts and as discussed
in [opentelemetry-java/VERSIONING.md](https://github.com/open-telemetry/opentelemetry-java/blob/main/VERSIONING.md),
we make no compatibility guarantees. However, by convention we've been keeping attribute constants
around with `@Deprecated` annotation while we work towards formalizing the strategy (
see [#6](https://github.com/open-telemetry/semantic-conventions-java/issues/6)). The process for
retaining removed attributes is to carefully add entries to
the [SemanticAttributes.java.j2](./buildscripts/templates/SemanticAttributes.java.j2) template. This
is meticulous and error prone, hence the desire to fix it. To ensure we don't accidentally delete
any constants while we work our a permanent
strategy, [japicmp](./buildSrc/src/main/kotlin/otel.japicmp-conventions.gradle.kts) has been added
as a build check. It will ensure that only binary / source compatible changes are made. **NOTE: this
checking of binary / source compatibility is not required and will change in the future.**

To check compatibility, run `./gradlew build` after updating the template and running the generation task as documented above.

## Contributing

Before you start - see OpenTelemetry
Expand All @@ -101,7 +87,8 @@ for code owners.

[ci-image]: https://github.com/open-telemetry/semantic-conventions-java/workflows/Build/badge.svg
[ci-url]: https://github.com/open-telemetry/semantic-conventions-java/actions?query=workflow%3Abuild+branch%3Amain
[maven-image]: https://maven-badges.herokuapp.com/maven-central/io.opentelemetry.semconv/opentelemetry-semconv/badge.svg
[maven-url]: https://maven-badges.herokuapp.com/maven-central/io.opentelemetry.semconv/opentelemetry-semconv
[maven-image-stable]: https://maven-badges.herokuapp.com/maven-central/io.opentelemetry.semconv/opentelemetry-semconv/badge.svg
[maven-url-stable]: https://maven-badges.herokuapp.com/maven-central/io.opentelemetry.semconv/opentelemetry-semconv
[versioning]: https://github.com/open-telemetry/opentelemetry-java/blob/main/VERSIONING.md

TODO(jack-berg): add code coverage badge?
1 change: 0 additions & 1 deletion semconv-incubating/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
plugins {
id("otel.java-conventions")
id("otel.publish-conventions")
id("otel.japicmp-conventions")

id("otel.animalsniffer-conventions")
}
Expand Down
2 changes: 1 addition & 1 deletion semconv/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
plugins {
id("otel.java-conventions")
id("otel.publish-conventions")
// TODO: re-enable japicmp when done with breaking changes
// TODO: re-enable japicmp when artifact is stable
// id("otel.japicmp-conventions")

id("otel.animalsniffer-conventions")
Expand Down
Loading