Skip to content

Commit 263a39b

Browse files
committed
feat: Add SDK compliance manifest
Document current data-collection specification coverage and require manifest maintenance and review. Refs #8561
1 parent 3725b76 commit 263a39b

6 files changed

Lines changed: 39 additions & 0 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,3 +146,4 @@ agents.lock
146146
# Temporary files created by the API build process
147147
sdk_api_objccompat.json
148148
sdk_api_objccompat_v10.json
149+
.pi-subagents

AGENTS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ See [`scripts/AGENTS.md`](scripts/AGENTS.md) for the named-parameter template an
205205
## Documentation
206206

207207
- **When changing logic, keep docs in sync** — update any affected headerdocs, inline comments, readmes, `AGENTS.md` files, and maintainer docs in the same change
208+
- **Specification compliance** — when changing behavior covered by an SDK specification, update `sentry-spec-compliance.json` and follow [`develop-docs/SPEC_COMPLIANCE.md`](develop-docs/SPEC_COMPLIANCE.md)
208209
- **Docs**: [docs.sentry.io/platforms/apple](https://docs.sentry.io/platforms/apple/) — repo: [sentry-docs](https://github.com/getsentry/sentry-docs)
209210
- **SDK dev docs**: [develop.sentry.dev/sdk/](https://develop.sentry.dev/sdk/)
210211
- Maintainer docs: [`README.md`](README.md), [`CONTRIBUTING.md`](CONTRIBUTING.md), [`develop-docs/`](develop-docs/), [`Samples/README.md`](Samples/README.md)

REVIEWS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ In order of importance:
2424
- **Session Replay** — privacy-sensitive; verify redaction/masking logic
2525
- **Envelope serialization** — correct byte ordering, length prefixes, JSON encoding
2626
- **SentryObjC wrapper** — any new public API must also be exposed in `SentryObjC` / `SentryObjCCompat`; see [`develop-docs/SENTRY-OBJC.md`](develop-docs/SENTRY-OBJC.md) for the wrapper pattern and naming convention
27+
- **Specification compliance** — for changes covered by an SDK specification, verify `sentry-spec-compliance.json` accurately reflects the implementation and follows [`develop-docs/SPEC_COMPLIANCE.md`](develop-docs/SPEC_COMPLIANCE.md)
2728

2829
## Conventions to Enforce
2930

develop-docs/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ This is a collection of documents that can help you develop for the SentrySDK.
1111
- RELEASE.md: our release processes and best practices
1212
- OBJC-LOAD-AND-LINKING.md: how Objective-C +load interacts with build configurations and distribution formats
1313
- SDK_HISTORY.md: historical context and FAQ for the SDK
14+
- SPEC_COMPLIANCE.md: SDK specification compliance manifest maintenance
1415
- [Language Trends Report](https://getsentry.github.io/sentry-cocoa/language-trends.html): interactive chart of the repository's language breakdown over time, updated on every merge to main via GitHub Pages
1516

1617
## GitHub Pages

develop-docs/SPEC_COMPLIANCE.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# SDK Specification Compliance
2+
3+
`sentry-spec-compliance.json` records specification sections implemented by the SDK.
4+
5+
- Update `last_updated` when changing compliance declarations.
6+
- Set each implemented section to the latest specification version its implementation satisfies.
7+
- Use `non_applicable` only when an entire section requires no Cocoa implementation.
8+
- Leave applicable but incomplete sections absent.
9+
- Set the spec-level `version` to the highest fully implemented version. Use `0.0.0` until the first complete version is implemented.
10+
11+
## Proof-of-Concept Limitation
12+
13+
Section-level tracking cannot represent partially applicable sections. For example, a section may combine supported HTTP controls with queue or GenAI categories that Cocoa does not collect. Such a section remains absent until the format supports requirement-level applicability or the specification splits it into smaller sections.

sentry-spec-compliance.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"$schema": "https://develop.sentry.dev/schemas/spec-compliance.json",
3+
"sdk": "sentry-cocoa",
4+
"last_updated": "2026-08-04",
5+
"specs": {
6+
"sdk/foundations/client/data-collection": {
7+
"version": "0.10.0",
8+
"sections": {
9+
"configuration-surface": "0.10.0",
10+
"collection-defaults": "0.10.0",
11+
"sensitive-denylist": "0.10.0",
12+
"integration-overrides": "0.10.0",
13+
"user-set-data-scrubbing": "0.10.0",
14+
"option-types": "0.10.0",
15+
"datacollection-options": "0.10.0"
16+
},
17+
"non_applicable": {
18+
"data-sensitivity-levels": "Conceptual taxonomy with no SDK implementation requirement."
19+
}
20+
}
21+
}
22+
}

0 commit comments

Comments
 (0)