apache / helix

Mirror of Apache Helix
Apache License 2.0
466 stars 227 forks source link

upgrade helix-front to Angular 6.1 #2053

Closed micahstubbs closed 2 years ago

micahstubbs commented 2 years ago

Is your feature request related to a problem? Please describe.

Two acute problems motivate upgrading the web app helix-front to the latest version of the Angular UI framework (Angular 13 at this writing).

1) node-sass dependency doesn't support M1 MacBooks.

2) Other dependencies have security vulnerabilities.

for example:

> Notes: Vulnerability found: ansi-regex is vulnerable to Inefficient Regular Expression Complexity remediation: Upgrade ansi-regex from 4.1.1 to 5.0.1 to fix the vulnerability.

Describe the solution you'd like

Upgrade helix-front to Angular 13. Perform other dependency upgrades necessary in order to make helix-front easy to maintain and contribute to going forward.

Specifically, replace node-sass with dart-sass, since node-sass is deprecated and dart-sass does support modern M1 / arm64 Macs.

Additional context

This change should also fix #1574 #1573

desaikomal commented 2 years ago

will this continue to work for non-M1 mac and other windows users?

micahstubbs commented 2 years ago

@desaikomal, yes all existing architectures will continue to be supported. You can read more here:

https://github.com/sass/dart-sass/issues/1125

https://sass-lang.com/install

You can install Sass on Windows, Mac, or Linux by downloading the package for your operating system from GitHub and adding it to your PATH. That’s all—there are no external dependencies and nothing else you need to install.

micahstubbs commented 2 years ago

here's a longer list of security vulnerabilities and outdated packages:

npm install 
npm WARN old lockfile
npm WARN old lockfile The package-lock.json file was created with an old version of npm,
npm WARN old lockfile so supplemental metadata must be fetched from the registry.
npm WARN old lockfile
npm WARN old lockfile This is a one-time fix-up, please be patient...
npm WARN old lockfile
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'karma@1.4.1',
npm WARN EBADENGINE   required: { node: '0.10 || 0.12 || 4 || 5 || 6' },
npm WARN EBADENGINE   current: { node: 'v16.10.0', npm: '7.24.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'karma-cli@1.0.1',
npm WARN EBADENGINE   required: { node: '0.10 || 0.12 || 4 || 5 || 6' },
npm WARN EBADENGINE   current: { node: 'v16.10.0', npm: '7.24.0' }
npm WARN EBADENGINE }
npm WARN deprecated fsevents@1.1.3: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
npm WARN deprecated sntp@2.1.0: This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated hoek@4.2.0: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated flatten@1.0.2: flatten is deprecated in favor of utility frameworks such as lodash.
npm WARN deprecated cryptiles@3.1.2: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated extract-text-webpack-plugin@3.0.2: Deprecated. Please use https://github.com/webpack-contrib/mini-css-extract-plugin
npm WARN deprecated html-webpack-plugin@2.30.1: out of support
npm WARN deprecated boom@4.3.1: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated hawk@6.0.2: This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
npm WARN deprecated svgo@0.7.2: This SVGO version is no longer supported. Upgrade to v2.x.x.
npm WARN deprecated uuid@3.1.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.83.0: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated ini@1.3.5: Please update to ini >=1.3.6 to avoid a prototype pollution issue
npm WARN deprecated mkdirp@0.5.1: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated har-validator@5.0.3: this library is no longer supported
npm WARN deprecated tar@2.2.1: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.
npm WARN deprecated domelementtype@1.3.0: update to domelementtype@1.3.1
npm WARN deprecated browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
npm WARN deprecated boom@5.2.0: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated @angular/http@5.1.1: Package no longer supported. Use @angular/common instead, see https://angular.io/guide/deprecations#angularhttp
npm WARN deprecated chokidar@1.7.0: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated uuid@2.0.3: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated cryptiles@2.0.5: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated sntp@1.0.9: This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
npm WARN deprecated boom@2.10.1: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated mkdirp@0.5.0: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated har-validator@4.2.1: this library is no longer supported
npm WARN deprecated request@2.81.0: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated buffer@4.9.1: This version of 'buffer' is out-of-date. You must update to v4.9.2 or newer
npm WARN deprecated hoek@2.16.3: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated hawk@3.1.3: This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
npm WARN deprecated uglify-es@3.2.2: support for ECMAScript is superseded by `uglify-js` as of v3.13.0
npm WARN deprecated core-js@2.5.3: core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.
micahstubbs commented 2 years ago

Taking a fresh look at this, I have checked out a fresh branch on an old Intel Mac. I have verified that using node@8.9.4:

micahstubbs commented 2 years ago

