Move SDKs out of the monorepo into separate repositories #3051
Replies: 3 comments 8 replies
Vote for your preferred repo naming convention!👍 = Option A — prefixed product name
🚀 = Option B — short
👀 = Option C — sdk suffixed
❤️ = Option D — sdks suffixed
🎉 = Option E — developer-resources suffixed
React to this comment to cast your vote. |
|
Among the several valid reasons mentioned in the proposal, the dependency between product releases and SDK releases and vice versa is a real issue that makes life harder for users. Keeping SDK changes aligned with product changes is definitely an advantage, but I believe we can still maintain that relationship with a bit of additional coordination and effort, even if we move forward with separate repo. While I’m aligned with this proposal, I also think we should aim to minimize the number of SDKs we create and group related SDKs whenever possible. Otherwise, maintaining all of them will become a significant overhead, and over time we will likely end up with outdated repos. For each new SDK, once it becomes mature enough for adoption, we should evaluate whether it truly requires its own repo or whether it can be expanded and accommodated within an existing SDK repo. |
|
There are two proposals,
We need to focus on getting on an agreement on the first proposal, before going into the second. With that, ill be focusing on the first proposal here onwards. @brionmario could you explain the following point bit further?
The offline chat we have yesterday, you said there is a blocker to get the iOS SDKs released with the mono repo approach. Is it the above point or is it something else? Basically, what i'm trying to evaluate, whether there are any blockers when operating in either of these modes. If there are blockers we need to consider them first. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Background
Currently, all SDKs live inside the ThunderID monorepo alongside the core product. This setup is creating friction as the project matures:
Trade-offs
Keeping SDKs in the monorepo
✅ Pros
❌ Cons
sdk/ios/v1.2.0alongsidev2.5.0).../ios) in development, but must be patched to a published GitHub Release URL at release time — creating a two-phase publish process that is error-prone and hard to test end-to-end before tagging.Moving SDKs to separate repositories
✅ Pros
❌ Cons
Proposal
Ecosystem-based repositories
Extract each SDK into its own repository, grouped by ecosystem:
ios,swiftuiandroid,composeflutterEach repo gets independent versioning, changelogs, CI/CD pipelines, and GitHub Releases — fully decoupled from the product release cycle.
Open questions
Naming convention
Two options on the table:
Option A — Prefixed (
thunderid-<ecosystem>)thunderid-iosthunderid-androidthunderid-flutterthunderid-javascript✅ Pros: clear branding, works well if the org hosts non-ThunderID repos in the future.
❌ Cons: slightly more typing, longer repo URLs.
Option B — Short (
<ecosystem>)iosandroidflutterjavascript✅ Pros: clean and minimal.
❌ Cons: less explicit branding; could clash if the org ever hosts other projects.
To Discuss
All reactions