From d6c5ea13cfee55f076e303466268bb5925e45134 Mon Sep 17 00:00:00 2001
From: Corina <14900841+corinagum@users.noreply.github.com>
Date: Fri, 9 Oct 2026 09:07:55 -0700
Subject: [PATCH] Release extended markdown as GA
---
samples/HtmlWidgetBot/HtmlWidgetBot.csproj | 2 +-
samples/StreamingBot/Program.cs | 2 --
samples/TeamsBot/Program.cs | 2 --
.../Handlers/MessageHandlers.Activities.cs | 9 ---------
test/IntegrationTests/IntegrationTests.csproj | 2 +-
.../MessageActivityTests.cs | 2 --
.../Microsoft.Teams.Apps.UnitTests.csproj | 2 +-
7 files changed, 3 insertions(+), 18 deletions(-)
diff --git a/samples/HtmlWidgetBot/HtmlWidgetBot.csproj b/samples/HtmlWidgetBot/HtmlWidgetBot.csproj
index c46f1df6b..a718b9f3e 100644
--- a/samples/HtmlWidgetBot/HtmlWidgetBot.csproj
+++ b/samples/HtmlWidgetBot/HtmlWidgetBot.csproj
@@ -4,7 +4,7 @@
net10.0
enable
enable
- $(NoWarn);ExperimentalTeamsHtmlWidget;ExperimentalTeamsExtendedMarkdown
+ $(NoWarn);ExperimentalTeamsHtmlWidget
diff --git a/samples/StreamingBot/Program.cs b/samples/StreamingBot/Program.cs
index 61c5ba37f..228615e5c 100644
--- a/samples/StreamingBot/Program.cs
+++ b/samples/StreamingBot/Program.cs
@@ -200,7 +200,6 @@ static async Task RunExtendedMarkdownDemoAsync(TeamsStreamingWriter writer, Canc
"- [x] Strikethrough renders too\n",
];
-#pragma warning disable ExperimentalTeamsExtendedMarkdown
// The informative update carries its own format (plain markdown here); the streamed chunks
// set extended markdown per-chunk via MessageActivityInput, which also formats the final message.
await writer.SendInformativeUpdateAsync("Starting the *extended* markdown stream…", TextFormats.Markdown, cancellationToken);
@@ -211,7 +210,6 @@ static async Task RunExtendedMarkdownDemoAsync(TeamsStreamingWriter writer, Canc
await Task.Delay(500, cancellationToken);
await writer.AppendResponseAsync(new MessageActivityInput().WithText(message, TextFormats.ExtendedMarkdown), cancellationToken);
}
-#pragma warning restore ExperimentalTeamsExtendedMarkdown
await writer.FinalizeResponseAsync(cancellationToken: cancellationToken);
}
diff --git a/samples/TeamsBot/Program.cs b/samples/TeamsBot/Program.cs
index 05aca836a..ae06356ad 100644
--- a/samples/TeamsBot/Program.cs
+++ b/samples/TeamsBot/Program.cs
@@ -61,7 +61,6 @@ await context.SendAsync(
// Extended Markdown handler: matches "extendedMarkdown" (case-insensitive)
teamsApp.OnMessage("(?i)^extendedMarkdown$", async (context, cancellationToken) =>
{
-#pragma warning disable ExperimentalTeamsExtendedMarkdown
MessageActivityInput extendedMarkdownMessage = new MessageActivityInput()
.WithText("""
# Extended Markdown Demo
@@ -76,7 +75,6 @@ await context.SendAsync(
$$E = mc^2$$
""", TextFormats.ExtendedMarkdown)
;
-#pragma warning restore ExperimentalTeamsExtendedMarkdown
await context.SendAsync(extendedMarkdownMessage, cancellationToken);
});
diff --git a/src/Microsoft.Teams.Apps/Handlers/MessageHandlers.Activities.cs b/src/Microsoft.Teams.Apps/Handlers/MessageHandlers.Activities.cs
index 03d8717bc..8281486a2 100644
--- a/src/Microsoft.Teams.Apps/Handlers/MessageHandlers.Activities.cs
+++ b/src/Microsoft.Teams.Apps/Handlers/MessageHandlers.Activities.cs
@@ -1,7 +1,6 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
-using System.Diagnostics.CodeAnalysis;
using System.Text.Json.Serialization;
using System.Text.RegularExpressions;
using Microsoft.Teams.Apps.Schema;
@@ -145,10 +144,6 @@ public class TextFormat(string value) : StringEnum(value)
/// Extended markdown text format. Supports GFM tables, LaTeX math blocks,
/// and other rich content beyond standard markdown.
///
- ///
- /// This format is currently in public preview and may be subject to change.
- ///
- [Experimental("ExperimentalTeamsExtendedMarkdown")]
public static readonly TextFormat ExtendedMarkdown = new("extendedmarkdown");
}
@@ -176,10 +171,6 @@ public static class TextFormats
/// Extended markdown text format. Supports GFM tables, LaTeX math blocks,
/// and other rich content beyond standard markdown.
///
- ///
- /// This format is currently in public preview and may be subject to change.
- ///
- [Experimental("ExperimentalTeamsExtendedMarkdown")]
public static TextFormat ExtendedMarkdown => TextFormat.ExtendedMarkdown;
}
diff --git a/test/IntegrationTests/IntegrationTests.csproj b/test/IntegrationTests/IntegrationTests.csproj
index 6f9240856..f2ceeaf85 100644
--- a/test/IntegrationTests/IntegrationTests.csproj
+++ b/test/IntegrationTests/IntegrationTests.csproj
@@ -5,7 +5,7 @@
enable
enable
false
- $(NoWarn);ExperimentalTeamsHtmlWidget;ExperimentalTeamsExtendedMarkdown;CS0618
+ $(NoWarn);ExperimentalTeamsHtmlWidget;CS0618
diff --git a/test/Microsoft.Teams.Apps.UnitTests/MessageActivityTests.cs b/test/Microsoft.Teams.Apps.UnitTests/MessageActivityTests.cs
index ead5f017e..93cf91ce2 100644
--- a/test/Microsoft.Teams.Apps.UnitTests/MessageActivityTests.cs
+++ b/test/Microsoft.Teams.Apps.UnitTests/MessageActivityTests.cs
@@ -69,9 +69,7 @@ public void MessageActivity_Constants_TextFormats()
activity.TextFormat = TextFormats.Xml;
Assert.Equal("xml", activity.TextFormat!.ToString());
-#pragma warning disable ExperimentalTeamsExtendedMarkdown
activity.TextFormat = TextFormats.ExtendedMarkdown;
-#pragma warning restore ExperimentalTeamsExtendedMarkdown
Assert.Equal("extendedmarkdown", activity.TextFormat!.ToString());
}
diff --git a/test/Microsoft.Teams.Apps.UnitTests/Microsoft.Teams.Apps.UnitTests.csproj b/test/Microsoft.Teams.Apps.UnitTests/Microsoft.Teams.Apps.UnitTests.csproj
index e739d652e..f8cb70125 100644
--- a/test/Microsoft.Teams.Apps.UnitTests/Microsoft.Teams.Apps.UnitTests.csproj
+++ b/test/Microsoft.Teams.Apps.UnitTests/Microsoft.Teams.Apps.UnitTests.csproj
@@ -5,7 +5,7 @@
enable
enable
false
- $(NoWarn);ExperimentalTeamsHtmlWidget;ExperimentalTeamsExtendedMarkdown;ExperimentalTeamsSocketMode
+ $(NoWarn);ExperimentalTeamsHtmlWidget;ExperimentalTeamsSocketMode