Another option for release versioning proposal by jkwatson · Pull Request #2250 · open-telemetry/opentelemetry-java · GitHub
Skip to content

Another option for release versioning proposal#2250

Merged
bogdandrutu merged 6 commits into
open-telemetry:masterfrom
jkwatson:release_versioning_alpha_beta
Dec 15, 2020
Merged

Another option for release versioning proposal#2250
bogdandrutu merged 6 commits into
open-telemetry:masterfrom
jkwatson:release_versioning_alpha_beta

Conversation

@jkwatson

@jkwatson jkwatson commented Dec 9, 2020

Copy link
Copy Markdown
Contributor

As an alternative approach to #2212

This options adds -alpha to the released versions of immature libraries, rather than adding -experimental to the artifacts.

Another option to fulfill open-telemetry/opentelemetry-specification#1267

Comment thread docs/rationale.md Outdated
@tedsuo

tedsuo commented Dec 9, 2020

Copy link
Copy Markdown

@jkwatson

jkwatson commented Dec 9, 2020

Copy link
Copy Markdown
Contributor Author

👍 I think this is an improvement, provided that package managers don't get confused into thinking that -alpha libraries are not part of the same release as non-alpha libraries.

Java will be fine, especially since we won't include the -alpha libraries in the BOM at all. You'll have to depend on them explicitly and intentionally in order to use them.

@trask

trask commented Dec 9, 2020

Copy link
Copy Markdown
Member

I like this option also. It gives a nice experience / smooth transition for early adopters from alpha/beta -> RC -> GA.

@maxgolov

maxgolov commented Dec 9, 2020

Copy link
Copy Markdown

Although I'm working on C++ SDK, I like this option much better than appending -experimental to package name. Adding -experimental to package name would not scale in Azure environment, and is unnatural for most C++ package managers.

Comment thread docs/rationale.md Outdated
- SDK Stability:
- Public portions of the SDK (constructors, configuration, und-user interfaces) must remain backwards compatible.
- Precisely what this includes has yet to be delineated.
- Internal interfaces are allowed to break.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess this is referring to interfaces in the SDK that have the public modifier but don't fall into the above bucket. While I know Precisely what this includes has yet to be delineated. do you have any example of it? BatchSpanProcessor?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I copied this out of Ted's otep...I think it just means non-public "internals" of the SDK. It might not be a valuable thing to call out.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok - yeah it might be worth calling out but it applies to both API and SDK so weird for me to see it here, which I guess is my comment on the OTEP too so just repeating the feedback it seems :)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated

@anuraaga anuraaga left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doc mostly LGTM, thanks

Comment thread docs/rationale.md Outdated
Comment thread docs/rationale.md Outdated
- Once the API for a given signal (spans, logs, metrics, baggage) has been officially released, code instrumented with that API module will
function, *with no recompilation required*, with any API+SDK that has the same major version, and equal or greater minor or patch version.
- For example, libraries that are instrumented with `opentelemetry-api-trace:1.0.1` will function, at runtime with
SDK library `opentelemetry-sdk-trace:1.11.33` plus `opentelemetry-api-trace:1.11.33`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But we planned to version SDK independently from API, right?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this depended on how hard we go on preserving SDK compatibility. The more precise statement is indeed probably the use of the BOM for the latest version rather than mentioning them explicitly.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can update to refer to the BOM. Whether we actually end up versioning the SDK independently from the API remains to be seen (I sure hope we don't have to).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Co-authored-by: Nikita Salnikov-Tarnovski <gnikem@gmail.com>
@codecov

codecov Bot commented Dec 10, 2020

Copy link
Copy Markdown

Codecov Report

Merging #2250 (14d3035) into master (681579c) will increase coverage by 87.42%.
The diff coverage is n/a.

Impacted file tree graph

@@              Coverage Diff              @@
##             master    #2250       +/-   ##
=============================================
+ Coverage          0   87.42%   +87.42%     
- Complexity        0     2301     +2301     
=============================================
  Files             0      255      +255     
  Lines             0     8265     +8265     
  Branches          0      899      +899     
=============================================
+ Hits              0     7226     +7226     
- Misses            0      718      +718     
- Partials          0      321      +321     
Impacted Files Coverage Δ Complexity Δ
.../opentelemetry/context/ContextExecutorService.java 100.00% <0.00%> (ø) 18.00% <0.00%> (?%)
.../sdk/extension/aws/resource/BeanstalkResource.java 91.17% <0.00%> (ø) 10.00% <0.00%> (?%)
.../io/opentelemetry/sdk/trace/NoopSpanProcessor.java 100.00% <0.00%> (ø) 6.00% <0.00%> (?%)
...etry/sdk/metrics/aggregator/LongSumAggregator.java 100.00% <0.00%> (ø) 6.00% <0.00%> (?%)
...opagation/B3PropagatorInjectorMultipleHeaders.java 100.00% <0.00%> (ø) 5.00% <0.00%> (?%)
...xtension/incubator/trace/data/SpanDataBuilder.java 62.00% <0.00%> (ø) 7.00% <0.00%> (?%)
...metry/api/common/ArrayBackedAttributesBuilder.java 97.14% <0.00%> (ø) 26.00% <0.00%> (?%)
...ry/context/propagation/MultiTextMapPropagator.java 100.00% <0.00%> (ø) 8.00% <0.00%> (?%)
...entelemetry/exporter/prometheus/MetricAdapter.java 93.10% <0.00%> (ø) 15.00% <0.00%> (?%)
...n/java/io/opentelemetry/api/trace/SpanContext.java 77.77% <0.00%> (ø) 9.00% <0.00%> (?%)
... and 245 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 681579c...14d3035. Read the comment docs.

@jkwatson jkwatson marked this pull request as ready for review December 11, 2020 19:27
@jkwatson

Copy link
Copy Markdown
Contributor Author

@bogdandrutu bogdandrutu merged commit eccbfeb into open-telemetry:master Dec 15, 2020
@jkwatson jkwatson deleted the release_versioning_alpha_beta branch December 16, 2020 00:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants