ABenassi87 / ngx-text-diff

A Text Diff component for Angular
https://ngx-text-diff.herokuapp.com/home
50 stars 44 forks source link

Upgrade to Angular 9 #32

Closed govindthakur25 closed 4 years ago

govindthakur25 commented 4 years ago

We have been using this package in our project which was using Angular 7. We are now upgrading our project to Angular 9, and this package is not updated for a while. So I am attempting to upgrade it. This is my first attempt, as well, to contribute to an open-source project.

I have followed the steps mentioned here. I have first upgraded to angular 8 followed by angular 9.

Output of ng update @angular/cli @angular/core

Installing packages for tooling via npm. Installed packages for tooling via npm. Using package manager: 'npm' Collecting installed dependencies... Found 49 dependencies. Fetching dependency metadata from registry... Updating package.json with dependency @angular/cli @ "9.0.1" (was "8.3.25")... Updating package.json with dependency @angular/core @ "9.0.0" (was "8.2.14")... Updating package.json with dependency tsickle @ "0.38.0" (was "0.34.0")... Updating package.json with dependency @angular/compiler-cli @ "9.0.0" (was "8.2.14")... Updating package.json with dependency @angular-devkit/build-angular @ "0.900.1" (was "0.803.25")... Updating package.json with dependency @angular-devkit/build-ng-packagr @ "0.900.1" (was "0.803.25")... Updating package.json with dependency @angular/language-service @ "9.0.0" (was "8.2.14")... Updating package.json with dependency ng-packagr @ "9.0.0" (was "5.7.1")... Updating package.json with dependency @angular/compiler @ "9.0.0" (was "8.2.14")... Updating package.json with dependency @angular/common @ "9.0.0" (was "8.2.14")... Updating package.json with dependency @angular/platform-browser-dynamic @ "9.0.0" (was "8.2.14")... Updating package.json with dependency @angular/platform-browser @ "9.0.0" (was "8.2.14")... Updating package.json with dependency @angular/forms @ "9.0.0" (was "8.2.14")... Updating package.json with dependency @angular/animations @ "9.0.0" (was "8.2.14")... Updating package.json with dependency zone.js @ "0.10.2" (was "0.9.1")... Updating package.json with dependency @angular/router @ "9.0.0" (was "8.2.14")... Updating package.json with dependency typescript @ "3.7.5" (was "3.5.3")... UPDATE package.json (2494 bytes) ✔ Packages installed successfully. Executing migrations of package '@angular/cli'

▸ Angular Workspace migration. Update an Angular CLI workspace to version 9. CREATE projects/ngx-text-diff/tsconfig.lib.prod.json (96 bytes) UPDATE angular.json (5013 bytes) UPDATE tsconfig.json (591 bytes) UPDATE src/tsconfig.app.json (164 bytes) UPDATE package.json (2469 bytes) UPDATE projects/ngx-text-diff/tsconfig.lib.json (651 bytes) ✔ Packages installed successfully. Migration completed.

▸ Lazy loading syntax migration. Update lazy loading syntax to use dynamic imports. Migration completed.

Executing migrations of package '@angular/core'

▸ Static flag migration. Removes the static flag from dynamic queries. As of Angular 9, the "static" flag defaults to false and is no longer required for your view and content queries. Read more about this here: https://v9.angular.io/guide/migration-dynamic-flag UPDATE src/app/components/code-editor/code-editor.component.ts (5759 bytes) Migration completed.

▸ Missing @Injectable and incomplete provider definition migration. In Angular 9, enforcement of @Injectable decorators for DI is a bit stricter and incomplete provider definitions behave differently. Read more about this here: https://v9.angular.io/guide/migration-injectable Migration completed.

▸ ModuleWithProviders migration. In Angular 9, the ModuleWithProviders type without a generic has been deprecated. This migration adds the generic where it is missing. Read more about this here: https://v9.angular.io/guide/migration-module-with-providers Migration completed.

▸ Renderer to Renderer2 migration. As of Angular 9, the Renderer class is no longer available. Renderer2 should be used instead. Read more about this here: https://v9.angular.io/guide/migration-renderer Migration completed.

▸ Undecorated classes with decorated fields migration. As of Angular 9, it is no longer supported to have Angular field decorators on a class that does not have an Angular decorator. Read more about this here: https://v9.angular.io/guide/migration-undecorated-classes Migration completed.

▸ Undecorated classes with DI migration. As of Angular 9, it is no longer supported to use Angular DI on a class that does not have an Angular decorator. Read more about this here: https://v9.angular.io/guide/migration-undecorated-classes Migration completed.

Your project has been updated to Angular version 9! For more info, please see: https://v9.angular.io/guide/updating-to-version-9

P.S. ng build --prod - reported no error.

govindthakur25 commented 4 years ago

Resolved merge conflicts, and discarded package-lock.json changes. The Travis CI build is failing because of the older node version on the Travis server, Angular 9 requires 10.13 or later.

ludetc commented 4 years ago

@govindthakur25 , can you update travis.yml to use node 10? then hopefully someone approves your PR.

govindthakur25 commented 4 years ago

@ludetc Thanks, it's updated now.

31piy commented 4 years ago

@ABenassi87 -- could you please review and approve? Support for Angular 9 is much awaited.

ABenassi87 commented 4 years ago

Hi @govindthakur25, thank you so much for your PR. I will review it, this week. I was busy and I was not able to review it yet. I will try to improve and to add some stuff soon.

ABenassi87 commented 4 years ago

@31piy @govindthakur25 I'm working on a new version 0.6.0 that will include angular 9 support and some code improvements. I am testing the improvements. My goal is to relase it next week. Thank you @ govindthakur25 for your collaboration.

31piy commented 4 years ago

@govindthakur25 -- Angular 9.1.1 is out. Would it be better if we directly upgrade to that? Upgrading from 9.0.0 to 9.1.1 shouldn't be that tough.

ABenassi87 commented 4 years ago

@31piy @govindthakur25 FYI: Yesterday, I released the version 0.6.0 that supports angular 9. I will add some code improvement soon. I'm trying to remove the google diff match dependency.

Thanks for use this library.

govindthakur25 commented 4 years ago

@ABenassi87 - Thanks for the update. I have tested with my codebase and it is working fine.

31piy commented 4 years ago

@ABenassi87 -- please also update the peerDependencies. It throws a lot of warnings when doing npm install on my project.