sdk-csharp icon indicating copy to clipboard operation
sdk-csharp copied to clipboard

Potentially create separate extension packages

Open jskeet opened this issue 2 years ago • 0 comments

Extensions are inherently somewhat-unstable, as we've seen with distributed tracing and sequence. That makes it hard to provide a stable API.

Proposal:

  • Make the existing extensions obsolete (with useful messages)
  • Publish separate packages of extensions, where each extension has its own package and independent version number
  • Modify build processes appropriately to not release extensions with the main library, and allow independent releases
  • Modify documentation accordingly

That way we can create a new major version for each extension when it takes a breaking change. (Hopefully rarely on a per-extension basis...)

Wrinkle: if we have a new major version of the main libraries, what do we do for extensions? If someone wants to use "main library v2" but an extension which takes a breaking change after "main library v3" has been released, how do we handle that? Should we put the main library version within the extension package name, so we can have multiple versions? It's all a bit hairy.

cc @JoshLove-msft, @iampluque for comment.

jskeet avatar Aug 17 '22 09:08 jskeet