Now that we can a well-defined benchmark state for what tests pass on master on an Intel Mac, I'm going to break #2054 into smaller changes that upgrade a smaller number of versions, with focus on ensuring that npm scripts that run successfully on master continue running successfully.

micahstubbs commented 2 years ago

Let's upgrade a minor version from Angular 5.1 to Angular 5.2

We will use https://update.angular.io/?l=3&v=5.1-5.2 as our guide.

Screen Shot 2022-05-02 at 3 39 29 PM
micahstubbs commented 2 years ago

The Before Updating checklist is complete. Most of these didn't apply. You can see in the 5.1-->5.2 PR diff which changes were relevant to our helix-front codebase.

Screen Shot 2022-05-02 at 3 41 48 PM
micahstubbs commented 2 years ago

Now, we will install the required dependencies for Angular 5.2, slightly modifying the guide to remove animations (which we do not use and is somehow not found by npm) and http (which we no longer use since its functionatlity moved to @angular/common).

npm install @angular/{common,compiler,compiler-cli,core,forms,platform-browser,platform-browser-dynamic,platform-server,router}@^5.2.0 typescript@2.4.2 rxjs@^5.5.2

micahstubbs commented 2 years ago
 npm install @angular/{common,compiler,compiler-cli,core,forms,platform-browser,platform-browser-dynamic,platform-server,router}@^5.2.0 typescript@2.4.2 rxjs@^5.5.2

# npm WARN @angular/cdk@5.0.1 requires a peer of @angular/core@~5.1.0 but none is installed. You must install peer dependencies yourself.
# npm WARN @angular/cdk@5.0.1 requires a peer of @angular/common@~5.1.0 but none is installed. You must install peer dependencies yourself.
# npm WARN @angular/flex-layout@2.0.0-beta.12 requires a peer of @angular/core@~5.1.0 but none is installed. You must install peer dependencies yourself.
# npm WARN @angular/flex-layout@2.0.0-beta.12 requires a peer of @angular/common@~5.1.0 but none is installed. You must install peer dependencies yourself.
# npm WARN @angular/material@5.0.1 requires a peer of @angular/core@~5.1.0 but none is installed. You must install peer dependencies yourself.
# npm WARN @angular/material@5.0.1 requires a peer of @angular/common@~5.1.0 but none is installed. You must install peer dependencies yourself.

# + @angular/common@5.2.11
# + @angular/forms@5.2.11
# + @angular/platform-browser-dynamic@5.2.11
# + @angular/router@5.2.11
# + @angular/compiler-cli@5.2.11
# + @angular/platform-server@5.2.11
# + rxjs@5.5.12
# + @angular/compiler@5.2.11
# + @angular/platform-browser@5.2.11
# + @angular/core@5.2.11
# + typescript@2.4.2
# updated 11 packages in 8.668
micahstubbs commented 2 years ago

Ah, it looks like the guide misses a few packages that we use. Let's update those too.

npm install @angular/{cdk,material}@^5.2.0

micahstubbs commented 2 years ago

Now, let's update @angular/flex-layout, which oddly doesn't sync its versions to Angular like all the other packages do.

First, we need to figure out which version of @angular/flex-layout matches Angular 5.2. A quick search yield this issue: https://github.com/angular/flex-layout/issues/559

which links to this commit https://github.com/angular/flex-layout/commit/061083dca30b596a15801708bf22bf44c044b749

which links to this tag https://github.com/angular/flex-layout/releases/tag/v5.0.0-beta.14

so, we need this command to fix the peer dependency warning:

npm install @angular/flex-layout@5.0.0-beta.14

micahstubbs commented 2 years ago

combined all together, these dependency update commands are:

npm install @angular/{cdk,common,compiler,compiler-cli,core,forms,material,platform-browser,platform-browser-dynamic,platform-server,router}@^5.2.0 @angular/flex-layout@5.0.0-beta.14 typescript@2.4.2 rxjs@^5.5.2

micahstubbs commented 2 years ago

Okay, let's test the upgrade from Angular 5.1 to Angular 5.2.

Helix UI renders with 0 errors and 1 warning in the browser console. The warning is understandable since I did not specify the optional config necessary for the Piwik analytics library to work.

Screen Shot 2022-05-02 at 3 58 18 PM

npm run test results

Screen Shot 2022-05-02 at 4 00 50 PM
micahstubbs commented 2 years ago

Test look good, let's make a Pull Request for the 5.1-->5.2 upgrade.

micahstubbs commented 2 years ago

Alright, let's try to upgrade from Angular 5.2 to Angular 6.0, which is the next version shown in the update guide.

https://update.angular.io/?l=3&v=5.2-6.0

Screen Shot 2022-05-02 at 8 15 11 PM Screen Shot 2022-05-02 at 8 14 15 PM
micahstubbs commented 2 years ago

First, we will consult the handy Angular versions compatibility table to determine which version of nodejs we should be running:

