[services] consolidate workspace and entrypoint#15093
Conversation
Unify experimentalServices configuration so `entrypoint` can represent either a runtime file or a service directory. This removes the separate `workspace` input and updates service resolution, fixtures, and unit coverage to the new model. Co-authored-by: Cursor <cursoragent@cursor.com>
🦋 Changeset detectedLatest commit: d1b72c9 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 |
📦 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-cnehfk7cp.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-cnehfk7cp.vercel.sh/tarballs/vercel.tgz"
}
}
}Python Runtime WheelA Python runtime wheel was also built for this PR. |
🧪 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@50.22.0 ### Minor Changes - feat(cli): add `vercel integration guide` command ([#15108](#15108)) Adds a new `vercel integration guide` subcommand that displays getting started guides, code snippets, and resource links for marketplace integrations directly in the terminal. Supports single-product and multi-product integrations with interactive product and framework selection. Includes `--framework` flag for non-interactive framework selection (useful for CI/agents). Output is raw markdown written to stdout for easy piping to files or other tools. ### Patch Changes - fix(cli): fix missing planId in non-subscription plan web fallback ([#15152](#15152)) - [services]([#15093](#15093)) - consolidate `workspace` and `entrypoint` from `experimentalServices` `vercel.json` schema - make `framework` config in service optional -- infer framework from service workspace when not explicitly provided - Updated dependencies \[[`09b3540742ac86b768de9775929fef1ef36db412`](09b3540), [`fc56fb91b4dafabe0f68f86efeabbaf98b2642bc`](fc56fb9)]: - @vercel/build-utils@13.4.3 - @vercel/python@6.15.0 - @vercel/backends@0.0.36 - @vercel/elysia@0.1.39 - @vercel/express@0.1.48 - @vercel/fastify@0.1.42 - @vercel/go@3.4.1 - @vercel/h3@0.1.48 - @vercel/hono@0.2.42 - @vercel/hydrogen@1.3.5 - @vercel/koa@0.1.22 - @vercel/nestjs@0.2.43 - @vercel/next@4.15.31 - @vercel/node@5.6.6 - @vercel/redwood@2.4.9 - @vercel/remix-builder@5.5.10 - @vercel/ruby@2.3.1 - @vercel/rust@1.0.5 - @vercel/static-build@2.8.40 ## @vercel/python@6.15.0 ### Minor Changes - Optimize cold starts for lambdas >250MB ([#15080](#15080)) 1. Remove `uv pip install` and replace it with `uv sync --inexact --frozen` 2. Pack the lambda zip with dependencies up to 245MB then only install the remaining ones at runtime ### Patch Changes - Updated dependencies \[[`fc56fb91b4dafabe0f68f86efeabbaf98b2642bc`](fc56fb9)]: - @vercel/python-analysis@0.6.0 ## @vercel/python-analysis@0.6.0 ### Minor Changes - Optimize cold starts for lambdas >250MB ([#15080](#15080)) 1. Remove `uv pip install` and replace it with `uv sync --inexact --frozen` 2. Pack the lambda zip with dependencies up to 245MB then only install the remaining ones at runtime ## @vercel/backends@0.0.36 ### Patch Changes - Updated dependencies \[[`09b3540742ac86b768de9775929fef1ef36db412`](09b3540)]: - @vercel/build-utils@13.4.3 ## @vercel/build-utils@13.4.3 ### Patch Changes - [services]([#15093](#15093)) - consolidate `workspace` and `entrypoint` from `experimentalServices` `vercel.json` schema - make `framework` config in service optional -- infer framework from service workspace when not explicitly provided - Updated dependencies \[[`fc56fb91b4dafabe0f68f86efeabbaf98b2642bc`](fc56fb9)]: - @vercel/python-analysis@0.6.0 ## @vercel/cervel@0.0.23 ### Patch Changes - Updated dependencies \[]: - @vercel/backends@0.0.36 ## @vercel/client@17.2.45 ### Patch Changes - Updated dependencies \[[`09b3540742ac86b768de9775929fef1ef36db412`](09b3540)]: - @vercel/build-utils@13.4.3 ## @vercel/elysia@0.1.39 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.6.6 ## @vercel/express@0.1.48 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.6.6 - @vercel/cervel@0.0.23 ## @vercel/fastify@0.1.42 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.6.6 ## @vercel/fs-detectors@5.8.9 ### Patch Changes - [services]([#15093](#15093)) - consolidate `workspace` and `entrypoint` from `experimentalServices` `vercel.json` schema - make `framework` config in service optional -- infer framework from service workspace when not explicitly provided ## @vercel/gatsby-plugin-vercel-builder@2.0.138 ### Patch Changes - Updated dependencies \[[`09b3540742ac86b768de9775929fef1ef36db412`](09b3540)]: - @vercel/build-utils@13.4.3 ## @vercel/h3@0.1.48 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.6.6 ## @vercel/hono@0.2.42 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.6.6 ## @vercel/koa@0.1.22 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.6.6 ## @vercel/nestjs@0.2.43 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.6.6 ## @vercel/node@5.6.6 ### Patch Changes - Updated dependencies \[[`09b3540742ac86b768de9775929fef1ef36db412`](09b3540)]: - @vercel/build-utils@13.4.3 ## @vercel/static-build@2.8.40 ### Patch Changes - Updated dependencies \[]: - @vercel/gatsby-plugin-vercel-builder@2.0.138 ## @vercel/python-runtime@0.5.0 ### Minor Changes - Optimize cold starts for lambdas >250MB ([#15080](#15080)) 1. Remove `uv pip install` and replace it with `uv sync --inexact --frozen` 2. Pack the lambda zip with dependencies up to 245MB then only install the remaining ones at runtime <!-- VADE_RISK_START --> > [!NOTE] > Low Risk Change > > This PR is an automated Changesets release that only updates version numbers in package.json files and CHANGELOG.md files across multiple packages, with no logic changes. > > - Version bumps across ~25 packages (patch and minor versions) > - CHANGELOG.md updates documenting previous changes > - Deleted changeset markdown files consumed by release process > > <sup>Risk assessment for [commit f054c83](https://github.com/vercel/vercel/commit/f054c83041bfd8d833afeb59bac76918875f980e).</sup> <!-- VADE_RISK_END --> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
workspaceandentrypointfromexperimentalServicesvercel.jsonschemaframeworkconfig in service optional -- infer framework from service workspace when not explicitly providedNote
Low Risk Change
This PR consolidates
workspaceandentrypointconfig fields into a singleentrypointfield with automatic framework detection, representing a schema change and significant refactor of service resolution logic but without security implications.workspacefield from service config validationdetectFrameworkFromWorkspaceRisk assessment for commit d1b72c9.