From 338d942fc462df9a06a59a36ade86d0cff4257f4 Mon Sep 17 00:00:00 2001 From: lcawl Date: Mon, 25 May 2026 15:40:02 -0700 Subject: [PATCH] Add experimental lifecycle to changelog tooling --- config/changelog.example.yml | 1 + docs/contribute/configure-changelogs-ref.md | 11 ++++++----- .../Changelog/ChangelogConfiguration.cs | 3 ++- src/Elastic.Documentation/Lifecycle.cs | 10 +++++++--- .../Changelogs/ChangelogConfigurationTests.cs | 3 +-- .../Directives/ChangelogConfigTests.cs | 1 + 6 files changed, 18 insertions(+), 11 deletions(-) diff --git a/config/changelog.example.yml b/config/changelog.example.yml index e02f65074a..e4327e7197 100644 --- a/config/changelog.example.yml +++ b/config/changelog.example.yml @@ -52,6 +52,7 @@ lifecycles: - preview - beta - ga + - experimental # Pivot configuration for types, subtypes, and areas with label mappings. # By default we render changelogs grouped by type > subtype > area. diff --git a/docs/contribute/configure-changelogs-ref.md b/docs/contribute/configure-changelogs-ref.md index 0ee785f408..5736771cb9 100644 --- a/docs/contribute/configure-changelogs-ref.md +++ b/docs/contribute/configure-changelogs-ref.md @@ -211,11 +211,12 @@ Specifies the allowed lifecycle values for your changelogs. :::{table} :widths: description -| Value | Description | -| --------- | --------------------------------- | -| `preview` | Technical preview or early access | -| `beta` | Beta release | -| `ga` | General availability | +| Value | Description | +| -------------- | --------------------------------- | +| `preview` | Tech previews are time-boxed evaluations to help us gather early feedback from customers on key upcoming features. | +| `beta` | Beta features are no longer supported but some products might have beta releases. | +| `ga` | General availability features are stable, scalable, and production-ready. | +| `experimental` | The experimental phase exists to enable rapid iteration on new features. | ::: diff --git a/src/Elastic.Documentation.Configuration/Changelog/ChangelogConfiguration.cs b/src/Elastic.Documentation.Configuration/Changelog/ChangelogConfiguration.cs index f24c55019c..0e3149613e 100644 --- a/src/Elastic.Documentation.Configuration/Changelog/ChangelogConfiguration.cs +++ b/src/Elastic.Documentation.Configuration/Changelog/ChangelogConfiguration.cs @@ -46,7 +46,8 @@ public record ChangelogConfiguration [ Lifecycle.Preview, Lifecycle.Beta, - Lifecycle.Ga + Lifecycle.Ga, + Lifecycle.Experimental ]; /// diff --git a/src/Elastic.Documentation/Lifecycle.cs b/src/Elastic.Documentation/Lifecycle.cs index 7e02034095..8a426527a8 100644 --- a/src/Elastic.Documentation/Lifecycle.cs +++ b/src/Elastic.Documentation/Lifecycle.cs @@ -13,7 +13,7 @@ namespace Elastic.Documentation; [EnumExtensions] public enum Lifecycle { - /// A technical preview of a feature or enhancement. + /// Tech Previews are time-boxed evaluations to help us gather early feedback from customers on key upcoming features. [Display(Name = "preview")] Preview, @@ -21,7 +21,11 @@ public enum Lifecycle [Display(Name = "beta")] Beta, - /// A generally available release of a feature or enhancement. + /// Generally available features are stable, scalable, and production-ready. [Display(Name = "ga")] - Ga + Ga, + + /// The experimental phase exists to enable rapid iteration on new features. + [Display(Name = "experimental")] + Experimental } diff --git a/tests/Elastic.Changelog.Tests/Changelogs/ChangelogConfigurationTests.cs b/tests/Elastic.Changelog.Tests/Changelogs/ChangelogConfigurationTests.cs index 3bfe1528c2..3c21aeee57 100644 --- a/tests/Elastic.Changelog.Tests/Changelogs/ChangelogConfigurationTests.cs +++ b/tests/Elastic.Changelog.Tests/Changelogs/ChangelogConfigurationTests.cs @@ -6,8 +6,6 @@ using Elastic.Documentation; using Elastic.Documentation.Configuration; using Elastic.Documentation.Configuration.Changelog; -using Elastic.Documentation.Configuration.Changelog; -using Elastic.Documentation.Configuration.Changelog; using Elastic.Documentation.Diagnostics; using Elastic.Documentation.ReleaseNotes; @@ -142,6 +140,7 @@ public async Task LoadChangelogConfiguration_WithoutAvailableLifecycles_UsesDefa config.Lifecycles.Should().Contain(Lifecycle.Preview); config.Lifecycles.Should().Contain(Lifecycle.Beta); config.Lifecycles.Should().Contain(Lifecycle.Ga); + config.Lifecycles.Should().Contain(Lifecycle.Experimental); } finally { diff --git a/tests/Elastic.Markdown.Tests/Directives/ChangelogConfigTests.cs b/tests/Elastic.Markdown.Tests/Directives/ChangelogConfigTests.cs index 4fad8d73d3..947b0a04f5 100644 --- a/tests/Elastic.Markdown.Tests/Directives/ChangelogConfigTests.cs +++ b/tests/Elastic.Markdown.Tests/Directives/ChangelogConfigTests.cs @@ -379,6 +379,7 @@ public ChangelogConfigEmptyBlockTests(ITestOutputHelper output) : base(output, - preview - beta - ga + - experimental """)); }