opentelemetry-java-contrib icon indicating copy to clipboard operation
opentelemetry-java-contrib copied to clipboard

Publish modules with appropriate stability suffix.

Open breedx-splk opened this issue 5 months ago • 9 comments

The topmost README.md contains a list of all of the modules in this repo under "Provided Libraries". This table contains each library name (linked to the module) and a "status" column, which is a stability field (one of alpha, beta, or stable).

~~However, because we publish all modules at the same time with the same version number, they all result in an -alpha suffix. This is confusing because beta modules have an alpha suffix (example), as does the stable one (example).~~

However, modules that don't yet have a otel.stable=true in their gradle.properties file will publish with the -alpha suffix even when they are marked as beta (example). It seems that the stable artifacts do actually have the -alpha suffix omitted.

It would be awesome if we could find a way to declare the stability of each module and publish its artifacts with the appropriate suffix (or none for stable).

(Also related to #2077)

breedx-splk avatar Aug 05 '25 21:08 breedx-splk

as does the stable one (example)

this is component has not been declared as stable (see its gradle.properties)

maybe you're thinking of https://repo1.maven.org/maven2/io/opentelemetry/contrib/opentelemetry-aws-xray/1.48.0?

trask avatar Aug 05 '25 22:08 trask

Oh yes, you're completely right -- I just saw aws and then clicked the wrong one. Ok, so there is a mechanism for removing -alpha for stable stuff. That's awesome. I'll edit the description then now to just address the -beta suffix.

Also, just for clarity, I'm not claiming this isn't a known issue (I see the note in the readme about it), but I didn't see an issue about it.

breedx-splk avatar Aug 05 '25 22:08 breedx-splk

yeah, the core Java repo supports alternative stability levels (-beta / etc), if anyone wants to work on this, I'd suggest porting the implementation over from there

trask avatar Aug 05 '25 23:08 trask

Hey guys, I am looking to contribute to this issue. Based on the issue description can't we handle the -beta tagging by changing the if-else condition here (https://github.com/open-telemetry/opentelemetry-java-contrib/blob/main/version.gradle.kts#L4) to take in beta case as well ?

YagnaNamburi avatar Sep 23 '25 04:09 YagnaNamburi

Hey guys, I am looking to contribute to this issue. Based on the issue description can't we handle the -beta tagging by changing the if-else condition here (https://github.com/open-telemetry/opentelemetry-java-contrib/blob/main/version.gradle.kts#L4) to take in beta case as well ?

Maybe, but right now the otel.stable is just true/false. All true ones drop the -alpha while the otel.stable = false ones include it. There's currently no provision for -beta in published artifacts, in spite of what the README says. It shouldn't be too much work to change this to something more like

  • otel.stable = "stable"
  • otel.stable = "alpha"
  • otel.stable = "beta"

LMK if you'd still like me to assign this to you. Thanks for helping!

breedx-splk avatar Oct 01 '25 16:10 breedx-splk

Yep, that's what I was going for. To change if-else to accommodate beta case. Sure, assign the issue to me and I can make the change.

YagnaNamburi avatar Oct 01 '25 18:10 YagnaNamburi

hi @YagnaNamburi, I've assigned the issue. Please align with the implementation in https://github.com/open-telemetry/opentelemetry-java since it will help us a lot in maintenance to have the same implementation across all of the Java repositories that need this feature.

trask avatar Oct 01 '25 19:10 trask

Got it. Just to clarify the implementation here - https://github.com/open-telemetry/opentelemetry-java checks for explicit versions labels like "beta" in gradle.properties to tag the artifact with that label - "beta" and if no such tagging is present in gradle.properties it is assumed "stable". If I follow the same convention the implementation will involve creating and changing multiple gradle.properties files as most of the modules in opentelemetry-java-contrib case are tagged as "alpha" and few as "beta" and just one is "stable". Is that ok? I just want to confirm this before I create a Pull request with the change.

YagnaNamburi avatar Oct 06 '25 02:10 YagnaNamburi

Got it. Just to clarify the implementation here - https://github.com/open-telemetry/opentelemetry-java checks for explicit versions labels like "beta" in gradle.properties to tag the artifact with that label - "beta" and if no such tagging is present in gradle.properties it is assumed "stable". If I follow the same convention the implementation will involve creating and changing multiple gradle.properties files as most of the modules in opentelemetry-java-contrib case are tagged as "alpha" and few as "beta" and just one is "stable". Is that ok? I just want to confirm this before I create a Pull request with the change.

Yeah that sounds right. Thanks again for the help. 👍🏻

breedx-splk avatar Oct 07 '25 22:10 breedx-splk