fix: bump archiver ^6 -> ^7 to drop deprecated inflight (APPBLD-4614) - #234
Conversation
archiver@6 pulls archiver-utils@4 -> glob@8 -> inflight@1.0.6 (deprecated). archiver@7 (archiver-utils@5) drops the inflight dependency entirely. Verified: 462 unit tests + lint pass; real-archiver zip smoke test passes; downstream aio-cli-plugin-runtime (1002 tests) passes with this build linked. archiver@7 keeps CommonJS support (archiver@8 is ESM-only). The remaining deprecated glob is closed separately via a scoped archiver-utils.glob override at the aio-cli install root (npm overrides are root-only). e2e requires OpenWhisk credentials and was not run locally. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
✅ E2E validation with archiver@7 (real zip path) — 11/11 passingCI mocks Setup: clean Result: The archiver Note: the |
Major bump (archiver ^6 → ^7) — API-stability + downstream validationThanks for flagging the major bump. Here's how we've ensured the change is safe for this library and every workflow that depends on it. 1. The API surface we use is unchanged in v7
const archive = archiver('zip', { zlib: { level: 9 } })
archive.pipe(stream); archive.on('error', …)
archive.directory(filePath, pathInZip) // or
archive.file(filePath, { name })
archive.finalize()archiver@7's breaking changes are only: (i) a raised Node engine (we target Node 18+), and (ii) removal of the long-deprecated 2. Validated at the artifact level (not just mocked units)
3. Downstream consumers of aio-lib-runtimeConsumers and their status against the patched build (packed via
4. Final gateThe release-train order (leaf → plugins → root) ends with an integration check (APPBLD-5004): Net: the bump is API-compatible for our usage, proven at the artifact level, and verified across all in-scope consumers. |
Version bump to publish the archiver ^6->^7 deprecation fix (APPBLD-4614, #234). Released via PR so the version-bump commit lands on master through required checks; on-push-publish-to-npm then publishes 7.4.2. Co-authored-by: Anuj Vishwakarma <298213938+AnujVishwakarma-src@users.noreply.github.com>
What & why
Fixes APPBLD-4614 — clean up
npm warn deprecatedfrom@adobe/aio-lib-runtime.Bumps
archiver^6.0.1 → ^7.0.1.archiver@6pullsarchiver-utils@4 → glob@8 → inflight@1.0.6(deprecated).archiver@7(viaarchiver-utils@5) drops theinflightdependency entirely.archiver's public API used bysrc/utils.js(archiver('zip', { zlib }),.directory,.file,.finalize) is unchanged between v6 and v7; v7's only breaking change is dropping Node < 18 (this package requires>=20).Why not
archiver@8?archiver@8is ESM-only ("type": "module",import { ZipArchive } from "archiver"). Adopting it in this CommonJS package would force a full ESM migration (out of scope here).archiver@7is the CJS-safe ceiling.Note on the remaining
globarchiver@7still resolves a deprecatedglob@10transitively (archiver-utils@5pinsglob@^10; only glob 12/13 are non-deprecated). That is closed separately by a scopedoverrides: { "archiver-utils": { "glob": "^13" } }at theaio-cliinstall root — npmoverridesare only honored from the root project, so it cannot live in this library. Tracked as a follow-up.Before / after (real npm install warnings, this package as a dependency)
Before (
@adobe/aio-lib-runtime@7.4.0):After (this branch):
→
inflighteliminated from the archiver path.Validation
npm test— 462 unit tests pass, lint cleanarchiver@7zip smoke test (directory + file entries) produces a valid archive@adobe/aio-cli-plugin-runtime— 1002 tests pass with this build linked in (no regressions)RuntimeAPI_API_KEY,RuntimeAPI_NAMESPACE) and was not run locally