Screen Shot 2022-05-02 at 8 22 42 PM
micahstubbs commented 2 years ago
node -v
# v8.9.4

We are already running a compatible version of nodejs.

We will upgrade the other libraries in a later step.

micahstubbs commented 2 years ago

Update your Angular CLI, and migrate the configuration to the new angular.json format by running the following:

NG_DISABLE_VERSION_CHECK=1 npx @angular/cli@6 update @angular/cli@6

When we run this command, we see this error output

A quick search yields https://stackoverflow.com/questions/59269208/errorrootcode-for-hash-md5-was-not-found-when-using-any-hg-mercurial-command

which led me to https://stackoverflow.com/a/65091975

micahstubbs commented 2 years ago

Let's try NG_DISABLE_VERSION_CHECK=1 npx @angular/cli@6 update @angular/cli@6 again.

That fixed the first issue. Now we see this xcode dev tools related error, since it looks like this command tries to compile some C.

xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

Quick search identifies: https://stackoverflow.com/questions/17980759/xcode-select-active-developer-directory-error

Looks like I need to install full XCode on this machine. Okay, let's do that.

micahstubbs commented 2 years ago

XCode installed, after much hassle.

Still trying to run:

NG_DISABLE_VERSION_CHECK=1 npx @angular/cli@6 update @angular/cli@6

Now facing this error: https://stackoverflow.com/questions/44525746/global-angular-cli-version-greater-than-local-version

let's try:

npm install @angular/cli@6 && npx @angular/cli@6 update @angular/cli@6

This fixes the version mismatch error, but does not convert angular-cli.json to angular.json.

Let's try:

 npx @angular/cli@6 update @angular/cli@6 --migrate-only

That failed as well. https://stackoverflow.com/questions/50232874/angular-6-migration-angular-cli-json-to-angular-json

Let's try:

npm install -G @angular/cli@6
ng update @angular/cli --from=5.2.11 --to=6 --migrate-only

ah hah! this interaction with the way Volta handles globally installed packages might be part of the problem. https://stackoverflow.com/a/66312977/1732222

EDIT: this was the problem.

micahstubbs commented 2 years ago

Let's use nvm instead of volta to manage our nodejs installs.

nvm install 8.9.4

now, let's try to convert angular-cli.json to angular.json again. Hopefully using nvm will enable the globally installed ng binary to be detected correctly.

NG_DISABLE_VERSION_CHECK=1 npx @angular/cli@6 update @angular/cli@6

The command runs without the previous error message, but it still does not convert angular-cli.json to angular.json.

Let's try this one more time:

npm install -g @angular/cli@6
# + @angular/cli@6.2.9
# added 340 packages in 17.437s

ng update @angular/cli --from=5.2.11 --to=6 --migrate-only
micahstubbs commented 2 years ago

It looks like this worked. Here's a gist with the log

micahstubbs commented 2 years ago

Now working on this step:

Update all of your Angular framework packages to v6, and the correct version of RxJS and TypeScript.

NG_DISABLE_VERSION_CHECK=1 npx @angular/cli@6 update @angular/core@6

Which produces this output:

./Release/.deps/Release/obj.target/fse/fsevents.o.d.raw Stats {
  dev: 16777220,
  mode: 33188,
  nlink: 1,
  uid: 501,
  gid: 20,
  rdev: 0,
  blksize: 4096,
  ino: 8813861629,
  size: 1348,
  blocks: 8,
  atimeMs: 1651702160000,
  mtimeMs: 1651702160000,
  ctimeMs: 1651702160813.6194,
  birthtimeMs: 1651702160000,
  atime: 2022-05-04T22:09:20.000Z,
  mtime: 2022-05-04T22:09:20.000Z,
  ctime: 2022-05-04T22:09:20.814Z,
  birthtime: 2022-05-04T22:09:20.000Z }
                  Package "@angular/flex-layout" has an incompatible peer dependency to "rxjs" (requires "^5.5.0", would install "6.6.7").
Incompatible peer dependencies found. See above.
micahstubbs commented 2 years ago

It looks like we need to update @angular/flex-layout. Let's look at their tags and figure out which version of @angular/flex-layout is compatible with Angular 6.

Let's try 6.0.0-beta.18.

micahstubbs commented 2 years ago

Next peer dep error:

Package "ngx-dag" has an incompatible peer dependency to "rxjs" (requires "^5.0.3", would install "6.6.7").

https://github.com/swimlane/ngx-graph/tags?after=6.1.0

Let's try @sminlane/ngx-graph@6.0.0

We also need to do a global find and replace operation to update our code for the new package name.

Find: ngx-dag Replace: @swimlane/ngx-graph

micahstubbs commented 2 years ago

Let's try this update command again:

