pik-gane / vodle

We develop an interactive, consensus-oriented group decision app
https://twitter.com/vodle_it
GNU Affero General Public License v3.0
24 stars 15 forks source link

upgrade to Ionic v6.2 or newer #179

Closed mensch72 closed 2 years ago

mensch72 commented 2 years ago

to keep up to date, we should upgrade everything to Ionic v6.2 or newer, especially because this will vastly improve datetime picking: https://ionicframework.com/blog/announcing-ionic-v6-2/

but this needs to be tested thoroughly since there might be unexpected dependency issues!

mensch72 commented 2 years ago

starting to upgrade in separate local clone, following https://update.angular.io/

mensch72 commented 2 years ago

following https://update.angular.io/?l=3&v=13.0-14.0 running ng update @angular/core@14 @angular/cli@14 finished successfully, saying

Using package manager: npm
Collecting installed dependencies...
Found 66 dependencies.
Fetching dependency metadata from registry...
    Updating package.json with dependency @angular-devkit/build-angular @ "14.1.1" (was "13.3.9")...
    Updating package.json with dependency @angular-devkit/core @ "14.1.1" (was "13.3.9")...
    Updating package.json with dependency @angular-devkit/schematics @ "14.1.1" (was "13.3.9")...
    Updating package.json with dependency @angular/cli @ "14.1.1" (was "13.3.9")...
    Updating package.json with dependency @angular/compiler @ "14.1.1" (was "13.3.11")...
    Updating package.json with dependency @angular/compiler-cli @ "14.1.1" (was "13.3.11")...
    Updating package.json with dependency @angular/language-service @ "14.1.1" (was "13.3.11")...
    Updating package.json with dependency @angular/animations @ "14.1.1" (was "13.3.11")...
    Updating package.json with dependency @angular/common @ "14.1.1" (was "13.3.11")...
    Updating package.json with dependency @angular/core @ "14.1.1" (was "13.3.11")...
    Updating package.json with dependency @angular/forms @ "14.1.1" (was "13.3.11")...
    Updating package.json with dependency @angular/platform-browser @ "14.1.1" (was "13.3.11")...
    Updating package.json with dependency @angular/platform-browser-dynamic @ "14.1.1" (was "13.3.11")...
    Updating package.json with dependency @angular/router @ "14.1.1" (was "13.3.11")...
UPDATE package.json (3143 bytes)
✔ Packages successfully installed.
** Executing migrations of package '@angular/cli' **

▸ Remove 'defaultProject' option from workspace configuration.
  The project to use will be determined from the current working directory.
UPDATE angular.json (5346 bytes)
  Migration completed.

▸ Remove 'showCircularDependencies' option from browser and server builders.
  Migration completed.

▸ Replace 'defaultCollection' option in workspace configuration with 'schematicCollections'.
UPDATE angular.json (5363 bytes)
  Migration completed.

▸ Update Angular packages 'dependencies' and 'devDependencies' version prefix to '^' instead of '~'.
✔ Packages installed successfully.
  Migration completed.

▸ Remove 'package.json' files from library projects secondary entrypoints.
  Migration completed.

▸ Update TypeScript compilation target to 'ES2020'.
UPDATE tsconfig.json (727 bytes)
  Migration completed.

** Executing migrations of package '@angular/core' **

▸ As of Angular version 13, `entryComponents` are no longer necessary.
UPDATE src/app/app.module.ts (2982 bytes)
  Migration completed.

▸ In Angular version 14, the `pathMatch` property of `Routes` was updated to be a strict union of the two valid options: `'full'|'prefix'`.
  `Routes` and `Route` variables need an explicit type so TypeScript does not infer the property as the looser `string`.
  Migration completed.

▸ As of Angular version 14, Forms model classes accept a type parameter, and existing usages must be opted out to preserve backwards-compatibility.
UPDATE src/app/sharedcomponents/select-server/select-server.component.ts (3340 bytes)
UPDATE src/app/draftpoll/draftpoll.page.ts (26020 bytes)
UPDATE src/app/delegation-dialog/delegation-dialog.page.ts (7522 bytes)
UPDATE src/app/addoption-dialog/addoption-dialog.page.ts (6845 bytes)
UPDATE src/app/settings/settings.page.ts (6526 bytes)
UPDATE src/app/login/login.page.ts (10082 bytes)
  Migration completed.

will keep an eye on the last remarks in that log output regarding Forms.

still, ionic serve then gives errors in JS console: TypeError: resolver.resolveComponentFactory is not a function apparently since we haven't upgraded ionic so far...

mensch72 commented 2 years ago

now continuing according to https://ionicframework.com/docs/intro/upgrading-to-ionic-6 trying npm install @ionic/angular@6 gave incompatibility errors, so i just went on with npm install @ionic/angular@6 --force which seemed to succeed. now ionic serve gives Property 'open' does not exist on type 'IonDatetime'. let's try to fix that next...

mensch72 commented 2 years ago

commenting out that line temporarily makes ionic serve compile successfully. observations:

mensch72 commented 2 years ago

removed pinformatter altogether, it had no function anyway. more observations:

mensch72 commented 2 years ago

apparently all issues have been solved. will test live now.

mensch72 commented 2 years ago

all seems to work. will merge now.