Igniteui-angular: Buggy "Moving from Trial to Licensed" upgrade

Created on 3 Jun 2020  ยท  16Comments  ยท  Source: IgniteUI/igniteui-angular

Description

Followed the instructions from this page Moving from Trial to Licensed Ignite UI NPM Packages.

In short, it does not work at all.

We have a paid-for license.

  • igniteui-angular version: 9.1.0
  • browser: build issue, so "all"

Steps to reproduce

  1. Follow the Update guide:
โžœ  project git:(feature/ehb-972-new-license) ng update igniteui-angular
Using package manager: 'yarn'
Collecting installed dependencies...
Found 88 dependencies.
Fetching dependency metadata from registry...
Package 'igniteui-angular' is already up to date.
โžœ  project git:(feature/ehb-972-new-license) ng update igniteui-cli
Using package manager: 'yarn'
Collecting installed dependencies...
Found 88 dependencies.
Fetching dependency metadata from registry...
Package 'igniteui-cli' is already up to date.
โžœ  project git:(feature/ehb-972-new-license) ng update @angular/core
Using package manager: 'yarn'
Collecting installed dependencies...
Found 88 dependencies.
Fetching dependency metadata from registry...
Package '@angular/core' is already up to date.
โžœ  project git:(feature/ehb-972-new-license) ng update @angular/cli
Using package manager: 'yarn'
Collecting installed dependencies...
Found 88 dependencies.
Fetching dependency metadata from registry...
Package '@angular/cli' is already up to date.
  1. Run ng g @igniteui/angular-schematics:upgrade-packages
โžœ  project git:(feature/ehb-972-new-license) ng g @igniteui/angular-schematics:upgrade-packages
An unhandled exception occurred: Collection "@igniteui/angular-schematics" cannot be resolved.
See "/tmp/ng-KA5f92/angular-errors.log" for further details.

The file /tmp/ng-KA5f92/angular-errors.log contains this:

