Skip to content

[python] add support for generic ASGI/WSGI applications to vc dev#15174

Merged
nsidnev merged 5 commits intomainfrom
nsidnev/py-55-vercel-dev-should-support-generic-python-apps-not-only
Feb 20, 2026
Merged

[python] add support for generic ASGI/WSGI applications to vc dev#15174
nsidnev merged 5 commits intomainfrom
nsidnev/py-55-vercel-dev-should-support-generic-python-apps-not-only

Conversation

@nsidnev
Copy link
Copy Markdown
Member

@nsidnev nsidnev commented Feb 20, 2026

Unifies vc_init_dev_asgi.py and vc_init_dev_wsgi.py into a single vc_init_dev.py script, which handles both interfaces. This also allows arbitrary Python ASGI/WSGI frameworks (such as Sanic or Blacksheep) to be run through the dev server, rather than just FastAPI or Flask, as is right now. This works for both, the current single app per project mode and for multi-service mode.

BaseHTTPRequestHandler-based functions are still served directly, as before.

Warning

High Risk Change

This PR refactors Python dev server code to unify ASGI/WSGI handling and expands framework support from only FastAPI/Flask to any Python framework, which is a significant behavioral change in the dev server infrastructure.

  • Expands framework support from FastAPI/Flask-only to generic Python ASGI/WSGI apps
  • Unifies two separate shim files (vc_init_dev_asgi.py, vc_init_dev_wsgi.py) into single vc_init_dev.py
  • Changes port detection from regex-based stdout parsing to port reachability polling

Risk assessment for commit 0bf1c7e.

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Feb 20, 2026

🦋 Changeset detected

Latest commit: 0bf1c7e

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

This PR includes changesets to release 2 packages
Name Type
@vercel/python Minor
vercel Patch

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-6kl5uoqqr.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-6kl5uoqqr.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-6kl5uoqqr.vercel.sh/tarballs/vercel_runtime-0.6.0.dev1771621933+0bf1c7e-py3-none-any.whl"

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Feb 20, 2026

🧪 Unit Test Strategy

Comparing: d269bdc0bf1c7e (view diff)

Strategy: Code changed outside of a package - running all unit tests

⚠️ All unit tests will run because global code changes could impact all packages.

Affected packages - 40 (100%)
  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
  40. vercel

Results

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

This comment is automatically generated based on the affected testing strategy

@nsidnev nsidnev marked this pull request as ready for review February 20, 2026 16:03
@nsidnev nsidnev requested review from a team as code owners February 20, 2026 16:03
@nsidnev nsidnev enabled auto-merge (squash) February 20, 2026 21:12
@nsidnev nsidnev merged commit 984d448 into main Feb 20, 2026
201 checks passed
@nsidnev nsidnev deleted the nsidnev/py-55-vercel-dev-should-support-generic-python-apps-not-only branch February 20, 2026 21:35
brookemosby pushed a commit that referenced this pull request Feb 23, 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/build-utils@13.5.0

### Minor Changes

- Add django experimental framework.
([#15196](#15196))

### Patch Changes

- Updated dependencies
\[[`cb79f6f8080fddd3673a8911566085e0265b060b`](cb79f6f)]:
    -   @vercel/python-analysis@0.7.0

## @vercel/frameworks@3.19.0

### Minor Changes

- Add django experimental framework.
([#15196](#15196))

## @vercel/python@6.16.0

### Minor Changes

- [python] add support for running generic ASGI/WSGI applications to vc
dev ([#15174](#15174))

### Patch Changes

- Updated dependencies
\[[`cb79f6f8080fddd3673a8911566085e0265b060b`](cb79f6f)]:
    -   @vercel/python-analysis@0.7.0

## @vercel/python-analysis@0.7.0

### Minor Changes

- Add django experimental framework.
([#15196](#15196))

## @vercel/backends@0.0.37

### Patch Changes

- Updated dependencies
\[[`cb79f6f8080fddd3673a8911566085e0265b060b`](cb79f6f)]:
    -   @vercel/build-utils@13.5.0

## @vercel/cervel@0.0.24

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/backends@0.0.37

## vercel@50.22.2

### Patch Changes

- fix(cli): add `integration-resource` command to `vc --help` output
([#15191](#15191))

- fix(cli): filter empty strings from trailing commas in array metadata
([#15163](#15163))

- fix(cli): add non-TTY guards and fix exit codes in marketplace
commands ([#15158](#15158))

- Adding in a non-interactive flag for env command
([#14912](#14912))

- fix(cli): unify teamId scoping for all marketplace integration
commands ([#15183](#15183))

- Updated dependencies
\[[`3c4aff4acbfa603705556d145236b8a9ef106331`](3c4aff4),
[`984d44875f959058f5d13fea27373785b1d66b6f`](984d448),
[`cb79f6f8080fddd3673a8911566085e0265b060b`](cb79f6f)]:
    -   @vercel/next@4.15.32
    -   @vercel/python@6.16.0
    -   @vercel/build-utils@13.5.0
    -   @vercel/backends@0.0.37
    -   @vercel/elysia@0.1.40
    -   @vercel/express@0.1.49
    -   @vercel/fastify@0.1.43
    -   @vercel/go@3.4.1
    -   @vercel/h3@0.1.49
    -   @vercel/hono@0.2.43
    -   @vercel/hydrogen@1.3.5
    -   @vercel/koa@0.1.23
    -   @vercel/nestjs@0.2.44
    -   @vercel/node@5.6.7
    -   @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.41

## @vercel/client@17.2.46

### Patch Changes

- Updated dependencies
\[[`cb79f6f8080fddd3673a8911566085e0265b060b`](cb79f6f)]:
    -   @vercel/build-utils@13.5.0

## @vercel/elysia@0.1.40

### Patch Changes

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

## @vercel/express@0.1.49

### Patch Changes

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

## @vercel/fastify@0.1.43

### Patch Changes

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

## @vercel/fs-detectors@5.8.10

### Patch Changes

- Updated dependencies
\[[`cb79f6f8080fddd3673a8911566085e0265b060b`](cb79f6f)]:
    -   @vercel/frameworks@3.19.0

## @vercel/gatsby-plugin-vercel-builder@2.0.139

### Patch Changes

- Updated dependencies
\[[`cb79f6f8080fddd3673a8911566085e0265b060b`](cb79f6f)]:
    -   @vercel/build-utils@13.5.0

## @vercel/h3@0.1.49

### Patch Changes

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

## @vercel/hono@0.2.43

### Patch Changes

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

## @vercel/koa@0.1.23

### Patch Changes

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

## @vercel/nestjs@0.2.44

### Patch Changes

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

## @vercel/next@4.15.32

### Patch Changes

- Revert per function builder support
([#15209](#15209))

## @vercel/node@5.6.7

### Patch Changes

- Updated dependencies
\[[`cb79f6f8080fddd3673a8911566085e0265b060b`](cb79f6f)]:
    -   @vercel/build-utils@13.5.0

## @vercel/static-build@2.8.41

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/gatsby-plugin-vercel-builder@2.0.139

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.

2 participants