mistercrunch commented on issue #33441:
URL: https://github.com/apache/superset/issues/33441#issuecomment-2895806117
Did a quick review of how other extensible platforms structure this kind of
thing:
### How it's handled in other ecosystems:
- **iOS (Apple frameworks):**
- Tons of shared internal APIs and components, but only a curated set is
made public.
- SDKs are self-contained. Public APIs are documented, versioned, and
stable.
- Internal code evolves freely without exposing churn to SDK users.
- **Android (Jetpack/AOSP):**
- Separates `*.internal` packages from public APIs.
- Public surface is curated and follows strict API review processes.
- Individual SDKs/libraries are self-contained and versioned independently.
- **VS Code (extension platform):**
- Core uses shared primitives internally, but only exposes a controlled
API via the `vscode` module.
- Extensions rely only on that documented interface — no access to
internals.
- Public API surface is semver-managed and backward compatible.
### Takeaway:
> Internal reuse is common. Public exposure is deliberate and minimal.
> Each SDK should curate its own public API, and shared primitives should
remain internal unless there's a strong reason to promote them.
This strengthens the case that **shared ≠ public**, and that **SDKs should
act as intentional gatekeepers**, just like in mature platforms.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]