NG_DISABLE_VERSION_CHECK=1 npx @angular/cli@6 update @angular/core@6

Which produces the output:

./Release/.deps/Release/obj.target/fse/fsevents.o.d.raw Stats {
  dev: 16777220,
  mode: 33188,
  nlink: 1,
  uid: 501,
  gid: 20,
  rdev: 0,
  blksize: 4096,
  ino: 8813893160,
  size: 1348,
  blocks: 8,
  atimeMs: 1651703113000,
  mtimeMs: 1651703113000,
  ctimeMs: 1651703113875.648,
  birthtimeMs: 1651703113000,
  atime: 2022-05-04T22:25:13.000Z,
  mtime: 2022-05-04T22:25:13.000Z,
  ctime: 2022-05-04T22:25:13.876Z,
  birthtime: 2022-05-04T22:25:13.000Z }

Cannot read property 'split' of null

Apparently other people had this problem too. https://github.com/angular/angular-cli/issues/12644

micahstubbs commented 2 years ago

Okay so removing some dependencies from package.json temporarily seems to work around the semver parsing bug in Angular CLI.

Specifically, temporarily remove these packages:

"angulartics2": "^2.2.1",
"body-parser": "^1.17.2",
"core-js": "^2.4.1",
"d3-shape": "^1.2.0",
"dotenv": "^4.0.0",
"express": "^4.15.3",
"express-session": "^1.15.6",
"hammerjs": "^2.0.8",
"ldapjs": "^1.0.2",
"lodash": "^4.17.12",
"moment": "^2.29.2",
"morgan": "^1.8.2",
"ngx-clipboard": "^9.0.0",
"ngx-json-viewer": "^2.3.0",
"ngx-vis": "^0.1.0",
"node-sass": "4.5.3",
"request": "^2.81.0",
"@swimlane/ngx-charts": "^9.1.1",
"@swimlane/ngx-datatable": "^11.1.7",
"@swimlane/ngx-graph": "6.0.0",
"vis": "^4.21.0",

Let's go get the compatible version for this dep: https://github.com/swimlane/ngx-charts/tags

Let's try 9.1.1

micahstubbs commented 2 years ago

Here is the output from the successful update command run:

NG_DISABLE_VERSION_CHECK=1 npx @angular/cli@6 update @angular/core@6
./Release/.deps/Release/obj.target/fse/fsevents.o.d.raw Stats {
  dev: 16777220,
  mode: 33188,
  nlink: 1,
  uid: 501,
  gid: 20,
  rdev: 0,
  blksize: 4096,
  ino: 8813937164,
  size: 1348,
  blocks: 8,
  atimeMs: 1651703820000,
  mtimeMs: 1651703820000,
  ctimeMs: 1651703820563.4534,
  birthtimeMs: 1651703820000,
  atime: 2022-05-04T22:37:00.000Z,
  mtime: 2022-05-04T22:37:00.000Z,
  ctime: 2022-05-04T22:37:00.563Z,
  birthtime: 2022-05-04T22:37:00.000Z }
    Updating package.json with dependency zone.js @ "0.8.29" (was "0.8.18")...
    Updating package.json with dependency rxjs @ "6.6.7" (was "5.5.12")...
    Updating package.json with dependency typescript @ "2.9.2" (was "2.4.2")...
    Updating package.json with dependency @angular/compiler-cli @ "6.1.10" (was "5.2.11")...
    Updating package.json with dependency @angular/core @ "6.1.10" (was "5.2.11")...
    Updating package.json with dependency @angular/compiler @ "6.1.10" (was "5.2.11")...
    Updating package.json with dependency @angular/common @ "6.1.10" (was "5.2.11")...
    Updating package.json with dependency @angular/http @ "6.1.10" (was "5.2.11")...
    Updating package.json with dependency @angular/animations @ "6.1.10" (was "5.2.11")...
    Updating package.json with dependency @angular/platform-browser-dynamic @ "6.1.10" (was "5.2.11")...
    Updating package.json with dependency @angular/router @ "6.1.10" (was "5.2.11")...
    Updating package.json with dependency @angular/platform-server @ "6.1.10" (was "5.2.11")...
    Updating package.json with dependency @angular/platform-browser @ "6.1.10" (was "5.2.11")...
    Updating package.json with dependency @angular/forms @ "6.1.10" (was "5.2.11")...
UPDATE package.json (2125 bytes)
npm WARN deprecated @angular/http@6.1.10: Package no longer supported. Use @angular/common instead, see https://angular.io/guide/deprecations#angularhttp
npm WARN @angular/flex-layout@6.0.0-beta.18 requires a peer of @angular/cdk@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN ajv-keywords@3.5.2 requires a peer of ajv@^6.9.1 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/compiler@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/core@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/platform-browser-dynamic@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/platform-browser@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/common@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.

