diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f82be05653..1f81453c02 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,7 +54,7 @@ jobs: # {{SQL CARBON EDIT}} Add coveralls. We merge first to get around issue where parallel builds weren't being combined correctly - run: | mkdir .build/coverage-combined - cat .build/coverage-single/lcov.info ./extensions/admin-tool-ext-win/coverage/lcov.info ./extensions/agent/coverage/lcov.info ./extensions/azurecore/coverage/lcov.info ./extensions/cms/coverage/lcov.info ./extensions/dacpac/coverage/lcov.info ./extensions/schema-compare/coverage/lcov.info ./extensions/notebook/coverage/lcov.info ./extensions/resource-deployment/coverage/lcov.info ./extensions/machine-learning-services/coverage/lcov.info > .build/coverage-combined/lcov.info + cat .build/coverage-single/lcov.info ./extensions/admin-tool-ext-win/coverage/lcov.info ./extensions/agent/coverage/lcov.info ./extensions/azurecore/coverage/lcov.info ./extensions/cms/coverage/lcov.info ./extensions/dacpac/coverage/lcov.info ./extensions/schema-compare/coverage/lcov.info ./extensions/notebook/coverage/lcov.info ./extensions/resource-deployment/coverage/lcov.info ./extensions/machine-learning/coverage/lcov.info > .build/coverage-combined/lcov.info name: Merge coverage reports - name: Upload Code Coverage uses: coverallsapp/github-action@v1.0.1 diff --git a/build/.cachesalt b/build/.cachesalt index eaf9cd6394..79cdde85d1 100644 --- a/build/.cachesalt +++ b/build/.cachesalt @@ -1 +1 @@ -2020-04-28T04:20:58.491Z +2020-04-29T05:20:58.491Z diff --git a/build/lib/extensions.js b/build/lib/extensions.js index be3abd23f4..637ff6b32d 100644 --- a/build/lib/extensions.js +++ b/build/lib/extensions.js @@ -206,7 +206,7 @@ const externalExtensions = [ 'query-history', 'liveshare', 'sql-database-projects', - 'machine-learning-services' + 'machine-learning' ]; // extensions that require a rebuild since they have native parts const rebuildExtensions = [ diff --git a/build/lib/extensions.ts b/build/lib/extensions.ts index 7ae12f2764..47cc41a510 100644 --- a/build/lib/extensions.ts +++ b/build/lib/extensions.ts @@ -241,7 +241,7 @@ const externalExtensions = [ 'query-history', 'liveshare', 'sql-database-projects', - 'machine-learning-services' + 'machine-learning' ]; // extensions that require a rebuild since they have native parts diff --git a/extensions/machine-learning-services/images/background.svg b/extensions/machine-learning-services/images/background.svg deleted file mode 100644 index 50fd10a899..0000000000 --- a/extensions/machine-learning-services/images/background.svg +++ /dev/null @@ -1 +0,0 @@ -ADS ML Extension_background_image \ No newline at end of file diff --git a/extensions/machine-learning-services/images/extensionIcon.png b/extensions/machine-learning-services/images/extensionIcon.png deleted file mode 100644 index 00f3b452c8..0000000000 Binary files a/extensions/machine-learning-services/images/extensionIcon.png and /dev/null differ diff --git a/extensions/machine-learning-services/images/makePredictions.svg b/extensions/machine-learning-services/images/makePredictions.svg deleted file mode 100644 index fd0bb4ff6f..0000000000 --- a/extensions/machine-learning-services/images/makePredictions.svg +++ /dev/null @@ -1 +0,0 @@ -j_ \ No newline at end of file diff --git a/extensions/machine-learning-services/images/manageModels.svg b/extensions/machine-learning-services/images/manageModels.svg deleted file mode 100644 index 1461d0f8cc..0000000000 --- a/extensions/machine-learning-services/images/manageModels.svg +++ /dev/null @@ -1 +0,0 @@ -v_ \ No newline at end of file diff --git a/extensions/machine-learning-services/.gitignore b/extensions/machine-learning/.gitignore similarity index 100% rename from extensions/machine-learning-services/.gitignore rename to extensions/machine-learning/.gitignore diff --git a/extensions/machine-learning-services/.vscodeignore b/extensions/machine-learning/.vscodeignore similarity index 100% rename from extensions/machine-learning-services/.vscodeignore rename to extensions/machine-learning/.vscodeignore diff --git a/extensions/machine-learning-services/README.md b/extensions/machine-learning/README.md similarity index 100% rename from extensions/machine-learning-services/README.md rename to extensions/machine-learning/README.md diff --git a/extensions/machine-learning-services/config.json b/extensions/machine-learning/config.json similarity index 100% rename from extensions/machine-learning-services/config.json rename to extensions/machine-learning/config.json diff --git a/extensions/machine-learning-services/coverConfig.json b/extensions/machine-learning/coverConfig.json similarity index 100% rename from extensions/machine-learning-services/coverConfig.json rename to extensions/machine-learning/coverConfig.json diff --git a/extensions/machine-learning-services/images/arrow.svg b/extensions/machine-learning/images/arrow.svg similarity index 100% rename from extensions/machine-learning-services/images/arrow.svg rename to extensions/machine-learning/images/arrow.svg diff --git a/extensions/machine-learning/images/background.svg b/extensions/machine-learning/images/background.svg new file mode 100644 index 0000000000..ba405060ff --- /dev/null +++ b/extensions/machine-learning/images/background.svg @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extensions/machine-learning-services/images/createNotebook.svg b/extensions/machine-learning/images/createNotebook.svg similarity index 100% rename from extensions/machine-learning-services/images/createNotebook.svg rename to extensions/machine-learning/images/createNotebook.svg diff --git a/extensions/machine-learning-services/images/dark/delete_inverse.svg b/extensions/machine-learning/images/dark/delete_inverse.svg similarity index 100% rename from extensions/machine-learning-services/images/dark/delete_inverse.svg rename to extensions/machine-learning/images/dark/delete_inverse.svg diff --git a/extensions/machine-learning-services/images/dark/edit_inverse.svg b/extensions/machine-learning/images/dark/edit_inverse.svg similarity index 100% rename from extensions/machine-learning-services/images/dark/edit_inverse.svg rename to extensions/machine-learning/images/dark/edit_inverse.svg diff --git a/extensions/machine-learning/images/dark/showLess_inverse.svg b/extensions/machine-learning/images/dark/showLess_inverse.svg new file mode 100644 index 0000000000..0ac69e1ad5 --- /dev/null +++ b/extensions/machine-learning/images/dark/showLess_inverse.svg @@ -0,0 +1,3 @@ + + + diff --git a/extensions/machine-learning/images/dark/showMore_inverse.svg b/extensions/machine-learning/images/dark/showMore_inverse.svg new file mode 100644 index 0000000000..df8b0a3dfc --- /dev/null +++ b/extensions/machine-learning/images/dark/showMore_inverse.svg @@ -0,0 +1,3 @@ + + + diff --git a/extensions/machine-learning/images/extensionIcon.png b/extensions/machine-learning/images/extensionIcon.png new file mode 100644 index 0000000000..1af4f4325a Binary files /dev/null and b/extensions/machine-learning/images/extensionIcon.png differ diff --git a/extensions/machine-learning/images/extensionIcon.svg b/extensions/machine-learning/images/extensionIcon.svg new file mode 100644 index 0000000000..e6d600aeae --- /dev/null +++ b/extensions/machine-learning/images/extensionIcon.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extensions/machine-learning-services/images/installPackages.svg b/extensions/machine-learning/images/installPackages.svg similarity index 100% rename from extensions/machine-learning-services/images/installPackages.svg rename to extensions/machine-learning/images/installPackages.svg diff --git a/extensions/machine-learning-services/images/light/delete.svg b/extensions/machine-learning/images/light/delete.svg similarity index 100% rename from extensions/machine-learning-services/images/light/delete.svg rename to extensions/machine-learning/images/light/delete.svg diff --git a/extensions/machine-learning-services/images/light/edit.svg b/extensions/machine-learning/images/light/edit.svg similarity index 100% rename from extensions/machine-learning-services/images/light/edit.svg rename to extensions/machine-learning/images/light/edit.svg diff --git a/extensions/machine-learning/images/light/showLess.svg b/extensions/machine-learning/images/light/showLess.svg new file mode 100644 index 0000000000..03dfb7b72e --- /dev/null +++ b/extensions/machine-learning/images/light/showLess.svg @@ -0,0 +1,3 @@ + + + diff --git a/extensions/machine-learning/images/light/showMore.svg b/extensions/machine-learning/images/light/showMore.svg new file mode 100644 index 0000000000..c5db43a286 --- /dev/null +++ b/extensions/machine-learning/images/light/showMore.svg @@ -0,0 +1,3 @@ + + + diff --git a/extensions/machine-learning-services/images/linkIcon.svg b/extensions/machine-learning/images/linkIcon.svg similarity index 100% rename from extensions/machine-learning-services/images/linkIcon.svg rename to extensions/machine-learning/images/linkIcon.svg diff --git a/extensions/machine-learning/images/makePredictions.svg b/extensions/machine-learning/images/makePredictions.svg new file mode 100644 index 0000000000..40c3d4ab74 --- /dev/null +++ b/extensions/machine-learning/images/makePredictions.svg @@ -0,0 +1 @@ +m \ No newline at end of file diff --git a/extensions/machine-learning/images/manageModels.svg b/extensions/machine-learning/images/manageModels.svg new file mode 100644 index 0000000000..bed7f9f5f7 --- /dev/null +++ b/extensions/machine-learning/images/manageModels.svg @@ -0,0 +1 @@ +j_ \ No newline at end of file diff --git a/extensions/machine-learning-services/images/registerRuntime.svg b/extensions/machine-learning/images/registerRuntime.svg similarity index 100% rename from extensions/machine-learning-services/images/registerRuntime.svg rename to extensions/machine-learning/images/registerRuntime.svg diff --git a/extensions/machine-learning-services/images/video1.svg b/extensions/machine-learning/images/video1.svg similarity index 100% rename from extensions/machine-learning-services/images/video1.svg rename to extensions/machine-learning/images/video1.svg diff --git a/extensions/machine-learning-services/images/video2.svg b/extensions/machine-learning/images/video2.svg similarity index 100% rename from extensions/machine-learning-services/images/video2.svg rename to extensions/machine-learning/images/video2.svg diff --git a/extensions/machine-learning-services/package.json b/extensions/machine-learning/package.json similarity index 89% rename from extensions/machine-learning-services/package.json rename to extensions/machine-learning/package.json index 672e779c19..ae272ca2ab 100644 --- a/extensions/machine-learning-services/package.json +++ b/extensions/machine-learning/package.json @@ -1,5 +1,5 @@ { - "name": "machine-learning-services", + "name": "machine-learning", "displayName": "%displayName%", "description": "%description%", "version": "1.0.0", @@ -81,14 +81,6 @@ "dark": "./images/registerModel.svg" } }, - { - "command": "mls.command.manageLanguages", - "title": "%mls.command.manageLanguages%", - "icon": { - "light": "./images/registerRuntime.svg", - "dark": "./images/registerRuntime.svg" - } - }, { "command": "mls.command.dependencies", "title": "%mls.command.dependencies%" @@ -100,7 +92,11 @@ "description": "%description%", "provider": "MSSQL", "title": "%displayName%", - "when": "connectionProvider == 'MSSQL' && !mssql:iscloud && dashboardContext == 'server'", + "icon": { + "light": "./images/extensionIcon.svg", + "dark": "./images/extensionIcon.svg" + }, + "when": "connectionProvider == 'MSSQL' && !mssql:iscloud", "container": { "grid-container": [ { @@ -109,8 +105,7 @@ "col": 0, "widget": { "tasks-widget": [ - "mls.command.managePackages", - "mls.command.manageLanguages" + "mls.command.managePackages" ] } }, @@ -118,8 +113,8 @@ "name": "", "row": 0, "col": 1, - "rowspan": 3, - "colspan": 4, + "rowspan": 4, + "colspan": 3, "widget": { "modelview": { "id":"mls.dashboard" diff --git a/extensions/machine-learning-services/package.nls.json b/extensions/machine-learning/package.nls.json similarity index 68% rename from extensions/machine-learning-services/package.nls.json rename to extensions/machine-learning/package.nls.json index 5ad08fabf3..29b7e46b11 100644 --- a/extensions/machine-learning-services/package.nls.json +++ b/extensions/machine-learning/package.nls.json @@ -1,6 +1,6 @@ { - "displayName": "SQL Machine Learning", - "description": "SQL Machine Learning", + "displayName": "Machine Learning", + "description": "Machine Learning", "title.tasks": "Tasks", "title.documents": "Documents", "title.configurations": "Configurations", @@ -10,10 +10,10 @@ "mls.command.predictModel": "Make prediction", "mls.command.manageModels": "Manage models", "mls.command.importModel": "Import model", - "mls.configuration.title": "SQL Machine Learning Configurations", - "mls.pythonPath.description": "Local path to a preexisting Python installation used by SQL Machine Learning.", + "mls.configuration.title": "Machine Learning Configurations", + "mls.pythonPath.description": "Local path to a preexisting Python installation used by Machine Learning.", "mls.enablePython.description": "Enable Python package management.", "mls.enableR.description": "Enable R package management.", - "mls.rPath.description": "Local path to a preexisting R installation used by SQL Machine Learning.", - "mls.command.dependencies": "Install SQL Machine Learning Dependencies" + "mls.rPath.description": "Local path to a preexisting R installation used by Machine Learning.", + "mls.command.dependencies": "Install Machine Learning Dependencies" } diff --git a/extensions/machine-learning-services/src/common/apiWrapper.ts b/extensions/machine-learning/src/common/apiWrapper.ts similarity index 100% rename from extensions/machine-learning-services/src/common/apiWrapper.ts rename to extensions/machine-learning/src/common/apiWrapper.ts diff --git a/extensions/machine-learning-services/src/common/constants.ts b/extensions/machine-learning/src/common/constants.ts similarity index 92% rename from extensions/machine-learning-services/src/common/constants.ts rename to extensions/machine-learning/src/common/constants.ts index 3d777fd8d8..637db20d4f 100644 --- a/extensions/machine-learning-services/src/common/constants.ts +++ b/extensions/machine-learning/src/common/constants.ts @@ -16,7 +16,7 @@ export const rLPackagedFolderName = 'r_packages'; export const mlEnableMlsCommand = 'mls.command.enableMls'; export const mlDisableMlsCommand = 'mls.command.disableMls'; -export const extensionOutputChannel = 'SQL Machine Learning'; +export const extensionOutputChannel = 'Machine Learning'; export const notebookExtensionName = 'Microsoft.notebook'; export const azureSubscriptionsCommand = 'azure.accounts.getSubscriptions'; export const azureResourceGroupsCommand = 'azure.accounts.getResourceGroups'; @@ -189,13 +189,19 @@ export function invalidImportTableSchemaError(databaseName: string | undefined, export const loadModelParameterFailedError = localize('models.loadModelParameterFailedError', "Failed to load model parameters'"); export const unsupportedModelParameterType = localize('models.unsupportedModelParameterType', "unsupported"); -export const dashboardTitle = localize('dashboardTitle', "SQL ML"); -export const dashboardDesc = localize('dashboardDesc', "Machine learning for SQL databases"); +export const dashboardTitle = localize('dashboardTitle', "Machine Learning"); +export const dashboardDesc = localize('dashboardDesc', "Machine Learning for SQL Databases"); export const dashboardLinksTitle = localize('dashboardLinksTitle', "Useful links"); export const dashboardVideoLinksTitle = localize('dashboardVideoLinksTitle', "Video tutorials"); +export const showMoreTitle = localize('showMoreTitle', "Show more"); +export const showLessTitle = localize('showLessTitle', "Show less"); export const learnMoreTitle = localize('learnMoreTitle', "Learn more"); -export const mlsInstallMlsDocTitle = localize('mlsInstallMlsDocTitle', "Install SQL Server Machine Learning Services"); -export const mlsInstallMlsDocDesc = localize('mlsInstallMlsDocDesc', "This document guides you in the installation of SQL Server Machine Learning Services. Python and R scripts can be executed in-database using Machine Learning Services."); +export const sqlMlDocTitle = localize('sqlMlDocTitle', "SQL machine learning documentation"); +export const sqlMlDocDesc = localize('sqlMlDocDesc', "Learn how to use machine learning in SQL Server and SQL on Azure, to run Python and R scripts on relational data."); +export const sqlMlsDocTitle = localize('sqlMlsDocTitle', "SQL Server Machine Learning Services (Python and R)"); +export const sqlMlsDocDesc = localize('sqlMlsDocDesc', "Get started with Machine Learning Services on SQL Server and how to install it on Windows and Linux."); +export const sqlMlsAzureDocTitle = localize('sqlMlsAzureDocTitle', "Machine Learning Services in Azure SQL Managed Instance (preview)"); +export const sqlMlsAzureDocDesc = localize('sqlMlsAzureDocDesc', "Get started with Machine Learning Services in Azure SQL Managed Instances."); export const mlsInstallOdbcDocTitle = localize('mlsInstallObdcDocTitle', "Install the Microsoft ODBC driver for SQL Server"); export const mlsInstallOdbcDocDesc = localize('mlsInstallOdbcDocDesc', "This document explains how to install the Microsoft ODBC Driver for SQL Server."); @@ -204,7 +210,9 @@ export const mlsInstallOdbcDocDesc = localize('mlsInstallOdbcDocDesc', "This doc export const mlsDocuments = 'https://docs.microsoft.com/sql/advanced-analytics/?view=sql-server-ver15'; export const odbcDriverWindowsDocuments = 'https://docs.microsoft.com/sql/connect/odbc/windows/microsoft-odbc-driver-for-sql-server-on-windows?view=sql-server-ver15'; export const odbcDriverLinuxDocuments = 'https://docs.microsoft.com/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15'; -export const installMlsLinuxDocs = 'https://docs.microsoft.com/sql/linux/sql-server-linux-setup-machine-learning?toc=%2fsql%2fadvanced-analytics%2ftoc.json&view=sql-server-ver15'; +export const mlDocLink = 'https://docs.microsoft.com/sql/machine-learning/'; +export const mlsDocLink = 'https://docs.microsoft.com/sql/machine-learning/what-is-sql-server-machine-learning'; +export const mlsAzureDocLink = 'https://docs.microsoft.com/azure/sql-database/sql-database-managed-instance-machine-learning-services-overview'; export const installMlsWindowsDocs = 'https://docs.microsoft.com/sql/advanced-analytics/install/sql-machine-learning-services-windows-install?view=sql-server-ver15'; // CSS Styles diff --git a/extensions/machine-learning-services/src/common/eventEmitter.ts b/extensions/machine-learning/src/common/eventEmitter.ts similarity index 100% rename from extensions/machine-learning-services/src/common/eventEmitter.ts rename to extensions/machine-learning/src/common/eventEmitter.ts diff --git a/extensions/machine-learning-services/src/common/httpClient.ts b/extensions/machine-learning/src/common/httpClient.ts similarity index 100% rename from extensions/machine-learning-services/src/common/httpClient.ts rename to extensions/machine-learning/src/common/httpClient.ts diff --git a/extensions/machine-learning-services/src/common/processService.ts b/extensions/machine-learning/src/common/processService.ts similarity index 100% rename from extensions/machine-learning-services/src/common/processService.ts rename to extensions/machine-learning/src/common/processService.ts diff --git a/extensions/machine-learning-services/src/common/queryRunner.ts b/extensions/machine-learning/src/common/queryRunner.ts similarity index 100% rename from extensions/machine-learning-services/src/common/queryRunner.ts rename to extensions/machine-learning/src/common/queryRunner.ts diff --git a/extensions/machine-learning-services/src/common/utils.ts b/extensions/machine-learning/src/common/utils.ts similarity index 100% rename from extensions/machine-learning-services/src/common/utils.ts rename to extensions/machine-learning/src/common/utils.ts diff --git a/extensions/machine-learning-services/src/configurations/config.ts b/extensions/machine-learning/src/configurations/config.ts similarity index 100% rename from extensions/machine-learning-services/src/configurations/config.ts rename to extensions/machine-learning/src/configurations/config.ts diff --git a/extensions/machine-learning-services/src/configurations/packageConfigModel.ts b/extensions/machine-learning/src/configurations/packageConfigModel.ts similarity index 100% rename from extensions/machine-learning-services/src/configurations/packageConfigModel.ts rename to extensions/machine-learning/src/configurations/packageConfigModel.ts diff --git a/extensions/machine-learning-services/src/controllers/mainController.ts b/extensions/machine-learning/src/controllers/mainController.ts similarity index 84% rename from extensions/machine-learning-services/src/controllers/mainController.ts rename to extensions/machine-learning/src/controllers/mainController.ts index e32ec99e2f..50ccb82f4a 100644 --- a/extensions/machine-learning-services/src/controllers/mainController.ts +++ b/extensions/machine-learning/src/controllers/mainController.ts @@ -6,7 +6,6 @@ import * as vscode from 'vscode'; import * as nbExtensionApis from '../typings/notebookServices'; -import * as mssql from '../../../mssql'; import { PackageManager } from '../packageManagement/packageManager'; import * as constants from '../common/constants'; import { ApiWrapper } from '../common/apiWrapper'; @@ -15,8 +14,6 @@ import { ProcessService } from '../common/processService'; import { Config } from '../configurations/config'; import { PackageManagementService } from '../packageManagement/packageManagementService'; import { HttpClient } from '../common/httpClient'; -import { LanguageController } from '../views/externalLanguages/languageController'; -import { LanguageService } from '../externalLanguage/languageService'; import { ModelManagementController } from '../views/models/modelManagementController'; import { DeployedModelService } from '../modelManagement/deployedModelService'; import { AzureModelRegistryService } from '../modelManagement/azureModelRegistryService'; @@ -74,18 +71,6 @@ export default class MainController implements vscode.Disposable { } } - /** - * Returns an instance of Server Installation from notebook extension - */ - private async getLanguageExtensionService(): Promise { - let mssqlExtension = this._apiWrapper.getExtension(mssql.extension.name)?.exports as mssql.IExtension; - if (mssqlExtension) { - return (mssqlExtension.languageExtension); - } else { - throw new Error(constants.mssqlExtensionNotLoaded); - } - } - private async initialize(): Promise { this._outputChannel.show(true); @@ -99,9 +84,6 @@ export default class MainController implements vscode.Disposable { // External Languages // - let mssqlService = await this.getLanguageExtensionService(); - let languagesModel = new LanguageService(this._apiWrapper, mssqlService); - let languageController = new LanguageController(this._apiWrapper, this._rootPath, languagesModel); let modelImporter = new ModelPythonClient(this._outputChannel, this._apiWrapper, this._processService, this._config, packageManager); let modelRecentService = new ModelConfigRecent(this._context.globalState); @@ -116,9 +98,6 @@ export default class MainController implements vscode.Disposable { let dashboardWidget = new DashboardWidget(this._apiWrapper, this._rootPath); dashboardWidget.register(); - this._apiWrapper.registerCommand(constants.mlManageLanguagesCommand, (async () => { - await languageController.manageLanguages(); - })); this._apiWrapper.registerCommand(constants.mlManageModelsCommand, (async () => { await modelManagementController.manageRegisteredModels(); })); @@ -134,9 +113,6 @@ export default class MainController implements vscode.Disposable { this._apiWrapper.registerTaskHandler(constants.mlManagePackagesCommand, async () => { await packageManager.managePackages(); }); - this._apiWrapper.registerTaskHandler(constants.mlManageLanguagesCommand, async () => { - await languageController.manageLanguages(); - }); } /** diff --git a/extensions/machine-learning-services/src/externalLanguage/languageService.ts b/extensions/machine-learning/src/externalLanguage/languageService.ts similarity index 100% rename from extensions/machine-learning-services/src/externalLanguage/languageService.ts rename to extensions/machine-learning/src/externalLanguage/languageService.ts diff --git a/extensions/machine-learning-services/src/main.ts b/extensions/machine-learning/src/main.ts similarity index 100% rename from extensions/machine-learning-services/src/main.ts rename to extensions/machine-learning/src/main.ts diff --git a/extensions/machine-learning-services/src/modelManagement/artifacts.ts b/extensions/machine-learning/src/modelManagement/artifacts.ts similarity index 100% rename from extensions/machine-learning-services/src/modelManagement/artifacts.ts rename to extensions/machine-learning/src/modelManagement/artifacts.ts diff --git a/extensions/machine-learning-services/src/modelManagement/assets.ts b/extensions/machine-learning/src/modelManagement/assets.ts similarity index 100% rename from extensions/machine-learning-services/src/modelManagement/assets.ts rename to extensions/machine-learning/src/modelManagement/assets.ts diff --git a/extensions/machine-learning-services/src/modelManagement/azureModelRegistryService.ts b/extensions/machine-learning/src/modelManagement/azureModelRegistryService.ts similarity index 100% rename from extensions/machine-learning-services/src/modelManagement/azureModelRegistryService.ts rename to extensions/machine-learning/src/modelManagement/azureModelRegistryService.ts diff --git a/extensions/machine-learning-services/src/modelManagement/deployedModelService.ts b/extensions/machine-learning/src/modelManagement/deployedModelService.ts similarity index 100% rename from extensions/machine-learning-services/src/modelManagement/deployedModelService.ts rename to extensions/machine-learning/src/modelManagement/deployedModelService.ts diff --git a/extensions/machine-learning-services/src/modelManagement/interfaces.ts b/extensions/machine-learning/src/modelManagement/interfaces.ts similarity index 100% rename from extensions/machine-learning-services/src/modelManagement/interfaces.ts rename to extensions/machine-learning/src/modelManagement/interfaces.ts diff --git a/extensions/machine-learning-services/src/modelManagement/mappers.ts b/extensions/machine-learning/src/modelManagement/mappers.ts similarity index 100% rename from extensions/machine-learning-services/src/modelManagement/mappers.ts rename to extensions/machine-learning/src/modelManagement/mappers.ts diff --git a/extensions/machine-learning-services/src/modelManagement/modelConfigRecent.ts b/extensions/machine-learning/src/modelManagement/modelConfigRecent.ts similarity index 100% rename from extensions/machine-learning-services/src/modelManagement/modelConfigRecent.ts rename to extensions/machine-learning/src/modelManagement/modelConfigRecent.ts diff --git a/extensions/machine-learning-services/src/modelManagement/modelPythonClient.ts b/extensions/machine-learning/src/modelManagement/modelPythonClient.ts similarity index 100% rename from extensions/machine-learning-services/src/modelManagement/modelPythonClient.ts rename to extensions/machine-learning/src/modelManagement/modelPythonClient.ts diff --git a/extensions/machine-learning-services/src/modelManagement/parameters.ts b/extensions/machine-learning/src/modelManagement/parameters.ts similarity index 100% rename from extensions/machine-learning-services/src/modelManagement/parameters.ts rename to extensions/machine-learning/src/modelManagement/parameters.ts diff --git a/extensions/machine-learning-services/src/modelManagement/queries.ts b/extensions/machine-learning/src/modelManagement/queries.ts similarity index 100% rename from extensions/machine-learning-services/src/modelManagement/queries.ts rename to extensions/machine-learning/src/modelManagement/queries.ts diff --git a/extensions/machine-learning-services/src/modelManagement/workspacesModels.ts b/extensions/machine-learning/src/modelManagement/workspacesModels.ts similarity index 100% rename from extensions/machine-learning-services/src/modelManagement/workspacesModels.ts rename to extensions/machine-learning/src/modelManagement/workspacesModels.ts diff --git a/extensions/machine-learning-services/src/packageManagement/packageManageProviderBase.ts b/extensions/machine-learning/src/packageManagement/packageManageProviderBase.ts similarity index 100% rename from extensions/machine-learning-services/src/packageManagement/packageManageProviderBase.ts rename to extensions/machine-learning/src/packageManagement/packageManageProviderBase.ts diff --git a/extensions/machine-learning-services/src/packageManagement/packageManagementService.ts b/extensions/machine-learning/src/packageManagement/packageManagementService.ts similarity index 100% rename from extensions/machine-learning-services/src/packageManagement/packageManagementService.ts rename to extensions/machine-learning/src/packageManagement/packageManagementService.ts diff --git a/extensions/machine-learning-services/src/packageManagement/packageManager.ts b/extensions/machine-learning/src/packageManagement/packageManager.ts similarity index 100% rename from extensions/machine-learning-services/src/packageManagement/packageManager.ts rename to extensions/machine-learning/src/packageManagement/packageManager.ts diff --git a/extensions/machine-learning-services/src/packageManagement/sqlPythonPackageManageProvider.ts b/extensions/machine-learning/src/packageManagement/sqlPythonPackageManageProvider.ts similarity index 100% rename from extensions/machine-learning-services/src/packageManagement/sqlPythonPackageManageProvider.ts rename to extensions/machine-learning/src/packageManagement/sqlPythonPackageManageProvider.ts diff --git a/extensions/machine-learning-services/src/packageManagement/sqlRPackageManageProvider.ts b/extensions/machine-learning/src/packageManagement/sqlRPackageManageProvider.ts similarity index 100% rename from extensions/machine-learning-services/src/packageManagement/sqlRPackageManageProvider.ts rename to extensions/machine-learning/src/packageManagement/sqlRPackageManageProvider.ts diff --git a/extensions/machine-learning-services/src/prediction/interfaces.ts b/extensions/machine-learning/src/prediction/interfaces.ts similarity index 100% rename from extensions/machine-learning-services/src/prediction/interfaces.ts rename to extensions/machine-learning/src/prediction/interfaces.ts diff --git a/extensions/machine-learning-services/src/prediction/predictService.ts b/extensions/machine-learning/src/prediction/predictService.ts similarity index 100% rename from extensions/machine-learning-services/src/prediction/predictService.ts rename to extensions/machine-learning/src/prediction/predictService.ts diff --git a/extensions/machine-learning-services/src/test/common/processService.test.ts b/extensions/machine-learning/src/test/common/processService.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/common/processService.test.ts rename to extensions/machine-learning/src/test/common/processService.test.ts diff --git a/extensions/machine-learning-services/src/test/index.ts b/extensions/machine-learning/src/test/index.ts similarity index 100% rename from extensions/machine-learning-services/src/test/index.ts rename to extensions/machine-learning/src/test/index.ts diff --git a/extensions/machine-learning-services/src/test/mainController.test.ts b/extensions/machine-learning/src/test/mainController.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/mainController.test.ts rename to extensions/machine-learning/src/test/mainController.test.ts diff --git a/extensions/machine-learning-services/src/test/modelManagement/azureModelRegistryService.test.ts b/extensions/machine-learning/src/test/modelManagement/azureModelRegistryService.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/modelManagement/azureModelRegistryService.test.ts rename to extensions/machine-learning/src/test/modelManagement/azureModelRegistryService.test.ts diff --git a/extensions/machine-learning-services/src/test/modelManagement/deployedModelService.test.ts b/extensions/machine-learning/src/test/modelManagement/deployedModelService.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/modelManagement/deployedModelService.test.ts rename to extensions/machine-learning/src/test/modelManagement/deployedModelService.test.ts diff --git a/extensions/machine-learning-services/src/test/modelManagement/modelPythonClient.test.ts b/extensions/machine-learning/src/test/modelManagement/modelPythonClient.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/modelManagement/modelPythonClient.test.ts rename to extensions/machine-learning/src/test/modelManagement/modelPythonClient.test.ts diff --git a/extensions/machine-learning-services/src/test/packageManagement/packageManagementService.test.ts b/extensions/machine-learning/src/test/packageManagement/packageManagementService.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/packageManagement/packageManagementService.test.ts rename to extensions/machine-learning/src/test/packageManagement/packageManagementService.test.ts diff --git a/extensions/machine-learning-services/src/test/packageManagement/packageManager.test.ts b/extensions/machine-learning/src/test/packageManagement/packageManager.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/packageManagement/packageManager.test.ts rename to extensions/machine-learning/src/test/packageManagement/packageManager.test.ts diff --git a/extensions/machine-learning-services/src/test/packageManagement/sqlPythonPackageManageProvider.test.ts b/extensions/machine-learning/src/test/packageManagement/sqlPythonPackageManageProvider.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/packageManagement/sqlPythonPackageManageProvider.test.ts rename to extensions/machine-learning/src/test/packageManagement/sqlPythonPackageManageProvider.test.ts diff --git a/extensions/machine-learning-services/src/test/packageManagement/sqlRPackageManageProvider.test.ts b/extensions/machine-learning/src/test/packageManagement/sqlRPackageManageProvider.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/packageManagement/sqlRPackageManageProvider.test.ts rename to extensions/machine-learning/src/test/packageManagement/sqlRPackageManageProvider.test.ts diff --git a/extensions/machine-learning-services/src/test/packageManagement/utils.ts b/extensions/machine-learning/src/test/packageManagement/utils.ts similarity index 100% rename from extensions/machine-learning-services/src/test/packageManagement/utils.ts rename to extensions/machine-learning/src/test/packageManagement/utils.ts diff --git a/extensions/machine-learning-services/src/test/prediction/predictService.test.ts b/extensions/machine-learning/src/test/prediction/predictService.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/prediction/predictService.test.ts rename to extensions/machine-learning/src/test/prediction/predictService.test.ts diff --git a/extensions/machine-learning-services/src/test/queryRunner.test.ts b/extensions/machine-learning/src/test/queryRunner.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/queryRunner.test.ts rename to extensions/machine-learning/src/test/queryRunner.test.ts diff --git a/extensions/machine-learning-services/src/test/utils.ts b/extensions/machine-learning/src/test/utils.ts similarity index 100% rename from extensions/machine-learning-services/src/test/utils.ts rename to extensions/machine-learning/src/test/utils.ts diff --git a/extensions/machine-learning-services/src/test/views/dashboardWidget.test.ts b/extensions/machine-learning/src/test/views/dashboardWidget.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/views/dashboardWidget.test.ts rename to extensions/machine-learning/src/test/views/dashboardWidget.test.ts diff --git a/extensions/machine-learning-services/src/test/views/externalLanguages/addEditLanguageTab.test.ts b/extensions/machine-learning/src/test/views/externalLanguages/addEditLanguageTab.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/views/externalLanguages/addEditLanguageTab.test.ts rename to extensions/machine-learning/src/test/views/externalLanguages/addEditLanguageTab.test.ts diff --git a/extensions/machine-learning-services/src/test/views/externalLanguages/languageController.test.ts b/extensions/machine-learning/src/test/views/externalLanguages/languageController.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/views/externalLanguages/languageController.test.ts rename to extensions/machine-learning/src/test/views/externalLanguages/languageController.test.ts diff --git a/extensions/machine-learning-services/src/test/views/externalLanguages/languageEditDialog.test.ts b/extensions/machine-learning/src/test/views/externalLanguages/languageEditDialog.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/views/externalLanguages/languageEditDialog.test.ts rename to extensions/machine-learning/src/test/views/externalLanguages/languageEditDialog.test.ts diff --git a/extensions/machine-learning-services/src/test/views/externalLanguages/languagesDialog.test.ts b/extensions/machine-learning/src/test/views/externalLanguages/languagesDialog.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/views/externalLanguages/languagesDialog.test.ts rename to extensions/machine-learning/src/test/views/externalLanguages/languagesDialog.test.ts diff --git a/extensions/machine-learning-services/src/test/views/externalLanguages/languagesDialogModel.test.ts b/extensions/machine-learning/src/test/views/externalLanguages/languagesDialogModel.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/views/externalLanguages/languagesDialogModel.test.ts rename to extensions/machine-learning/src/test/views/externalLanguages/languagesDialogModel.test.ts diff --git a/extensions/machine-learning-services/src/test/views/externalLanguages/utils.ts b/extensions/machine-learning/src/test/views/externalLanguages/utils.ts similarity index 100% rename from extensions/machine-learning-services/src/test/views/externalLanguages/utils.ts rename to extensions/machine-learning/src/test/views/externalLanguages/utils.ts diff --git a/extensions/machine-learning-services/src/test/views/models/ModelManagementController.test.ts b/extensions/machine-learning/src/test/views/models/ModelManagementController.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/views/models/ModelManagementController.test.ts rename to extensions/machine-learning/src/test/views/models/ModelManagementController.test.ts diff --git a/extensions/machine-learning-services/src/test/views/models/azureModelsComponent.test.ts b/extensions/machine-learning/src/test/views/models/azureModelsComponent.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/views/models/azureModelsComponent.test.ts rename to extensions/machine-learning/src/test/views/models/azureModelsComponent.test.ts diff --git a/extensions/machine-learning-services/src/test/views/models/editModelDialog.test.ts b/extensions/machine-learning/src/test/views/models/editModelDialog.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/views/models/editModelDialog.test.ts rename to extensions/machine-learning/src/test/views/models/editModelDialog.test.ts diff --git a/extensions/machine-learning-services/src/test/views/models/predictWizard.test.ts b/extensions/machine-learning/src/test/views/models/predictWizard.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/views/models/predictWizard.test.ts rename to extensions/machine-learning/src/test/views/models/predictWizard.test.ts diff --git a/extensions/machine-learning-services/src/test/views/models/registerModelWizard.test.ts b/extensions/machine-learning/src/test/views/models/registerModelWizard.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/views/models/registerModelWizard.test.ts rename to extensions/machine-learning/src/test/views/models/registerModelWizard.test.ts diff --git a/extensions/machine-learning-services/src/test/views/models/registeredModelsDialog.test.ts b/extensions/machine-learning/src/test/views/models/registeredModelsDialog.test.ts similarity index 100% rename from extensions/machine-learning-services/src/test/views/models/registeredModelsDialog.test.ts rename to extensions/machine-learning/src/test/views/models/registeredModelsDialog.test.ts diff --git a/extensions/machine-learning-services/src/test/views/models/utils.ts b/extensions/machine-learning/src/test/views/models/utils.ts similarity index 100% rename from extensions/machine-learning-services/src/test/views/models/utils.ts rename to extensions/machine-learning/src/test/views/models/utils.ts diff --git a/extensions/machine-learning-services/src/test/views/utils.ts b/extensions/machine-learning/src/test/views/utils.ts similarity index 100% rename from extensions/machine-learning-services/src/test/views/utils.ts rename to extensions/machine-learning/src/test/views/utils.ts diff --git a/extensions/machine-learning-services/src/types.ts b/extensions/machine-learning/src/types.ts similarity index 100% rename from extensions/machine-learning-services/src/types.ts rename to extensions/machine-learning/src/types.ts diff --git a/extensions/machine-learning-services/src/typings/azure-resource.d.ts b/extensions/machine-learning/src/typings/azure-resource.d.ts similarity index 100% rename from extensions/machine-learning-services/src/typings/azure-resource.d.ts rename to extensions/machine-learning/src/typings/azure-resource.d.ts diff --git a/extensions/machine-learning-services/src/typings/notebookServices.d.ts b/extensions/machine-learning/src/typings/notebookServices.d.ts similarity index 100% rename from extensions/machine-learning-services/src/typings/notebookServices.d.ts rename to extensions/machine-learning/src/typings/notebookServices.d.ts diff --git a/extensions/machine-learning-services/src/typings/ref.d.ts b/extensions/machine-learning/src/typings/ref.d.ts similarity index 100% rename from extensions/machine-learning-services/src/typings/ref.d.ts rename to extensions/machine-learning/src/typings/ref.d.ts diff --git a/extensions/machine-learning-services/src/views/controllerBase.ts b/extensions/machine-learning/src/views/controllerBase.ts similarity index 100% rename from extensions/machine-learning-services/src/views/controllerBase.ts rename to extensions/machine-learning/src/views/controllerBase.ts diff --git a/extensions/machine-learning-services/src/views/dialogView.ts b/extensions/machine-learning/src/views/dialogView.ts similarity index 100% rename from extensions/machine-learning-services/src/views/dialogView.ts rename to extensions/machine-learning/src/views/dialogView.ts diff --git a/extensions/machine-learning-services/src/views/externalLanguages/addEditLanguageTab.ts b/extensions/machine-learning/src/views/externalLanguages/addEditLanguageTab.ts similarity index 100% rename from extensions/machine-learning-services/src/views/externalLanguages/addEditLanguageTab.ts rename to extensions/machine-learning/src/views/externalLanguages/addEditLanguageTab.ts diff --git a/extensions/machine-learning-services/src/views/externalLanguages/currentLanguagesTab.ts b/extensions/machine-learning/src/views/externalLanguages/currentLanguagesTab.ts similarity index 100% rename from extensions/machine-learning-services/src/views/externalLanguages/currentLanguagesTab.ts rename to extensions/machine-learning/src/views/externalLanguages/currentLanguagesTab.ts diff --git a/extensions/machine-learning-services/src/views/externalLanguages/fileBrowserDialog.ts b/extensions/machine-learning/src/views/externalLanguages/fileBrowserDialog.ts similarity index 100% rename from extensions/machine-learning-services/src/views/externalLanguages/fileBrowserDialog.ts rename to extensions/machine-learning/src/views/externalLanguages/fileBrowserDialog.ts diff --git a/extensions/machine-learning-services/src/views/externalLanguages/languageContentView.ts b/extensions/machine-learning/src/views/externalLanguages/languageContentView.ts similarity index 100% rename from extensions/machine-learning-services/src/views/externalLanguages/languageContentView.ts rename to extensions/machine-learning/src/views/externalLanguages/languageContentView.ts diff --git a/extensions/machine-learning-services/src/views/externalLanguages/languageController.ts b/extensions/machine-learning/src/views/externalLanguages/languageController.ts similarity index 100% rename from extensions/machine-learning-services/src/views/externalLanguages/languageController.ts rename to extensions/machine-learning/src/views/externalLanguages/languageController.ts diff --git a/extensions/machine-learning-services/src/views/externalLanguages/languageEditDialog.ts b/extensions/machine-learning/src/views/externalLanguages/languageEditDialog.ts similarity index 100% rename from extensions/machine-learning-services/src/views/externalLanguages/languageEditDialog.ts rename to extensions/machine-learning/src/views/externalLanguages/languageEditDialog.ts diff --git a/extensions/machine-learning-services/src/views/externalLanguages/languageViewBase.ts b/extensions/machine-learning/src/views/externalLanguages/languageViewBase.ts similarity index 100% rename from extensions/machine-learning-services/src/views/externalLanguages/languageViewBase.ts rename to extensions/machine-learning/src/views/externalLanguages/languageViewBase.ts diff --git a/extensions/machine-learning-services/src/views/externalLanguages/languagesDialog.ts b/extensions/machine-learning/src/views/externalLanguages/languagesDialog.ts similarity index 100% rename from extensions/machine-learning-services/src/views/externalLanguages/languagesDialog.ts rename to extensions/machine-learning/src/views/externalLanguages/languagesDialog.ts diff --git a/extensions/machine-learning-services/src/views/externalLanguages/languagesTable.ts b/extensions/machine-learning/src/views/externalLanguages/languagesTable.ts similarity index 100% rename from extensions/machine-learning-services/src/views/externalLanguages/languagesTable.ts rename to extensions/machine-learning/src/views/externalLanguages/languagesTable.ts diff --git a/extensions/machine-learning-services/src/views/interfaces.ts b/extensions/machine-learning/src/views/interfaces.ts similarity index 100% rename from extensions/machine-learning-services/src/views/interfaces.ts rename to extensions/machine-learning/src/views/interfaces.ts diff --git a/extensions/machine-learning-services/src/views/mainViewBase.ts b/extensions/machine-learning/src/views/mainViewBase.ts similarity index 100% rename from extensions/machine-learning-services/src/views/mainViewBase.ts rename to extensions/machine-learning/src/views/mainViewBase.ts diff --git a/extensions/machine-learning-services/src/views/models/azureModelsComponent.ts b/extensions/machine-learning/src/views/models/azureModelsComponent.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/azureModelsComponent.ts rename to extensions/machine-learning/src/views/models/azureModelsComponent.ts diff --git a/extensions/machine-learning-services/src/views/models/azureModelsTable.ts b/extensions/machine-learning/src/views/models/azureModelsTable.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/azureModelsTable.ts rename to extensions/machine-learning/src/views/models/azureModelsTable.ts diff --git a/extensions/machine-learning-services/src/views/models/azureResourceFilterComponent.ts b/extensions/machine-learning/src/views/models/azureResourceFilterComponent.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/azureResourceFilterComponent.ts rename to extensions/machine-learning/src/views/models/azureResourceFilterComponent.ts diff --git a/extensions/machine-learning-services/src/views/models/azureSignInComponent.ts b/extensions/machine-learning/src/views/models/azureSignInComponent.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/azureSignInComponent.ts rename to extensions/machine-learning/src/views/models/azureSignInComponent.ts diff --git a/extensions/machine-learning-services/src/views/models/localModelsComponent.ts b/extensions/machine-learning/src/views/models/localModelsComponent.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/localModelsComponent.ts rename to extensions/machine-learning/src/views/models/localModelsComponent.ts diff --git a/extensions/machine-learning-services/src/views/models/manageModels/currentModelsComponent.ts b/extensions/machine-learning/src/views/models/manageModels/currentModelsComponent.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/manageModels/currentModelsComponent.ts rename to extensions/machine-learning/src/views/models/manageModels/currentModelsComponent.ts diff --git a/extensions/machine-learning-services/src/views/models/manageModels/currentModelsTable.ts b/extensions/machine-learning/src/views/models/manageModels/currentModelsTable.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/manageModels/currentModelsTable.ts rename to extensions/machine-learning/src/views/models/manageModels/currentModelsTable.ts diff --git a/extensions/machine-learning-services/src/views/models/manageModels/editModelDialog.ts b/extensions/machine-learning/src/views/models/manageModels/editModelDialog.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/manageModels/editModelDialog.ts rename to extensions/machine-learning/src/views/models/manageModels/editModelDialog.ts diff --git a/extensions/machine-learning-services/src/views/models/manageModels/importModelWizard.ts b/extensions/machine-learning/src/views/models/manageModels/importModelWizard.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/manageModels/importModelWizard.ts rename to extensions/machine-learning/src/views/models/manageModels/importModelWizard.ts diff --git a/extensions/machine-learning-services/src/views/models/manageModels/manageModelsDialog.ts b/extensions/machine-learning/src/views/models/manageModels/manageModelsDialog.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/manageModels/manageModelsDialog.ts rename to extensions/machine-learning/src/views/models/manageModels/manageModelsDialog.ts diff --git a/extensions/machine-learning-services/src/views/models/manageModels/modelDetailsComponent.ts b/extensions/machine-learning/src/views/models/manageModels/modelDetailsComponent.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/manageModels/modelDetailsComponent.ts rename to extensions/machine-learning/src/views/models/manageModels/modelDetailsComponent.ts diff --git a/extensions/machine-learning-services/src/views/models/manageModels/modelDetailsEditPage.ts b/extensions/machine-learning/src/views/models/manageModels/modelDetailsEditPage.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/manageModels/modelDetailsEditPage.ts rename to extensions/machine-learning/src/views/models/manageModels/modelDetailsEditPage.ts diff --git a/extensions/machine-learning-services/src/views/models/manageModels/modelImportLocationPage.ts b/extensions/machine-learning/src/views/models/manageModels/modelImportLocationPage.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/manageModels/modelImportLocationPage.ts rename to extensions/machine-learning/src/views/models/manageModels/modelImportLocationPage.ts diff --git a/extensions/machine-learning-services/src/views/models/modelBrowsePage.ts b/extensions/machine-learning/src/views/models/modelBrowsePage.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/modelBrowsePage.ts rename to extensions/machine-learning/src/views/models/modelBrowsePage.ts diff --git a/extensions/machine-learning-services/src/views/models/modelDetailsPage.ts b/extensions/machine-learning/src/views/models/modelDetailsPage.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/modelDetailsPage.ts rename to extensions/machine-learning/src/views/models/modelDetailsPage.ts diff --git a/extensions/machine-learning-services/src/views/models/modelManagementController.ts b/extensions/machine-learning/src/views/models/modelManagementController.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/modelManagementController.ts rename to extensions/machine-learning/src/views/models/modelManagementController.ts diff --git a/extensions/machine-learning-services/src/views/models/modelSourcePage.ts b/extensions/machine-learning/src/views/models/modelSourcePage.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/modelSourcePage.ts rename to extensions/machine-learning/src/views/models/modelSourcePage.ts diff --git a/extensions/machine-learning-services/src/views/models/modelSourcesComponent.ts b/extensions/machine-learning/src/views/models/modelSourcesComponent.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/modelSourcesComponent.ts rename to extensions/machine-learning/src/views/models/modelSourcesComponent.ts diff --git a/extensions/machine-learning-services/src/views/models/modelViewBase.ts b/extensions/machine-learning/src/views/models/modelViewBase.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/modelViewBase.ts rename to extensions/machine-learning/src/views/models/modelViewBase.ts diff --git a/extensions/machine-learning-services/src/views/models/modelsDetailsTableComponent.ts b/extensions/machine-learning/src/views/models/modelsDetailsTableComponent.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/modelsDetailsTableComponent.ts rename to extensions/machine-learning/src/views/models/modelsDetailsTableComponent.ts diff --git a/extensions/machine-learning-services/src/views/models/prediction/columnsSelectionPage.ts b/extensions/machine-learning/src/views/models/prediction/columnsSelectionPage.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/prediction/columnsSelectionPage.ts rename to extensions/machine-learning/src/views/models/prediction/columnsSelectionPage.ts diff --git a/extensions/machine-learning-services/src/views/models/prediction/columnsTable.ts b/extensions/machine-learning/src/views/models/prediction/columnsTable.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/prediction/columnsTable.ts rename to extensions/machine-learning/src/views/models/prediction/columnsTable.ts diff --git a/extensions/machine-learning-services/src/views/models/prediction/inputColumnsComponent.ts b/extensions/machine-learning/src/views/models/prediction/inputColumnsComponent.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/prediction/inputColumnsComponent.ts rename to extensions/machine-learning/src/views/models/prediction/inputColumnsComponent.ts diff --git a/extensions/machine-learning-services/src/views/models/prediction/modelArtifact.ts b/extensions/machine-learning/src/views/models/prediction/modelArtifact.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/prediction/modelArtifact.ts rename to extensions/machine-learning/src/views/models/prediction/modelArtifact.ts diff --git a/extensions/machine-learning-services/src/views/models/prediction/outputColumnsComponent.ts b/extensions/machine-learning/src/views/models/prediction/outputColumnsComponent.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/prediction/outputColumnsComponent.ts rename to extensions/machine-learning/src/views/models/prediction/outputColumnsComponent.ts diff --git a/extensions/machine-learning-services/src/views/models/prediction/predictWizard.ts b/extensions/machine-learning/src/views/models/prediction/predictWizard.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/prediction/predictWizard.ts rename to extensions/machine-learning/src/views/models/prediction/predictWizard.ts diff --git a/extensions/machine-learning-services/src/views/models/tableSelectionComponent.ts b/extensions/machine-learning/src/views/models/tableSelectionComponent.ts similarity index 100% rename from extensions/machine-learning-services/src/views/models/tableSelectionComponent.ts rename to extensions/machine-learning/src/views/models/tableSelectionComponent.ts diff --git a/extensions/machine-learning-services/src/views/viewBase.ts b/extensions/machine-learning/src/views/viewBase.ts similarity index 100% rename from extensions/machine-learning-services/src/views/viewBase.ts rename to extensions/machine-learning/src/views/viewBase.ts diff --git a/extensions/machine-learning-services/src/views/widgets/dashboardWidget.ts b/extensions/machine-learning/src/views/widgets/dashboardWidget.ts similarity index 71% rename from extensions/machine-learning-services/src/views/widgets/dashboardWidget.ts rename to extensions/machine-learning/src/views/widgets/dashboardWidget.ts index 1d25d6d186..57343c7903 100644 --- a/extensions/machine-learning-services/src/views/widgets/dashboardWidget.ts +++ b/extensions/machine-learning/src/views/widgets/dashboardWidget.ts @@ -19,7 +19,7 @@ interface IActionMetadata { } const maxWidth = 800; -const headerMaxHeight = 200; +const headerMaxHeight = 300; export class DashboardWidget { /** @@ -42,10 +42,11 @@ export class DashboardWidget { CSSStyles: { 'background-image': `url(${vscode.Uri.file(this.asAbsolutePath('images/background.svg'))})`, 'background-repeat': 'no-repeat', - 'background-position': 'top', + 'background-position': 'bottom', 'width': `${maxWidth}px`, - 'height': '130px', - 'background-size': `${maxWidth}px ${headerMaxHeight}px` + 'height': '330px', + 'background-size': `${maxWidth}px ${headerMaxHeight}px`, + 'margin-bottom': '-60px' } }); container.addItem(tasksContainer, { @@ -78,13 +79,12 @@ export class DashboardWidget { const header = view.modelBuilder.flexContainer().withLayout({ flexFlow: 'column', width: maxWidth, - height: headerMaxHeight, + height: headerMaxHeight }).component(); const titleComponent = view.modelBuilder.text().withProperties({ value: constants.dashboardTitle, CSSStyles: { 'font-size': '36px', - //'color': '#333333', 'font-weight': 'bold', 'margin': '0px' } @@ -93,7 +93,6 @@ export class DashboardWidget { value: constants.dashboardDesc, CSSStyles: { 'font-size': '14px', - //'color': '#888888', 'font-weight': 'bold', 'margin': '0px' } @@ -101,7 +100,7 @@ export class DashboardWidget { header.addItems([titleComponent, descComponent], { CSSStyles: { 'width': `${maxWidth}px`, - 'padding': '10px' + 'padding': '5px' } }); @@ -120,13 +119,30 @@ export class DashboardWidget { footerContainer.addItem(linksContainer); footerContainer.addItem(videoLinksContainer, { CSSStyles: { - 'padding-left': '50px', + 'padding-left': '45px', } }); return footerContainer; } + private createVideoLinkContainers(view: azdata.ModelView, links: IActionMetadata[]): azdata.Component { + const maxWidth = 400; + const videosContainer = view.modelBuilder.flexContainer().withLayout({ + flexFlow: 'row', + width: maxWidth, + height: '300px', + }).component(); + + links.forEach(link => { + const videoContainer = this.createVideoLink(view, link); + + videosContainer.addItem(videoContainer); + }); + + return videosContainer; + } + private createVideoLinks(view: azdata.ModelView): azdata.Component { const maxWidth = 400; const linksContainer = view.modelBuilder.flexContainer().withLayout({ @@ -143,22 +159,13 @@ export class DashboardWidget { 'margin': '0px' } }).component(); - const videosContainer = view.modelBuilder.flexContainer().withLayout({ - flexFlow: 'row', - width: maxWidth, - height: '500px', - }).component(); - const video1Container = this.createVideoLink(view, { - iconPath: { light: 'images/video1.svg', dark: 'images/video1.svg' }, - description: 'Visualize data using SandDance', - link: 'https://www.youtube.com/watch?v=e305wTAoLZs' - }); - videosContainer.addItem(video1Container); - const video2Container = this.createVideoLink(view, { - iconPath: { light: 'images/video2.svg', dark: 'images/video2.svg' }, - description: 'How to make the best out of Microsoft Azure' - }); - videosContainer.addItem(video2Container); + const viewPanelStyle = { + 'padding': '0px', + 'padding-right': '5px', + 'padding-top': '20px', + 'height': '200px', + 'margin': '0px' + }; linksContainer.addItems([titleComponent], { CSSStyles: { @@ -169,7 +176,96 @@ export class DashboardWidget { 'margin': '0px' } }); - linksContainer.addItems([videosContainer], { + const videosContainer = this.createVideoLinkContainers(view, [ + { + iconPath: { light: 'images/video1.svg', dark: 'images/video1.svg' }, + description: 'Artificial intelligence and machine learning with SQL Server 2019', + link: 'https://www.youtube.com/watch?v=sE99cSoFOHs' + }, + { + iconPath: { light: 'images/video2.svg', dark: 'images/video2.svg' }, + description: 'SQL Server Machine Learning Services', + link: 'https://www.youtube.com/watch?v=R4GCBoxADyQ' + } + ]); + + linksContainer.addItem(videosContainer, { + CSSStyles: viewPanelStyle + }); + + const moreVideosContainer = this.createVideoLinkContainers(view, [ + { + iconPath: { light: 'images/video2.svg', dark: 'images/video2.svg' }, + description: 'Introduction to Azure Data Studio Notebooks', + link: 'https://www.youtube.com/watch?v=Nt4kIHQ0IOc' + } + ]); + + this.addShowMorePanel(view, linksContainer, moreVideosContainer, { 'padding-left': '5px' }, viewPanelStyle); + return linksContainer; + } + + private addShowMorePanel(view: azdata.ModelView, parentPanel: azdata.FlexContainer, morePanel: azdata.Component, moreButtonStyle: { [key: string]: string }, morePanelStyle: { [key: string]: string }): azdata.Component { + const maxWidth = 100; + const linkContainer = view.modelBuilder.flexContainer().withLayout({ + flexFlow: 'row', + width: maxWidth + 10, + justifyContent: 'flex-start' + }).component(); + const showMoreComponent = view.modelBuilder.hyperlink().withProperties({ + label: constants.showMoreTitle + }).component(); + const image = view.modelBuilder.image().withProperties({ + width: '10px', + height: '10px', + iconPath: { + dark: this.asAbsolutePath('images/dark/showMore_inverse.svg'), + light: this.asAbsolutePath('images/light/showMore.svg'), + }, + iconHeight: '10px', + iconWidth: '10px' + }).component(); + showMoreComponent.onDidClick(() => { + let showMore = showMoreComponent.label === constants.showMoreTitle; + if (showMore) { + showMoreComponent.label = constants.showLessTitle; + image.iconPath = { + dark: this.asAbsolutePath('images/dark/showLess_inverse.svg'), + light: this.asAbsolutePath('images/light/showLess.svg'), + }; + parentPanel.addItem(morePanel, { + CSSStyles: morePanelStyle + }); + } else { + showMoreComponent.label = constants.showMoreTitle; + parentPanel.removeItem(morePanel); + image.iconPath = { + dark: this.asAbsolutePath('images/dark/showMore_inverse.svg'), + light: this.asAbsolutePath('images/light/showMore.svg'), + }; + } + showMore = !showMore; + }); + linkContainer.addItem(showMoreComponent, { + CSSStyles: Object.assign({}, moreButtonStyle, { + 'font-size': '12px', + 'margin': '0px', + 'color': '#006ab1', + 'padding-right': '5px' + } + ) + }); + linkContainer.addItem(image, { + CSSStyles: { + 'padding': '0px', + 'padding-right': '5px', + 'padding-top': '5px', + 'height': '10px', + 'margin': '0px' + } + }); + + parentPanel.addItem(linkContainer, { CSSStyles: { 'padding': '0px', 'padding-right': '5px', @@ -178,15 +274,16 @@ export class DashboardWidget { 'margin': '0px' } }); - return linksContainer; + + return showMoreComponent; } private createVideoLink(view: azdata.ModelView, linkMetaData: IActionMetadata): azdata.Component { - const maxWidth = 200; + const maxWidth = 150; const videosContainer = view.modelBuilder.flexContainer().withLayout({ flexFlow: 'column', width: maxWidth, - height: '200px', + height: maxWidth, justifyContent: 'flex-start' }).component(); const video1Container = view.modelBuilder.divContainer().withProperties({ @@ -196,10 +293,9 @@ export class DashboardWidget { }).component(); const descriptionComponent = view.modelBuilder.text().withProperties({ value: linkMetaData.description, - width: '200px', + width: maxWidth, height: '50px', CSSStyles: { - //'color': '#605E5C', 'font-size': '12px', 'margin': '0px' } @@ -214,9 +310,9 @@ export class DashboardWidget { 'background-image': `url(${vscode.Uri.file(this.asAbsolutePath(linkMetaData.iconPath?.light || ''))})`, 'background-repeat': 'no-repeat', 'background-position': 'top', - 'width': `150px`, + 'width': `${maxWidth}px`, 'height': '110px', - 'background-size': `150px 120px` + 'background-size': `{maxWidth}px 120px` } }); videosContainer.addItem(descriptionComponent); @@ -234,39 +330,46 @@ export class DashboardWidget { value: constants.dashboardLinksTitle, CSSStyles: { 'font-size': '18px', - //'color': '#323130', 'font-weight': 'bold', 'margin': '0px' } }).component(); - let mlsLink: string; - if (utils.isWindows()) { - mlsLink = constants.installMlsWindowsDocs; - } else { - mlsLink = constants.installMlsLinuxDocs; - } - const mlsDocs = this.createLink(view, { - title: constants.mlsInstallMlsDocTitle, - description: constants.mlsInstallMlsDocDesc, - link: mlsLink - }); - let odbcLink: string; - if (utils.isWindows()) { - odbcLink = constants.odbcDriverWindowsDocuments; - } else { - odbcLink = constants.odbcDriverLinuxDocuments; - } - const rdbcDocs = this.createLink(view, { + + const links = [{ + title: constants.sqlMlDocTitle, + description: constants.sqlMlDocDesc, + link: constants.mlDocLink + }, { + title: constants.sqlMlsDocTitle, + description: constants.sqlMlsDocDesc, + link: constants.mlsDocLink + }, + { + title: constants.sqlMlsAzureDocTitle, + description: constants.sqlMlsAzureDocDesc, + link: constants.mlsAzureDocLink + }]; + + const moreLink = { title: constants.mlsInstallOdbcDocTitle, description: constants.mlsInstallOdbcDocDesc, - link: odbcLink - }); + link: utils.isWindows() ? constants.odbcDriverWindowsDocuments : constants.odbcDriverLinuxDocuments + }; + const styles = { + 'padding': '10px' + }; - linksContainer.addItems([titleComponent, mlsDocs, rdbcDocs], { + linksContainer.addItem(titleComponent, { CSSStyles: { 'padding': '10px' } }); + + linksContainer.addItems(links.map(l => this.createLink(view, l)), { + CSSStyles: styles + }); + + this.addShowMorePanel(view, linksContainer, this.createLink(view, moreLink), { 'padding-left': '10px' }, styles); return linksContainer; } @@ -283,21 +386,19 @@ export class DashboardWidget { value: linkMetaData.description, width: maxWidth, CSSStyles: { - //'color': '#605E5C', 'font-size': '12px', 'margin': '0px' } }).component(); const linkContainer = view.modelBuilder.flexContainer().withLayout({ flexFlow: 'row', - width: maxWidth, + width: maxWidth + 10, justifyContent: 'flex-start' }).component(); const linkComponent = view.modelBuilder.hyperlink().withProperties({ label: linkMetaData.title, url: linkMetaData.link, CSSStyles: { - 'color': '#3794ff', 'font-size': '14px', 'margin': '0px' } @@ -316,8 +417,8 @@ export class DashboardWidget { CSSStyles: { 'padding': '0px', 'padding-right': '5px', - 'height': '10px', - 'margin': '0px' + 'margin': '0px', + 'color': '#006ab1' } }); linkContainer.addItem(image, { @@ -365,8 +466,8 @@ export class DashboardWidget { title: constants.importModelTitle, description: constants.importModelDesc, iconPath: { - dark: this.asAbsolutePath('images/makePredictions.svg'), - light: this.asAbsolutePath('images/makePredictions.svg'), + dark: this.asAbsolutePath('images/manageModels.svg'), + light: this.asAbsolutePath('images/manageModels.svg'), }, link: '', command: constants.mlManageModelsCommand @@ -418,7 +519,6 @@ export class DashboardWidget { value: taskMetaData.title, CSSStyles: { 'font-size': '14px', - //'color': '#323130', 'font-weight': 'bold', 'margin': '0px' } @@ -426,19 +526,13 @@ export class DashboardWidget { const descriptionComponent = view.modelBuilder.text().withProperties({ value: taskMetaData.description, CSSStyles: { - //'color': '#605E5C', 'font-size': '13px', 'margin': '0px' } }).component(); const linkComponent = view.modelBuilder.hyperlink().withProperties({ label: constants.learnMoreTitle, - url: taskMetaData.link, - CSSStyles: { - //'background-color': '#F2F2F2', - 'color': '#3794ff', - 'margin': '0px' - } + url: taskMetaData.link }).component(); const image = view.modelBuilder.image().withProperties({ width: '20px', @@ -452,7 +546,8 @@ export class DashboardWidget { 'padding': '0px', 'padding-bottom': '5px', 'width': '180px', - 'margin': '0px' + 'margin': '0px', + 'color': '#006ab1' } }); iconContainer.addItem(image, { @@ -469,7 +564,6 @@ export class DashboardWidget { }); mainContainer.addItems([iconContainer], { CSSStyles: { - //'background-color': '#f4f4f4', 'padding': '10px', 'border-radius': '5px', 'border-color': '#f2f2f2', diff --git a/extensions/machine-learning-services/src/views/wizardView.ts b/extensions/machine-learning/src/views/wizardView.ts similarity index 100% rename from extensions/machine-learning-services/src/views/wizardView.ts rename to extensions/machine-learning/src/views/wizardView.ts diff --git a/extensions/machine-learning-services/tsconfig.json b/extensions/machine-learning/tsconfig.json similarity index 100% rename from extensions/machine-learning-services/tsconfig.json rename to extensions/machine-learning/tsconfig.json diff --git a/extensions/machine-learning-services/yarn.lock b/extensions/machine-learning/yarn.lock similarity index 100% rename from extensions/machine-learning-services/yarn.lock rename to extensions/machine-learning/yarn.lock diff --git a/scripts/test-extensions-unit.bat b/scripts/test-extensions-unit.bat index a41fda7957..0badb9afe2 100755 --- a/scripts/test-extensions-unit.bat +++ b/scripts/test-extensions-unit.bat @@ -26,7 +26,7 @@ if "%INTEGRATION_TEST_ELECTRON_PATH%"=="" ( call yarn gulp compile-extension:mssql call yarn gulp compile-extension:notebook call yarn gulp compile-extension:resource-deployment - call yarn gulp compile-extension:machine-learning-services + call yarn gulp compile-extension:machine-learning call yarn gulp compile-extension:sql-database-projects echo "Running integration tests with '%INTEGRATION_TEST_ELECTRON_PATH%' as build." @@ -82,9 +82,9 @@ echo ****************************************** call "%INTEGRATION_TEST_ELECTRON_PATH%" --extensionDevelopmentPath=%~dp0\..\extensions\resource-deployment --extensionTestsPath=%~dp0\..\extensions\resource-deployment\out\test --user-data-dir=%VSCODEUSERDATADIR% --extensions-dir=%VSCODEEXTENSIONSDIR% --remote-debugging-port=9222 --disable-telemetry --disable-crash-reporter --disable-updates --nogpu echo ******************************* -echo *** starting machine-learning-services tests *** +echo *** starting machine-learning tests *** echo ******************************* -call "%INTEGRATION_TEST_ELECTRON_PATH%" --extensionDevelopmentPath=%~dp0\..\extensions\machine-learning-services --extensionTestsPath=%~dp0\..\extensions\machine-learning-services\out\test --user-data-dir=%VSCODEUSERDATADIR% --extensions-dir=%VSCODEEXTENSIONSDIR% --remote-debugging-port=9222 --disable-telemetry --disable-crash-reporter --disable-updates --nogpu +call "%INTEGRATION_TEST_ELECTRON_PATH%" --extensionDevelopmentPath=%~dp0\..\extensions\machine-learning --extensionTestsPath=%~dp0\..\extensions\machine-learning\out\test --user-data-dir=%VSCODEUSERDATADIR% --extensions-dir=%VSCODEEXTENSIONSDIR% --remote-debugging-port=9222 --disable-telemetry --disable-crash-reporter --disable-updates --nogpu REM echo ****************************************** REM echo *** starting mssql tests *** diff --git a/scripts/test-extensions-unit.sh b/scripts/test-extensions-unit.sh index 591ce615eb..6ee107a6ff 100755 --- a/scripts/test-extensions-unit.sh +++ b/scripts/test-extensions-unit.sh @@ -80,9 +80,9 @@ echo ****************************************** "$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_NO_SANDBOX --extensionDevelopmentPath=$ROOT/extensions/resource-deployment --extensionTestsPath=$ROOT/extensions/resource-deployment/out/test --user-data-dir=$VSCODEUSERDATADIR --extensions-dir=$VSCODEEXTDIR --disable-telemetry --disable-crash-reporter --disable-updates --nogpu echo ************************************************ -echo *** starting machine-learning-services tests *** +echo *** starting machine-learning tests *** echo ************************************************ -"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_NO_SANDBOX --extensionDevelopmentPath=$ROOT/extensions/machine-learning-services --extensionTestsPath=$ROOT/extensions/machine-learning-services/out/test --user-data-dir=$VSCODEUSERDATADIR --extensions-dir=$VSCODEEXTDIR --disable-telemetry --disable-crash-reporter --disable-updates --nogpu +"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_NO_SANDBOX --extensionDevelopmentPath=$ROOT/extensions/machine-learning --extensionTestsPath=$ROOT/extensions/machine-learning/out/test --user-data-dir=$VSCODEUSERDATADIR --extensions-dir=$VSCODEEXTDIR --disable-telemetry --disable-crash-reporter --disable-updates --nogpu # echo ****************************************** # echo *** starting mssql tests ***