diff --git a/develop-docs/sdk/processes/basics.mdx b/develop-docs/sdk/processes/basics.mdx index 11a94af4aeea5..4e20a771538c7 100644 --- a/develop-docs/sdk/processes/basics.mdx +++ b/develop-docs/sdk/processes/basics.mdx @@ -4,6 +4,10 @@ description: So you want to develop an SDK? Before you get started here are som sidebar_order: 1 --- + + This document uses key words such as "MUST", "SHOULD", and "MAY" as defined in [RFC 2119](https://www.ietf.org/rfc/rfc2119.txt) to indicate requirement levels. + + ## Run a Local Relay You do not need a local Sentry for SDK development but you will want to run a local @@ -39,9 +43,18 @@ a good idea to refer to already existing Sentry SDKs for input. In particular t transport design is not part of the documentation but generally quite similar between SDKs. -## Type out context in Relay +## Define Conventions and Types Before Shipping + +Before shipping new or changed SDK behavior, make sure the relevant definitions exist outside your SDK first: + +- **Semantic conventions:** New or changed attributes **MUST** first be defined in [sentry-conventions](https://github.com/getsentry/sentry-conventions/). If the convention you need doesn't exist yet, open a PR there to propose it. Only after the convention has been merged should you implement it in an SDK. This ensures all SDKs use consistent naming and semantics. + + The merge process for sentry-conventions PRs: + 1. Open a PR with the proposed convention. + 2. Get an approval from at least one code owner. + 3. Wait at least 3 business days after the first approval to give other code owners a chance to review. -To have a better understanding of various [context](https://develop.sentry.dev/sdk/data-model/event-payloads/contexts/) our SDKs emit, any newly added context should also be typed out in [Relay](https://github.com/getsentry/relay/tree/master/relay-event-schema/src/protocol/contexts). +- **Context types:** Any newly added [context](https://develop.sentry.dev/sdk/data-model/event-payloads/contexts/) **SHOULD** also be typed out in [Relay](https://github.com/getsentry/relay/tree/master/relay-event-schema/src/protocol/contexts) so that the schema stays in sync with what SDKs emit. ## Join us on Discord