documentation icon indicating copy to clipboard operation
documentation copied to clipboard

[Feature Request] Document SDK versioning scheme

Open bergundy opened this issue 4 years ago • 4 comments

As discussed on slack with @mfateev and @Spikhalskiy we'd like to apply a semver incompatible versioning scheme for SDKs. Temporal SDKs can break compatibility in either public APIs or history incompatibility. We'd like to reserve major version changes to history incompatible changes, that is, if you deploy this new version your running workflows could stop running and you'll run into determinism errors. We'll use the minor for API breaking changes and patch for new features and bugfixes.

bergundy avatar Oct 25 '21 15:10 bergundy

“We’ll use the minor for API breaking changes and patch for new features and bugfixes.” I don’t think we agreed on this part.

We use minor for new features, bugfixes and minor incompatible API changes that lead to compilation errors. Patch versions are for patches/hotfixes.

So, the only difference with semver that we allow minor versions to carry SOME (relatively minor and trivial) API incompatibilities, like change of parameter types or removing a method that clearly was added by mistake or bad design. Which should be done with consideration and only if we are really fixing some problem or mistake by this change. Or if the change is happening in a new unstable evolving functionality.

Big API changes when we revisit and break a good chunk of our most used methods should go into a major release.

Spikhalskiy avatar Oct 25 '21 15:10 Spikhalskiy

Big API changes when we revisit and break a good chunk of our most used methods should go into a major release.

👍

We use minor for new features, bugfixes and minor incompatible API changes that lead to compilation errors.

👍

Patch versions are for patches/hotfixes, why not for features too? Then we can use minor to denote that it's a breaking change.

bergundy avatar Oct 25 '21 15:10 bergundy

@bergundy is there a concrete ask of the docs team on this yet? Have you all decided on what the version schema is for each SDK?

flossypurse avatar Jan 28 '22 21:01 flossypurse

We'll come up with an accurate description of the schema and update. We haven't really gotten back to this discussion since October.

bergundy avatar Apr 12 '22 21:04 bergundy

@bergundy What's the current status of this?

axfelix avatar Oct 11 '23 20:10 axfelix

We could probably link more to these Github changelogs, I think they're the source of truth on this right now: https://github.com/temporalio/sdk-go/releases

These are linked from https://docs.temporal.io/dev-guide/java/introduction#updates, but hard to find.

axfelix avatar Oct 11 '23 20:10 axfelix

We've had some internal discussions solidifying our scheme but have not had the time to come up with a document yet.

bergundy avatar Oct 20 '23 17:10 bergundy