We recently upgraded to Kendo React 4.0.0 and introduced kendo-ui-licence.
I want to make sure that future developers do not deploy a release with an invalid license. Console outputs on the deployed application will not get noticed.
What is the best practice to do that?
I would say the build has to fail if there is an invalid license. The documentation says: "A post-install script in @progress/kendo-licensing will automatically activate the license during installation." What does "post-install script" mean? Is this automatically triggered when I run `npm install` on my project? And will it fail if the license became invalid? And what's the impact of having some kind of npm caching mechanism (i.e. https://samiprogramming.medium.com/cache-your-npm-install-on-azure-devops-b45ead758c00)? Would it make sense to call `npx kendo-ui-license activate` explicitly so that it fails when the license is no longer valid?
5 Answers, 1 is accepted
Just checked. The build is indeed failing when executing ``npm install`.
Do you recommend to call `npx kendo-ui-license activate` explicitly in case there is some caching mechanism in place for the `npm install` step?
Hi Christian,
Package post-install scripts run on "npm install". Currently, the script for kendo-licensing executes "kendo-ui-license activate" for convenience. It does not fail if a license is missing.
That said, your suggestion is very reasonable. It should be possible to assert that a license has been imported at build-time.
To make this possible, we've decided to change the behavior of the "kendo-ui-license activate" command. It would return a non-zero value when the license is missing. You need to execute it as part of your build script to assert that the activation is successful. The post-install script would still succeed to avoid breaking "npm install".
Caching does not affect the result from the "activate" operation.
These changes are not yet deployed. You can try them out by installing the development version of kendo-licensing: "npm install --save @progress/kendo-licensing@dev".
You should not see failures when running "npm install", at least not due to the license check. What is the error message that you see?
Best Regards,
T. Tsonev
Progress Telerik
Virtual Classroom, the free self-paced technical training that gets you up to speed with Telerik and Kendo UI products quickly just got a fresh new look + new and improved content including a brand new Blazor course! Check it out at https://learn.telerik.com/.
```
> @progress/kendo-licensing@1.0.2 postinstall C:\agent-d\_work\4\s\Sources\Tra\Mistra.Tra.Web.React\node_modules\@progress\kendo-licensing
> node ./bin/kendo-ui-license.js activate
(INFO) Kendo UI: Reading license from "C:\agent-d\_work\4\s\Sources\Tra\Mistra.Tra.Web.React\kendo-ui-license.txt"...
(ERROR) Kendo UI: License key signature is not valid. Please, download a new copy of the license and try again.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.13 (node_modules\webpack-dev-server\node_modules\fsevents):
...
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.2 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm ERR! code ELIFECYCLE
npm ERR! errno 4294967286
npm ERR! @progress/kendo-licensing@1.0.2 postinstall: `node ./bin/kendo-ui-license.js activate`
npm ERR! Exit status 4294967286
npm ERR!
npm ERR! Failed at the @progress/kendo-licensing@1.0.2 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\SVC_TfsBuild\AppData\Roaming\npm-cache\_logs\2020-11-16T08_18_39_471Z-debug.log
```
Thanks for the information anyway.
Hello,
Yes, this is correct—the command will return an error code in case of an invalid license.
We've released the updated @progress/kendo-license package (v1.1.0) that implements the new behavior.
It will now fail (return error code) if you execute `npx kendo-ui-license activate` as a part of the build pipeline.
Best Regards,
T. Tsonev
Progress Telerik
Virtual Classroom, the free self-paced technical training that gets you up to speed with Telerik and Kendo UI products quickly just got a fresh new look + new and improved content including a brand new Blazor course! Check it out at https://learn.telerik.com/.