-
If there are no restrictions from technology side, there are two main competing approaches to versioning with upstream:
Both have advantages and disadvantages.
Before we set this in the spec, I'd like to hear from the rest of the team. |
Beta Was this translation helpful? Give feedback.
Replies: 8 comments 12 replies
-
It is impossible to denote a breaking change in Splunk distribution when using this approach. Bumping anything in the suffix will not tell package managers that they should not auto-upgrade the library. On the contrary it'll look like a very minor change to package managers. Also, this may also not be possible for all languages. For example, Python only allows a handful of suffixes to be published to pypi (dev, alpha, beta, etc). As a result, I think this should be a recommendation and be language specific. There are other ways to making this information available to users. Users can look at release notes, dependencies, use |
Beta Was this translation helpful? Give feedback.
-
My first question would be: do we need the same versioning schema for all-in-one distributions such as javaagent and for "manually add this package to your application" such as python/nodeJS. If yes, this kinda mean that we should use something similar to SemVer for our versions. I strongly object against have a version string compound of two semvers, otel and splunk. And this is again impossible in case of instrumentations distributed via package managers. Which in reality leaves only one option on the table: we have our own SemVer versioning and upstream Otel versions is marked in documentation and release notes. |
Beta Was this translation helpful? Give feedback.
-
When picking a solution I have just one ask. Currently the customers get confused on figuring out the mapping between our agent version and the corresponding Otel version (for example splunk-otel-java 0.10.0 includes Otel SDK/API and instrumentations 1.1.0). The I would like this mapping to be an easy task, explicitly transparent from just "looking" at the package and not requiring digging through release notes. I am pretty sure this is not a unique issue - what about all the commercial bundles of other OS software, I would assume someone has chosen an elegant solution here. |
Beta Was this translation helpful? Give feedback.
-
With regards to python as pointed out by @owais - that's exactly what I meant stating "If there are no restrictions from the technology side". IF package manager does not allow format other than own, there is no discussion :) With regards to pros vs cons - I look at this from @ivomagi point of view. I've had a chance to speak directly with customers only a handful of times (usually with Nike) but the case "what is the mapping between Splunk and OTEL" came up very often. Keeping it not in plain sight (== in release notes) will increase customer's pain (friction to adopt and use our stuff). So if we can't have two SemVers, as noted by @iNikem, we're left with only one option (where applicable / allowed by the technology) - upstream SemVer + splunk suffix. |
Beta Was this translation helpful? Give feedback.
-
Also note that for most languages that don't bundle everything up in a single file, it is not even valid to have Otel version as a suffix. This is because our libraries will usually specify a compatible version range for Otel instead of a specific version. For example, Splunk Python lists any version of Otel greater than or equal to So does a fixed suffix even mean anything? |
Beta Was this translation helpful? Give feedback.
-
I see out of the discussion two contradicting point of views:
So to re-iterate the problem, we're talking about versioning a release in a situation when:
With SFX Java agent we did "upstream + suffix". Did we experience any issues with that? I understand that @johnbley can shed some light here. All in all I'd like to progress with the task to document versioning for Splunk OTEL Java, but in a standardised way, hence this discussion ;) |
Beta Was this translation helpful? Give feedback.
-
The versioning scheme is very often technology-specific (that is why I think having it in specs would be very hard and may be not worth the effort). I feel that the version scheme where two versions are provided may not work in any other place than for Java AutoInstr plugin. For sure it is good to reference the "upstream" minimum or required version in the "release notes/changelog" like here: https://github.com/signalfx/splunk-otel-java/releases/tag/v0.10.0 👍 |
Beta Was this translation helpful? Give feedback.
-
Note the most similar project to OTel in terms of size and distribution model is K8s. Eventually OTel will likely look like this: https://kubernetes.io/partners/. One very popular distribution is Rancher: https://github.com/rancher/rancher/releases/tag/v2.4.15. They took the approach of having a rancher-specific semver and adding k8s version in release notes. |
Beta Was this translation helpful? Give feedback.
Note the most similar project to OTel in terms of size and distribution model is K8s. Eventually OTel will likely look like this: https://kubernetes.io/partners/. One very popular distribution is Rancher: https://github.com/rancher/rancher/releases/tag/v2.4.15. They took the approach of having a rancher-specific semver and adding k8s version in release notes.