Skip to content

Generate development/experimental attributes #27

@slashmo

Description

@slashmo

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.

// 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions