From aede478758219a1a9bb6977371b5bb64a14b84b4 Mon Sep 17 00:00:00 2001 From: caballeto Date: Wed, 6 May 2026 21:22:10 +0200 Subject: [PATCH] docs(readme): elevate Beta status with explicit "Status" section + pin Replace the inline versioning paragraph with a proper "Status: Beta" section explaining what beta means in practice (safe for production, fully supported, pin the exact pre-release version, track CHANGELOG). Add a Beta status badge next to the Registry / godoc / license badges so it's visible at a glance. Bump the quickstart pin from `0.2.0-beta.1` to `0.2.0-beta.4` (the currently published latest tag with the lenient response decoder). Why we're holding TF on the beta line while the other DevHelm surfaces (CLI, SDKs, MCP server) are at 1.0.0: a short soak window to harden one defense-in-depth edge case (post-POST failure rollback in the API client) before promoting to GA. Schema and on-disk state format are stable and will not change before 1.0.0. Co-authored-by: Cursor --- README.md | 41 +++++++++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 8786611..f4dc478 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # Terraform Provider for DevHelm [![Terraform Registry](https://img.shields.io/badge/terraform-registry-purple.svg)](https://registry.terraform.io/providers/devhelmhq/devhelm/latest) +[![Status: Beta](https://img.shields.io/badge/status-beta-yellow.svg)](#status-beta) [![Go Reference](https://pkg.go.dev/badge/github.com/devhelmhq/terraform-provider-devhelm.svg)](https://pkg.go.dev/github.com/devhelmhq/terraform-provider-devhelm) [![License](https://img.shields.io/badge/license-MPL--2.0-blue.svg)](LICENSE) @@ -13,15 +14,35 @@ via the built-in `moved {}` block), composes naturally with `for_each` and modules, and integrates cleanly with DNS providers, secret stores, and other parts of your platform stack. -> **Versioning.** The schema is stable and the resource set is -> feature-complete against the DevHelm v1 API. The provider currently -> ships as **`0.2.0-beta.1`** — pin the exact version (the comment in -> the snippet above shows where) until the GA `1.0.0` cut. Terraform's -> `~>` operator never selects pre-release versions, so a constraint -> like `~> 0.2` matches **zero** published versions today. After -> `1.0.0`, switch to `~> 1.0` and rely on -> [semver](https://semver.org/) — schema changes that would break -> existing state will go through a deprecation cycle. +## Status: Beta + +The DevHelm Terraform provider is currently in **Beta**. The schema is +stable, the resource set is feature-complete against the DevHelm v1 API, +and the provider has been validated end-to-end against production. We're +running it through a short soak window to harden one defense-in-depth +edge case (post-`POST` failure rollback in the API client) before +promoting to GA. + +**What this means in practice:** + +- ✅ **Safe for production use** — the schema and on-disk state format + will not change in backward-incompatible ways before the `1.0.0` cut. + All breaking changes (if any) will go through a deprecation cycle and + ship in a clearly-versioned beta first. +- ✅ **Fully supported** — file issues at + [devhelmhq/terraform-provider-devhelm](https://github.com/devhelmhq/terraform-provider-devhelm/issues); + beta does not mean unsupported. +- ⚠️ **Pin the exact pre-release version.** Terraform's `~>` operator + does **not** select pre-release versions, so a constraint like + `~> 0.2` matches zero published versions today. Use the exact pin + shown in the snippet below. +- ⚠️ **Track the [CHANGELOG](CHANGELOG.md)** for each beta bump until + GA. We don't expect breaking changes between betas, but we do + reserve the right to ship them with a clearly-flagged release note + if a real production failure forces our hand. + +After `1.0.0`, switch your pin to `~> 1.0` and rely on +[semver](https://semver.org/). ## Quick start @@ -31,7 +52,7 @@ terraform { required_providers { devhelm = { source = "devhelmhq/devhelm" - version = "0.2.0-beta.1" # pre-release: see "Versioning" below + version = "0.2.0-beta.4" # Beta — pin the exact version, see "Status: Beta" above } } }