From c37f6485ae11c09a7f8f69d54f9f8237a2e082ad Mon Sep 17 00:00:00 2001 From: jackofdiamond5 Date: Mon, 11 Dec 2023 16:29:46 +0200 Subject: [PATCH 1/8] feat(ng-schematics): migrate projectType in cli config --- .../src/migrations/migration-collection.json | 5 ++ .../src/migrations/update-1/index.spec.ts | 72 +++++++++++++++++++ .../src/migrations/update-1/index.ts | 17 +++++ 3 files changed, 94 insertions(+) create mode 100644 packages/ng-schematics/src/migrations/update-1/index.spec.ts create mode 100644 packages/ng-schematics/src/migrations/update-1/index.ts diff --git a/packages/ng-schematics/src/migrations/migration-collection.json b/packages/ng-schematics/src/migrations/migration-collection.json index 011332743..3b66697db 100644 --- a/packages/ng-schematics/src/migrations/migration-collection.json +++ b/packages/ng-schematics/src/migrations/migration-collection.json @@ -1,5 +1,10 @@ { "$schema": "../../../../node_modules/@angular-devkit/schematics/collection-schema.json", "schematics": { + "migration-01": { + "version": "XXX", + "description": "Updates Ignite UI for Angular Schematics project from XXX to XXX", + "factory": "./update-1" + } } } diff --git a/packages/ng-schematics/src/migrations/update-1/index.spec.ts b/packages/ng-schematics/src/migrations/update-1/index.spec.ts new file mode 100644 index 000000000..a91757bdd --- /dev/null +++ b/packages/ng-schematics/src/migrations/update-1/index.spec.ts @@ -0,0 +1,72 @@ +import * as path from "path"; +import { EmptyTree } from "@angular-devkit/schematics"; +import { SchematicTestRunner, UnitTestTree } from "@angular-devkit/schematics/testing"; + +describe("Update XXX", () => { + let appTree: UnitTestTree; + const schematicRunner = new SchematicTestRunner("ig-migrate", path.join(__dirname, "../migration-collection.json")); + + beforeEach(() => { + appTree = new UnitTestTree(new EmptyTree()); + }); + + it("change projectType to legacy", async done => { + appTree.create( + "./igniteui-cli.json", +`{ + "igPackageRegistry": "https://packages.infragistics.com/npm/js-licensed/", + "customTemplates": [], + "skipGit": false, + "skipAnalytic": false, + "version": "13.0.1", + "project": { + "defaultPort": 4200, + "framework": "angular", + "projectType": "igx-ts", + "projectTemplate": "side-nav", + "theme": "Default", + "themePath": "node_modules/igniteui-angular/styles/igniteui-angular.css", + "isBundle": false, + "bundleFilePath": "", + "igniteuiSource": "", + "components": [], + "sourceFiles": [], + "isShowcase": false, + "version": "" + }, + "build": {} +} +` + ); + + const tree = await schematicRunner.runSchematicAsync("migration-01", {}, appTree).toPromise(); + expect(tree.readContent("./igniteui-cli.json")) + .toEqual( +`{ + "igPackageRegistry": "https://packages.infragistics.com/npm/js-licensed/", + "customTemplates": [], + "skipGit": false, + "skipAnalytic": false, + "version": "13.0.1", + "project": { + "defaultPort": 4200, + "framework": "angular", + "projectType": "igx-ts-legacy", + "projectTemplate": "side-nav", + "theme": "Default", + "themePath": "node_modules/igniteui-angular/styles/igniteui-angular.css", + "isBundle": false, + "bundleFilePath": "", + "igniteuiSource": "", + "components": [], + "sourceFiles": [], + "isShowcase": false, + "version": "" + }, + "build": {} +}` + ); + done(); + }); + +}); diff --git a/packages/ng-schematics/src/migrations/update-1/index.ts b/packages/ng-schematics/src/migrations/update-1/index.ts new file mode 100644 index 000000000..fa8ffe901 --- /dev/null +++ b/packages/ng-schematics/src/migrations/update-1/index.ts @@ -0,0 +1,17 @@ +import { Rule, SchematicContext, Tree } from "@angular-devkit/schematics"; + +export default function(): Rule { + return (host: Tree, context: SchematicContext) => { + context.logger.info("Updating project to Ignite UI CLI XXX"); + + const igConfig = "./igniteui-cli.json"; + + if (host.exists(igConfig)) { + const content = JSON.parse(host.read(igConfig)!.toString()); + if (content?.project?.projectType === "igx-ts") { + content.project.projectType = "igx-ts-legacy"; + host.overwrite(igConfig, JSON.stringify(content, null, 4)); + } + } + }; +} From e0f0a28d2323353d6fb38da35b8a765af6fc6e63 Mon Sep 17 00:00:00 2001 From: lipata Date: Mon, 11 Dec 2023 23:10:15 +0200 Subject: [PATCH 2/8] chore: release 13.1.0-beta.0 --- packages/cli/package.json | 6 +++--- packages/core/package.json | 2 +- packages/igx-templates/package.json | 4 ++-- packages/ng-schematics/package.json | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index abd24920e..aa320d309 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "igniteui-cli", - "version": "12.1.0-beta.4", + "version": "13.1.0-beta.0", "description": "CLI tool for creating Ignite UI projects", "keywords": [ "CLI", @@ -78,8 +78,8 @@ "all": true }, "dependencies": { - "@igniteui/angular-templates": "~17.0.1210-beta.4", - "@igniteui/cli-core": "~12.1.0-beta.4", + "@igniteui/angular-templates": "~17.1.1310-beta.0", + "@igniteui/cli-core": "~13.1.0-beta.0", "chalk": "^2.3.2", "fs-extra": "^3.0.1", "glob": "^7.1.2", diff --git a/packages/core/package.json b/packages/core/package.json index c90485d44..8dcc4d50b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@igniteui/cli-core", - "version": "12.1.0-beta.4", + "version": "13.1.0-beta.0", "description": "Base types and functionality for Ignite UI CLI", "repository": { "type": "git", diff --git a/packages/igx-templates/package.json b/packages/igx-templates/package.json index cc96e691d..edf242b7b 100644 --- a/packages/igx-templates/package.json +++ b/packages/igx-templates/package.json @@ -1,6 +1,6 @@ { "name": "@igniteui/angular-templates", - "version": "17.0.1210-beta.4", + "version": "17.1.1310-beta.0", "description": "Templates for Ignite UI for Angular projects and components", "repository": { "type": "git", @@ -12,7 +12,7 @@ "author": "Infragistics", "license": "MIT", "dependencies": { - "@igniteui/cli-core": "~12.1.0-beta.4", + "@igniteui/cli-core": "~13.1.0-beta.0", "typescript": "~4.7.2" } } diff --git a/packages/ng-schematics/package.json b/packages/ng-schematics/package.json index 7997443dd..f519173a2 100644 --- a/packages/ng-schematics/package.json +++ b/packages/ng-schematics/package.json @@ -1,6 +1,6 @@ { "name": "@igniteui/angular-schematics", - "version": "17.0.1210-beta.4", + "version": "17.1.1310-beta.0", "description": "Ignite UI for Angular Schematics for ng new and ng generate", "repository": { "type": "git", @@ -20,8 +20,8 @@ "dependencies": { "@angular-devkit/core": "~14.0.0", "@angular-devkit/schematics": "~14.0.0", - "@igniteui/angular-templates": "~17.0.1210-beta.4", - "@igniteui/cli-core": "~12.1.0-beta.4", + "@igniteui/angular-templates": "~17.1.1310-beta.0", + "@igniteui/cli-core": "~13.1.0-beta.0", "@schematics/angular": "~14.0.0", "rxjs": "^6.6.3" }, From 8959e5df5c77b237fcdf583e6eef440acd49f7d9 Mon Sep 17 00:00:00 2001 From: jackofdiamond5 Date: Tue, 12 Dec 2023 15:40:50 +0200 Subject: [PATCH 3/8] feat(ng-schematics): set version --- .../ng-schematics/src/migrations/migration-collection.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/ng-schematics/src/migrations/migration-collection.json b/packages/ng-schematics/src/migrations/migration-collection.json index 3b66697db..e8c790a16 100644 --- a/packages/ng-schematics/src/migrations/migration-collection.json +++ b/packages/ng-schematics/src/migrations/migration-collection.json @@ -2,8 +2,8 @@ "$schema": "../../../../node_modules/@angular-devkit/schematics/collection-schema.json", "schematics": { "migration-01": { - "version": "XXX", - "description": "Updates Ignite UI for Angular Schematics project from XXX to XXX", + "version": "17.1.0", + "description": "Updates Ignite UI for Angular Schematics project from 17.0.X to 17.1.X", "factory": "./update-1" } } From 1e50c9e8b71f4bc23f8e95e35a0205ba9caba365 Mon Sep 17 00:00:00 2001 From: jackofdiamond5 Date: Tue, 12 Dec 2023 15:56:01 +0200 Subject: [PATCH 4/8] feat(ng-schematics): add prompt for migrations --- .../src/migrations/interfaces/options.ts | 4 ++++ .../src/migrations/migration-collection.json | 3 ++- packages/ng-schematics/src/migrations/schema.json | 14 ++++++++++++++ .../src/migrations/update-1/index.spec.ts | 2 +- .../ng-schematics/src/migrations/update-1/index.ts | 5 ++++- 5 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 packages/ng-schematics/src/migrations/interfaces/options.ts create mode 100644 packages/ng-schematics/src/migrations/schema.json diff --git a/packages/ng-schematics/src/migrations/interfaces/options.ts b/packages/ng-schematics/src/migrations/interfaces/options.ts new file mode 100644 index 000000000..805431b0a --- /dev/null +++ b/packages/ng-schematics/src/migrations/interfaces/options.ts @@ -0,0 +1,4 @@ +export interface Options { + [key: string]: any; + applyMigrations: boolean; +} diff --git a/packages/ng-schematics/src/migrations/migration-collection.json b/packages/ng-schematics/src/migrations/migration-collection.json index e8c790a16..d9812b205 100644 --- a/packages/ng-schematics/src/migrations/migration-collection.json +++ b/packages/ng-schematics/src/migrations/migration-collection.json @@ -4,7 +4,8 @@ "migration-01": { "version": "17.1.0", "description": "Updates Ignite UI for Angular Schematics project from 17.0.X to 17.1.X", - "factory": "./update-1" + "factory": "./update-1", + "schema": "./schema.json" } } } diff --git a/packages/ng-schematics/src/migrations/schema.json b/packages/ng-schematics/src/migrations/schema.json new file mode 100644 index 000000000..9a0fb5b44 --- /dev/null +++ b/packages/ng-schematics/src/migrations/schema.json @@ -0,0 +1,14 @@ +{ + "$schema": "http://json-schema.org/schema", + "$id": "igniteui-angular-ng-add", + "title": "IgniteUI for Angular ng-add schematic", + "type": "object", + "properties": { + "applyMigrations": { + "type": "boolean", + "description": "Apply migrations to the project.", + "default": true, + "x-prompt": "Would you like to apply automated migrations?" + } + } +} diff --git a/packages/ng-schematics/src/migrations/update-1/index.spec.ts b/packages/ng-schematics/src/migrations/update-1/index.spec.ts index a91757bdd..52455d32b 100644 --- a/packages/ng-schematics/src/migrations/update-1/index.spec.ts +++ b/packages/ng-schematics/src/migrations/update-1/index.spec.ts @@ -39,7 +39,7 @@ describe("Update XXX", () => { ` ); - const tree = await schematicRunner.runSchematicAsync("migration-01", {}, appTree).toPromise(); + const tree = await schematicRunner.runSchematicAsync("migration-01", { applyMigrations: true }, appTree).toPromise(); expect(tree.readContent("./igniteui-cli.json")) .toEqual( `{ diff --git a/packages/ng-schematics/src/migrations/update-1/index.ts b/packages/ng-schematics/src/migrations/update-1/index.ts index fa8ffe901..6f9eb5013 100644 --- a/packages/ng-schematics/src/migrations/update-1/index.ts +++ b/packages/ng-schematics/src/migrations/update-1/index.ts @@ -1,7 +1,10 @@ import { Rule, SchematicContext, Tree } from "@angular-devkit/schematics"; +import { Options } from "../interfaces/options"; -export default function(): Rule { +export default function(options: Options): Rule { return (host: Tree, context: SchematicContext) => { + if (!options.applyMigrations) { return; } + context.logger.info("Updating project to Ignite UI CLI XXX"); const igConfig = "./igniteui-cli.json"; From 7c836df5304fdda3eb411dc89646ea33aa21fd8a Mon Sep 17 00:00:00 2001 From: jackofdiamond5 Date: Tue, 12 Dec 2023 16:55:19 +0200 Subject: [PATCH 5/8] feat(cli): add migration for standalone components --- .../cli/migrations/migration-collection.json | 8 +- packages/cli/migrations/schema.json | 14 ++++ .../migrations/update-13_1_0/index.spec.ts | 73 +++++++++++++++++++ .../cli/migrations/update-13_1_0/index.ts | 20 +++++ .../src/migrations/migration-collection.json | 2 +- .../ng-schematics/src/migrations/schema.json | 4 +- .../src/migrations/update-1/index.spec.ts | 2 +- .../src/migrations/update-1/index.ts | 2 +- 8 files changed, 119 insertions(+), 6 deletions(-) create mode 100644 packages/cli/migrations/schema.json create mode 100644 packages/cli/migrations/update-13_1_0/index.spec.ts create mode 100644 packages/cli/migrations/update-13_1_0/index.ts diff --git a/packages/cli/migrations/migration-collection.json b/packages/cli/migrations/migration-collection.json index d6e55db94..61c8d3556 100644 --- a/packages/cli/migrations/migration-collection.json +++ b/packages/cli/migrations/migration-collection.json @@ -30,6 +30,12 @@ "version": "5.0.3", "description": "Updates Ignite UI for Angular project from CLI 5.0.x to 5.0.3", "factory": "./update-5_0_3" - } + }, + "migration-07": { + "version": "13.1.0", + "description": "Updates Ignite UI for Angular Schematics project from 13.0.x to 13.1.x", + "factory": "./update-13_1_0", + "schema": "./schema.json" + } } } diff --git a/packages/cli/migrations/schema.json b/packages/cli/migrations/schema.json new file mode 100644 index 000000000..f503f418e --- /dev/null +++ b/packages/cli/migrations/schema.json @@ -0,0 +1,14 @@ +{ + "$schema": "http://json-schema.org/schema", + "$id": "igniteui-cli", + "title": "IgniteUI CLI schematic", + "type": "object", + "properties": { + "applyMigrations": { + "type": "boolean", + "description": "Apply migrations to the project.", + "default": true, + "x-prompt": "Would you like to apply automated migrations?" + } + } +} diff --git a/packages/cli/migrations/update-13_1_0/index.spec.ts b/packages/cli/migrations/update-13_1_0/index.spec.ts new file mode 100644 index 000000000..a0ca8428e --- /dev/null +++ b/packages/cli/migrations/update-13_1_0/index.spec.ts @@ -0,0 +1,73 @@ +import * as path from "path"; +// tslint:disable:no-implicit-dependencies +import { EmptyTree } from "@angular-devkit/schematics"; +// tslint:disable-next-line:no-submodule-imports +import { SchematicTestRunner, UnitTestTree } from "@angular-devkit/schematics/testing"; + +describe("Update 13.1.0", () => { + let appTree: UnitTestTree; + const schematicRunner = new SchematicTestRunner("ig-migrate", path.join(__dirname, "../migration-collection.json")); + + beforeEach(() => { + appTree = new UnitTestTree(new EmptyTree()); + }); + + it("change projectType to legacy", async done => { + appTree.create( + "./igniteui-cli.json", +`{ + "igPackageRegistry": "https://packages.infragistics.com/npm/js-licensed/", + "customTemplates": [], + "skipGit": false, + "skipAnalytic": false, + "version": "13.0.1", + "project": { + "defaultPort": 4200, + "framework": "angular", + "projectType": "igx-ts", + "projectTemplate": "side-nav", + "theme": "Default", + "themePath": "node_modules/igniteui-angular/styles/igniteui-angular.css", + "isBundle": false, + "bundleFilePath": "", + "igniteuiSource": "", + "components": [], + "sourceFiles": [], + "isShowcase": false, + "version": "" + }, + "build": {} +}` + ); + + const tree = await schematicRunner.runSchematicAsync("migration-07", { applyMigrations: true }, appTree).toPromise(); + expect(tree.readContent("./igniteui-cli.json")) + .toEqual( +`{ + "igPackageRegistry": "https://packages.infragistics.com/npm/js-licensed/", + "customTemplates": [], + "skipGit": false, + "skipAnalytic": false, + "version": "13.0.1", + "project": { + "defaultPort": 4200, + "framework": "angular", + "projectType": "igx-ts-legacy", + "projectTemplate": "side-nav", + "theme": "Default", + "themePath": "node_modules/igniteui-angular/styles/igniteui-angular.css", + "isBundle": false, + "bundleFilePath": "", + "igniteuiSource": "", + "components": [], + "sourceFiles": [], + "isShowcase": false, + "version": "" + }, + "build": {} +}` + ); + done(); + }); + +}); diff --git a/packages/cli/migrations/update-13_1_0/index.ts b/packages/cli/migrations/update-13_1_0/index.ts new file mode 100644 index 000000000..f27fea5e9 --- /dev/null +++ b/packages/cli/migrations/update-13_1_0/index.ts @@ -0,0 +1,20 @@ +// tslint:disable:no-implicit-dependencies +import { Rule, SchematicContext, Tree } from "@angular-devkit/schematics"; + +export default function(options: any): Rule { + return (host: Tree, context: SchematicContext) => { + if (!options.applyMigrations) { return; } + + context.logger.info("Updating project to Ignite UI CLI 13.1.0"); + + const igConfig = "./igniteui-cli.json"; + + if (host.exists(igConfig)) { + const content = JSON.parse(host.read(igConfig)!.toString()); + if (content?.project?.projectType === "igx-ts") { + content.project.projectType = "igx-ts-legacy"; + host.overwrite(igConfig, JSON.stringify(content, null, 4)); + } + } + }; +} diff --git a/packages/ng-schematics/src/migrations/migration-collection.json b/packages/ng-schematics/src/migrations/migration-collection.json index d9812b205..099ede7f9 100644 --- a/packages/ng-schematics/src/migrations/migration-collection.json +++ b/packages/ng-schematics/src/migrations/migration-collection.json @@ -3,7 +3,7 @@ "schematics": { "migration-01": { "version": "17.1.0", - "description": "Updates Ignite UI for Angular Schematics project from 17.0.X to 17.1.X", + "description": "Updates Ignite UI for Angular Schematics project from 17.0.x to 17.1.x", "factory": "./update-1", "schema": "./schema.json" } diff --git a/packages/ng-schematics/src/migrations/schema.json b/packages/ng-schematics/src/migrations/schema.json index 9a0fb5b44..3ca6953e0 100644 --- a/packages/ng-schematics/src/migrations/schema.json +++ b/packages/ng-schematics/src/migrations/schema.json @@ -1,7 +1,7 @@ { "$schema": "http://json-schema.org/schema", - "$id": "igniteui-angular-ng-add", - "title": "IgniteUI for Angular ng-add schematic", + "$id": "igniteui-angular--schematics", + "title": "IgniteUI for Angular Schematics", "type": "object", "properties": { "applyMigrations": { diff --git a/packages/ng-schematics/src/migrations/update-1/index.spec.ts b/packages/ng-schematics/src/migrations/update-1/index.spec.ts index 52455d32b..0d25921a5 100644 --- a/packages/ng-schematics/src/migrations/update-1/index.spec.ts +++ b/packages/ng-schematics/src/migrations/update-1/index.spec.ts @@ -2,7 +2,7 @@ import * as path from "path"; import { EmptyTree } from "@angular-devkit/schematics"; import { SchematicTestRunner, UnitTestTree } from "@angular-devkit/schematics/testing"; -describe("Update XXX", () => { +describe("Update 17.1.0", () => { let appTree: UnitTestTree; const schematicRunner = new SchematicTestRunner("ig-migrate", path.join(__dirname, "../migration-collection.json")); diff --git a/packages/ng-schematics/src/migrations/update-1/index.ts b/packages/ng-schematics/src/migrations/update-1/index.ts index 6f9eb5013..1809f89c4 100644 --- a/packages/ng-schematics/src/migrations/update-1/index.ts +++ b/packages/ng-schematics/src/migrations/update-1/index.ts @@ -5,7 +5,7 @@ export default function(options: Options): Rule { return (host: Tree, context: SchematicContext) => { if (!options.applyMigrations) { return; } - context.logger.info("Updating project to Ignite UI CLI XXX"); + context.logger.info("Updating @igniteui/angular-schematics to 17.1.0"); const igConfig = "./igniteui-cli.json"; From 98d47e35f679d4238b65c16219bed3a30d4b0601 Mon Sep 17 00:00:00 2001 From: lipata Date: Tue, 12 Dec 2023 19:08:41 +0200 Subject: [PATCH 6/8] chore: release 13.1.0-beta.3 --- packages/cli/package.json | 6 +++--- packages/core/package.json | 2 +- packages/igx-templates/package.json | 4 ++-- packages/ng-schematics/package.json | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index aa320d309..dbf0d490d 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "igniteui-cli", - "version": "13.1.0-beta.0", + "version": "13.1.0-beta.3", "description": "CLI tool for creating Ignite UI projects", "keywords": [ "CLI", @@ -78,8 +78,8 @@ "all": true }, "dependencies": { - "@igniteui/angular-templates": "~17.1.1310-beta.0", - "@igniteui/cli-core": "~13.1.0-beta.0", + "@igniteui/angular-templates": "~17.1.1310-beta.3", + "@igniteui/cli-core": "~13.1.0-beta.3", "chalk": "^2.3.2", "fs-extra": "^3.0.1", "glob": "^7.1.2", diff --git a/packages/core/package.json b/packages/core/package.json index 8dcc4d50b..ec44ce82b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@igniteui/cli-core", - "version": "13.1.0-beta.0", + "version": "13.1.0-beta.3", "description": "Base types and functionality for Ignite UI CLI", "repository": { "type": "git", diff --git a/packages/igx-templates/package.json b/packages/igx-templates/package.json index edf242b7b..b5a36c37c 100644 --- a/packages/igx-templates/package.json +++ b/packages/igx-templates/package.json @@ -1,6 +1,6 @@ { "name": "@igniteui/angular-templates", - "version": "17.1.1310-beta.0", + "version": "17.1.1310-beta.3", "description": "Templates for Ignite UI for Angular projects and components", "repository": { "type": "git", @@ -12,7 +12,7 @@ "author": "Infragistics", "license": "MIT", "dependencies": { - "@igniteui/cli-core": "~13.1.0-beta.0", + "@igniteui/cli-core": "~13.1.0-beta.3", "typescript": "~4.7.2" } } diff --git a/packages/ng-schematics/package.json b/packages/ng-schematics/package.json index f519173a2..0b4113ab7 100644 --- a/packages/ng-schematics/package.json +++ b/packages/ng-schematics/package.json @@ -1,6 +1,6 @@ { "name": "@igniteui/angular-schematics", - "version": "17.1.1310-beta.0", + "version": "17.1.1310-beta.3", "description": "Ignite UI for Angular Schematics for ng new and ng generate", "repository": { "type": "git", @@ -20,8 +20,8 @@ "dependencies": { "@angular-devkit/core": "~14.0.0", "@angular-devkit/schematics": "~14.0.0", - "@igniteui/angular-templates": "~17.1.1310-beta.0", - "@igniteui/cli-core": "~13.1.0-beta.0", + "@igniteui/angular-templates": "~17.1.1310-beta.3", + "@igniteui/cli-core": "~13.1.0-beta.3", "@schematics/angular": "~14.0.0", "rxjs": "^6.6.3" }, From 6b8d344d513d570d2563740cd41ef6ab25a9304c Mon Sep 17 00:00:00 2001 From: jackofdiamond5 Date: Wed, 13 Dec 2023 12:22:09 +0200 Subject: [PATCH 7/8] feat(cli;schematics): update prompts, add launch configs --- .vscode/launch.json | 46 ++++++++++ packages/cli/migrations/schema.json | 4 +- .../migrations/update-13_1_0/index.spec.ts | 88 +++++++++---------- .../cli/migrations/update-13_1_0/index.ts | 6 +- .../ng-schematics/src/migrations/schema.json | 4 +- .../src/migrations/update-1/index.spec.ts | 88 +++++++++---------- .../src/migrations/update-1/index.ts | 6 +- 7 files changed, 144 insertions(+), 98 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 3d10cba23..76adcb298 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -10,6 +10,52 @@ "name": "Attach by Process ID", "processId": "${command:PickProcess}" }, + { + "name": "Run migrations for CLI", + "request": "launch", + "type": "node", + "preLaunchTask": "build", + // "cwd": "", + "cwd": "E:\\Temp\\TestCli", + "args": [ + "-r", + + // you need to install ts-node for the test project + "ts-node/register", + + // "", "g", + "${env:AppData}/npm/node_modules/@angular/cli/bin/ng", "g", + + // "<../../relative/path/from/cwd/to>/igniteui-angular/projects/igniteui-angular/migrations/migration-collection.json:migration- + "../../Igniteui-Repos/igniteui-cli/packages/cli/migrations/migration-collection.json:migration-07" + ], + "env": { + "TS_NODE_PROJECT": "${workspaceFolder}/tsconfig.json" + } + }, + { + "name": "Run migrations for Angular Schematics", + "request": "launch", + "type": "node", + "preLaunchTask": "build", + // "cwd": "", + "cwd": "E:\\Temp\\TestCli", + "args": [ + "-r", + + // you need to install ts-node for the test project + "ts-node/register", + + // "", "g", + "${env:AppData}/npm/node_modules/@angular/cli/bin/ng", "g", + + // "<../../relative/path/from/cwd/to>/igniteui-angular/projects/igniteui-angular/migrations/migration-collection.json:migration- + "../../Igniteui-Repos/igniteui-cli/packages/ng-schematics/src/migrations/migration-collection.json:migration-01" + ], + "env": { + "TS_NODE_PROJECT": "${workspaceFolder}/packages/ng-schematics/tsconfig.json" + } + }, { "type": "node", "request": "launch", diff --git a/packages/cli/migrations/schema.json b/packages/cli/migrations/schema.json index f503f418e..48c19a5e0 100644 --- a/packages/cli/migrations/schema.json +++ b/packages/cli/migrations/schema.json @@ -6,9 +6,9 @@ "properties": { "applyMigrations": { "type": "boolean", - "description": "Apply migrations to the project.", + "description": "We've updated our view templates to use Standalone Components. Those are compatible with your project and you can start using them now or remain with `NgModule` dependencies.", "default": true, - "x-prompt": "Would you like to apply automated migrations?" + "x-prompt": "Would you like to continue with Standalone Components for new views?" } } } diff --git a/packages/cli/migrations/update-13_1_0/index.spec.ts b/packages/cli/migrations/update-13_1_0/index.spec.ts index a0ca8428e..18a015695 100644 --- a/packages/cli/migrations/update-13_1_0/index.spec.ts +++ b/packages/cli/migrations/update-13_1_0/index.spec.ts @@ -14,57 +14,57 @@ describe("Update 13.1.0", () => { it("change projectType to legacy", async done => { appTree.create( - "./igniteui-cli.json", + "./ignite-ui-cli.json", `{ - "igPackageRegistry": "https://packages.infragistics.com/npm/js-licensed/", - "customTemplates": [], - "skipGit": false, - "skipAnalytic": false, - "version": "13.0.1", - "project": { - "defaultPort": 4200, - "framework": "angular", - "projectType": "igx-ts", - "projectTemplate": "side-nav", - "theme": "Default", - "themePath": "node_modules/igniteui-angular/styles/igniteui-angular.css", - "isBundle": false, - "bundleFilePath": "", - "igniteuiSource": "", - "components": [], - "sourceFiles": [], - "isShowcase": false, - "version": "" - }, - "build": {} + "igPackageRegistry": "https://packages.infragistics.com/npm/js-licensed/", + "customTemplates": [], + "skipGit": false, + "skipAnalytic": false, + "version": "13.0.1", + "project": { + "defaultPort": 4200, + "framework": "angular", + "projectType": "igx-ts", + "projectTemplate": "side-nav", + "theme": "Default", + "themePath": "node_modules/igniteui-angular/styles/igniteui-angular.css", + "isBundle": false, + "bundleFilePath": "", + "igniteuiSource": "", + "components": [], + "sourceFiles": [], + "isShowcase": false, + "version": "" + }, + "build": {} }` ); const tree = await schematicRunner.runSchematicAsync("migration-07", { applyMigrations: true }, appTree).toPromise(); - expect(tree.readContent("./igniteui-cli.json")) + expect(tree.readContent("./ignite-ui-cli.json")) .toEqual( `{ - "igPackageRegistry": "https://packages.infragistics.com/npm/js-licensed/", - "customTemplates": [], - "skipGit": false, - "skipAnalytic": false, - "version": "13.0.1", - "project": { - "defaultPort": 4200, - "framework": "angular", - "projectType": "igx-ts-legacy", - "projectTemplate": "side-nav", - "theme": "Default", - "themePath": "node_modules/igniteui-angular/styles/igniteui-angular.css", - "isBundle": false, - "bundleFilePath": "", - "igniteuiSource": "", - "components": [], - "sourceFiles": [], - "isShowcase": false, - "version": "" - }, - "build": {} + "igPackageRegistry": "https://packages.infragistics.com/npm/js-licensed/", + "customTemplates": [], + "skipGit": false, + "skipAnalytic": false, + "version": "13.0.1", + "project": { + "defaultPort": 4200, + "framework": "angular", + "projectType": "igx-ts-legacy", + "projectTemplate": "side-nav", + "theme": "Default", + "themePath": "node_modules/igniteui-angular/styles/igniteui-angular.css", + "isBundle": false, + "bundleFilePath": "", + "igniteuiSource": "", + "components": [], + "sourceFiles": [], + "isShowcase": false, + "version": "" + }, + "build": {} }` ); done(); diff --git a/packages/cli/migrations/update-13_1_0/index.ts b/packages/cli/migrations/update-13_1_0/index.ts index f27fea5e9..2ec602848 100644 --- a/packages/cli/migrations/update-13_1_0/index.ts +++ b/packages/cli/migrations/update-13_1_0/index.ts @@ -5,15 +5,15 @@ export default function(options: any): Rule { return (host: Tree, context: SchematicContext) => { if (!options.applyMigrations) { return; } - context.logger.info("Updating project to Ignite UI CLI 13.1.0"); + context.logger.info("We've updated your project type to `igx-ts-legacy` to continue using `NgModule`-s. You can always change back to `igx-ts` should you want to start using Standalone Components."); - const igConfig = "./igniteui-cli.json"; + const igConfig = "./ignite-ui-cli.json"; if (host.exists(igConfig)) { const content = JSON.parse(host.read(igConfig)!.toString()); if (content?.project?.projectType === "igx-ts") { content.project.projectType = "igx-ts-legacy"; - host.overwrite(igConfig, JSON.stringify(content, null, 4)); + host.overwrite(igConfig, JSON.stringify(content, null, 2)); } } }; diff --git a/packages/ng-schematics/src/migrations/schema.json b/packages/ng-schematics/src/migrations/schema.json index 3ca6953e0..1d2e833d0 100644 --- a/packages/ng-schematics/src/migrations/schema.json +++ b/packages/ng-schematics/src/migrations/schema.json @@ -6,9 +6,9 @@ "properties": { "applyMigrations": { "type": "boolean", - "description": "Apply migrations to the project.", + "description": "We've updated our view templates to use Standalone Components. Those are compatible with your project and you can start using them now or remain with `NgModule` dependencies.", "default": true, - "x-prompt": "Would you like to apply automated migrations?" + "x-prompt": "Would you like to continue with Standalone Components for new views?" } } } diff --git a/packages/ng-schematics/src/migrations/update-1/index.spec.ts b/packages/ng-schematics/src/migrations/update-1/index.spec.ts index 0d25921a5..1cbb093a5 100644 --- a/packages/ng-schematics/src/migrations/update-1/index.spec.ts +++ b/packages/ng-schematics/src/migrations/update-1/index.spec.ts @@ -12,58 +12,58 @@ describe("Update 17.1.0", () => { it("change projectType to legacy", async done => { appTree.create( - "./igniteui-cli.json", + "./ignite-ui-cli.json", `{ - "igPackageRegistry": "https://packages.infragistics.com/npm/js-licensed/", - "customTemplates": [], - "skipGit": false, - "skipAnalytic": false, - "version": "13.0.1", - "project": { - "defaultPort": 4200, - "framework": "angular", - "projectType": "igx-ts", - "projectTemplate": "side-nav", - "theme": "Default", - "themePath": "node_modules/igniteui-angular/styles/igniteui-angular.css", - "isBundle": false, - "bundleFilePath": "", - "igniteuiSource": "", - "components": [], - "sourceFiles": [], - "isShowcase": false, - "version": "" - }, - "build": {} + "igPackageRegistry": "https://packages.infragistics.com/npm/js-licensed/", + "customTemplates": [], + "skipGit": false, + "skipAnalytic": false, + "version": "13.0.1", + "project": { + "defaultPort": 4200, + "framework": "angular", + "projectType": "igx-ts", + "projectTemplate": "side-nav", + "theme": "Default", + "themePath": "node_modules/igniteui-angular/styles/igniteui-angular.css", + "isBundle": false, + "bundleFilePath": "", + "igniteuiSource": "", + "components": [], + "sourceFiles": [], + "isShowcase": false, + "version": "" + }, + "build": {} } ` ); const tree = await schematicRunner.runSchematicAsync("migration-01", { applyMigrations: true }, appTree).toPromise(); - expect(tree.readContent("./igniteui-cli.json")) + expect(tree.readContent("./ignite-ui-cli.json")) .toEqual( `{ - "igPackageRegistry": "https://packages.infragistics.com/npm/js-licensed/", - "customTemplates": [], - "skipGit": false, - "skipAnalytic": false, - "version": "13.0.1", - "project": { - "defaultPort": 4200, - "framework": "angular", - "projectType": "igx-ts-legacy", - "projectTemplate": "side-nav", - "theme": "Default", - "themePath": "node_modules/igniteui-angular/styles/igniteui-angular.css", - "isBundle": false, - "bundleFilePath": "", - "igniteuiSource": "", - "components": [], - "sourceFiles": [], - "isShowcase": false, - "version": "" - }, - "build": {} + "igPackageRegistry": "https://packages.infragistics.com/npm/js-licensed/", + "customTemplates": [], + "skipGit": false, + "skipAnalytic": false, + "version": "13.0.1", + "project": { + "defaultPort": 4200, + "framework": "angular", + "projectType": "igx-ts-legacy", + "projectTemplate": "side-nav", + "theme": "Default", + "themePath": "node_modules/igniteui-angular/styles/igniteui-angular.css", + "isBundle": false, + "bundleFilePath": "", + "igniteuiSource": "", + "components": [], + "sourceFiles": [], + "isShowcase": false, + "version": "" + }, + "build": {} }` ); done(); diff --git a/packages/ng-schematics/src/migrations/update-1/index.ts b/packages/ng-schematics/src/migrations/update-1/index.ts index 1809f89c4..01b2825aa 100644 --- a/packages/ng-schematics/src/migrations/update-1/index.ts +++ b/packages/ng-schematics/src/migrations/update-1/index.ts @@ -5,15 +5,15 @@ export default function(options: Options): Rule { return (host: Tree, context: SchematicContext) => { if (!options.applyMigrations) { return; } - context.logger.info("Updating @igniteui/angular-schematics to 17.1.0"); + context.logger.info("We've updated your project type to `igx-ts-legacy` to continue using `NgModule`-s. You can always change back to `igx-ts` should you want to start using Standalone Components."); - const igConfig = "./igniteui-cli.json"; + const igConfig = "./ignite-ui-cli.json"; if (host.exists(igConfig)) { const content = JSON.parse(host.read(igConfig)!.toString()); if (content?.project?.projectType === "igx-ts") { content.project.projectType = "igx-ts-legacy"; - host.overwrite(igConfig, JSON.stringify(content, null, 4)); + host.overwrite(igConfig, JSON.stringify(content, null, 2)); } } }; From ac66e001191b310a7fe43995856858bedc752e1d Mon Sep 17 00:00:00 2001 From: lipata Date: Wed, 13 Dec 2023 12:32:25 +0200 Subject: [PATCH 8/8] chore: release 13.1.0-beta.4 --- packages/cli/package.json | 6 +++--- packages/core/package.json | 2 +- packages/igx-templates/package.json | 4 ++-- packages/ng-schematics/package.json | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index dbf0d490d..67c88a0a3 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "igniteui-cli", - "version": "13.1.0-beta.3", + "version": "13.1.0-beta.4", "description": "CLI tool for creating Ignite UI projects", "keywords": [ "CLI", @@ -78,8 +78,8 @@ "all": true }, "dependencies": { - "@igniteui/angular-templates": "~17.1.1310-beta.3", - "@igniteui/cli-core": "~13.1.0-beta.3", + "@igniteui/angular-templates": "~17.1.1310-beta.4", + "@igniteui/cli-core": "~13.1.0-beta.4", "chalk": "^2.3.2", "fs-extra": "^3.0.1", "glob": "^7.1.2", diff --git a/packages/core/package.json b/packages/core/package.json index ec44ce82b..ae5371e8c 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@igniteui/cli-core", - "version": "13.1.0-beta.3", + "version": "13.1.0-beta.4", "description": "Base types and functionality for Ignite UI CLI", "repository": { "type": "git", diff --git a/packages/igx-templates/package.json b/packages/igx-templates/package.json index b5a36c37c..f892054d4 100644 --- a/packages/igx-templates/package.json +++ b/packages/igx-templates/package.json @@ -1,6 +1,6 @@ { "name": "@igniteui/angular-templates", - "version": "17.1.1310-beta.3", + "version": "17.1.1310-beta.4", "description": "Templates for Ignite UI for Angular projects and components", "repository": { "type": "git", @@ -12,7 +12,7 @@ "author": "Infragistics", "license": "MIT", "dependencies": { - "@igniteui/cli-core": "~13.1.0-beta.3", + "@igniteui/cli-core": "~13.1.0-beta.4", "typescript": "~4.7.2" } } diff --git a/packages/ng-schematics/package.json b/packages/ng-schematics/package.json index 0b4113ab7..63621eb05 100644 --- a/packages/ng-schematics/package.json +++ b/packages/ng-schematics/package.json @@ -1,6 +1,6 @@ { "name": "@igniteui/angular-schematics", - "version": "17.1.1310-beta.3", + "version": "17.1.1310-beta.4", "description": "Ignite UI for Angular Schematics for ng new and ng generate", "repository": { "type": "git", @@ -20,8 +20,8 @@ "dependencies": { "@angular-devkit/core": "~14.0.0", "@angular-devkit/schematics": "~14.0.0", - "@igniteui/angular-templates": "~17.1.1310-beta.3", - "@igniteui/cli-core": "~13.1.0-beta.3", + "@igniteui/angular-templates": "~17.1.1310-beta.4", + "@igniteui/cli-core": "~13.1.0-beta.4", "@schematics/angular": "~14.0.0", "rxjs": "^6.6.3" },