community icon indicating copy to clipboard operation
community copied to clipboard

How to handle explicit deviations to the spec?

Open jpkrohling opened this issue 2 years ago • 9 comments

During the discussion of https://github.com/open-telemetry/oteps/pull/232, a previous version of that proposal stated that language SIGs would only be considered stable once they implemented the stable parts of the API and SDK specs. The dotnet maintainers brought up the point that not everything in the spec makes sense for dotnet, and it shouldn't prevent the dotnet SDK/API from being called stable.

While the dotnet-specific parts are interesting, I think we have a more generic matter to discuss: if a SIG determines that a required part of the spec shouldn't be implemented, should the deliverable still be considered stable? Who should make this call? Should a TC waiver be provided?

jpkrohling avatar Aug 24 '23 15:08 jpkrohling

More context: https://github.com/open-telemetry/oteps/pull/232#pullrequestreview-1477178429

jpkrohling avatar Aug 24 '23 15:08 jpkrohling

My initial inclination would be to have these deviations documented somewhere in this repository, where they will get visibility and implicit sign-off from TC members via PR.

trask avatar Aug 24 '23 15:08 trask

My understanding of this statement is pretty clear, the .NET implementation is not compliant if they do not satisfy all the requirements:

An implementation of the [specification][] is not compliant if it fails to satisfy one or more of the "MUST", "MUST NOT", "REQUIRED", "SHALL", or "SHALL NOT" requirements defined in the [specification][]. Conversely, an implementation of the [specification][] is compliant if it satisfies all the "MUST", "MUST NOT", "REQUIRED", "SHALL", and "SHALL NOT" requirements defined in the [specification][].

If parts of the specification are not applicable or don't make sense for an implementation they need to work with the specification to modify it so they can comply with it. Otherwise, whats the point of having a specification?

MrAlias avatar Aug 24 '23 15:08 MrAlias

I also think that the .NET model of implementing most core things in the Microsoft-owned dotnet/runtime repository does not align well with OpenTelemetry procedures and governance. Instead of declaring it "stable" it is more like "N/A" and despite the name opentelemetry-dotnet is not really an OpenTelemetry implementation but a project that provides functionality very similar to OpenTelemetry for .NET. Definitely similar enough to warrant not re-implementing an OpenTelemetry client library for .NET, but it's not really a full OpenTelemetry either.

Oberon00 avatar Aug 25 '23 12:08 Oberon00

Bringing over my comment from the discussion on OTEP 232:

I think that given the large scope of the specification and SDKs, the specification should come with a set of functional tests covering portions of the specification, against which SDKs can test and declare themselves stable when they pass all tests.

atoulme avatar Sep 15 '23 23:09 atoulme

The GC is going to handle creating a policy around this

austinlparker avatar May 07 '24 20:05 austinlparker

@austinlparker, do you remember if there was movement around this already?

jpkrohling avatar Jul 11 '24 10:07 jpkrohling

@austinlparker, do you remember if there was movement around this already?

I don't think it's made it to an agenda yet.

austinlparker avatar Jul 11 '24 12:07 austinlparker