From 00ce5795215a07bb8d5d30d9a97eb4065bd409f9 Mon Sep 17 00:00:00 2001 From: Jan Calanog Date: Tue, 1 Jul 2025 23:54:53 +0200 Subject: [PATCH 01/11] Refined `applies_to` tooltips --- .../Components/ApplicableToComponent.cshtml | 123 +++++++++--------- tests/authoring/Inline/AppliesToRole.fs | 8 +- 2 files changed, 67 insertions(+), 64 deletions(-) diff --git a/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml b/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml index 1a357020f..a59920c1e 100644 --- a/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml +++ b/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml @@ -12,7 +12,7 @@ { @RenderProduct( "Stack", - "Part of the versioned Elastic Stack\n\nAvailable in ECH, ECE, ECK, and self-managed deployments, unless otherwise stated", + "Elastic Stack", VersioningSystemId.Stack, appliesTo.Stack ) @@ -64,7 +64,7 @@ { @RenderProduct( "Serverless", - "Elastic Cloud Serverless: Fully-managed Elastic, available in Elastic Cloud", + "Elastic Cloud Serverless", VersioningSystemId.Serverless, appliesTo.Serverless.AllProjects ) @@ -226,94 +226,97 @@ @functions { - private IHtmlContent RenderProduct(string name, string description, VersioningSystemId versioningSystemName, AppliesCollection applications) + private IHtmlContent RenderProduct(string key, string keyFull, VersioningSystemId versioningSystemName, AppliesCollection applications) { var versioningSystem = Model.VersionsConfig.GetVersioningSystem(versioningSystemName); foreach (var applicability in applications) { - var lifecycleTooltip = ""; - var badgeText = name; + var badgeText = key; + var tooltipText = ""; var lifecycleClass = applicability.GetLifeCycleName().ToLowerInvariant().Replace(" ", "-"); - switch (applicability.Lifecycle) + + var lifecycleFull = applicability.Lifecycle switch + { + ProductLifecycle.GenerallyAvailable => "Available", + ProductLifecycle.Beta => "Available in beta", + ProductLifecycle.TechnicalPreview => "Available in technical preview", + ProductLifecycle.Deprecated => "Deprecated", + ProductLifecycle.Removed => "Removed", + _ => "" + }; + + var realVersion = TryGetRealVersion(applicability, out var v) ? v : null; + + if (realVersion is not null) { - case ProductLifecycle.TechnicalPreview: - if (TryGetRealVersion(applicability, out var previewVersion) && previewVersion > versioningSystem.Current) - { - badgeText = "Planned"; - lifecycleTooltip = "We plan to add this functionality in a future update. Plans may change without notice."; - lifecycleClass = "planned"; - } - else - { - lifecycleTooltip = "This functionality is in technical preview and may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features."; - } - break; - case ProductLifecycle.Beta: - if (TryGetRealVersion(applicability, out var betaVersion) && betaVersion > versioningSystem.Current) - { - badgeText = "Planned"; - lifecycleTooltip = "We plan to add this functionality in a future update. Plans may change without notice."; - lifecycleClass = "planned"; - } - else + if (realVersion <= versioningSystem.Current) + { + tooltipText = $"{lifecycleFull} in {keyFull} in version {realVersion} and later unless otherwise specified."; + } + else + { + if (applicability.Lifecycle is ProductLifecycle.GenerallyAvailable or ProductLifecycle.Beta or ProductLifecycle.TechnicalPreview) { - lifecycleTooltip = "This functionality is in beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features."; + tooltipText = $"We plan to add this in a future {keyFull} update. Plans may change without notice."; } - - break; - case ProductLifecycle.GenerallyAvailable: - if (TryGetRealVersion(applicability, out var version) && version > versioningSystem.Current) + else if (applicability.Lifecycle is ProductLifecycle.Deprecated) { - badgeText = "Planned"; - lifecycleTooltip = "We plan to add this functionality in a future update. Plans may change without notice."; - lifecycleClass = "planned"; + tooltipText = $"We plan to deprecate this in a future {keyFull} update. Plans may change without notice."; } - - break; - case ProductLifecycle.Deprecated: - if (TryGetRealVersion(applicability, out var deprecatedVersion) && deprecatedVersion > versioningSystem.Current) + else if (applicability.Lifecycle is ProductLifecycle.Removed) { - badgeText = "Deprecation planned"; - lifecycleTooltip = "We plan to deprecate this functionality in a future update. Plans may change without notice."; + tooltipText = $"We plan to remove this in a future {keyFull} update. Plans may change without notice."; } + } + + } + else + { + tooltipText = $"{lifecycleFull} in {keyFull} unless otherwise specified."; + } - break; - case ProductLifecycle.Removed: - if (TryGetRealVersion(applicability, out var removedVersion) && removedVersion > versioningSystem.Current) - { - badgeText = "Removal planned"; - lifecycleTooltip = "We plan to remove this functionality in a future update. Plans may change without notice."; - } + var disclaimer = applicability.Lifecycle switch + { + ProductLifecycle.Beta => "Beta features are subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features.", + ProductLifecycle.TechnicalPreview => "This functionality may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features.", + ProductLifecycle.GenerallyAvailable => versioningSystem.Id is VersioningSystemId.Stack ? "Available in ECH, ECE, ECK, and self-managed deployments, unless otherwise specified." : null, + _ => null + }; - break; + if (disclaimer is not null) + { + tooltipText = $"{tooltipText}\n\n{disclaimer}"; } - if ( - applicability.Version is null - && applicability.Lifecycle != ProductLifecycle.Deprecated - && applicability.Lifecycle != ProductLifecycle.Removed - && versioningSystem.Id is VersioningSystemId.Stack or VersioningSystemId.Self or VersioningSystemId.Ece or VersioningSystemId.Eck - ) + if (realVersion is not null && realVersion > versioningSystem.Current) { - lifecycleTooltip += $"\n\nApplies to version {versioningSystem.Base} and later - may have been introduced in a previous version"; + badgeText = applicability.Lifecycle switch + { + ProductLifecycle.TechnicalPreview => "Planned", + ProductLifecycle.Beta => "Planned", + ProductLifecycle.GenerallyAvailable => "Planned", + ProductLifecycle.Deprecated => "Deprecation planned", + ProductLifecycle.Removed => "Removal planned", + _ => badgeText + }; } - var badgeTextChanged = badgeText != name; - - @name + var badgeTextChanged = badgeText != key; + + @key @{ var showLifeCycle = applicability.Lifecycle != ProductLifecycle.GenerallyAvailable && !badgeTextChanged; var showVersion = applicability.Version is not null and not AllVersions; } - @if (!string.IsNullOrEmpty(name) && (showLifeCycle || showVersion)) + @if (!string.IsNullOrEmpty(key) && (showLifeCycle || showVersion)) { } - + @if (showLifeCycle) { convertsToHtml """

This is an inline - - Stack +This functionality may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features."> + Stack - + Planned From 6a3d5d1ffcec0d20357a2d94ccd330a781da4eb8 Mon Sep 17 00:00:00 2001 From: Jan Calanog Date: Wed, 2 Jul 2025 00:20:44 +0200 Subject: [PATCH 02/11] Add non breaking spaces --- .../Components/ApplicableToComponent.cshtml | 58 +++++++++---------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml b/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml index a59920c1e..68f420752 100644 --- a/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml +++ b/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml @@ -12,7 +12,7 @@ { @RenderProduct( "Stack", - "Elastic Stack", + "Elastic Stack", VersioningSystemId.Stack, appliesTo.Stack ) @@ -22,7 +22,7 @@ if (appliesTo.Deployment.Ece is not null) { @RenderProduct("ECE", - "Elastic Cloud Enterprise", + "Elastic Cloud Enterprise", VersioningSystemId.Ece, appliesTo.Deployment.Ece ) @@ -32,7 +32,7 @@ { @RenderProduct( "ECK", - "Elastic Cloud on Kubernetes", + "Elastic Cloud on Kubernetes", VersioningSystemId.Eck, appliesTo.Deployment.Eck ) @@ -42,7 +42,7 @@ { @RenderProduct( "ECH", - "Elastic Cloud Hosted", + "Elastic Cloud Hosted", VersioningSystemId.Ess, appliesTo.Deployment.Ess ) @@ -52,7 +52,7 @@ { @RenderProduct( "Self-Managed", - "Self-managed Elastic deployments", + "Self-managed Elastic deployments", VersioningSystemId.Self, appliesTo.Deployment.Self ) @@ -64,7 +64,7 @@ { @RenderProduct( "Serverless", - "Elastic Cloud Serverless", + "Elastic Cloud Serverless", VersioningSystemId.Serverless, appliesTo.Serverless.AllProjects ) @@ -75,7 +75,7 @@ { @RenderProduct( "Serverless Elasticsearch", - "Serverless Elasticsearch projects", + "Serverless Elasticsearch projects", VersioningSystemId.Elasticsearch, appliesTo.Serverless.Elasticsearch ) @@ -85,7 +85,7 @@ { @RenderProduct( "Serverless Observability", - "Serverless Observability projects", + "Serverless Observability projects", VersioningSystemId.Observability, appliesTo.Serverless.Observability ) @@ -95,7 +95,7 @@ { @RenderProduct( "Serverless Security", - "Serverless Security projects", + "Serverless Security projects", VersioningSystemId.Security, appliesTo.Serverless.Security ) @@ -111,115 +111,115 @@ var pa = appliesTo.ProductApplicability; if (pa.Ecctl is not null) { - @RenderProduct("ECCTL", "Elastic Cloud Control", VersioningSystemId.Ecctl, pa.Ecctl) + @RenderProduct("ECCTL", "Elastic Cloud Control", VersioningSystemId.Ecctl, pa.Ecctl) ; } if (pa.Curator is not null) { - @RenderProduct("Curator", "", VersioningSystemId.Curator, pa.Curator) + @RenderProduct("Curator", "Curator", VersioningSystemId.Curator, pa.Curator) ; } if (pa.ApmAgentAndroid is not null) { - @RenderProduct("APM Agent Android", "Application Performance Monitoring Agent for Android", VersioningSystemId.ApmAgentAndroid, pa.ApmAgentAndroid) + @RenderProduct("APM Agent Android", "Application Performance Monitoring Agent for Android", VersioningSystemId.ApmAgentAndroid, pa.ApmAgentAndroid) ; } if (pa.ApmAgentDotnet is not null) { - @RenderProduct("APM Agent .NET", "Application Performance Monitoring Agent for .NET", VersioningSystemId.ApmAgentDotnet, pa.ApmAgentDotnet) + @RenderProduct("APM Agent .NET", "Application Performance Monitoring Agent for .NET", VersioningSystemId.ApmAgentDotnet, pa.ApmAgentDotnet) ; } if (pa.ApmAgentGo is not null) { - @RenderProduct("APM Agent Go", "Application Performance Monitoring Agent for Go", VersioningSystemId.ApmAgentGo, pa.ApmAgentGo) + @RenderProduct("APM Agent Go", "Application Performance Monitoring Agent for Go", VersioningSystemId.ApmAgentGo, pa.ApmAgentGo) ; } if (pa.ApmAgentIos is not null) { - @RenderProduct("APM Agent iOS", "Application Performance Monitoring Agent for iOS", VersioningSystemId.ApmAgentIos, pa.ApmAgentIos) + @RenderProduct("APM Agent iOS", "Application Performance Monitoring Agent for iOS", VersioningSystemId.ApmAgentIos, pa.ApmAgentIos) ; } if (pa.ApmAgentJava is not null) { - @RenderProduct("APM Agent Java", "Application Performance Monitoring Agent for Java", VersioningSystemId.ApmAgentJava, pa.ApmAgentJava) + @RenderProduct("APM Agent Java", "Application Performance Monitoring Agent for Java", VersioningSystemId.ApmAgentJava, pa.ApmAgentJava) ; } if (pa.ApmAgentNode is not null) { - @RenderProduct("APM Agent Node.js", "Application Performance Monitoring Agent for Node.js", VersioningSystemId.ApmAgentNode, pa.ApmAgentNode) + @RenderProduct("APM Agent Node.js", "Application Performance Monitoring Agent for Node.js", VersioningSystemId.ApmAgentNode, pa.ApmAgentNode) ; } if (pa.ApmAgentPhp is not null) { - @RenderProduct("APM Agent PHP", "Application Performance Monitoring Agent for PHP", VersioningSystemId.ApmAgentPhp, pa.ApmAgentPhp) + @RenderProduct("APM Agent PHP", "Application Performance Monitoring Agent for PHP", VersioningSystemId.ApmAgentPhp, pa.ApmAgentPhp) ; } if (pa.ApmAgentPython is not null) { - @RenderProduct("APM Agent Python", "Application Performance Monitoring Agent for Python", VersioningSystemId.ApmAgentPython, pa.ApmAgentPython) + @RenderProduct("APM Agent Python", "Application Performance Monitoring Agent for Python", VersioningSystemId.ApmAgentPython, pa.ApmAgentPython) ; } if (pa.ApmAgentRuby is not null) { - @RenderProduct("APM Agent Ruby", "Application Performance Monitoring Agent for Ruby", VersioningSystemId.ApmAgentRuby, pa.ApmAgentRuby) + @RenderProduct("APM Agent Ruby", "Application Performance Monitoring Agent for Ruby", VersioningSystemId.ApmAgentRuby, pa.ApmAgentRuby) ; } if (pa.ApmAgentRum is not null) { - @RenderProduct("APM Agent RUM", "Application Performance Monitoring Agent for Real User Monitoring", VersioningSystemId.ApmAgentRum, pa.ApmAgentRum) + @RenderProduct("APM Agent RUM", "Application Performance Monitoring Agent for Real User Monitoring", VersioningSystemId.ApmAgentRum, pa.ApmAgentRum) ; } if (pa.EdotIos is not null) { - @RenderProduct("EDOT iOS", "Elastic Distributions of OpenTelemetry for iOS", VersioningSystemId.EdotIos, pa.EdotIos) + @RenderProduct("EDOT iOS", "Elastic Distributions of OpenTelemetry for iOS", VersioningSystemId.EdotIos, pa.EdotIos) ; } if (pa.EdotAndroid is not null) { - @RenderProduct("EDOT Android", "Elastic Distributions of OpenTelemetry for Android", VersioningSystemId.EdotAndroid, pa.EdotAndroid) + @RenderProduct("EDOT Android", "Elastic Distributions of OpenTelemetry for Android", VersioningSystemId.EdotAndroid, pa.EdotAndroid) ; } if (pa.EdotDotnet is not null) { - @RenderProduct("EDOT .NET", " Elastic Distributions of OpenTelemetry for .NET", VersioningSystemId.EdotDotnet, pa.EdotDotnet) + @RenderProduct("EDOT .NET", " Elastic Distributions of OpenTelemetry for .NET", VersioningSystemId.EdotDotnet, pa.EdotDotnet) ; } if (pa.EdotJava is not null) { - @RenderProduct("EDOT Java", "Elastic Distributions of OpenTelemetry for Java", VersioningSystemId.EdotJava, pa.EdotJava) + @RenderProduct("EDOT Java", "Elastic Distributions of OpenTelemetry for Java", VersioningSystemId.EdotJava, pa.EdotJava) ; } if (pa.EdotNode is not null) { - @RenderProduct("EDOT Node.js", "Elastic Distributions of OpenTelemetry for Node.js", VersioningSystemId.EdotNode, pa.EdotNode) + @RenderProduct("EDOT Node.js", "Elastic Distributions of OpenTelemetry for Node.js", VersioningSystemId.EdotNode, pa.EdotNode) ; } if (pa.EdotPhp is not null) { - @RenderProduct("EDOT PHP", "Elastic Distributions of OpenTelemetry for PHP", VersioningSystemId.ApmAgentPhp, pa.EdotPhp) + @RenderProduct("EDOT PHP", "Elastic Distributions of OpenTelemetry for PHP", VersioningSystemId.ApmAgentPhp, pa.EdotPhp) ; } if (pa.EdotPython is not null) { - @RenderProduct("EDOT Python", "Elastic Distributions of OpenTelemetry for Python", VersioningSystemId.EdotPython, pa.EdotPython) + @RenderProduct("EDOT Python", "Elastic Distributions of OpenTelemetry for Python", VersioningSystemId.EdotPython, pa.EdotPython) ; } } @@ -304,7 +304,7 @@ } var badgeTextChanged = badgeText != key; - + @key @{ From 5c8c61a995b76af7eca7192d6bed5b7477133d25 Mon Sep 17 00:00:00 2001 From: Jan Calanog Date: Wed, 2 Jul 2025 00:31:28 +0200 Subject: [PATCH 03/11] Fix test --- tests/authoring/Inline/AppliesToRole.fs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/authoring/Inline/AppliesToRole.fs b/tests/authoring/Inline/AppliesToRole.fs index 36a6de8b3..3392c87f6 100644 --- a/tests/authoring/Inline/AppliesToRole.fs +++ b/tests/authoring/Inline/AppliesToRole.fs @@ -30,7 +30,7 @@ This is an inline {applies_to}`stack: preview 9.1` element. markdown |> convertsToHtml """

This is an inline - Stack From a7e17a2defcd73117bf5855dfa0f2c94838d1030 Mon Sep 17 00:00:00 2001 From: florent-leborgne Date: Thu, 3 Jul 2025 18:12:48 +0200 Subject: [PATCH 04/11] Apply suggestion from @florent-leborgne --- .../Myst/Components/ApplicableToComponent.cshtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml b/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml index a1fbeb140..cc2af4bc4 100644 --- a/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml +++ b/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml @@ -259,7 +259,7 @@ if (realVersion <= versioningSystem.Current) { - tooltipText = $"{lifecycleFull} in {keyFull} in version {realVersion} and later unless otherwise specified."; + tooltipText = $"{lifecycleFull} on {keyFull} version {realVersion} and later unless otherwise specified."; } else { From bc99403f82498351bbd20024963aba36d75e7bcd Mon Sep 17 00:00:00 2001 From: florent-leborgne Date: Thu, 3 Jul 2025 18:13:47 +0200 Subject: [PATCH 05/11] Apply suggestion from @florent-leborgne --- .../Myst/Components/ApplicableToComponent.cshtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml b/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml index cc2af4bc4..24aeda087 100644 --- a/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml +++ b/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml @@ -265,7 +265,7 @@ { if (applicability.Lifecycle is ProductLifecycle.GenerallyAvailable or ProductLifecycle.Beta or ProductLifecycle.TechnicalPreview) { - tooltipText = $"We plan to add this in a future {keyFull} update. Plans may change without notice."; + tooltipText = $"We plan to add this functionality in a future {keyFull} update. Subject to change."; } else if (applicability.Lifecycle is ProductLifecycle.Deprecated) { From b4db37e9b7a3082dfec9e32436b1edc5940af7bc Mon Sep 17 00:00:00 2001 From: florent-leborgne Date: Thu, 3 Jul 2025 18:14:09 +0200 Subject: [PATCH 06/11] Apply suggestion from @florent-leborgne --- .../Myst/Components/ApplicableToComponent.cshtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml b/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml index 24aeda087..dcb5f72f2 100644 --- a/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml +++ b/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml @@ -269,7 +269,7 @@ } else if (applicability.Lifecycle is ProductLifecycle.Deprecated) { - tooltipText = $"We plan to deprecate this in a future {keyFull} update. Plans may change without notice."; + tooltipText = $"We plan to deprecate this functionality in a future {keyFull} update. Subject to change."; } else if (applicability.Lifecycle is ProductLifecycle.Removed) { From a62e089468d4fdd8ae755cd1c499458ab3a1658b Mon Sep 17 00:00:00 2001 From: florent-leborgne Date: Thu, 3 Jul 2025 18:14:54 +0200 Subject: [PATCH 07/11] Apply suggestion from @florent-leborgne --- .../Myst/Components/ApplicableToComponent.cshtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml b/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml index dcb5f72f2..7ad339773 100644 --- a/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml +++ b/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml @@ -273,7 +273,7 @@ } else if (applicability.Lifecycle is ProductLifecycle.Removed) { - tooltipText = $"We plan to remove this in a future {keyFull} update. Plans may change without notice."; + tooltipText = $"We plan to remove this functionality in a future {keyFull} update. Subject to change."; } } From c2f88a7819a83ce123c88231b6bf04fa4c89ff85 Mon Sep 17 00:00:00 2001 From: florent-leborgne Date: Thu, 3 Jul 2025 18:15:16 +0200 Subject: [PATCH 08/11] Apply suggestion from @florent-leborgne --- .../Myst/Components/ApplicableToComponent.cshtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml b/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml index 7ad339773..135bd73de 100644 --- a/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml +++ b/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml @@ -280,7 +280,7 @@ } else { - tooltipText = $"{lifecycleFull} in {keyFull} unless otherwise specified."; + tooltipText = $"{lifecycleFull} on {keyFull} unless otherwise specified."; } var disclaimer = applicability.Lifecycle switch From ea8472f2ee63da1c211651f7432dbbf846eac74a Mon Sep 17 00:00:00 2001 From: florent-leborgne Date: Thu, 3 Jul 2025 18:18:23 +0200 Subject: [PATCH 09/11] Apply suggestion from @florent-leborgne --- .../Myst/Components/ApplicableToComponent.cshtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml b/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml index 135bd73de..2043a8379 100644 --- a/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml +++ b/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml @@ -287,7 +287,7 @@ { ProductLifecycle.Beta => "Beta features are subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features.", ProductLifecycle.TechnicalPreview => "This functionality may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features.", - ProductLifecycle.GenerallyAvailable => versioningSystem.Id is VersioningSystemId.Stack ? "Available in ECH, ECE, ECK, and self-managed deployments, unless otherwise specified." : null, + ProductLifecycle.GenerallyAvailable => versioningSystem.Id is VersioningSystemId.Stack ? "If this functionality is unavailable or behaves differently when deployed on ECH, ECE, ECK, or a self-managed installation, it will be indicated on the page." : null, _ => null }; From 23d063a2fb32d310bf20cf0c3b5ec3edc6242985 Mon Sep 17 00:00:00 2001 From: florent-leborgne Date: Thu, 3 Jul 2025 18:18:54 +0200 Subject: [PATCH 10/11] Apply suggestion from @florent-leborgne --- tests/authoring/Inline/AppliesToRole.fs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/authoring/Inline/AppliesToRole.fs b/tests/authoring/Inline/AppliesToRole.fs index 3392c87f6..64fe94c02 100644 --- a/tests/authoring/Inline/AppliesToRole.fs +++ b/tests/authoring/Inline/AppliesToRole.fs @@ -30,7 +30,7 @@ This is an inline {applies_to}`stack: preview 9.1` element. markdown |> convertsToHtml """

This is an inline - Stack From 9e9be875c4492e524d48dacb3c40e982ac98233a Mon Sep 17 00:00:00 2001 From: Jan Calanog Date: Fri, 4 Jul 2025 11:01:13 +0200 Subject: [PATCH 11/11] Also handle the existing and still used 'planned' lifecycle --- .../Components/ApplicableToComponent.cshtml | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml b/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml index b434e4ab4..5309ec657 100644 --- a/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml +++ b/src/Elastic.Markdown/Myst/Components/ApplicableToComponent.cshtml @@ -269,18 +269,17 @@ } else { - if (applicability.Lifecycle is ProductLifecycle.GenerallyAvailable or ProductLifecycle.Beta or ProductLifecycle.TechnicalPreview) + tooltipText = applicability.Lifecycle switch { - tooltipText = $"We plan to add this functionality in a future {keyFull} update. Subject to change."; - } - else if (applicability.Lifecycle is ProductLifecycle.Deprecated) - { - tooltipText = $"We plan to deprecate this functionality in a future {keyFull} update. Subject to change."; - } - else if (applicability.Lifecycle is ProductLifecycle.Removed) - { - tooltipText = $"We plan to remove this functionality in a future {keyFull} update. Subject to change."; - } + ProductLifecycle.GenerallyAvailable + or ProductLifecycle.Beta + or ProductLifecycle.TechnicalPreview + or ProductLifecycle.Planned => + $"We plan to add this functionality in a future {keyFull} update. Subject to change.", + ProductLifecycle.Deprecated => $"We plan to deprecate this functionality in a future {keyFull} update. Subject to change.", + ProductLifecycle.Removed => $"We plan to remove this functionality in a future {keyFull} update. Subject to change.", + _ => tooltipText + }; } } @@ -314,6 +313,7 @@ : "Planned", ProductLifecycle.Deprecated => "Deprecation planned", ProductLifecycle.Removed => "Removal planned", + ProductLifecycle.Planned => "Planned", _ => badgeText }; }