[build-utils] Extract deserialization utils#15927
Conversation
🦋 Changeset detectedLatest commit: fafdd11 The changes in this PR will be included in the next version bump. This PR includes changesets to release 16 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
Low Risk — New utility functions extracted to shared package — no existing behavior modified.
Assessed at fafdd11. |
📦 CLI Tarball ReadyThe Vercel CLI tarball for this PR is now available! Quick TestYou can test this PR's CLI directly by running: npx https://vercel-3y3ivafie.vercel.sh/tarballs/vercel.tgz --helpUse in vercel.jsonTo use this CLI version in your project builds, add to your {
"build": {
"env": {
"VERCEL_CLI_VERSION": "vercel@https://vercel-3y3ivafie.vercel.sh/tarballs/vercel.tgz"
}
}
}Python Runtime WheelA Python Workers WheelA |
🧪 Unit Test StrategyComparing: Strategy: Code changed outside of a package - running all unit tests Affected packages - 40 (100%)
Results
This comment is automatically generated based on the affected testing strategy |
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @vercel/build-utils@13.15.0 ### Minor Changes - [services] allow multiple v2beta triggers for a single Lambda when config is coming from services ([#15890](#15890)) ### Patch Changes - Add deserialization utilities ([#15927](#15927)) ## @vercel/fs-detectors@5.16.0 ### Minor Changes - Parse python module:variable entrypoint notation in experimentalServices for all service types. ([#15844](#15844)) ### Patch Changes - Updated dependencies \[[`4e62f6c2204dd148643f86f140f0ae7995778017`](4e62f6c), [`42a70e1e6318615bd420933f9cc978bed3a43936`](42a70e1)]: - @vercel/build-utils@13.15.0 ## @vercel/python@6.31.0 ### Minor Changes - Parse python module:variable entrypoint notation in experimentalServices for all service types. ([#15844](#15844)) ### Patch Changes - [python] set the `UV_PROJECT_ENVIRONMENT` and `UV_NO_DEV` env vars so that custom `installCommand` and `buildCommand` commands can be called without the `--active` and `--no-dev` flags ([#15715](#15715)) ## @vercel/backends@0.0.60 ### Patch Changes - Include the entrypoint path in the build complete log message. ([#15914](#15914)) - Updated dependencies \[[`4e62f6c2204dd148643f86f140f0ae7995778017`](4e62f6c), [`42a70e1e6318615bd420933f9cc978bed3a43936`](42a70e1)]: - @vercel/build-utils@13.15.0 ## @vercel/cervel@0.0.47 ### Patch Changes - Updated dependencies \[[`8b77cdcd71ba645df4eed52cdccde9a2cbb913f8`](8b77cdc)]: - @vercel/backends@0.0.60 ## vercel@51.2.1 ### Patch Changes - Add `ai-gateway api-keys create` command for creating AI Gateway API keys with optional quota limits ([#15744](#15744)) - Improve `vercel blob list-stores` with `--json` and `--no-projects`, exclude non-blob stores when the API returns a `type` field, and show a richer table for non-TTY output while keeping linked-project filtering, `--all`, and interactive store selection on TTY. ([#14653](#14653)) - Add a `project rename` command to rename projects from the CLI. ([#15918](#15918)) - Updated dependencies \[[`8b77cdcd71ba645df4eed52cdccde9a2cbb913f8`](8b77cdc), [`2d7d14db1c6448f716d1ccc30844b43f47e8e6ee`](2d7d14d), [`d731f1b69030ddcaa0b7f4f1854f79ea92671b1e`](d731f1b), [`4e62f6c2204dd148643f86f140f0ae7995778017`](4e62f6c), [`45c8d4f54cc831695375794964a29145860fa45b`](45c8d4f), [`42a70e1e6318615bd420933f9cc978bed3a43936`](42a70e1)]: - @vercel/backends@0.0.60 - @vercel/python@6.31.0 - @vercel/next@4.16.7 - @vercel/build-utils@13.15.0 - @vercel/elysia@0.1.63 - @vercel/express@0.1.73 - @vercel/fastify@0.1.66 - @vercel/go@3.5.0 - @vercel/h3@0.1.72 - @vercel/hono@0.2.66 - @vercel/hydrogen@1.3.6 - @vercel/koa@0.1.46 - @vercel/nestjs@0.2.67 - @vercel/node@5.7.5 - @vercel/redwood@2.4.12 - @vercel/remix-builder@5.7.2 - @vercel/ruby@2.3.2 - @vercel/rust@1.1.0 - @vercel/static-build@2.9.13 ## @vercel/client@17.3.2 ### Patch Changes - Updated dependencies \[[`4e62f6c2204dd148643f86f140f0ae7995778017`](4e62f6c), [`42a70e1e6318615bd420933f9cc978bed3a43936`](42a70e1)]: - @vercel/build-utils@13.15.0 ## @vercel/elysia@0.1.63 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.5 ## @vercel/express@0.1.73 ### Patch Changes - Updated dependencies \[]: - @vercel/cervel@0.0.47 - @vercel/node@5.7.5 ## @vercel/fastify@0.1.66 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.5 ## @vercel/gatsby-plugin-vercel-builder@2.1.13 ### Patch Changes - Updated dependencies \[[`4e62f6c2204dd148643f86f140f0ae7995778017`](4e62f6c), [`42a70e1e6318615bd420933f9cc978bed3a43936`](42a70e1)]: - @vercel/build-utils@13.15.0 ## @vercel/h3@0.1.72 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.5 ## @vercel/hono@0.2.66 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.5 ## @vercel/koa@0.1.46 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.5 ## @vercel/nestjs@0.2.67 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.7.5 ## @vercel/next@4.16.7 ### Patch Changes - Update to latest Next.js adapter ([#15456](#15456)) ## @vercel/node@5.7.5 ### Patch Changes - Updated dependencies \[[`4e62f6c2204dd148643f86f140f0ae7995778017`](4e62f6c), [`42a70e1e6318615bd420933f9cc978bed3a43936`](42a70e1)]: - @vercel/build-utils@13.15.0 ## @vercel/static-build@2.9.13 ### Patch Changes - Updated dependencies \[]: - @vercel/gatsby-plugin-vercel-builder@2.1.13 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Building on previous PRs: - #15927 - #15961 - #16002 We are extracting the core `deserialize-build-output.ts` file here. This is following refactor efforts in the existing caller codebases to make this extraction simpler. After shipping this extraction, we'll delete the duplicated code and import `deserializeBuildOutput` from this PR. Doing this should introduce zero semantic changes for those callers. Note: callers must inject their own `groupLambdas` strategy. Note2: some existing TODO comments have been left in-place as code documentation.
Extract existing deserialization util functions into
build-utilsso they can be called in multiple places.These funcs will be implicitly tested via integration tests in my next PR which introduces functions that call these.