[error] Error: Collection "@igniteui/angular-schematics" cannot be resolved.
    at NodeModulesEngineHost.resolve (####/project/node_modules/@angular-devkit/schematics/tools/node-module-engine-host.js:74:19)
    at NodeModulesEngineHost._resolveCollectionPath (####/project/node_modules/@angular-devkit/schematics/tools/node-module-engine-host.js:79:37)
    at NodeModulesEngineHost.createCollectionDescription (####/project//node_modules/@angular-devkit/schematics/tools/file-system-engine-host-base.js:109:27)
    at SchematicEngine._createCollectionDescription (####/project/node_modules/@angular-devkit/schematics/src/engine/engine.js:147:40)
    at SchematicEngine.createCollection (/####/project/node_modules/@angular-devkit/schematics/src/engine/engine.js:140:43)
    at GenerateCommand.getCollection (####/project/node_modules/@angular/cli/models/schematic-command.js:127:35)
    at GenerateCommand.initialize (####/project/node_modules/@angular/cli/models/schematic-command.js:43:37)
    at async GenerateCommand.initialize (####/project/node_modules/@angular/cli/commands/generate-impl.js:12:9)
    at async GenerateCommand.validateAndRun (####/project/node_modules/@angular/cli/models/command.js:124:9)
    at async Object.runCommand (####/project/node_modules/@angular/cli/models/command-runner.js:201:24)
  1. Add @igniteui/angular-schematics manually:
โžœ  ehb-ui-web.git git:(feature/ehb-972-new-license) ng add @igniteui/angular-schematics -D -E
Installing packages for tooling via yarn.
Installed packages for tooling via yarn.
An unhandled exception occurred: Schematic "ng-add" not found in collection "@igniteui/angular-schematics".
See "/tmp/ng-rZlsAX/angular-errors.log" for further details.

The file /tmp/ng-rZlsAX/angular-errors.log contains:

[error] Error: Schematic "ng-add" not found in collection "@igniteui/angular-schematics".
    at SchematicEngine.createSchematic (####/project/node_modules/@angular-devkit/schematics/src/engine/engine.js:232:23)
    at CollectionImpl.createSchematic (####/project/node_modules/@angular-devkit/schematics/src/engine/engine.js:69:29)
    at AddCommand.getSchematic (####/project/node_modules/@angular/cli/models/schematic-command.js:134:27)
    at AddCommand.runSchematic (####/project/node_modules/@angular/cli/models/schematic-command.js:297:32)
    at AddCommand.executeSchematic (####/project/node_modules/@angular/cli/commands/add-impl.js:184:31)
    at AddCommand.run (####/project/node_modules/@angular/cli/commands/add-impl.js:150:21)
    at async AddCommand.validateAndRun (####/project/node_modules/@angular/cli/models/command.js:134:28)
    at async Object.runCommand (####/project/node_modules/@angular/cli/models/command-runner.js:201:24)
    at async default_1 (####/project/node_modules/@angular/cli/lib/cli/index.js:62:31)
  1. The package is added, though, run git diff -w
โžœ  project git:(feature/ehb-972-new-license) โœ— git diff -w
diff --git a/package.json b/package.json
index fef3200..247fe96 100644
--- a/package.json
+++ b/package.json
@@ -60,6 +60,7 @@
     "@fortawesome/pro-light-svg-icons": "^5.13.0",
     "@fortawesome/pro-regular-svg-icons": "5.13.0",
     "@fortawesome/pro-solid-svg-icons": "5.13.0",
+    "@igniteui/angular-schematics": "9.1.510",
     "@types/hammerjs": "2.0.36",
     "apollo-angular": "1.9.1",
     "apollo-angular-link-http": "1.10.0",
diff --git a/yarn.lock b/yarn.lock
index cbf5fff..576b60e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -97,7 +97,7 @@
     "@angular-devkit/core" "9.1.7"
     rxjs "6.5.4"

-"@angular-devkit/[email protected]":
+"@angular-devkit/[email protected]", "@angular-devkit/core@^9.0.1":
   version "9.1.7"
   resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-9.1.7.tgz#f193ccbae4c80b34188bc9cc401c16b3ced50339"
   integrity sha512-guvolu9Cl+qYMTtedLZD9wCqustJjdqzJ2psD2C1Sr1LrX9T0mprmDldR/YnhsitThveJEb6sM/0EvqWxoSvKw==
@@ -1656,6 +1656,18 @@
     "@graphql-tools/utils" "6.0.1"
     tslib "~2.0.0"

+"@igniteui/[email protected]":
+  version "9.1.510"
+  resolved "https://registry.yarnpkg.com/@igniteui/angular-schematics/-/angular-schematics-9.1.510.tgz#110b41485b08f1fce986ec1bc218126622c2db1b"
+  integrity sha512-vfkyYtSl/BULrE8NiwmSErGd7r+Ymzl1nIEIH/2i5wbLoTn3etJUDKTNgvuD7JG/j7PGVFaMUDUdQx7tkJx0RQ==
+  dependencies:
+    "@angular-devkit/core" "^9.0.1"
+    "@angular-devkit/schematics" "^9.0.1"
+    "@igniteui/angular-templates" "~9.1.510"
+    "@igniteui/cli-core" "~5.1.0"
+    "@schematics/angular" "^9.0.1"
+    rxjs "6.5.3"
+
 "@igniteui/angular-templates@~9.1.510":
   version "9.1.510"
   resolved "https://registry.yarnpkg.com/@igniteui/angular-templates/-/angular-templates-9.1.510.tgz#97ff67cffe9e7194534005e3d348a41eeb3f8c5e"
@@ -1944,7 +1956,7 @@
   dependencies:
     any-observable "^0.3.0"

-"@schematics/[email protected]":
+"@schematics/[email protected]", "@schematics/angular@^9.0.1":
   version "9.1.7"
   resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-9.1.7.tgz#b7801a5e20f844da560db81d2971590e8ac090ff"
   integrity sha512-ld3WcoMWvup04V3OWioQ+AFGQBzz7IDM4Fxc5+Qc3wILWkDJnNkrc4EmJAow96Ab4/T1+Wl1vof3tV4At0BTzA==
@@ -11073,6 +11085,13 @@ run-queue@^1.0.0, run-queue@^1.0.3:
   dependencies:
     aproba "^1.1.1"

[email protected]:
+  version "6.5.3"
+  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a"
+  integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==
+  dependencies:
+    tslib "^1.9.0"
+
 [email protected]:
   version "6.5.4"
   resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c"
  1. Try step 2 again, ng g @igniteui/angular-schematics:upgrade-packages
โžœ  project git:(feature/ehb-972-new-license) โœ— ng g @igniteui/angular-schematics:upgrade-packages
The project you've created requires the full version of Ignite UI from Infragistics private feed.
We are initiating the login process for you. This will be required only once per environment.
Adding a registry user account for https://packages.infragistics.com/npm/js-licensed/
Use you Infragistics account credentials. "@" is not supported,use "!!", so "[email protected]" should be entered as "username!!infragistics.com"
Username: USER.NAME!!COMPANY.com   ## evidently, we use a valid e-mail address
Password:
Email: (this IS public) [email protected]
Logged in as USER.NAME!!COMPANY.com to scope @infragistics on https://packages.infragistics.com/npm/js-licensed/.
The "path" argument must be of type string. Received undefined

The upgrade those not work, on many levels.

Result

See logs above, too many errors.

Expected result

Upgrade experience needs to be flawless.

Attachments

None.

bug licensing critical resolved 9.1.x

All 16 comments

@catull Have you tried doing this through the ig command of our CLI and do you experience the same issue? This is the second example line in the article: https://www.infragistics.com/products/ignite-ui-angular/angular/components/general/ignite-ui-licensing.html

ig upgrade-packages

Nope, still fails.

I reverted to the last change before I started with "Moving from Trial to Licensed" endavour.
Also, threw out yarn.lock and node_modules, did a yarn install.

Then ... checked the dependencies / updates:

โžœ  project git:(feature/ehb-972-new-license) ng update igniteui-angular
Using package manager: 'yarn'
Collecting installed dependencies...
Found 88 dependencies.
Fetching dependency metadata from registry...
Package 'igniteui-angular' is already up to date.
โžœ  project git:(feature/ehb-972-new-license) ng update igniteui-cli
Using package manager: 'yarn'
Collecting installed dependencies...
Found 88 dependencies.
Fetching dependency metadata from registry...
Package 'igniteui-cli' is already up to date.
โžœ  project git:(feature/ehb-972-new-license) ng update @angular/core
Using package manager: 'yarn'
Collecting installed dependencies...
Found 88 dependencies.
Fetching dependency metadata from registry...
Package '@angular/core' is already up to date.
โžœ  project git:(feature/ehb-972-new-license) ng update @angular/cli
Using package manager: 'yarn'
Collecting installed dependencies...
Found 88 dependencies.
Fetching dependency metadata from registry...
Package '@angular/cli' is already up to date.
โžœ  ehb-ui-web.git git:(feature/ehb-972-new-license) ig --version
 _____            _ _         _    _ _____    _____ _      _____
|_   _|          (_) |       | |  | |_   _|  / ____| |    |_   _|
  | |  __ _ _ __  _| |_ ___  | |  | | | |   | |    | |      | |
  | | / _` | '_ \| | __/ _ \ | |  | | | |   | |    | |      | |
 _| || (_| | | | | | ||  __/ | |__| |_| |_  | |____| |____ _| |_
|_____\__, |_| |_|_|\__\___|  \____/|_____|  \_____|______|_____|
       __/ |
      |___/

Ignite UI CLI version: 5.1.0
OS: Mac OS

followed by ig upgrade-packages

โžœ  project git:(feature/ehb-972-new-license) ig upgrade-packages
(node:84444) UnhandledPromiseRejectionWarning: TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined
    at validateString (internal/validators.js:121:11)
    at Object.join (path.js:1039:7)
    at Object.<anonymous> (#####/project/node_modules/@igniteui/angular-templates/Update.js:87:34)
    at Generator.next (<anonymous>)
    at #####/project/node_modules/@igniteui/angular-templates/Update.js:8:71
    at new Promise (<anonymous>)
    at __awaiter (#####/project/node_modules/@igniteui/angular-templates/Update.js:4:12)
    at Object.updateWorkspace (#####/project/node_modules/@igniteui/angular-templates/Update.js:45:12)
    at EmptyPageTemplate.<anonymous> (#####/project/node_modules/@igniteui/angular-templates/igx-ts/projects/_base/index.js:58:29)
    at Generator.next (<anonymous>)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:84444) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:84444) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

@catull The last part if related to https://github.com/IgniteUI/igniteui-cli/issues/754 that should be resolved now ([email protected] should pop up as an update option).
Looking at the logs though, I would recommend using ig upgrade-packages --skip-install and yarn install after, since the ig version of the command doesn't support yarn just yet.


As for the general process it shouldn't need to get complicated:

  1. bring your project up to date (hint: ng update igniteui-cli will trigger both it and igniteui-angular)
  2. Run upgrade-packages - Either ig or though the schematics, both the blog and topic list both versions as those should be interchangeable and it depends on how you created/set up your project.

You shouldn't have to manually add the schematics package as well, unless you prefer that style of running commands and want to switch to it instead. Frankly, I'm looking into which part of the topic can be confusing so we can expand on explanations and improve it. Would appreciate the feedback.

@damyanpetev
Thanks, I upgraded as suggested with ng update igniteui-cli.

Finally, I performed the upgrade with ig upgrade-packages.

It timed out, though.

โžœ  project git:(feature/ehb-972-new-license) ig upgrade-packages
The project you've created requires the full version of Ignite UI from Infragistics private feed.
We are initiating the login process for you. This will be required only once per environment.
Adding a registry user account for https://packages.infragistics.com/npm/js-licensed/
Use you Infragistics account credentials. "@" is not supported,use "!!", so "[email protected]" should be entered as "username!!infragistics.com"
Username: USERNAME!!COMPANY.com
Password:
Email: (this IS public) [email protected]
npm ERR! code E500
npm ERR! 500 Internal Server Error - PUT https://packages.infragistics.com/npm/js-licensed/-/user/org.couchdb.user:USERNAME!!COMPANY.com

npm ERR! A complete log of this run can be found in:
npm ERR! #######/.npm/_logs/2020-06-03T16_04_31_128Z-debug.log
Something went wrong, please follow the steps in this guide: https://www.infragistics.com/products/ignite-ui-angular/angular/components/general/ignite-ui-licensing.html
```

The file #######/.npm/_logs/2020-06-03T16_04_31_128Z-debug.log contains

0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli   '/opt/node-v14.3.0-darwin-x64/bin/node',
1 verbose cli   '/opt/node/bin/npm',
1 verbose cli   'adduser',
1 verbose cli   '--registry=https://packages.infragistics.com/npm/js-licensed/',
1 verbose cli   '--scope=@infragistics',
1 verbose cli   '--always-auth'
1 verbose cli ]
2 info using [email protected]
3 info using [email protected]
4 verbose npm-session 23949e6e5e526614
5 verbose web login before first POST
6 http fetch POST 500 https://packages.infragistics.com/npm/js-licensed/-/v1/login 610ms
7 verbose web login not supported, trying couch
8 verbose login before first PUT {
8 verbose login   _id: 'org.couchdb.user:USERNAME!!COMPANY.com',
8 verbose login   name: 'USERNAME!!COMPANY.com',
8 verbose login   password: 'XXXXX',
8 verbose login   type: 'user',
8 verbose login   roles: [],
8 verbose login   date: '2020-06-03T16:02:07.140Z'
8 verbose login }
9 http fetch PUT 500 https://packages.infragistics.com/npm/js-licensed/-/user/org.couchdb.user:USERNAME!!COMPANY.com 73210ms attempt #3
10 verbose adduser before first PUT {
10 verbose adduser   _id: 'org.couchdb.user:USERNAME!!COMPANY.com',
10 verbose adduser   name: 'USERNAME!!COMPANY.com',
10 verbose adduser   password: 'XXXXX',
10 verbose adduser   email: '[email protected]',
10 verbose adduser   type: 'user',
10 verbose adduser   roles: [],
10 verbose adduser   date: '2020-06-03T16:03:20.353Z'
10 verbose adduser }
11 http fetch PUT 500 https://packages.infragistics.com/npm/js-licensed/-/user/org.couchdb.user:USERNAME!!COMPANY.com 70769ms attempt #3
12 verbose stack Error: 500 Internal Server Error - PUT https://packages.infragistics.com/npm/js-licensed/-/user/org.couchdb.user:USERNAME!!COMPANY.com
12 verbose stack     at /opt/node-v14.3.0-darwin-x64/lib/node_modules/npm/node_modules/npm-registry-fetch/check-response.js:104:15
12 verbose stack     at processTicksAndRejections (internal/process/task_queues.js:97:5)
13 verbose statusCode 500
14 verbose pkgid org.couchdb.user:USERNAME!!COMPANY.com
15 verbose cwd ###/project
16 verbose Darwin 17.7.0
17 verbose argv "/opt/node-v14.3.0-darwin-x64/bin/node" "/opt/node/bin/npm" "adduser" "--registry=https://packages.infragistics.com/npm/js-licensed/" "--scope=@infragistics" "--always-auth"
18 verbose node v14.3.0
19 verbose npm  v6.14.5
20 error code E500
21 error 500 Internal Server Error - PUT https://packages.infragistics.com/npm/js-licensed/-/user/org.couchdb.user:USERNAME!!COMPANY.com
22 verbose exit [ 1, true ]

Btw, performing ig upgrade-packages --skip-install gives the same result.

So, this is not due to using yarn.

Ah the login failed? Thought I saw a successful login in your initial post. Assuming you are using the same login as before, it should work though - I see the registry feed is responding and just re-logged myself.
The 500 is definitely not normal, will let the team know so they can investigate.

I deleted the username and password from ~/.npmrc because I added an access token.
This is to see if a token can be used instead of username & password.

Thus, I have to log in again.

Found a work-around.

  1. mv ~/.npmrc ~/.npmrc.orig
  2. ig upgrade-packages --skip-install
  3. add missing pieces from ~/.npmrc.orig back to ~/.npmrc.

Why simple if it works in a complicated way ?

Feedback, explicitly state that IngiteUI CLI does not properly work with yarn, as far as the upgrading is concerned.

So the login process did go through after all? Just to get the details - did your original .npmrc still contain a setup for the @infragistics scope, just not from the login prompt, but from the topic linked above?
Something like:

@infragistics:registry=https://packages.infragistics.com/npm/js-licensed/
//packages.infragistics.com/npm/js-licensed/:_auth={YOUR_ACCESS_TOKEN}
//packages.infragistics.com/npm/js-licensed/:username={USERNAME}
//packages.infragistics.com/npm/js-licensed/:always-auth=true

In that case npm whoami --registry=https://packages.infragistics.com/npm/js-licensed/ should correctly report your username (yarn's passthrough version of this command doesn't support the argument..). That's what the upgrade command checks for and assuming that returns, it won't be asking you for login at all.

Another feedback, if one uses yarn, the --skip-install & yarn install trick must be mentioned .

Sorry, I do not have the original .npmrc anymore, the one that caused the buggy behaviour.
Should have included it at the beginning.

It definitely had my auth token for npmjs.org as a minimum.

Now I cannot reproduce the behaviour anymore.

Always going back to the commit before the upgrade, removing node_modules etc.

Perhaps you guys fixed it, congrats!

I now even got rid of the "Trial" background.

@catull, excluding #7488, it seems other issues are resolved. Please feel free to reopen the issue or create new one.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

brianlagunas picture brianlagunas  ยท  3Comments

ChronosSF picture ChronosSF  ยท  3Comments

nikunjgajera picture nikunjgajera  ยท  3Comments

SAndreeva picture SAndreeva  ยท  3Comments

Eralmidia picture Eralmidia  ยท  3Comments