- 
                Notifications
    You must be signed in to change notification settings 
- Fork 5
Description
Context
Our generator currently filters out development and experimental attributes so that we only expose stable ones. This avoids breaking our public API in semver minor releases.
swift-otel-semantic-conventions/Generator/Sources/Generator.swift
Lines 65 to 68 in e1e9a34
| // Filter out attributes that are not stable | |
| parsedAttributes = parsedAttributes.filter { attribute in | |
| attribute.stability != .development && attribute.stability != .experimental | |
| } | 
Proposal
I propose that we add an additional trait Experimental, disabled by default. We'd generate development/experimental attributes and put them behind this trait. Additionally, we'd add clear documentation around our release strategy with a warning that enabling the trait will lead to breaking changes in minor release of the library. The Experimental trait would compose with the existing Tracing trait so that experimental SpanAttributes would only be available with both traits enabled.