Skip to content

[services] detect project root to prevent accidental service as a project setup#15187

Merged
nsidnev merged 2 commits intomainfrom
nsidnev/py-59-vercel-dev-should-prevent-accidental-setup-of-a-service-as-a
Feb 24, 2026
Merged

[services] detect project root to prevent accidental service as a project setup#15187
nsidnev merged 2 commits intomainfrom
nsidnev/py-59-vercel-dev-should-prevent-accidental-setup-of-a-service-as-a

Conversation

@nsidnev
Copy link
Copy Markdown
Member

@nsidnev nsidnev commented Feb 20, 2026

In a multi-service project setup, running vc commands outside the root directory can result in a separate project being created in for another directory, which is undesirable. With these changes, the CLI will detect that the command is being run in a subdirectory of the project's root directory and switch location, ensuring vc commands are executed from the root

Note

Low Risk Change

This PR adds a new utility function to detect project root directories and integrates it into multiple CLI commands (build, dev, link), which changes working directory resolution behavior but is gated behind an experimental feature flag.

  • New resolveProjectCwd function changes cwd resolution in build, dev, and link commands
  • Feature gated behind isExperimentalServicesEnabled() flag
  • Comprehensive unit tests added for new functionality

Risk assessment for commit ea66577.

@nsidnev nsidnev requested a review from a team February 20, 2026 20:18
@nsidnev nsidnev requested review from a team as code owners February 20, 2026 20:18
@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Feb 20, 2026

🦋 Changeset detected

Latest commit: ea66577

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
vercel Minor

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Feb 20, 2026

📦 CLI Tarball Ready

The Vercel CLI tarball for this PR is now available!

Quick Test

You can test this PR's CLI directly by running:

npx https://vercel-ma4ylwp4b.vercel.sh/tarballs/vercel.tgz --help

Use in vercel.json

To use this CLI version in your project builds, add to your vercel.json:

{
  "build": {
    "env": {
      "VERCEL_CLI_VERSION": "vercel@https://vercel-ma4ylwp4b.vercel.sh/tarballs/vercel.tgz"
    }
  }
}

Python Runtime Wheel

A Python runtime wheel was also built for this PR.
To use in your Python project builds, also set this environment variable:

VERCEL_RUNTIME_PYTHON="vercel-runtime @ https://vercel-ma4ylwp4b.vercel.sh/tarballs/vercel_runtime-0.6.0.dev1771891236+ea66577-py3-none-any.whl"

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Feb 20, 2026

🧪 Unit Test Strategy

Comparing: 4db20e6ea66577 (view diff)

Strategy: Affected packages only

✅ Only testing packages that have been modified or depend on modified packages.

Affected packages - 1 (3%)
  1. vercel
Unaffected packages - 39 (98%)
  1. @vercel-internals/get-package-json
  2. @vercel/backends
  3. @vercel/build-utils
  4. @vercel/cervel
  5. @vercel/cli-auth
  6. @vercel/client
  7. @vercel/config
  8. @vercel/detect-agent
  9. @vercel/edge
  10. @vercel/elysia
  11. @vercel/error-utils
  12. @vercel/express
  13. @vercel/fastify
  14. @vercel/firewall
  15. @vercel/frameworks
  16. @vercel/fs-detectors
  17. @vercel/functions
  18. @vercel/gatsby-plugin-vercel-builder
  19. @vercel/go
  20. @vercel/h3
  21. @vercel/hono
  22. @vercel/hydrogen
  23. @vercel/koa
  24. @vercel/nestjs
  25. @vercel/next
  26. @vercel/node
  27. @vercel/oidc
  28. @vercel/oidc-aws-credentials-provider
  29. @vercel/python
  30. @vercel/python-analysis
  31. @vercel/redwood
  32. @vercel/related-projects
  33. @vercel/remix-builder
  34. @vercel/routing-utils
  35. @vercel/ruby
  36. @vercel/rust
  37. @vercel/static-build
  38. @vercel/static-config
  39. examples

Results

  • Unit tests: Only affected packages will run unit tests
  • E2E tests: Running in parallel via E2E Tests workflow
  • Type checks: Only affected packages will run type checks

This comment is automatically generated based on the affected testing strategy

@nsidnev nsidnev enabled auto-merge (squash) February 24, 2026 00:00
@nsidnev nsidnev disabled auto-merge February 24, 2026 00:39
@nsidnev nsidnev enabled auto-merge (squash) February 24, 2026 01:13
@nsidnev nsidnev merged commit 9d98c26 into main Feb 24, 2026
264 of 274 checks passed
@nsidnev nsidnev deleted the nsidnev/py-59-vercel-dev-should-prevent-accidental-setup-of-a-service-as-a branch February 24, 2026 01:25
styfle pushed a commit that referenced this pull request Feb 24, 2026
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.23.0

### Minor Changes

- [dev] allow to skip authentication and project linking for `vc dev` by
setting `VERCEL_EXPERIMENTAL_DEV_SKIP_LINK` env var.
([#15122](#15122))

- [services] detect project root to prevent accidental setup of a
service as a standalone project.
([#15187](#15187))

### Patch Changes

- Fix re-authentication for teams with missing scope to use the device
code flow instead of the deprecated SSO redirect flow.
([#15074](#15074))

- Add CLI eval for vc env command
([#15118](#15118))

-   Updated dependencies \[]:
    -   @vercel/node@5.6.7

## @vercel/functions@3.4.3

### Patch Changes

- [functions] Revert "[functions] URL encode cache tags"
([#15213](#15213))


<!-- VADE_RISK_START -->
> [!NOTE]
> Low Risk Change
>
> This PR contains only version bumps and changelog updates from the
Changesets release automation, with no actual code changes.
> 
> - Deletes changeset markdown files consumed during release
> - Updates version numbers in package.json files (50.22.3→50.23.0,
3.4.2→3.4.3)
> - Adds changelog entries documenting previously merged changes
>
> <sup>Risk assessment for [commit
18f0132](https://github.com/vercel/vercel/commit/18f013287efb10cb34e666236f9e34f0c72d0c83).</sup>
<!-- VADE_RISK_END -->

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.

3 participants