added 11 packages, removed 102 packages, updated 16 packages and moved 1 package in 13.475s
UPDATE package.json (2159 bytes)
micahstubbs commented 2 years ago

During the Update steps are now complete https://update.angular.io/?l=3&v=5.2-6.0

Screen Shot 2022-05-04 at 3 39 53 PM
micahstubbs commented 2 years ago

Let's Remove deprecated RxJS 5 features using rxjs-tslint auto update rules

In our case, the instructions resolve to these commands:

npm i -g rxjs-tslint
rxjs-5-to-6-migrate -p client/tsconfig.app.json

Which produces this output:

Running the automatic migrations. Please, be patient and wait until the execution completes.
Found and fixed the following deprecations:

Fixed 2 error(s) in /helix/helix-front/client/app/core/user.service.ts
Fixed 7 error(s) in /helix/helix-front/client/app/core/helix.service.ts
Fixed 2 error(s) in /helix/helix-front/client/app/cluster/shared/cluster.service.ts
Fixed 2 error(s) in /helix/helix-front/client/app/instance/shared/instance.service.ts
Fixed 1 error(s) in /helix/helix-front/client/app/cluster/cluster-detail/cluster-detail.component.ts
Fixed 4 error(s) in /helix/helix-front/client/app/resource/shared/resource.service.ts
Fixed 2 error(s) in /helix/helix-front/client/app/workflow/shared/workflow.service.ts
Fixed 1 error(s) in /helix/helix-front/client/app/resource/resource-list/resource-list.component.ts

WARNING: /helix/helix-front/client/app/cluster/cluster-detail/cluster-detail.component.ts:2:20 - outdated import path
WARNING: /helix/helix-front/client/app/cluster/shared/cluster.service.ts:2:20 - outdated import path
WARNING: /helix/helix-front/client/app/core/helix.service.ts:2:1 - duplicate RxJS import
WARNING: /helix/helix-front/client/app/core/helix.service.ts:4:27 - outdated import path
WARNING: /helix/helix-front/client/app/core/user.service.ts:2:27 - outdated import path
WARNING: /helix/helix-front/client/app/instance/shared/instance.service.ts:2:20 - outdated import path
WARNING: /helix/helix-front/client/app/resource/shared/resource.service.ts:2:20 - outdated import path
WARNING: /helix/helix-front/client/app/workflow/shared/workflow.service.ts:2:20 - outdated import path

It looks like the update script already fixed the path warnings, since our files now use the modern import syntax, which looks like this:

import {map} from 'rxjs/operators';
micahstubbs commented 2 years ago

Now we are told to remove rxjs-compat. Let's do that:

npm uninstall rxjs-compat

which produces the output:

npm WARN @angular/flex-layout@6.0.0-beta.18 requires a peer of @angular/cdk@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN ajv-keywords@3.5.2 requires a peer of ajv@^6.9.1 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/compiler@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/core@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/platform-browser-dynamic@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/platform-browser@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/common@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.

removed 1 package in 6.407s

Interpretation: The uninstall worked. However, we have some npm warnings that would fix before moving forward. Let's look at those warnings one by one.

micahstubbs commented 2 years ago

First, let's paste back in the dependencies that we removed temporarily to work around that Angular CLI semver parsing bug:

"angulartics2": "^2.2.1",
"body-parser": "^1.17.2",
"core-js": "^2.4.1",
"d3-shape": "^1.2.0",
"dotenv": "^4.0.0",
"express": "^4.15.3",
"express-session": "^1.15.6",
"hammerjs": "^2.0.8",
"ldapjs": "^1.0.2",
"lodash": "^4.17.12",
"moment": "^2.29.2",
"morgan": "^1.8.2",
"ngx-clipboard": "^9.0.0",
"ngx-json-viewer": "^2.3.0",
"ngx-vis": "^0.1.0",
"node-sass": "4.5.3",
"request": "^2.81.0",
"@swimlane/ngx-charts": "^9.1.1",
"@swimlane/ngx-datatable": "^11.1.7",
"@swimlane/ngx-graph": "6.0.0",
"vis": "^4.21.0",
micahstubbs commented 2 years ago

Here are all the warnings that we see now:

npm WARN @angular/flex-layout@6.0.0-beta.18 requires a peer of @angular/cdk@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN ajv-keywords@3.5.2 requires a peer of ajv@^6.9.1 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/compiler@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/core@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/platform-browser-dynamic@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/platform-browser@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/common@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN ngx-clipboard@9.1.3 requires a peer of @angular/core@5.x but none is installed. You must install peer dependencies yourself.
npm WARN ngx-clipboard@9.1.3 requires a peer of @angular/common@5.x but none is installed. You must install peer dependencies yourself.
npm WARN ngx-clipboard@9.1.3 requires a peer of @angular/platform-browser@5.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-datatable@11.3.2 requires a peer of rxjs@^5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/animations@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/common@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/core@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/cdk@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/animations@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/cdk@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/core@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/common@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/forms@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/platform-browser@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/platform-browser-dynamic@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@9.1.1 requires a peer of @angular/cdk@6.x but none is installed. You must install peer dependencies yourself.
micahstubbs commented 2 years ago

