diff --git a/apps/docs/blog/draft/2020-12-02-nxtend-11.0.0.md b/apps/docs/blog/2021-01-04-nxtend-11.0.0.md similarity index 56% rename from apps/docs/blog/draft/2020-12-02-nxtend-11.0.0.md rename to apps/docs/blog/2021-01-04-nxtend-11.0.0.md index 1dbcf0f6..8046f85d 100644 --- a/apps/docs/blog/draft/2020-12-02-nxtend-11.0.0.md +++ b/apps/docs/blog/2021-01-04-nxtend-11.0.0.md @@ -1,15 +1,19 @@ --- title: 'Nx 11 Support and Plugin Updates' author: Devin Shoemaker -author_title: Maintainer of nxtend +author_title: Maintainer of Nxtend author_url: https://twitter.com/paranoidcoder author_image_url: https://avatars2.githubusercontent.com/u/1919548?s=460&u=e8799ad545249d59bf57b7ee35a8841825004ca0&v=4 -tags: [ionic-react, capacitor, release] +tags: [ionic-react, ionic-angular, capacitor, release] --- -The Nxtend plugins have been updated to support Nx 11, and with that are coming some changes. Nxtend plugin versions will now be more closely aligned with Nx, so all Nxtend plugins will be bumped to version 11.0.0. +The Nxtend plugins have been updated to support Nx 11, and with that are coming some changes. Nxtend plugin versions will now be more closely aligned with Nx, and the Ionic and Capacitor plugins will be more closely aligned with their respective projects. A lot of work have gone into the updates of each of these plugins. Features have been added, bugs have been fixed, and there were even some breaking changes. However, I think that Nxtend is the most sustainable and maintanable than ever. -# Ionic React +Read more for details on updates and upgrades... + + + +## Ionic React This plugin has some more dramatic changes compared to the rest. I have determined that some changes needed to be made to ensure the longevity of this project, and that resulted in the removal of some functionality. This is a breaking change in terms of interfacing with the plugin schematics, but it should not break existing applications. In this case, a number of options have been removed from the `application` schematic. @@ -24,21 +28,21 @@ This includes: --js ``` -Ionic is built with the intention of supporting a certain stack, and maintaining additional configurations take a lot of effort, and a lot of CI/CD time. End-to-end tests for this plugin alone exceed 25 minutes, and every new configuration that is supported only adds to that. It will also be much easier to adopt upstream changes to the Ionic starters if there's not a need to support a variety of different configurations. In the future I want to support more schematics such as libraries, pages, and more, and I want to be able add these enhancements in a scalable manner. +In exchange, this plugin now supports generating several of the official starter templates, such as tabs and sidemenu. These changes more closely align this plugin with the Ionic CLI and will make the project vastly more maintainable. In the future I want to support more schematics such as libraries, pages, and more, and I want to be able add these enhancements in a scalable manner. I hope the users of this plugin will understand this decision. Removing functionality is never a good user experience, but I believe that this change will pay dividends in the future. -## Features +### Features - add additional Ionic starter templates to application schematic - support custom Nx layouts - update Ionic to 5.5.2 -## Bug Fixes +### Bug Fixes - fix generating an application in a sub-directory with Capacitor enabled -## BREAKING CHANGES +### BREAKING CHANGES - remove `classComponent` option from `application` schematic (now defaults to functional components) - remove `style` option from the `application` schematic (now defaults to CSS) @@ -47,27 +51,75 @@ I hope the users of this plugin will understand this decision. Removing function - remove `linter` option from the `application` schematic (now defaults to ESLint) - remove `js` option from the `application` schematic (now defaults to true) -# Ionic Angular +## Ionic Angular -## Features +### Features - Nx 11 support (Nx 11 now required) - update Ionic to 5.5.2 - add additional Ionic starter templates to application schematic - support `none` as a unit test and e2e config for the application schematic -## Bug Fixes +### Bug Fixes - fix generating an application in a sub-directory with Capacitor enabled -# Capacitor +## Capacitor -## Features +### Features - Nx 11 support (Nx 11 now required) - update Capacitor to 2.4.5 - added `cap` builder for a more generic interface with the Capacitor CLI -# Capacitor +## Upgrading + +If you are utilizing the `@nxtend/capacitor` plugin then you should upgrade this first: + +``` +nx migrate @nxtend/capacitor + +yarn install +# or +npm install + +nx migrate --run-migrations migrations.json + +yarn install +# or +npm install +``` + +Next, you can upgrade the `@nxtend/ionic-react` plugin: + +``` +nx migrate @nxtend/ionic-react + +yarn install +# or +npm install + +nx migrate --run-migrations migrations.json + +yarn install +# or +npm install +``` + +Or the `@nxtend/ionic-angular` plugin: + +``` +nx migrate @nxtend/ionic-react + +yarn install +# or +npm install + +nx migrate --run-migrations migrations.json + +yarn install +# or +npm install +``` -For information on upgrading the plugin, visit the [nxtend upgrades documentation](../docs/nxtend/upgrades). +For information on upgrading the plugin, visit the [nxtend upgrades documentation](../../../../docs/nxtend/upgrades). diff --git a/packages/capacitor/package.json b/packages/capacitor/package.json index 7d6afbfc..96ada5ba 100644 --- a/packages/capacitor/package.json +++ b/packages/capacitor/package.json @@ -1,6 +1,6 @@ { "name": "@nxtend/capacitor", - "version": "2.0.2", + "version": "11.0.0", "description": "An Nx plugin for developing cross-platform applications using Capacitor", "author": { "name": "Devin Shoemaker", diff --git a/packages/ionic-angular/package.json b/packages/ionic-angular/package.json index db75b7d2..ea9122d7 100644 --- a/packages/ionic-angular/package.json +++ b/packages/ionic-angular/package.json @@ -1,12 +1,12 @@ { "name": "@nxtend/ionic-angular", - "version": "1.0.0", + "version": "11.0.0", "main": "src/index.js", "schematics": "./collection.json", "builders": "./builders.json", "peerDependencies": { "@nrwl/angular": "^11.0.19", - "@nxtend/capacitor": "^1.0.0" + "@nxtend/capacitor": "^11.0.0" }, "nx-migrations": { "migrations": "./migrations.json" diff --git a/packages/ionic-angular/src/utils/versions.ts b/packages/ionic-angular/src/utils/versions.ts index 198ab62d..00c403ea 100644 --- a/packages/ionic-angular/src/utils/versions.ts +++ b/packages/ionic-angular/src/utils/versions.ts @@ -1,3 +1,3 @@ -export const nxtendCapacitorVersion = '2.0.2'; +export const nxtendCapacitorVersion = '^11.0.0'; export const ionicAngularVersion = '^5.5.2'; export const ionicNativeVersion = '^5.30.0'; diff --git a/packages/ionic-react/package.json b/packages/ionic-react/package.json index b1c0b539..1faa0b13 100644 --- a/packages/ionic-react/package.json +++ b/packages/ionic-react/package.json @@ -1,6 +1,6 @@ { "name": "@nxtend/ionic-react", - "version": "5.0.0-alpha.1", + "version": "11.0.0", "description": "An Nx plugin for developing Ionic React applications and libraries", "author": { "name": "Devin Shoemaker", @@ -20,6 +20,6 @@ }, "peerDependencies": { "@nrwl/react": "^11.0.19", - "@nxtend/capacitor": "*" + "@nxtend/capacitor": "^11.0.0" } } diff --git a/packages/ionic-react/src/utils/versions.ts b/packages/ionic-react/src/utils/versions.ts index bccadf19..a9257154 100644 --- a/packages/ionic-react/src/utils/versions.ts +++ b/packages/ionic-react/src/utils/versions.ts @@ -1,4 +1,4 @@ -export const nxtendCapacitorVersion = '2.0.2'; +export const nxtendCapacitorVersion = '^11.0.0'; export const ionicReactVersion = '^5.5.2'; export const ionicReactRouterVersion = '^5.5.2';