aio-cli icon indicating copy to clipboard operation
aio-cli copied to clipboard

fix: major version dependency upgrades, oclif v2 updates

Open shazron opened this issue 3 years ago • 7 comments

Description

  • updates to major versions of plugin dependencies
  • added @adobe/aio-cli-plugin-app-templates plugin as core plugin
    • right now the version is latest pending their stable release by end of week or early next week. The current latest version is a pre-release version so semver won't work effectively.
  • added @adobe/aio-cli-plugin-telemetry as core plugin
  • updated other dependencies (via npm outdated, only modules that don't have ESM-only updates)
  • removed custom "space" as command topic separator code and tests (oclif v2 has this built in now, via package.json/oclif/topicSeparator key)

How Has This Been Tested?

  • npm test
  • npm run e2e
  • further tests via pre-release

Screenshots (if appropriate):

Types of changes

  • [ ] Bug fix (non-breaking change which fixes an issue)
  • [ ] New feature (non-breaking change which adds functionality)
  • [X] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • [X] I have signed the Adobe Open Source CLA.
  • [ ] My code follows the code style of this project.
  • [ ] My change requires a change to the documentation.
  • [ ] I have updated the documentation accordingly.
  • [X] I have read the CONTRIBUTING document.
  • [ ] I have added tests to cover my changes.
  • [X] All new and existing tests passed.

shazron avatar Aug 31 '22 14:08 shazron

node-14 has arch issues in the CI, but node-16 doesn't have a problem. Looks like a lockfile version compatibility issue -- it was generated using lockfileVersion@2 (via the npm included in node-16) and that fails in node14. The fix is to use a common npm (we always use the latest)

shazron avatar Aug 31 '22 14:08 shazron

Codecov Report

Merging #364 (ba0a74b) into master (364d440) will not change coverage. The diff coverage is n/a.

@@            Coverage Diff            @@
##            master      #364   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            5         4    -1     
  Lines          247       225   -22     
  Branches        49        43    -6     
=========================================
- Hits           247       225   -22     

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

codecov[bot] avatar Aug 31 '22 14:08 codecov[bot]

linux tests pass, now we have issues with Windows and node-gyp 🤷🏼‍♂️

shazron avatar Aug 31 '22 14:08 shazron

looks like there are issues with npm@7+ https://github.com/nodejs/node-gyp/issues/508 and node-gyp

shazron avatar Aug 31 '22 15:08 shazron

I think we need node-gyp@9 to support windows-latest OR use windows-2019.

Also https://github.com/actions/setup-node/issues/280 https://github.com/nodejs/node-gyp/blob/main/docs/Updating-npm-bundled-node-gyp.md

shazron avatar Aug 31 '22 15:08 shazron

This issue seems similar https://github.com/nodejs/node-gyp/issues/2683

shazron avatar Aug 31 '22 15:08 shazron

windows-2019 works for node-16 but not for node-14 (npm ERR! D:\a\aio-cli\aio-cli\node_modules\lmdb\src\v8-functions.cpp(5,10): fatal error C1083: Cannot open include file: 'v8.h': No such file or directory [D:\a\aio-cli\aio-cli\node_modules\lmdb\build\lmdb.vcxproj]) - clearly that's not the solution, so reverting

shazron avatar Sep 01 '22 04:09 shazron

One alternative is (see https://github.com/adobe/aio-cli/pull/364#issuecomment-1233733239) we drop support for node-14 testing on Windows and use the windows-2019 image

shazron avatar Sep 05 '22 04:09 shazron

I believe one of the parcel packages is triggering node-gyp to build native interfaces (probably @parcel/transformer-json):

2233 timing build:run:install:node_modules/msgpackr-extract Completed in 6542ms
2234 info run [email protected] install node_modules/@parcel/transformer-html/node_modules/lmdb node-gyp-build
2235 info run [email protected] install { code: 1, signal: null }
2236 info run [email protected] install { code: 0, signal: null }
2237 timing build:run:install:node_modules/@parcel/transformer-html/node_modules/lmdb Completed in 2366ms
2238 info run [email protected] install node_modules/@parcel/transformer-image/node_modules/lmdb node-gyp-build
2239 info run [email protected] install { code: 0, signal: null }
2240 timing build:run:install:node_modules/@parcel/transformer-css/node_modules/lmdb Completed in 2582ms
2241 info run [email protected] install node_modules/@parcel/transformer-js/node_modules/lmdb node-gyp-build
2242 info run [email protected] install { code: 0, signal: null }
2243 timing build:run:install:node_modules/@parcel/transformer-babel/node_modules/lmdb Completed in 3150ms
2244 info run [email protected] install node_modules/@parcel/transformer-json/node_modules/lmdb node-gyp-build
2245 info run [email protected] install { code: 1, signal: null }
2246 info run [email protected] install { code: 1, signal: null }
2247 info run [email protected] install { code: 1, signal: null }
2248 timing reify:rollback:createSparse Completed in 14753ms
2249 timing reify:rollback:retireShallow Completed in 0ms
2250 timing command:ci Completed in 109747ms
2251 verbose stack Error: command failed
2251 verbose stack     at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\promise-spawn\lib\index.js:63:27)
2251 verbose stack     at ChildProcess.emit (node:events:513:28)
2251 verbose stack     at maybeClose (node:internal/child_process:1093:16)
2251 verbose stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5)
2252 verbose pkgid [email protected]
2253 verbose cwd C:\Users\shazron\Documents\git\aio-cli
2254 verbose Windows_NT 10.0.22598
2255 verbose node v16.17.0
2256 verbose npm  v8.15.0
2257 error code 1
2258 error path C:\Users\shazron\Documents\git\aio-cli\node_modules\lmdb
2259 error command failed

shazron avatar Sep 07 '22 06:09 shazron

this might help: https://github.com/parcel-bundler/parcel/issues/8152

shazron avatar Sep 07 '22 06:09 shazron

Hmm 591b1c5 passed, now re-running it, it is failing. seems very flaky

shazron avatar Sep 07 '22 13:09 shazron

Looks like, on local testing on Windows, if I delete package-lock.json before npm i --package-lock --package-lock-only --legacy-peer-deps , npm ci --peer-legacy-deps works. Must be a Windows quirk.

shazron avatar Sep 07 '22 14:09 shazron

Okay, this all looks reasonable, however it is still very hard to test. I would like to merge it, and do a prerelease with it ( without using @next versions of plugins ) so we can test it in real(ish) conditions before releasing.

purplecabbage avatar Sep 08 '22 00:09 purplecabbage