First, we should npm uninstall @angular/http since it was moved to @angular/common/http and then, let's update the rest of the @angular/* packages to ^6.1.0:

npm install @angular/{animations,cdk,common,compiler,compiler-cli,core,forms,material,platform-browser,platform-browser-dynamic,platform-server,router}@6.1.0

Note: we were originally only going to upgrade to Angular 6.0 in this step, but since the 6.0 migration guide instructions took us to 6.1, we will go to 6.1 in this iteration.

micahstubbs commented 2 years ago

update list of npm warnings:

npm WARN @swimlane/ngx-datatable@11.3.2 requires a peer of rxjs@^5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/animations@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/common@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/core@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/cdk@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/animations@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/cdk@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/core@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/common@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/forms@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/platform-browser@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/platform-browser-dynamic@7.x but none is installed. You must install peer dependencies yourself.
npm WARN ajv-keywords@3.5.2 requires a peer of ajv@^6.9.1 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/compiler@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/core@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/platform-browser-dynamic@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/platform-browser@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/common@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN ngx-clipboard@9.1.3 requires a peer of @angular/core@5.x but none is installed. You must install peer dependencies yourself.
npm WARN ngx-clipboard@9.1.3 requires a peer of @angular/common@5.x but none is installed. You must install peer dependencies yourself.
npm WARN ngx-clipboard@9.1.3 requires a peer of @angular/platform-browser@5.x but none is installed. You must install peer dependencies yourself.
npm WARN tsickle@0.30.0 requires a peer of typescript@>=2.4.2 <2.9 but none is installed. You must install peer dependencies yourself.
micahstubbs commented 2 years ago

Looks like we need:

@swimlane/ngx-datatable@13.0.0

https://github.com/swimlane/ngx-datatable/blame/a1730db00f5f9c74ea19717eb236d2695f87cfc2/package.json

micahstubbs commented 2 years ago

latest npm warnings:

npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/animations@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/common@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/core@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/cdk@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/animations@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/cdk@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/core@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/common@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/forms@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/platform-browser@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/platform-browser-dynamic@7.x but none is installed. You must install peer dependencies yourself.
npm WARN ajv-keywords@3.5.2 requires a peer of ajv@^6.9.1 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/compiler@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/core@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/platform-browser-dynamic@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/platform-browser@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/common@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN ngx-clipboard@9.1.3 requires a peer of @angular/core@5.x but none is installed. You must install peer dependencies yourself.
npm WARN ngx-clipboard@9.1.3 requires a peer of @angular/common@5.x but none is installed. You must install peer dependencies yourself.
npm WARN ngx-clipboard@9.1.3 requires a peer of @angular/platform-browser@5.x but none is installed. You must install peer dependencies yourself.
npm WARN tsickle@0.30.0 requires a peer of typescript@>=2.4.2 <2.9 but none is installed. You must install peer dependencies yourself.
micahstubbs commented 2 years ago

It looks like we need

@swimlane/ngx-charts@8.0.0

https://github.com/swimlane/ngx-charts/blame/14845f0cac997938cdf1ce1dc1e9fdd5ad100772/package.json

Screen Shot 2022-05-04 at 5 13 29 PM
micahstubbs commented 2 years ago

npm warnings

npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/animations@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/common@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/core@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/cdk@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/animations@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/cdk@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/core@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/common@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/forms@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/platform-browser@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/platform-browser-dynamic@7.x but none is installed. You must install peer dependencies yourself.
npm WARN ajv-keywords@3.5.2 requires a peer of ajv@^6.9.1 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/compiler@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/core@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/platform-browser-dynamic@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/platform-browser@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/common@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN ngx-clipboard@9.1.3 requires a peer of @angular/core@5.x but none is installed. You must install peer dependencies yourself.
npm WARN ngx-clipboard@9.1.3 requires a peer of @angular/common@5.x but none is installed. You must install peer dependencies yourself.
npm WARN ngx-clipboard@9.1.3 requires a peer of @angular/platform-browser@5.x but none is installed. You must install peer dependencies yourself.
npm WARN tsickle@0.30.0 requires a peer of typescript@>=2.4.2 <2.9 but none is installed. You must install peer dependencies yourself.
micahstubbs commented 2 years ago

weird, I thought we just installed @swimlane/ngx-charts@8 This warning shows 10.

https://stackoverflow.com/questions/31923195/how-to-find-reverse-dependencies-on-npm-package

