python dev-server: check cache *before* doing entrypoint detection#15365
python dev-server: check cache *before* doing entrypoint detection#15365
Conversation
🦋 Changeset detectedLatest commit: 924bb7d The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 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-bsc9ctdhr.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-bsc9ctdhr.vercel.sh/tarballs/vercel.tgz"
}
}
}Python Runtime WheelA Python Workers WheelA |
🧪 Unit Test StrategyComparing: Strategy: Affected packages only ✅ Only testing packages that have been modified or depend on modified packages. Affected packages - 2 (5%)
Unaffected packages - 38 (95%)
Results
This comment is automatically generated based on the affected testing strategy |
d6b9cd9 to
6ef2e24
Compare
6ef2e24 to
2775d97
Compare
The potential downside here is that if the entrypoint implicitly changes, then we won't pick that up. The upside is that we skip doing a bunch of work. Currently on one django repo I was looking at, it was 700ms! I'm going to look into that and fix it but I expect it will remain at 10s of ms, which is worth avoiding.
2775d97 to
924bb7d
Compare
This makes the latency on the test project I was using ~10ms. |
|
(Though I have also tracked down why django introspection is so slow and will fix it) |
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.7.0 ### Minor Changes - [python] add support for module-based entrypoints for cron jobs ([#15393](#15393)) - For the django frontend, dynamically load settings.py instead of parsing it ([#15367](#15367)) ### Patch Changes - Updated dependencies \[[`83e804013528fc54de31082960ae31f58339bd71`](83e8040), [`921314f958c4ec85adb09e020310a5becb7f866c`](921314f)]: - @vercel/python-analysis@0.9.0 ## vercel@50.29.0 ### Minor Changes - Add interactive mode to `webhooks create` and change warning prefix from `WARN!` to `WARNING!` ([#15406](#15406)) ### Patch Changes - Updated dependencies \[[`32e8ba5f593fdeddeb63d241d7806d6c12fffe76`](32e8ba5), [`83e804013528fc54de31082960ae31f58339bd71`](83e8040), [`0f1fa86770a35d0192d64d36cb46d932e1d2a12a`](0f1fa86), [`813f3d324404237e3806530b465625ea33816370`](813f3d3), [`0a78892b1e155eb4b587a8b84c4e6814f750697f`](0a78892), [`9a973a704b7350e19d0c3ac8e110ce55eea795b2`](9a973a7), [`c6f5ac6c11fb7f431b5fb634a7fb321b10c829af`](c6f5ac6), [`921314f958c4ec85adb09e020310a5becb7f866c`](921314f)]: - @vercel/next@4.15.42 - @vercel/build-utils@13.7.0 - @vercel/python@6.21.0 - @vercel/detect-agent@1.1.1 - @vercel/static-build@2.8.46 - @vercel/backends@0.0.42 - @vercel/elysia@0.1.45 - @vercel/express@0.1.54 - @vercel/fastify@0.1.48 - @vercel/go@3.4.3 - @vercel/h3@0.1.54 - @vercel/hono@0.2.48 - @vercel/hydrogen@1.3.5 - @vercel/koa@0.1.28 - @vercel/nestjs@0.2.49 - @vercel/node@5.6.12 - @vercel/redwood@2.4.9 - @vercel/remix-builder@5.6.0 - @vercel/ruby@2.3.2 - @vercel/rust@1.0.5 ## @vercel/fs-detectors@5.9.0 ### Minor Changes - [python] add support for module-based entrypoints for cron jobs ([#15393](#15393)) ### Patch Changes - [python] add support for Python worker services with Django tasks ([#15396](#15396)) ## @vercel/python@6.21.0 ### Minor Changes - [python] add support for module-based entrypoints for cron jobs ([#15393](#15393)) - Avoid doing entry point detection on every request to a python dev server ([#15365](#15365)) - For the django frontend, dynamically load settings.py instead of parsing it ([#15367](#15367)) ### Patch Changes - speed up python entrypoint detection ([#15402](#15402)) - Add Python builder cache preparation for Build Output API v3 cache globs, the builder virtualenv, and the repo-local uv cache. ([#15407](#15407)) - Updated dependencies \[[`83e804013528fc54de31082960ae31f58339bd71`](83e8040), [`921314f958c4ec85adb09e020310a5becb7f866c`](921314f)]: - @vercel/python-analysis@0.9.0 ## @vercel/python-analysis@0.9.0 ### Minor Changes - [python] add support for module-based entrypoints for cron jobs ([#15393](#15393)) - For the django frontend, dynamically load settings.py instead of parsing it ([#15367](#15367)) ## @vercel/backends@0.0.42 ### Patch Changes - Updated dependencies \[[`83e804013528fc54de31082960ae31f58339bd71`](83e8040), [`921314f958c4ec85adb09e020310a5becb7f866c`](921314f)]: - @vercel/build-utils@13.7.0 ## @vercel/cervel@0.0.29 ### Patch Changes - Updated dependencies \[]: - @vercel/backends@0.0.42 ## @vercel/client@17.2.54 ### Patch Changes - Updated dependencies \[[`83e804013528fc54de31082960ae31f58339bd71`](83e8040), [`921314f958c4ec85adb09e020310a5becb7f866c`](921314f)]: - @vercel/build-utils@13.7.0 ## @vercel/config@0.0.38 ### Patch Changes - Fix type generation ([#15386](#15386)) ## @vercel/detect-agent@1.1.1 ### Patch Changes - Add Antigravity agent detection via `ANTIGRAVITY_AGENT` environment variable ([#15413](#15413)) - Detect Codex when `CODEX_CI` or `CODEX_THREAD_ID` is present. ([#15412](#15412)) ## @vercel/elysia@0.1.45 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.6.12 ## @vercel/express@0.1.54 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.6.12 - @vercel/cervel@0.0.29 ## @vercel/fastify@0.1.48 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.6.12 ## @vercel/gatsby-plugin-vercel-builder@2.0.144 ### Patch Changes - Updated dependencies \[[`83e804013528fc54de31082960ae31f58339bd71`](83e8040), [`921314f958c4ec85adb09e020310a5becb7f866c`](921314f)]: - @vercel/build-utils@13.7.0 ## @vercel/h3@0.1.54 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.6.12 ## @vercel/hono@0.2.48 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.6.12 ## @vercel/koa@0.1.28 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.6.12 ## @vercel/nestjs@0.2.49 ### Patch Changes - Updated dependencies \[]: - @vercel/node@5.6.12 ## @vercel/next@4.15.42 ### Patch Changes - Revert "[next] vary fallback allowQuery for partial fallback shells" ([#15418](#15418)) ## @vercel/node@5.6.12 ### Patch Changes - Updated dependencies \[[`83e804013528fc54de31082960ae31f58339bd71`](83e8040), [`921314f958c4ec85adb09e020310a5becb7f866c`](921314f)]: - @vercel/build-utils@13.7.0 ## @vercel/static-build@2.8.46 ### Patch Changes - Updated dependencies \[]: - @vercel/gatsby-plugin-vercel-builder@2.0.144 ## @vercel/python-runtime@0.6.0 ### Minor Changes - [python] add support for Python worker services with Django tasks ([#15396](#15396)) - [python] add support for module-based entrypoints for cron jobs ([#15393](#15393)) <!-- VADE_RISK_START --> > [!NOTE] > Low Risk Change > > This PR is an automated Changesets release that only updates version numbers in package.json files, CHANGELOG.md files, and deletes changeset markdown files — no functional code changes. > > - Version bumps across ~30 packages (patch/minor) > - Changelog and changeset file updates only > - Single constant update: VERCEL_RUNTIME_VERSION = '0.6.0' > > <sup>Risk assessment for [commit d3cf7ea](https://github.com/vercel/vercel/commit/d3cf7ea8deab73a058f4228f0346317fcf3e3dbc).</sup> <!-- VADE_RISK_END --> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
The potential downside here is that if the entrypoint implicitly changes,
then we won't pick that up.
The upside is that we skip doing a bunch of work.
(Currently on one django repo I was looking at, it was 700ms! I'm
going to look into that and fix it but I expect it will remain at 10s
of ms, which is worth avoiding.)
Note
Low Risk Change
This PR reorders cache checks to run before entrypoint detection and changes the server cache key to exclude the entry parameter, which could cause incorrect server reuse if entrypoints change.
workPath::entry::frameworktoworkPath::framework, removing entry from keyRisk assessment for commit 924bb7d.