From 2c0875075cda22451237cda4d74e0aa434f763cb Mon Sep 17 00:00:00 2001 From: Edouard Bozon Date: Sat, 5 Oct 2024 14:01:45 +0200 Subject: [PATCH 1/7] fix(ionic-react): fix build target + fix e2e tests --- e2e/ionic-react-e2e/project.json | 1 + e2e/ionic-react-e2e/tests/ionic-react.spec.ts | 10 ++++----- .../files/{src => }/index.html.template | 0 .../configuration/lib/add-dependencies.ts | 22 ++++++++++++++++++- packages/ionic-react/src/utils/versions.ts | 6 +++++ 5 files changed, 32 insertions(+), 7 deletions(-) rename packages/ionic-react/src/generators/configuration/files/{src => }/index.html.template (100%) diff --git a/e2e/ionic-react-e2e/project.json b/e2e/ionic-react-e2e/project.json index 67f3823e..0f973d07 100644 --- a/e2e/ionic-react-e2e/project.json +++ b/e2e/ionic-react-e2e/project.json @@ -4,6 +4,7 @@ "projectType": "application", "sourceRoot": "e2e/ionic-react-e2e/tests", "targets": { + "e2e": {}, "lint": { "executor": "@nx/eslint:lint", "outputs": ["{options.outputFile}"] diff --git a/e2e/ionic-react-e2e/tests/ionic-react.spec.ts b/e2e/ionic-react-e2e/tests/ionic-react.spec.ts index d85f2f2c..87f5a817 100644 --- a/e2e/ionic-react-e2e/tests/ionic-react.spec.ts +++ b/e2e/ionic-react-e2e/tests/ionic-react.spec.ts @@ -1,9 +1,7 @@ import { runNxCommandAsync, uniq } from '@nx/plugin/testing'; -import { createTestProject, installPlugin } from '@nxext/e2e-utils'; +import { createTestProject, installPlugin, stripAnsi } from '@nxext/e2e-utils'; import { rmSync } from 'fs'; -const ansiEscapeCodeRegex = /\x1B\[[0-?]*[ -/]*[@-~]/g; - describe('ionic-react-project e2e', () => { let projectDirectory: string; const app = uniq('ionic-react'); @@ -13,7 +11,7 @@ describe('ionic-react-project e2e', () => { installPlugin(projectDirectory, 'ionic-react'); await runNxCommandAsync( - `generate @nx/react:application ${app} --style=css --minimal --e2eTestRunner=none --linter=none --projectNameAndRootFormat=derived --skipFormat=true` + `generate @nx/react:application ${app} --style=css --bundler=vite --unitTestRunner=vitest --minimal --e2eTestRunner=none --linter=none --projectNameAndRootFormat=derived --skipFormat=true` ); await runNxCommandAsync( `generate @nxext/ionic-react:configuration --project=${app} --appName=test --appId=test --skipFormat=true` @@ -30,14 +28,14 @@ describe('ionic-react-project e2e', () => { it('should build successfully', async () => { const buildResults = await runNxCommandAsync(`build ${app}`); - expect(buildResults.stdout.replace(ansiEscapeCodeRegex, '')).toContain( + expect(stripAnsi(buildResults.stdout)).toContain( `Successfully ran target build for project ${app}` ); }); it('should run tests successfully', async () => { const testResults = await runNxCommandAsync(`test ${app}`); - expect(testResults.stdout.replace(ansiEscapeCodeRegex, '')).toContain( + expect(stripAnsi(testResults.stdout)).toContain( `Successfully ran target test for project ${app}` ); }); diff --git a/packages/ionic-react/src/generators/configuration/files/src/index.html.template b/packages/ionic-react/src/generators/configuration/files/index.html.template similarity index 100% rename from packages/ionic-react/src/generators/configuration/files/src/index.html.template rename to packages/ionic-react/src/generators/configuration/files/index.html.template diff --git a/packages/ionic-react/src/generators/configuration/lib/add-dependencies.ts b/packages/ionic-react/src/generators/configuration/lib/add-dependencies.ts index e352c7a6..b03eedd1 100644 --- a/packages/ionic-react/src/generators/configuration/lib/add-dependencies.ts +++ b/packages/ionic-react/src/generators/configuration/lib/add-dependencies.ts @@ -3,6 +3,8 @@ import { ionicReactRouterVersion, ionicReactVersion, ionIconsVersion, + reactRouterVersion, + reactVersion, } from '../../../utils/versions'; export function addDependencies(host: Tree) { @@ -12,7 +14,25 @@ export function addDependencies(host: Tree) { '@ionic/react': ionicReactVersion, '@ionic/react-router': ionicReactRouterVersion, ionicons: ionIconsVersion, + + '@capacitor/haptics': '6.0.1', + '@capacitor/keyboard': '6.0.2', + '@capacitor/status-bar': '6.0.1', + + /** + * Following deps are overwrite because React Router v6 is not compatible with Ionic React Router + */ + + react: '^18.2.0', + 'react-dom': '^18.2.0', + 'react-router': '^5.3.4', + 'react-router-dom': '^5.3.4', }, - {} + { + '@types/react-router': '^5.1.20', + '@types/react-router-dom': '^5.3.3', + '@types/react': '^18.0.27', + '@types/react-dom': '^18.0.10', + } ); } diff --git a/packages/ionic-react/src/utils/versions.ts b/packages/ionic-react/src/utils/versions.ts index 7716359e..4c7f2aa0 100644 --- a/packages/ionic-react/src/utils/versions.ts +++ b/packages/ionic-react/src/utils/versions.ts @@ -1,3 +1,9 @@ export const ionicReactVersion = '^8.0.0'; export const ionicReactRouterVersion = '^8.0.0'; export const ionIconsVersion = '^7.0.0'; +/** + * React Router v6 is not compatible with Ionic React Router, so we force using the v5 + * See: https://github.com/ionic-team/ionic-framework/issues/24177, https://github.com/ionic-team/ionic-framework/blob/main/packages/react-router/package.json#L46 + */ +export const reactRouterVersion = '^5.3.4'; +export const reactVersion = '^18.2.0'; From dd64b892daa5c2093575165ad338661f453824d5 Mon Sep 17 00:00:00 2001 From: Edouard Bozon Date: Mon, 7 Oct 2024 12:34:52 +0200 Subject: [PATCH 2/7] fix(ionic-angular): move nx deps to peer deps --- packages/ionic-angular/package.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/ionic-angular/package.json b/packages/ionic-angular/package.json index 886fdd74..d3937ae1 100644 --- a/packages/ionic-angular/package.json +++ b/packages/ionic-angular/package.json @@ -21,11 +21,12 @@ "builders": "./executors.json", "dependencies": { "@nxext/capacitor": "^19.1.1", - "@nx/devkit": "^19.0.0", - "@nx/angular": "^19.0.0", "tslib": "^2.3.0", "typescript": "5.5.4", "@phenomnomnominal/tsquery": "~5.0.1" }, - "peerDependencies": {} + "peerDependencies": { + "@nx/devkit": "^19.0.0", + "@nx/angular": "^19.0.0" + } } From 2ed1edc6049cbd05d0a16e531c75a1b3a225712e Mon Sep 17 00:00:00 2001 From: Edouard Bozon Date: Mon, 7 Oct 2024 12:42:55 +0200 Subject: [PATCH 3/7] fix(capacitor): move nx deps to peer deps --- packages/capacitor/package.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/capacitor/package.json b/packages/capacitor/package.json index fa368b40..e1d5c5a6 100644 --- a/packages/capacitor/package.json +++ b/packages/capacitor/package.json @@ -18,10 +18,11 @@ "schematics": "./generators.json", "builders": "./executors.json", "dependencies": { - "@nx/devkit": "^19.0.0", - "nx": "^19.0.0", "ignore": "^5.3.1", "tslib": "^2.3.0" }, - "peerDependencies": {} + "peerDependencies": { + "@nx/devkit": "^19.0.0", + "nx": "^19.0.0" + } } From e14c576eb7b9cf06c7fb7af5eef2c3e6a5e70d02 Mon Sep 17 00:00:00 2001 From: Edouard Bozon Date: Tue, 8 Oct 2024 09:42:13 +0200 Subject: [PATCH 4/7] fix(ionic-react): move nx deps to peer deps --- packages/ionic-react/package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/ionic-react/package.json b/packages/ionic-react/package.json index fcb02e72..adb76713 100644 --- a/packages/ionic-react/package.json +++ b/packages/ionic-react/package.json @@ -21,8 +21,9 @@ "builders": "./executors.json", "dependencies": { "@nxext/capacitor": "^19.1.1", - "@nx/devkit": "^19.0.0", "tslib": "^2.3.0" }, - "peerDependencies": {} + "peerDependencies": { + "@nx/devkit": "^19.0.0" + } } From 1c64094dc96f482e36d71d85dd282fbd184ddba0 Mon Sep 17 00:00:00 2001 From: Edouard Bozon Date: Tue, 8 Oct 2024 09:54:30 +0200 Subject: [PATCH 5/7] refactor(ionic-react): override router deps --- .../configuration/lib/add-dependencies.ts | 25 ++++++++----------- packages/ionic-react/src/utils/versions.ts | 4 ++- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/packages/ionic-react/src/generators/configuration/lib/add-dependencies.ts b/packages/ionic-react/src/generators/configuration/lib/add-dependencies.ts index b03eedd1..c2738ca1 100644 --- a/packages/ionic-react/src/generators/configuration/lib/add-dependencies.ts +++ b/packages/ionic-react/src/generators/configuration/lib/add-dependencies.ts @@ -4,7 +4,9 @@ import { ionicReactVersion, ionIconsVersion, reactRouterVersion, - reactVersion, + capacitorPluginsVersion, + reactRouterDomTypesVersion, + reactRouterTypesVersion, } from '../../../utils/versions'; export function addDependencies(host: Tree) { @@ -14,25 +16,18 @@ export function addDependencies(host: Tree) { '@ionic/react': ionicReactVersion, '@ionic/react-router': ionicReactRouterVersion, ionicons: ionIconsVersion, - - '@capacitor/haptics': '6.0.1', - '@capacitor/keyboard': '6.0.2', - '@capacitor/status-bar': '6.0.1', - + '@capacitor/haptics': capacitorPluginsVersion, + '@capacitor/keyboard': capacitorPluginsVersion, + '@capacitor/status-bar': capacitorPluginsVersion, /** * Following deps are overwrite because React Router v6 is not compatible with Ionic React Router */ - - react: '^18.2.0', - 'react-dom': '^18.2.0', - 'react-router': '^5.3.4', - 'react-router-dom': '^5.3.4', + 'react-router': reactRouterVersion, + 'react-router-dom': reactRouterVersion, }, { - '@types/react-router': '^5.1.20', - '@types/react-router-dom': '^5.3.3', - '@types/react': '^18.0.27', - '@types/react-dom': '^18.0.10', + '@types/react-router': reactRouterTypesVersion, + '@types/react-router-dom': reactRouterDomTypesVersion, } ); } diff --git a/packages/ionic-react/src/utils/versions.ts b/packages/ionic-react/src/utils/versions.ts index 4c7f2aa0..9b42a005 100644 --- a/packages/ionic-react/src/utils/versions.ts +++ b/packages/ionic-react/src/utils/versions.ts @@ -1,9 +1,11 @@ export const ionicReactVersion = '^8.0.0'; export const ionicReactRouterVersion = '^8.0.0'; export const ionIconsVersion = '^7.0.0'; +export const capacitorPluginsVersion = '^6.0.0'; /** * React Router v6 is not compatible with Ionic React Router, so we force using the v5 * See: https://github.com/ionic-team/ionic-framework/issues/24177, https://github.com/ionic-team/ionic-framework/blob/main/packages/react-router/package.json#L46 */ export const reactRouterVersion = '^5.3.4'; -export const reactVersion = '^18.2.0'; +export const reactRouterTypesVersion = '^5.1.20'; +export const reactRouterDomTypesVersion = '^5.3.3'; From ea0c6fa80e284a03f11fe62616aafb5479b8d86f Mon Sep 17 00:00:00 2001 From: Edouard Bozon Date: Tue, 8 Oct 2024 10:11:42 +0200 Subject: [PATCH 6/7] chore(ci): update nx release config --- nx.json | 7 +++---- packages/capacitor/package.json | 2 +- packages/ionic-angular/package.json | 4 ++-- packages/ionic-react/package.json | 4 ++-- packages/preact/package.json | 2 +- packages/solid/package.json | 2 +- packages/stencil/package.json | 2 +- packages/svelte/package.json | 2 +- packages/sveltekit/package.json | 2 +- 9 files changed, 13 insertions(+), 14 deletions(-) diff --git a/nx.json b/nx.json index 420c28f0..7712c093 100644 --- a/nx.json +++ b/nx.json @@ -96,7 +96,7 @@ "cache": true }, "nx-release-publish": { - "dependsOn": ["build"], + "dependsOn": ["^build"], "options": { "packageRoot": "dist/{projectRoot}" } @@ -116,11 +116,10 @@ "projects": ["packages/*", "!common"], "projectsRelationship": "independent", "version": { + "conventionalCommits": true, "generatorOptions": { - "currentVersionResolver": "git-tag", "fallbackCurrentVersionResolver": "disk", - "updateDependents": "auto", - "specifierSource": "conventional-commits" + "updateDependents": "auto" } }, "changelog": { diff --git a/packages/capacitor/package.json b/packages/capacitor/package.json index e1d5c5a6..638c2adc 100644 --- a/packages/capacitor/package.json +++ b/packages/capacitor/package.json @@ -1,6 +1,6 @@ { "name": "@nxext/capacitor", - "version": "19.1.1", + "version": "0.0.0-e2e", "description": "An Nx plugin for developing cross-platform applications using Capacitor", "homepage": "https://nxext.github.io/nx-extensions/docs/capacitor/getting-started.html", "repository": { diff --git a/packages/ionic-angular/package.json b/packages/ionic-angular/package.json index d3937ae1..99c3400a 100644 --- a/packages/ionic-angular/package.json +++ b/packages/ionic-angular/package.json @@ -1,7 +1,7 @@ { "name": "@nxext/ionic-angular", "description": "An Nx plugin for developing Ionic Angular applications", - "version": "19.1.1", + "version": "0.0.0-e2e", "homepage": "https://nxext.github.io/nx-extensions/docs/ionic-angular/overview.html", "repository": { "type": "git", @@ -20,7 +20,7 @@ "schematics": "./generators.json", "builders": "./executors.json", "dependencies": { - "@nxext/capacitor": "^19.1.1", + "@nxext/capacitor": "^0.0.0-e2e", "tslib": "^2.3.0", "typescript": "5.5.4", "@phenomnomnominal/tsquery": "~5.0.1" diff --git a/packages/ionic-react/package.json b/packages/ionic-react/package.json index adb76713..c258b121 100644 --- a/packages/ionic-react/package.json +++ b/packages/ionic-react/package.json @@ -1,6 +1,6 @@ { "name": "@nxext/ionic-react", - "version": "19.1.1", + "version": "0.0.0-e2e", "description": "An Nx plugin for developing Ionic React applications and libraries", "homepage": "https://nxext.github.io/nx-extensions/docs/ionic-react/overview.html", "repository": { @@ -20,7 +20,7 @@ "schematics": "./generators.json", "builders": "./executors.json", "dependencies": { - "@nxext/capacitor": "^19.1.1", + "@nxext/capacitor": "^0.0.0-e2e", "tslib": "^2.3.0" }, "peerDependencies": { diff --git a/packages/preact/package.json b/packages/preact/package.json index 59478f23..f93d3704 100644 --- a/packages/preact/package.json +++ b/packages/preact/package.json @@ -1,6 +1,6 @@ { "name": "@nxext/preact", - "version": "19.0.1", + "version": "0.0.0-e2e", "license": "MIT", "author": "Jordan Hall", "description": "Nx plugin for preact", diff --git a/packages/solid/package.json b/packages/solid/package.json index eeabafe8..65ec054a 100644 --- a/packages/solid/package.json +++ b/packages/solid/package.json @@ -1,6 +1,6 @@ { "name": "@nxext/solid", - "version": "19.0.1", + "version": "0.0.0-e2e", "license": "MIT", "author": "Dominik Pieper", "description": "Nx plugin for solid", diff --git a/packages/stencil/package.json b/packages/stencil/package.json index c220fa49..7e792adb 100644 --- a/packages/stencil/package.json +++ b/packages/stencil/package.json @@ -1,6 +1,6 @@ { "name": "@nxext/stencil", - "version": "19.0.1", + "version": "0.0.0-e2e", "license": "MIT", "author": "Dominik Pieper", "description": "Nx plugin for stenciljs", diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 522dcac7..ba0856a9 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -1,6 +1,6 @@ { "name": "@nxext/svelte", - "version": "19.0.1", + "version": "0.0.0-e2e", "license": "MIT", "author": "Dominik Pieper", "description": "Nx plugin for Svelte", diff --git a/packages/sveltekit/package.json b/packages/sveltekit/package.json index d9da3bde..4bcac960 100644 --- a/packages/sveltekit/package.json +++ b/packages/sveltekit/package.json @@ -1,6 +1,6 @@ { "name": "@nxext/sveltekit", - "version": "19.0.1", + "version": "0.0.0-e2e", "license": "MIT", "author": "Dominik Pieper", "description": "Nx plugin for Sveltekit", From 15a5dfd1dd10b339d68465869fa4f737b00c05fa Mon Sep 17 00:00:00 2001 From: Edouard Bozon Date: Tue, 8 Oct 2024 10:16:57 +0200 Subject: [PATCH 7/7] chore(ci): build before release --- tools/scripts/start-local-registry.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tools/scripts/start-local-registry.ts b/tools/scripts/start-local-registry.ts index ef007361..e0657540 100644 --- a/tools/scripts/start-local-registry.ts +++ b/tools/scripts/start-local-registry.ts @@ -3,6 +3,7 @@ * It is meant to be called in jest's globalSetup. */ import { startLocalRegistry } from '@nx/js/plugins/jest/local-registry'; +import { execFileSync } from 'child_process'; import { releasePublish, releaseVersion } from 'nx/release'; export default async () => { @@ -30,6 +31,15 @@ export default async () => { }, }); + execFileSync('pnpm', [ + 'nx', + 'run-many', + '-t', + 'build', + '--exclude', + 'docs,common', + ]); + await releasePublish({ tag: 'e2e', firstRelease: true,