SpacetimeDB icon indicating copy to clipboard operation
SpacetimeDB copied to clipboard

Release process - Separate SpacetimeDB releases from SDK releases

Open bfops opened this issue 1 year ago • 0 comments

Background

We currently feel compelled to do a monolithic release, where we release + deploy releases across all our repo at nearly the same time.

This is unnecessarily tight coupling. We could instead do a release for SpacetimeDB, then integrate/release those changes into our "downtstream" repos, e.g. our SDKS.

This would prevent some practical issues/smells, e.g. that C# SDK upgrade PRs will fail CI until the upstream SpacetimeDB NuGet packages get released (see https://github.com/clockworklabs/spacetimedb-csharp-sdk/pull/101). In principle, there's no reason we couldn't release the new SpacetimeDB (and corresponding shared NuGet packages) an arbitrarily long time before we release the C# SDK upgrades to 0.11.

This would reduce the "atomic unit" of our release + deploy process, and prevent us from feeling like we need to hold up all of a release just because part of the release has an issue. e.g. there's an issue in the TypeScript SDK, we could just fix + release that later, without holding up anything else. Currently our process forbids this, even though it is not forbidden by the technology.

Definition of Done

(WIP, pls halp)

We have a well-defined release process that distinguishes between the different components we release, the process to release each one, and the required preconditions (e.g. the SDK releases must happen after corresponding SpacetimeDB releases).

bfops avatar Jul 22 '24 17:07 bfops