From f518cb50bc5498b0f7de619daa177c49b4201783 Mon Sep 17 00:00:00 2001 From: Arkaprava De Date: Fri, 7 Nov 2025 14:38:06 -0800 Subject: [PATCH] (bug fix): Skipping sagemaker extension activation for non sagemaker environments --- .../sagemaker-extension/src/extension.ts | 7 ++++++ .../src/constants.ts | 4 ++-- .../src/extension.ts | 3 +++ patches/sagemaker-extension.diff | 23 ++++++++++++------- patches/sagemaker-extensions-sync.patch | 5 +++- 5 files changed, 31 insertions(+), 11 deletions(-) diff --git a/patched-vscode/extensions/sagemaker-extension/src/extension.ts b/patched-vscode/extensions/sagemaker-extension/src/extension.ts index e40febdd7..c4607236d 100644 --- a/patched-vscode/extensions/sagemaker-extension/src/extension.ts +++ b/patched-vscode/extensions/sagemaker-extension/src/extension.ts @@ -164,6 +164,13 @@ function renderExtensionAutoUpgradeDisabledNotification() { export function activate(context: vscode.ExtensionContext) { + // this extension will only activate within a sagemaker app + const isSageMakerApp = !!process.env?.SAGEMAKER_APP_TYPE_LOWERCASE; + if (!isSageMakerApp) { + console.log('Skipping activation of Sagemaker Extension...'); + return; + } + // TODO: log activation of extension console.log('Activating Sagemaker Extension...'); diff --git a/patched-vscode/extensions/sagemaker-extensions-sync/src/constants.ts b/patched-vscode/extensions/sagemaker-extensions-sync/src/constants.ts index 1a7fdcb84..1e267ebf3 100644 --- a/patched-vscode/extensions/sagemaker-extensions-sync/src/constants.ts +++ b/patched-vscode/extensions/sagemaker-extensions-sync/src/constants.ts @@ -1,6 +1,6 @@ // constants -export const PERSISTENT_VOLUME_EXTENSIONS_DIR = "/home/sagemaker-user/sagemaker-code-editor-server-data/extensions"; -export const IMAGE_EXTENSIONS_DIR = "/opt/amazon/sagemaker/sagemaker-code-editor-server-data/extensions"; +export const PERSISTENT_VOLUME_EXTENSIONS_DIR = process.env.PERSISTENT_VOLUME_EXTENSIONS_DIR || "/home/sagemaker-user/sagemaker-code-editor-server-data/extensions"; +export const IMAGE_EXTENSIONS_DIR = process.env.IMAGE_EXTENSIONS_DIR || "/opt/amazon/sagemaker/sagemaker-code-editor-server-data/extensions"; export const LOG_PREFIX = "[sagemaker-extensions-sync]"; export class ExtensionInfo { diff --git a/patched-vscode/extensions/sagemaker-extensions-sync/src/extension.ts b/patched-vscode/extensions/sagemaker-extensions-sync/src/extension.ts index f9f44fd56..a6a498be0 100644 --- a/patched-vscode/extensions/sagemaker-extensions-sync/src/extension.ts +++ b/patched-vscode/extensions/sagemaker-extensions-sync/src/extension.ts @@ -19,9 +19,12 @@ export async function activate() { // this extension will only activate within a sagemaker app const isSageMakerApp = !!process.env?.SAGEMAKER_APP_TYPE_LOWERCASE; if (!isSageMakerApp) { + console.log('Skipping activation of Sagemaker Extension Sync...'); return; } + console.log('Activating Sagemaker Extension Sync...'); + // get installed extensions. this could be different from pvExtensions b/c vscode sometimes doesn't delete the assets // for an old extension when uninstalling or changing versions const installedExtensions = new Set(await getInstalledExtensions()); diff --git a/patches/sagemaker-extension.diff b/patches/sagemaker-extension.diff index 0fbc636a8..d687650da 100644 --- a/patches/sagemaker-extension.diff +++ b/patches/sagemaker-extension.diff @@ -2,7 +2,7 @@ Index: sagemaker-code-editor/vscode/extensions/sagemaker-extension/src/extension =================================================================== --- /dev/null +++ sagemaker-code-editor/vscode/extensions/sagemaker-extension/src/extension.ts -@@ -0,0 +1,172 @@ +@@ -0,0 +1,179 @@ +import * as vscode from 'vscode'; +import * as fs from 'fs'; +import { SessionWarning } from "./sessionWarning"; @@ -160,6 +160,13 @@ Index: sagemaker-code-editor/vscode/extensions/sagemaker-extension/src/extension + +export function activate(context: vscode.ExtensionContext) { + ++ // this extension will only activate within a sagemaker app ++ const isSageMakerApp = !!process.env?.SAGEMAKER_APP_TYPE_LOWERCASE; ++ if (!isSageMakerApp) { ++ console.log('Skipping activation of Sagemaker Extension...'); ++ return; ++ } ++ + // TODO: log activation of extension + console.log('Activating Sagemaker Extension...'); + @@ -303,14 +310,14 @@ Index: sagemaker-code-editor/vscode/build/gulpfile.extensions.js =================================================================== --- sagemaker-code-editor.orig/vscode/build/gulpfile.extensions.js +++ sagemaker-code-editor/vscode/build/gulpfile.extensions.js -@@ -63,6 +63,7 @@ const compilations = [ - 'extensions/references-view/tsconfig.json', - 'extensions/search-result/tsconfig.json', - 'extensions/simple-browser/tsconfig.json', +@@ -60,6 +60,7 @@ const compilations = [ + 'extensions/references-view/tsconfig.json', + 'extensions/search-result/tsconfig.json', + 'extensions/simple-browser/tsconfig.json', + 'extensions/sagemaker-extension/tsconfig.json', - 'extensions/tunnel-forwarding/tsconfig.json', - 'extensions/typescript-language-features/test-workspace/tsconfig.json', - 'extensions/typescript-language-features/web/tsconfig.json', + 'extensions/tunnel-forwarding/tsconfig.json', + 'extensions/typescript-language-features/test-workspace/tsconfig.json', + 'extensions/typescript-language-features/web/tsconfig.json', Index: sagemaker-code-editor/vscode/extensions/sagemaker-extension/README.md =================================================================== --- /dev/null diff --git a/patches/sagemaker-extensions-sync.patch b/patches/sagemaker-extensions-sync.patch index 3bdeee9cb..cca76566c 100644 --- a/patches/sagemaker-extensions-sync.patch +++ b/patches/sagemaker-extensions-sync.patch @@ -180,7 +180,7 @@ Index: sagemaker-code-editor/vscode/extensions/sagemaker-extensions-sync/src/ext =================================================================== --- /dev/null +++ sagemaker-code-editor/vscode/extensions/sagemaker-extensions-sync/src/extension.ts -@@ -0,0 +1,100 @@ +@@ -0,0 +1,103 @@ +import * as process from "process"; +import * as vscode from 'vscode'; + @@ -202,9 +202,12 @@ Index: sagemaker-code-editor/vscode/extensions/sagemaker-extensions-sync/src/ext + // this extension will only activate within a sagemaker app + const isSageMakerApp = !!process.env?.SAGEMAKER_APP_TYPE_LOWERCASE; + if (!isSageMakerApp) { ++ console.log('Skipping activation of Sagemaker Extension Sync...'); + return; + } + ++ console.log('Activating Sagemaker Extension Sync...'); ++ + // get installed extensions. this could be different from pvExtensions b/c vscode sometimes doesn't delete the assets + // for an old extension when uninstalling or changing versions + const installedExtensions = new Set(await getInstalledExtensions());