find ./node_modules/ -name package.json | xargs grep ngx-charts

produces this line, among others:

./node_modules//@swimlane/ngx-graph/package.json: "@swimlane/ngx-charts": "^10.0.0",

Ah hah, so that's the problem. ngx-graph requires an newer version of ngx-charts.

I see two options here:

1) downgrade ngx-graph to fix the warning 2) ignore the warning, and only come back to fix it if the helix-front tests don't pass.

micahstubbs commented 2 years ago

Let's pick option 2, and ignore this warning for now.

micahstubbs commented 2 years ago

Next up, let's install this missing peer dep:

npm i ajv@6.9.1

new npm warnings list:

npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/animations@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/common@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/core@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/cdk@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/animations@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/cdk@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/core@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/common@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/forms@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/platform-browser@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/platform-browser-dynamic@7.x but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/compiler@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/core@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/platform-browser-dynamic@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/platform-browser@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@4.0.2 requires a peer of @angular/common@^2.3.1 || >=4.0.0-beta <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN ngx-clipboard@9.1.3 requires a peer of @angular/core@5.x but none is installed. You must install peer dependencies yourself.
npm WARN ngx-clipboard@9.1.3 requires a peer of @angular/common@5.x but none is installed. You must install peer dependencies yourself.
npm WARN ngx-clipboard@9.1.3 requires a peer of @angular/platform-browser@5.x but none is installed. You must install peer dependencies yourself.
npm WARN tsickle@0.30.0 requires a peer of typescript@>=2.4.2 <2.9 but none is installed. You must install peer dependencies yourself.
micahstubbs commented 2 years ago

Let's figure out what version of codelyzer is compatible with Angular 6

It looks like we can use latest codelyzer, which is:

npm i codelyzer@6.0.1

https://github.com/mgechev/codelyzer/blame/master/package.json#L93

Screen Shot 2022-05-04 at 5 25 32 PM

.

micahstubbs commented 2 years ago

npm warnings:

npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/animations@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/common@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/core@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/cdk@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/animations@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/cdk@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/core@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/common@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/forms@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/platform-browser@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/platform-browser-dynamic@7.x but none is installed. You must install peer dependencies yourself.
npm WARN ngx-clipboard@9.1.3 requires a peer of @angular/core@5.x but none is installed. You must install peer dependencies yourself.
npm WARN ngx-clipboard@9.1.3 requires a peer of @angular/common@5.x but none is installed. You must install peer dependencies yourself.
npm WARN ngx-clipboard@9.1.3 requires a peer of @angular/platform-browser@5.x but none is installed. You must install peer dependencies yourself.
npm WARN tsickle@0.30.0 requires a peer of typescript@>=2.4.2 <2.9 but none is installed. You must install peer dependencies yourself.
micahstubbs commented 2 years ago

Looks like we need

npm i ngx-clipboard@11.1.5

https://github.com/maxisam/ngx-clipboard/blame/f4b0712ccc7c8e3f277b20c3f069ba123c6fc247/package.json

Screen Shot 2022-05-04 at 5 29 54 PM
micahstubbs commented 2 years ago

npm warnings:

npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/animations@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/common@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/core@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/cdk@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/animations@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/cdk@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/core@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/common@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/forms@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/platform-browser@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/platform-browser-dynamic@7.x but none is installed. You must install peer dependencies yourself.
npm WARN tsickle@0.30.0 requires a peer of typescript@>=2.4.2 <2.9 but none is installed. You must install peer dependencies yourself.
micahstubbs commented 2 years ago

Looks like we need:

npm i tsickle@0.32.1

https://github.com/angular/tsickle/blame/4fd55d6bfc2f663677fe95441aa6db532f721407/package.json

Screen Shot 2022-05-04 at 5 34 17 PM
micahstubbs commented 2 years ago

~Excellent. Now the only npm warnings that remain are the ones that we have decided to ignore for now:~

Ugh, what is this:

npm WARN tsickle@0.30.0 requires a peer of typescript@>=2.4.2 <2.9 but none is installed. You must install peer dependencies yourself.

npm WARN tsickle@0.30.0 requires a peer of typescript@>=2.4.2 <2.9 but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/animations@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/common@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/core@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-graph@6.0.0 requires a peer of @angular/cdk@6.x | 7.x | 8.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/animations@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/cdk@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/core@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/common@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/forms@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/platform-browser@7.x but none is installed. You must install peer dependencies yourself.
npm WARN @swimlane/ngx-charts@10.1.0 requires a peer of @angular/platform-browser-dynamic@7.x but none is installed. You must install peer dependencies yourself.
micahstubbs commented 2 years ago

let's find the culprit:

find ./node_modules/ -name package.json | xargs grep tsickle

Got 'em:

./node_modules//@angular/compiler-cli/package.json: "tsickle": "^0.30.0"

