Skip to content

fix: bump archiver ^7 -> ^8 to drop deprecated glob@10 - #940

Merged
AnujVishwakarma-src merged 1 commit into
adobe:masterfrom
AnujVishwakarma-src:APPBLD-5202-archiver8
Sep 28, 2026
Merged

AnujVishwakarma-src merged 1 commit into
adobe:masterfrom
AnujVishwakarma-src:APPBLD-5202-archiver8

Conversation

@AnujVishwakarma-src

@AnujVishwakarma-src AnujVishwakarma-src commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Problem

glob@10.5.0 is a remaining npm warn deprecated line on npm install -g @adobe/aio-cli. It enters via archiver@7 → archiver-utils@5.0.2 → glob@^10 (archiver-utils latest hard-pins glob ^10; glob is non-deprecated only at 13+). A root npm override does not reach end users. The fix is a real dependency change that propagates — upgrading archiver. This is the plugin-app half; the aio-lib-runtime half shipped in aio-lib-runtime 7.5.0 (APPBLD-5201).

Change

Bump archiver ^7 → ^8. archiver@8 drops archiver-utils and glob entirely (uses readdir-glob/tar-stream/zip-stream).

archiver@8 is ESM-only with a class API. zipHelper():

  • loads it lazily via const { ZipArchive } = await import('archiver') (this command stays CommonJS),
  • constructs with new ZipArchive({ zlib: { level: 9 } }) instead of archiver('zip', { ... }).

Instance API (pipe/directory/file/on/destroy/finalize) unchanged; the sole caller (pack.js:112) already awaits zipHelper(). Test converted to jest.unstable_mockModule (class shape) and made async-aware.

Validation

  • 853 tests pass, 100% coverage, eslint clean.
  • Real-app linked E2E (authenticated, Stage workspace): aio app pack → zipHelper() (archiver@8) produced a valid app.zip (74 files, ~1MB, verified via unzip -l); aio app build + aio app deploy (with aio-lib-runtime@7.5.0 → archiver@8) → Successful deployment to live Stage.
  • No ERR_REQUIRE_ESM / constructor errors.

Depends on APPBLD-5201 (aio-lib-runtime 7.5.0, released).

New-app E2E (2026-09-28)

Also validated on a freshly-created app (aio app init): aio app build produced valid action zips via the runtime zip() (archiver@8), and aio app pack produced a valid app.zip (35 files) via zipHelper() (archiver@8). Both the plugin-app zipHelper and the runtime zip paths are now confirmed on both a new and an existing app.

archiver@7 pulled archiver-utils@5 -> glob@^10 (deprecated), a remaining
npm warn deprecated on npm install -g @adobe/aio-cli. archiver@8 drops
archiver-utils and glob entirely.

archiver@8 is ESM-only with a class API: zipHelper() now loads it via
dynamic import() and uses new ZipArchive({ zlib }) instead of
archiver('zip', ...). Instance API (pipe/directory/file/on/destroy/finalize)
unchanged; the sole caller already awaits zipHelper(). Test uses
jest.unstable_mockModule for the ESM class mock.
@codecov

codecov Bot commented Sep 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@AnujVishwakarma-src
AnujVishwakarma-src merged commit cc7e93e into adobe:master Sep 28, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant