Skip to content

Conversation

@stirby
Copy link
Collaborator

@stirby stirby commented Dec 9, 2025

Summary

Updates the feature stages documentation to reflect internal agreements on feature stage definitions, support expectations, and enablement criteria.

Changes

Early Access (EA)

  • Clarify EA features are referred to internally as MVP, Phase 1, or Alpha
  • Detail customer expectations: rough edges, missing features, bugs expected
  • Update support definition: no support/SLA, escalated directly to product team (GitHub issues for feedback only)
  • Confirm opt-in only requirement via CODER_EXPERIMENTS
  • Add experimental naming convention requirement for API routes and CLI commands

Beta

  • Remove statement that "most beta features are enabled by default" - Beta features are opt-in
  • Clarify beta features can be naturally discovered via product/docs without experiment flags
  • Emphasize stable API goal between Beta and GA
  • State beta features are generally feature-complete (focus on stability, not new features)
  • Update support: best effort (no SLA), ~60% of tickets escalated to product team

GA

  • Add transition criteria section: stability, scale, compatibility
  • Add 80% planned use cases requirement before reaching GA
  • Clarify most GA features are enabled by default, but features requiring extra configuration (like Prebuilds) may remain opt-in by design
  • Emphasize documentation as single source of truth with air-gapped deployment instructions

Updates the feature stages documentation to reflect internal agreements:

Early Access (EA):
- Clarify EA features are referred to internally as MVP, Phase 1, or Alpha
- Detail customer expectations: rough edges, missing features, bugs expected
- Update support: no support/SLA, escalated directly to product team
- Confirm opt-in only via CODER_EXPERIMENTS
- Add experimental naming convention requirement for API/CLI

Beta:
- Remove statement that beta features are enabled by default
- Clarify beta features are opt-in but discoverable without experiment flags
- Emphasize stable API goal between Beta and GA
- State beta features are generally feature-complete (focus on stability)
- Update support: best effort (no SLA), ~60% escalated to product team

GA:
- Add transition criteria: stability, scale, compatibility, 80% use cases
- Clarify most GA features enabled by default, but config-heavy features
  (like Prebuilds) may remain opt-in by design
- Emphasize documentation as single source of truth with air-gapped
  deployment instructions
@stirby stirby requested a review from david-fraley December 9, 2025 23:31
Comment on lines +141 to +142
A feature should fit at least 80% of planned use cases before reaching GA. Any
changes after GA are incremental improvements or made by customer request.
Copy link
Member

@bpmct bpmct Dec 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe I was the one who said this, but seeing in writing, I'm not a fan of this verbiage... I'd rather reword it to something like:

  • "A feature should be GA when it is generally useful to a wide audience, even if there are additional capabilities/use cases planned. GA does not signify feature-complete, it represents a feature being stable and useful for enterprises."

| [GA](#general-availability-ga) | Yes | Yes | License-based | Stable and tested. Enabled by default. Fully documented. Support based on license. |
| Feature stage | Stable | Production-ready | Support | Description |
|----------------------------------------|--------|------------------|----------------------------|-----------------------------------------------------------------------------------------------------------------------|
| [Early Access](#early-access-features) | No | No | No support (GitHub issues) | For staging only. Not feature-complete or stable. Disabled by default. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Offering no support is the opposite of what EA is about. Early feedback is an absolute gift, and it has an outsized influence over future product direction.

Copy link
Collaborator

@david-fraley david-fraley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally I'm good so approving as not to block. Did leave some thoughts however

Comment on lines 69 to 77
### Available early access features

<!-- Code generated by scripts/release/docs_update_experiments.sh. DO NOT EDIT. -->
<!-- BEGIN: available-experimental-features -->

Currently no experimental features are available in the latest mainline or
stable release.

<!-- END: available-experimental-features -->
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we remove this? I'm not gonna remember/have time to run this, I don't think we can count on AI to, etc.

Comment on lines +89 to +91
Beta features are publicly available and tagged with a `Beta` label. They are
generally stable with a mostly complete feature set, though minor bugs may
exist.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider a callout to the "### Transition from Beta to GA" here as my mind immediately was like ok well what about that

Comment on lines +138 to +139
- **Compatibility**: Testing across a wider set of Coder versions and
environments.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Compatibility**: Testing across a wider set of Coder versions and
environments.
- **Compatibility**: Testing across a wider set of Coder versions and
environments, as well as integration into the broader Coder product suite.

Trying to call out that compatibility means with our diff released versions but also with the other product lines we have, ex. DevContainers and Tasks as the most recent missing-example.

I could also see this as new bullet if you prefer like:

- **Integration**: Having integrated the feature into the broader Coder product suite
- ```

Comment on lines +146 to +148
- **Enabled by default**: Most GA features are enabled by default. However,
features that require extra configuration (such as Prebuilds or external
integrations) may remain opt-in by design, even in GA.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps rephrase to

Suggested change
- **Enabled by default**: Most GA features are enabled by default. However,
features that require extra configuration (such as Prebuilds or external
integrations) may remain opt-in by design, even in GA.
- **Available by default**: All GA features are available to customers based on their licensing. However, some features that require extra configuration or additional setup (such as Prebuilds or external integrations) will not be enabled by default and will remain opt-in by design, even in GA.

Trying to distinguish "enabled's" usage from enable for release vs enabled for usage. Open to thoughts here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants