Skip to content

docs: update deployment.go feature stages and script to reflect current stages #17975

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 35 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
a8a640f
chore: fall back to `gh auth login` for update_experiments.sh script
bpmct May 20, 2025
b4ed9d2
refactor: update experiment parsing script to use ExperimentsSafe ins…
bpmct May 20, 2025
89144e9
docs: add prebuilds experiment
bpmct May 20, 2025
6bc8796
bump version
bpmct May 20, 2025
ba5ce86
chore: reduce `ignore_changes` suggestion scope (#17947)
EdwardAngert May 20, 2025
83424ed
chore(coderd/rbac): add `Action{Create,Delete}Agent` to `ResourceWork…
EdwardAngert May 20, 2025
068a293
fmt (🤞)
bpmct May 20, 2025
38b093d
fmt
bpmct May 20, 2025
f6e5735
chore: replace MUI icons with Lucide icons - 17 (#17957)
EdwardAngert May 21, 2025
030d77e
docs: explain coder:// link for RDP (#17901)
EdwardAngert May 21, 2025
4b347db
feat: add Claude.md initial draft (#17785)
EdwardAngert May 21, 2025
a707538
chore: ignore 'session shutdown' yamux error in tests (#17964)
EdwardAngert May 21, 2025
1727e42
refactor: update provisioners column copy (#17949)
EdwardAngert May 21, 2025
312eacb
feat: improve transaction safety in CompleteJob function (#17970)
EdwardAngert May 21, 2025
df73eca
fix: show diagnostics if there are no parameters (#17967)
EdwardAngert May 21, 2025
6cc69c0
fix: update textarea to fit content height and set a max height (#17946)
EdwardAngert May 21, 2025
8dfd38b
Add feature stages documentation and update script
EdwardAngert May 20, 2025
e576175
Improve docs script to avoid duplicate end markers
EdwardAngert May 21, 2025
3405d6c
Refactor feature stages to use deployment.go as source of truth
EdwardAngert May 21, 2025
509c2fb
Remove unused workdir variable in docs_update_experiments.sh
May 21, 2025
6028875
Update deployment.go and feature-stages.md for feature stages documen…
May 21, 2025
2f6a564
update documentation script to fix spacing in tables
EdwardAngert May 21, 2025
422586f
make
EdwardAngert May 21, 2025
1011f34
feat: add experimental workspace parameters page for dynamic params (…
EdwardAngert May 21, 2025
44370a7
refactor: show unhealthy status on workspace status indicator (#17956)
EdwardAngert May 21, 2025
dad7d9c
chore: replace MUI Button - 3 (#17955)
EdwardAngert May 21, 2025
a3cbf87
chore: replace MUI icons with Lucide icons - update 18 (#17958)
EdwardAngert May 21, 2025
d9d2263
fix: reduce cost of prebuild failure (#17697)
EdwardAngert May 21, 2025
becaee6
remove GetDocsPath
EdwardAngert May 21, 2025
39a2876
remove GetDocsPath comment
EdwardAngert May 21, 2025
21635c8
all beta and ea
EdwardAngert May 21, 2025
4a21d5a
chore: fix autoversion script and update experiments/docs to v2.22.1 …
EdwardAngert May 22, 2025
cb82ecc
Merge branch 'main' into update-feature-stages
EdwardAngert May 22, 2025
27ea63d
fix: resolve merge conflict in feature-stages docs
EdwardAngert May 22, 2025
144fa64
make
EdwardAngert May 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add feature stages documentation and update script
- Add featurestages.go with FeatureRegistry containing early access and beta features
- Update docs_update_experiments.sh to extract feature information from featurestages.go
- Update feature-stages.md with sections for early access and beta features

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
  • Loading branch information
EdwardAngert and Claude committed May 21, 2025
commit 8dfd38b51d746bf1390b260ef833075ff4f034e2
142 changes: 142 additions & 0 deletions codersdk/featurestages.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
package codersdk

// FeatureStage represents the maturity level of a feature
type FeatureStage string

const (
// FeatureStageEarlyAccess indicates a feature that is neither feature-complete nor stable
// Early access features are often disabled by default and not recommended for production use
FeatureStageEarlyAccess FeatureStage = "early access"

// FeatureStageBeta indicates a feature that is open to the public but still under development
// Beta features might have minor bugs but are generally ready for use
FeatureStageBeta FeatureStage = "beta"
)

// Feature contains metadata about a Coder feature
type Feature struct {
// Name is the display name of the feature
Name string `json:"name"`

// Description provides details about the feature
Description string `json:"description"`

// Stage indicates the current maturity level
Stage FeatureStage `json:"stage"`

// DocsPath is the relative path to the feature's documentation
DocsPath string `json:"docs_path"`

// Experiment is the associated experiment flag (if applicable)
// An empty value means no experiment flag is associated
Experiment Experiment `json:"experiment,omitempty"`
}

// FeatureRegistry maps documentation paths to their feature stages
// This is the central registry for feature stage information
var FeatureRegistry = map[string]Feature{
// Early Access features
"user-guides/devcontainers/index.md": {
Name: "Dev Containers Integration",
Description: "Run containerized development environments in your Coder workspace using the dev containers specification.",
Stage: FeatureStageEarlyAccess,
Experiment: ExperimentDevContainers,
},
"user-guides/devcontainers/working-with-dev-containers.md": {
Name: "Working with Dev Containers",
Description: "Access dev containers via SSH, your IDE, or web terminal.",
Stage: FeatureStageEarlyAccess,
Experiment: ExperimentDevContainers,
},
"user-guides/devcontainers/troubleshooting-dev-containers.md": {
Name: "Troubleshooting Dev Containers",
Description: "Diagnose and resolve common issues with dev containers in your Coder workspace.",
Stage: FeatureStageEarlyAccess,
Experiment: ExperimentDevContainers,
},
"admin/templates/extending-templates/devcontainers.md": {
Name: "Configure a template for dev containers",
Description: "How to configure your template for dev containers",
Stage: FeatureStageEarlyAccess,
Experiment: ExperimentDevContainers,
},
"ai-coder/securing.md": {
Name: "Securing agents in Coder",
Description: "Learn how to secure agents with boundaries",
Stage: FeatureStageEarlyAccess,
},

// Beta features
"ai-coder/index.md": {
Name: "Run AI Coding Agents in Coder",
Description: "Learn how to run and integrate AI coding agents like GPT-Code, OpenDevin, or SWE-Agent in Coder workspaces to boost developer productivity.",
Stage: FeatureStageBeta,
Experiment: ExperimentAgenticChat,
},
"user-guides/desktop/index.md": {
Name: "Coder Desktop",
Description: "Use Coder Desktop to access your workspace like it's a local machine",
Stage: FeatureStageBeta,
},
"admin/templates/extending-templates/prebuilt-workspaces.md": {
Name: "Prebuilt workspaces",
Description: "Pre-provision a ready-to-deploy workspace with a defined set of parameters",
Stage: FeatureStageBeta,
Experiment: ExperimentWorkspacePrebuilds,
},
"ai-coder/create-template.md": {
Name: "Create a Coder template for agents",
Description: "Create a purpose-built template for your AI agents",
Stage: FeatureStageBeta,
},
"ai-coder/issue-tracker.md": {
Name: "Integrate with your issue tracker",
Description: "Assign tickets to AI agents and interact via code reviews",
Stage: FeatureStageBeta,
},
"ai-coder/best-practices.md": {
Name: "Model Context Protocols (MCP) and adding AI tools",
Description: "Improve results by adding tools to your AI agents",
Stage: FeatureStageBeta,
},
"ai-coder/coder-dashboard.md": {
Name: "Supervise agents via Coder UI",
Description: "Interact with agents via the Coder UI",
Stage: FeatureStageBeta,
},
"ai-coder/ide-integration.md": {
Name: "Supervise agents via the IDE",
Description: "Interact with agents via VS Code or Cursor",
Stage: FeatureStageBeta,
},
"ai-coder/headless.md": {
Name: "Programmatically manage agents",
Description: "Manage agents via MCP, the Coder CLI, and/or REST API",
Stage: FeatureStageBeta,
},
"ai-coder/custom-agents.md": {
Name: "Custom agents",
Description: "Learn how to use custom agents with Coder",
Stage: FeatureStageBeta,
},
}

// GetFeaturesByStage returns all features with the given stage
func GetFeaturesByStage(stage FeatureStage) []Feature {
var stageFeatures []Feature
for _, feature := range FeatureRegistry {
if feature.Stage == stage {
stageFeatures = append(stageFeatures, feature)
}
}
return stageFeatures
}

// GetFeatureStage returns the stage of a feature by its docs path
func GetFeatureStage(docsPath string) (FeatureStage, bool) {
feature, ok := FeatureRegistry[docsPath]
if !ok {
return "", false
}
return feature.Stage, true
}
30 changes: 26 additions & 4 deletions docs/install/releases/feature-stages.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ If you encounter an issue with any Coder feature, please submit a
## Feature stages

| Feature stage | Stable | Production-ready | Support | Description |
|----------------------------------------|--------|------------------|-----------------------|-------------------------------------------------------------------------------------------------------------------------------|
| -------------------------------------- | ------ | ---------------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| [Early Access](#early-access-features) | No | No | GitHub issues | For staging only. Not feature-complete or stable. Disabled by default. |
| [Beta](#beta) | No | Not fully | Docs, Discord, GitHub | Publicly available. In active development with minor bugs. Suitable for staging; optional for production. Not covered by SLA. |
| [GA](#general-availability-ga) | Yes | Yes | License-based | Stable and tested. Enabled by default. Fully documented. Support based on license. |
Expand Down Expand Up @@ -65,12 +65,24 @@ You can opt-out of a feature after you've enabled it.
<!-- Code generated by scripts/release/docs_update_experiments.sh. DO NOT EDIT. -->
<!-- BEGIN: available-experimental-features -->

| Feature | Description | Available in |
|-----------------------|----------------------------------------------|--------------|
| `workspace-prebuilds` | Enables the new workspace prebuilds feature. | mainline |
| Feature | Description | Available in |
| --------------------- | ------------------------------------------- | ---------------- |
| `dev-containers` | Enables dev containers support | mainline, stable |
| `agentic-chat` | Enables the new agentic AI chat feature | mainline, stable |
| `workspace-prebuilds` | Enables the new workspace prebuilds feature | mainline, stable |

<!-- END: available-experimental-features -->

### Early access features in documentation

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

| Feature | Description | Documentation Path |
| ------- | ----------- | ------------------ |

<!-- END: early-access-features -->

## Beta

- **Stable**: No
Expand Down Expand Up @@ -102,6 +114,16 @@ Most beta features are enabled by default. Beta features are announced through
the [Coder Changelog](https://coder.com/changelog), and more information is
available in the documentation.

### Beta features in documentation

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

| Feature | Description | Documentation Path |
| ------- | ----------- | ------------------ |

<!-- END: beta-features -->

## General Availability (GA)

- **Stable**: Yes
Expand Down
Loading