micahstubbs commented 2 years ago

find ./node_modules/ -name package.json | xargs grep @angular/compile r-cli

results in:

./node_modules/ngx-json-viewer/package.json:    "@angular/compiler-cli": "^5.2.2",
./node_modules/codelyzer/node_modules/@angular/core/package.json:      "@angular/compiler-cli",
./node_modules/codelyzer/node_modules/@angular/compiler/package.json:      "@angular/compiler-cli",
./node_modules/@angular/compiler-cli/node_modules/tsickle/package.json:  "_location": "/@angular/compiler-cli/tsickle",
./node_modules/@angular/compiler-cli/node_modules/tsickle/package.json:    "/@angular/compiler-cli"
./node_modules/@angular/compiler-cli/node_modules/tsickle/package.json:  "_where": "/helix/helix-front/node_modules/@angular/compiler-cli",
./node_modules/@angular/compiler-cli/node_modules/source-map-support/package.json:  "_location": "/@angular/compiler-cli/source-map-support",
./node_modules/@angular/compiler-cli/node_modules/source-map-support/package.json:    "/@angular/compiler-cli/tsickle"
./node_modules/@angular/compiler-cli/node_modules/source-map-support/package.json:  "_where": "/helix/helix-front/node_modules/@angular/compiler-cli/node_modules/tsickle",
./node_modules/@angular/compiler-cli/node_modules/source-map/package.json:  "_location": "/@angular/compiler-cli/source-map",
./node_modules/@angular/compiler-cli/node_modules/source-map/package.json:    "/@angular/compiler-cli/source-map-support",
./node_modules/@angular/compiler-cli/node_modules/source-map/package.json:    "/@angular/compiler-cli/tsickle"
./node_modules/@angular/compiler-cli/node_modules/source-map/package.json:  "_where": "/helix/helix-front/node_modules/@angular/compiler-cli/node_modules/tsickle",
./node_modules/@angular/compiler-cli/package.json:  "_from": "@angular/compiler-cli@6.1.0",
./node_modules/@angular/compiler-cli/package.json:  "_id": "@angular/compiler-cli@6.1.0",
./node_modules/@angular/compiler-cli/package.json:  "_location": "/@angular/compiler-cli",
./node_modules/@angular/compiler-cli/package.json:    "raw": "@angular/compiler-cli@6.1.0",
./node_modules/@angular/compiler-cli/package.json:    "name": "@angular/compiler-cli",
./node_modules/@angular/compiler-cli/package.json:  "_resolved": "https:/registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-6.1.0.tgz",
./node_modules/@angular/compiler-cli/package.json:  "_spec": "@angular/compiler-cli@6.1.0",
./node_modules/@angular/compiler-cli/package.json:  "name": "@angular/compiler-cli",
./node_modules/@angular/compiler-cli/package.json:      "@angular/compiler-cli",
./node_modules/@angular/forms/package.json:      "@angular/compiler-cli",
./node_modules/@angular/core/package.json:      "@angular/compiler-cli",
./node_modules/@angular/platform-server/package.json:      "@angular/compiler-cli",
./node_modules/@angular/common/package.json:      "@angular/compiler-cli",
./node_modules/@angular/platform-browser-dynamic/package.json:      "@angular/compiler-cli",
./node_modules/@angular/compiler/package.json:      "@angular/compiler-cli",
./node_modules/@angular/animations/package.json:      "@angular/compiler-cli",
./node_modules/@angular/platform-browser/package.json:      "@angular/compiler-cli",
./node_modules/@angular/router/package.json:      "@angular/compiler-cli",
./node_modules/chokidar/package.json:    "/@angular/compiler-cli",
./node_modules/minimist/package.json:    "/@angular/compiler-cli",
./node_modules/@schematics/angular/workspace/files/package.json:    "@angular/compiler-cli": "<%= experimentalAngularNext ? 'next' : latestVersions.Angular %>",
./node_modules/ngx-vis/package.json:    "@angular/compiler-cli": "4.4.6",
./node_modules/@swimlane/ngx-graph/node_modules/@swimlane/ngx-charts/package.json:    "@angular/compiler-cli": "^7.0.0",
./node_modules/@swimlane/ngx-datatable/package.json:    "@angular/compiler-cli": "^6.0.0",
./node_modules/@swimlane/ngx-charts/package.json:    "@angular/compiler-cli": "^6.0.0",
./node_modules/angulartics2/package.json:    "@angular/compiler-cli": "^4.2.4",
./node_modules/reflect-metadata/package.json:    "/@angular/compiler-cli"
./node_modules/reflect-metadata/package.json:  "_where": "/helix/helix-front/node_modules/@angular/compiler-cli",

Let's ignore this one for now and see if we can build and pass tests without fixing it.