Skip to content
11 changes: 10 additions & 1 deletion src/polyglot-notebooks-vscode-common/src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,15 @@ async function activateCore(context: vscode.ExtensionContext, diagnosticsChannel

await waitForSdkPackExtension();

// show deprecation notice on first activation
const deprecationShownKey = 'polyglotNotebooks.deprecationNoticeShown';
const hasShownDeprecation = context.globalState.get<boolean>(deprecationShownKey, false);
if (!hasShownDeprecation) {
const helpServiceInstance = new helpService.HelpService(context);
await helpServiceInstance.showHelpPage(helpService.Deprecation);
await context.globalState.update(deprecationShownKey, true);
}

// this must happen early, because some following functions use the acquisition command
await registerAcquisitionCommands(context, diagnosticsChannel);

Expand All @@ -119,7 +128,7 @@ async function activateCore(context: vscode.ExtensionContext, diagnosticsChannel
vscode.window.showErrorMessage(`Please install the .NET SDK version ${minDotNetSdkVersion} from https://dotnet.microsoft.com/en-us/download/dotnet/${minDotNetSdkVersion}`);
}

if (showHelpPage) {
if (showHelpPage && hasShownDeprecation) {
const helpServiceInstance = new helpService.HelpService(context);
await helpServiceInstance.showHelpPageAndThrow(helpService.DotNetVersion);
}
Expand Down
10 changes: 8 additions & 2 deletions src/polyglot-notebooks-vscode-common/src/helpService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,24 @@ import * as path from 'path';
import * as vscode from 'vscode';

export const DotNetVersion = 'DotNetVersion';
export const Deprecation = 'Polyglot Notebooks Deprecation';

export type HelpPage =
typeof DotNetVersion;
typeof DotNetVersion |
typeof Deprecation;

export class HelpService {
constructor(private readonly context: vscode.ExtensionContext) {
}

async showHelpPageAndThrow(page: HelpPage): Promise<void> {
async showHelpPage(page: HelpPage): Promise<void> {
const helpPagePath = getHelpPagePath(this.context, page);
const helpPageUri = vscode.Uri.file(helpPagePath);
await vscode.commands.executeCommand('markdown.showPreview', helpPageUri);
}

async showHelpPageAndThrow(page: HelpPage): Promise<void> {
await this.showHelpPage(page);
throw new Error('Error activating extension, see the displayed help page for more details.');
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# 📢 DEPRECATION ANNOUNCEMENT: Polyglot Notebooks

The Polyglot Notebooks extension will be deprecated on **March 27th, 2026**.

## ❓What This Means

- The extension will not be disabled or uninstalled from your VS Code.
- No new features will be added to Polyglot Notebooks or the .NET Interactive kernel for Jupyter notebook usage.
- Bug fixes and support will end immediately.
- The extension will be marked as deprecated.
- Issues in this repository related to the Polyglot Notebooks extension will be closed as not planned.
- Issues in this repository related to using .NET Interactive as a kernel in other Jupyter frontends will be closed as not planned.

## ✅ Recommended Action

1. Convert/migrate your existing notebooks.
- **If you were primarily working with C#:** Use our newly introduced [file-based apps!](https://learn.microsoft.com/en-us/dotnet/core/sdk/file-based-apps) File-based apps let you build, run, and publish C# apps **_from a single C# file_** without creating a traditional project file. This makes file-based apps powerful for quick learning and experimenting just like Polyglot Notebooks! Follow your first tutorial [here](https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/tutorials/file-based-programs).
- **If you were primarily working with other languages:** We recommend using the [VS Code Jupyter extension](https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter) for your notebook needs. It supports a wide range of languages and offers robust features for notebook development. You can file requests for new features or report bugs in their [VS Code Jupyter GitHub Repo](https://github.com/microsoft/vscode-jupyter).
1. Uninstall the Polyglot Notebooks extension.

## 🙏 Thank You

We want to express our sincere gratitude to all the users who have supported and contributed to the Polyglot Notebooks extension. Your feedback, bug reports, and feature requests have been invaluable in shaping the extension.

While Polyglot Notebooks may be deprecated, our mission to make C# development delightful and accessible continues in our flagship products; we're carrying that work forward through [C# Dev Kit](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit) and the next generation of AI-powered coding experiences.
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# 📢 DEPRECATION ANNOUNCEMENT: Polyglot Notebooks

The Polyglot Notebooks Extension will be deprecated on **March 27th, 2026**.

## ❓What This Means

- The extension will not be disabled or uninstalled from your VS Code.
- No new features will be added to Polyglot Notebooks or the .NET Interactive kernel for Jupyter notebook usage.
- Bug fixes and support will end immediately.
- The extension will be marked as deprecated.
- Issues in this repository related to the Polyglot Notebooks extension will be closed as not planned.
- Issues in this repository related to using .NET Interactive as a kernel in other Jupyter frontends will be closed as not planned.

## ✅ Recommended Action

1. Convert/migrate your existing notebooks.
- **If you were primarily working with C#:** Use our newly introduced [file-based apps!](https://learn.microsoft.com/en-us/dotnet/core/sdk/file-based-apps) File-based apps let you build, run, and publish C# apps **_from a single C# file_** without creating a traditional project file. This makes file-based apps powerful for quick learning and experimenting just like Polyglot Notebooks! Follow your first tutorial [here](https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/tutorials/file-based-programs).
- **If you were primarily working with other languages:** We recommend using the [VS Code Jupyter extension](https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter) for your notebook needs. It supports a wide range of languages and offers robust features for notebook development. You can file requests for new features or report bugs in their [VS Code Jupyter GitHub Repo](https://github.com/microsoft/vscode-jupyter).
1. Uninstall the Polyglot Notebooks extension.

## 🙏 Thank You

We want to express our sincere gratitude to all the users who have supported and contributed to the Polyglot Notebooks Extension. Your feedback, bug reports, and feature requests have been invaluable in shaping the extension.

While Polyglot Notebooks may be deprecated, our mission to make C# development delightful and accessible continues in our flagship products; we're carrying that work forward through [C# Dev Kit](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit) and the next generation of AI-powered coding experiences.
Loading