Skip to content

Conversation

@penalosa
Copy link
Contributor

@penalosa penalosa commented Feb 2, 2024

An alternative approach to #4896

What this PR solves / how to test:

Compared to #4896, this leans more on Wrangler's setup for --no-bundle JS workers, and treats Python workers as a special case of --no-bundle workers. It:

  • Ensures that python modules are properly supported throughout the --no-bundle pipeline
  • Turns on --no-bundle for Python workers, as well as adding a default Python module rule

This has a couple of benefits—notably saving python source files will trigger a workerd restart, and multiple python files which import each other are supported (there appears to be a workerd bug with imported nested python modules, so that isn't supported)

This PR also adds basic support for a requirements.txt file for python workers

Author has addressed the following:

  • Tests
    • Included
    • Not necessary because:
  • Changeset (Changeset guidelines)
    • Included
    • Not necessary because:
  • Associated docs
    • Issue(s)/PR(s):
    • Not necessary because:

@changeset-bot
Copy link

changeset-bot bot commented Feb 2, 2024

🦋 Changeset detected

Latest commit: 4cba50d

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

This PR includes changesets to release 1 package
Name Type
wrangler 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

@penalosa penalosa added the e2e Run wrangler + vite-plugin e2e tests on a PR label Feb 2, 2024
@github-actions
Copy link
Contributor

github-actions bot commented Feb 2, 2024

A wrangler prerelease is available for testing. You can install this latest build in your project with:

npm install --save-dev https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/7804969541/npm-package-wrangler-4901

You can reference the automatically updated head of this PR with:

npm install --save-dev https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/prs/4901/npm-package-wrangler-4901

Or you can use npx with this latest build directly:

npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/7804969541/npm-package-wrangler-4901 dev path/to/script.js
Additional artifacts:
npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/7804969541/npm-package-create-cloudflare-4901 --no-auto-update
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/7804969541/npm-package-miniflare-4901
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/7804969541/npm-package-cloudflare-pages-shared-4901

Note that these links will no longer work once the GitHub Actions artifact expires.


[email protected] includes the following runtime dependencies:

Package Constraint Resolved
miniflare workspace:* 3.20240129.0
workerd 1.20240129.0 1.20240129.0
workerd --version 1.20240129.0 2024-01-29

Please ensure constraints are pinned, and miniflare/workerd minor versions match.

@penalosa penalosa force-pushed the python-no-bundle branch 2 times, most recently from d2b249e to 939fc9c Compare February 2, 2024 01:43
@penalosa penalosa changed the title Python no bundle Python support Feb 2, 2024
@penalosa penalosa force-pushed the python-no-bundle branch 3 times, most recently from d5714d2 to 2f479fa Compare February 2, 2024 03:01
@codecov
Copy link

codecov bot commented Feb 2, 2024

Codecov Report

Attention: 10 lines in your changes are missing coverage. Please review.

❗ No coverage uploaded for pull request base (main@583e445). Click here to learn what that means.

❗ Current head c4137d0 differs from pull request most recent head 4cba50d. Consider uploading reports for the commit 4cba50d to get more accurate results

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main    #4901   +/-   ##
=======================================
  Coverage        ?   70.63%           
=======================================
  Files           ?      292           
  Lines           ?    15228           
  Branches        ?     3882           
=======================================
  Hits            ?    10756           
  Misses          ?     4472           
  Partials        ?        0           
Files Coverage Δ
packages/wrangler/src/config/index.ts 90.17% <100.00%> (ø)
packages/wrangler/src/deploy/deploy.ts 90.23% <100.00%> (ø)
...ages/wrangler/src/deployment-bundle/bundle-type.ts 100.00% <100.00%> (ø)
...ngler/src/deployment-bundle/guess-worker-format.ts 100.00% <100.00%> (ø)
...rangler/src/deployment-bundle/module-collection.ts 87.69% <ø> (ø)
packages/wrangler/src/type-generation.ts 98.85% <ø> (ø)
...src/deployment-bundle/create-worker-upload-form.ts 88.81% <50.00%> (ø)
packages/wrangler/src/dev/miniflare.ts 61.77% <75.00%> (ø)
...r/src/deployment-bundle/find-additional-modules.ts 89.02% <53.84%> (ø)

@penalosa penalosa marked this pull request as ready for review February 2, 2024 03:13
@penalosa penalosa requested a review from a team as a code owner February 2, 2024 03:13
Copy link
Contributor

@dom96 dom96 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! Thank you for helping with this.

I re-tested with my test plan and ran into issues:

$ cat $PWD/index.py
from js import Response
def fetch(request):
  return Response.new('hello world')
$ pnpm run --filter wrangler start dev $PWD/index.py --compatibility-flag experimental
...
⎔ Starting local server...
✘ [ERROR] Uncaught (in promise) ErrnoError


✘ [ERROR] Uncaught (in response) Error: ErrnoError: FS error


[wrangler:inf] GET / 500 Internal Server Error (3108ms)
✘ [ERROR] Uncaught (in promise) ErrnoError


✘ [ERROR] Uncaught (in response) Error: ErrnoError: FS error


[wrangler:inf] GET /favicon.ico 500 Internal Server Error (111ms)

@petebacondarwin petebacondarwin added the python Issues/PRs relating to Python on Workers label Feb 2, 2024
@penalosa
Copy link
Contributor Author

penalosa commented Feb 2, 2024

pnpm run --filter wrangler start dev $PWD/index.py --compatibility-flag experimental

@dom96 where are you running this? Is index.py in the root of the Wrangler repo?

@dom96
Copy link
Contributor

dom96 commented Feb 2, 2024

@penalosa it's in the root of the workers-sdk repo

@penalosa
Copy link
Contributor Author

penalosa commented Feb 2, 2024

@penalosa it's in the root of the workers-sdk repo

Ah, that'll probably be it then. What happens if you try to run the fixture in fixtures/python-worker or add an index.py file to a new folder?

@dom96
Copy link
Contributor

dom96 commented Feb 2, 2024

@penalosa ahh, that works. Thanks!

Copy link
Contributor

@dom96 dom96 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, but it seems tests are still failing in CI

Copy link
Contributor

@mrbbot mrbbot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! 🐍 Added some comments, but LGTM! ✅

@penalosa penalosa self-assigned this Feb 5, 2024
@penalosa penalosa merged commit 2469e9f into main Feb 6, 2024
@penalosa penalosa deleted the python-no-bundle branch February 6, 2024 19:38
@workers-devprod workers-devprod mentioned this pull request Feb 6, 2024
lrapoport-cf pushed a commit that referenced this pull request Feb 8, 2024
* ci: only deploy Workers when pushing to special branches (#4848)

Previously every push to `main` that contained changes to a Worker package would cause that Worker to be deploy "to production".
This meant that we had to be very careful about merging PRs that touch these Workers files.

Now production deployment is only run for a Worker on a push to its special deployment branch (e.g. `deploy-worker/playground-preview-worker`).
This allows us to land PRs to `main` and then collect up changes to release in a single go by updating the special deployment branch in a controlled way.
Moreover it is also easy to see what changes will be released by looking at the difference between `main` and the deployment branch for the Worker package directory.

The three workers in this repo now follow this pattern:

- edge-preview-authenticated-proxy
- format-errors
- playground-preview-worker

In addition, the Playground Preview Worker has end-to-end tests that are run on every push to the `main` branch, and also any PRs that have the "playground-worker" label.
For these tests the Worker is deployed to the testing environment before running the tests against this deployment.

* C3: bump `create-next-app` and handle new `next.config.mjs` defaults (#4863)

* bump create-next-app from 14.0.4 to 14.1.0

* C3: handle new next.config.mjs default files

* [wrangler] Support ai bindings in getBindingsProxy (#4869)

* Retain AI service binding from miniflare options

* Update changeset

* chore: bump `workerd` to `1.20240129.0` (#4874)

* [C3] Bump create-vue from 3.9.1 to 3.9.2 in /packages/create-cloudflare/src/frameworks (#4870)

* [C3] Bump create-vue in /packages/create-cloudflare/src/frameworks

Bumps [create-vue](https://github.com/vuejs/create-vue) from 3.9.1 to 3.9.2.
- [Release notes](https://github.com/vuejs/create-vue/releases)
- [Commits](vuejs/create-vue@v3.9.1...v3.9.2)

---
updated-dependencies:
- dependency-name: create-vue
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* [C3] Update frameworks cli dependencies

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wrangler automated PR updater <[email protected]>

* Exclude standardPricingWarning from dryrun (#4880)

* Exclude standardPricingWarning from dryrun

That way we do not need authentication for dryrun, again.

* fixup! Exclude standardPricingWarning from dryrun

* fixup! Exclude standardPricingWarning from dryrun

---------

Co-authored-by: petero-dk <[email protected]>

* Implements Python support in miniflare. (#4873)

* Fix changesets (#4885)

* fix dario-piotrowicz's changesets

* fix existing C3 changesets and amend the changeset text in the creation logic

* Version Packages (#4854)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* [C3] Bump create-qwik from 1.4.2 to 1.4.3 in /packages/create-cloudflare/src/frameworks (#4881)

* [C3] Bump create-qwik in /packages/create-cloudflare/src/frameworks

Bumps [create-qwik](https://github.com/BuilderIO/qwik/tree/HEAD/packages/create-qwik) from 1.4.2 to 1.4.3.
- [Release notes](https://github.com/BuilderIO/qwik/releases)
- [Commits](https://github.com/BuilderIO/qwik/commits/v1.4.3/packages/create-qwik)

---
updated-dependencies:
- dependency-name: create-qwik
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* [C3] Update frameworks cli dependencies

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wrangler automated PR updater <[email protected]>

* [wrangler] fix: listen on loopback for wrangler dev port check and login (#4830)

The `wrangler dev` port availability check triggers a firewall prompt on
macOS while it briefly opens and closes listeners. The OAuth callback
server from `wrangler login` has the same issue.

Fix both cases by listening on the loopback address only by default.

Fixed some new test failures by using locally available IP addresses:

    wrangler:test:   ● wrangler dev › ip › should use to `ip` from `wrangler.toml`, if available
    wrangler:test:     listen EADDRNOTAVAIL: address not available 1.2.3.4:8787
    wrangler:test:
    wrangler:test:   ● wrangler dev › ip › should use --ip command line arg, if provided
    wrangler:test:     listen EADDRNOTAVAIL: address not available 5.6.7.8:8787

Relates to #4430

* remove outdated and no longer valid miniflare development section from CONTRIBUTING.md (#4893)

* [C3] Bump @angular/create from 17.1.1 to 17.1.2 in /packages/create-cloudflare/src/frameworks (#4892)

* [C3] Bump @angular/create in /packages/create-cloudflare/src/frameworks

Bumps [@angular/create](https://github.com/angular/angular-cli) from 17.1.1 to 17.1.2.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](angular/angular-cli@17.1.1...17.1.2)

---
updated-dependencies:
- dependency-name: "@angular/create"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* [C3] Update frameworks cli dependencies

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wrangler automated PR updater <[email protected]>

* [Stream] WebRTC Template Improvements (#4157)

* Add port numbers to fix stackblitz automatic startup

* Pull the variables up and show clear instructions

* fixup! Pull the variables up and show clear instructions

---------

Co-authored-by: Peter Bacon Darwin <[email protected]>

* fix: return 4xx error from playground preview worker on invalid tokens (#4904)

Previously, we were passing user-controllable token inputs
(`X-CF-Token` header, `user` search param, `token` cookie) directly to
the `DurableObjectNamespace#idFromString()` function. This validated
the token to be a valid Durable Object ID, but threw a reportable
`TypeError`, generating a 500 response and increasing the errored
request count. This is a user error, so shouldn't be reported. This
change wraps calls to `idFromString()` inside `try`/`catch`es, and
re-throws non-reportable user errors that generate 4xx responses.
We could just validate that the tokens were 64 hex digits before
calling `idFromString()`, but this approach ensures the IDs are for
the `UserSession` object by validating the signature encoded in the
ID too.

* chore: rename deprecated Vitest `TestContext.meta` properties to `TestContext.task` (#4897)

This is a precursor to updating to latest Vitest.

* [wrangler] fix: stop rebuild attempts when sources are missing (#3886) (#4877)

* [wrangler] fix: stop rebuild attempts when sources are missing (#3886)

* fixup! [wrangler] fix: stop rebuild attempts when sources are missing (#3886)

* fixup! [wrangler] fix: stop rebuild attempts when sources are missing (#3886)

* fixup! [wrangler] fix: stop rebuild attempts when sources are missing (#3886)

* Update .changeset/hip-files-count.md

Co-authored-by: Pete Bacon Darwin <[email protected]>

* !fixup: [wrangler] fix: stop rebuild attempts when sources are missing (#3886)

* !fixup: [wrangler] fix: stop rebuild attempts when sources are missing (#3886)

---------

Co-authored-by: Peter Bacon Darwin <[email protected]>
Co-authored-by: Pete Bacon Darwin <[email protected]>

* [C3] Bump create-remix from 2.5.1 to 2.6.0 in /packages/create-cloudflare/src/frameworks (#4903)

* [C3] Bump create-remix in /packages/create-cloudflare/src/frameworks

Bumps [create-remix](https://github.com/remix-run/remix/tree/HEAD/packages/create-remix) from 2.5.1 to 2.6.0.
- [Release notes](https://github.com/remix-run/remix/releases)
- [Changelog](https://github.com/remix-run/remix/blob/main/packages/create-remix/CHANGELOG.md)
- [Commits](https://github.com/remix-run/remix/commits/[email protected]/packages/create-remix)

---
updated-dependencies:
- dependency-name: create-remix
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* [C3] Update frameworks cli dependencies

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wrangler automated PR updater <[email protected]>

* fix: ensure that the Pages dev proxy server does not change the Host header (#4888)

* fix: ensure that the Pages dev proxy server does not change the Host header

Previously, when configuring `wrangler pages dev` to use a proxy to a 3rd party dev server,
the proxy would replace the Host header, resulting in problems at the dev server if it was
checking for cross-site scripting attacks.

Now the proxy server passes through the Host header unaltered making it invisible to the
3rd party dev server.

Fixes #4799

* fixup! fix: ensure that the Pages dev proxy server does not change the Host header

* fixup! fix: ensure that the Pages dev proxy server does not change the Host header

* fixup! fix: ensure that the Pages dev proxy server does not change the Host header

* fix: fallback to returning stack trace if `format-errors` broken (#4908)

* expose cf object from Miniflare instances (#4905)

* expose cf object from Miniflare instances

---------

Co-authored-by: MrBBot <[email protected]>

* Add a `ctx` field to the `getBindingsProxy` result (#4922)

* split get-bindings-proxy fixture tests in multiple files

* add ctx to getBindingsProxy

* add ctx tests to get-bindings-proxy fixture

---------

Co-authored-by: MrBBot <[email protected]>

* fix(d1): intercept and stringify errors thrown in --json mode (#4872)

* fix(d1): intercept and stringify errors thrown in --json mode

* fix: add light parsing on d1 execute error message

* add test

* wip

* implement JsonFriendlyFatalError

* address PR feedback

* fix: don't report invalid `format-errors` input (#4911)

* [D1] Add user friendly D1 validation error messages for `dev --remote` and `deploy` (#4914)

* chore: refactor user friendly errors and add 10063 code handling

* chore: add user friendly error message to deployments

* chore: lint

* chore: cleanup directory

* chore: fix remote error handling

* chore: add patch change set

* chore: move ABORT_ERR logic out of the user friendly error handler

* chore: fix syntax

* Update .changeset/fair-shoes-melt.md

Co-authored-by: Pete Bacon Darwin <[email protected]>

---------

Co-authored-by: Pete Bacon Darwin <[email protected]>

* [D1] teach wrangler how to fetch insights about D1's queries (#4909)

* [D1] teach wrangler how to fetch insights about D1's queries

* add options for sorting and number of results

* add a means of filtering the datetime geq/leq

* add more options, fix tests

* add wrangler banner, add warning text

* add changeset

* rename last to timePeriod

* use string format over numbers as >1mo's data could be possible

* Update red-icons-flow.md

* make it possible to order by count

* Update red-icons-flow.md

* PR feedback

* Update .changeset/red-icons-flow.md

Co-authored-by: Pete Bacon Darwin <[email protected]>

* address PR feedback

---------

Co-authored-by: Pete Bacon Darwin <[email protected]>

* [wrangler] test: fix E2E tests (#4907)

* ci: ensure E2E tests failures not reported as successes

#4458 accidentally left `continue-on-error: true` in the workflow.
This meant that E2E test failures weren't reported as check failures.

* test: remove redundant `deploy.test.ts` E2E test

This test was a strict subset of `deployments.test.ts`, and wasn't
providing any additional value.

* test: remove standard pricing warning from E2E test output

This warning may not be shown if an account has opted-in to standard
pricing. This change normalises output to remove it, meaning tests
can be run on any account, regardless of opt-in state.

* test: update format of writing logs message in E2E tests

* test: use `fallback` instead of `default` in E2E tests

#4571 updated the message logged in non-interactive contexts for
default values to use the word `fallback` instead of `default`.

* fix: ensure `--log-level` argument applied immediately

Some messages were being logged before the `--log-level` argument was
applied. In particular, this meant the "writing logs to" message at
`debug` level, was not output when using `--log-level=debug`.

* test: improve reliability of `dev.test.ts` E2E test

This change makes a few improvements to `dev.test.ts`:

- Shorter timeouts for `fetch()` retries
- Replaces `get-port` with native port `0` implementation
- Waits for stdout handlers to be registered before starting
  `wrangler dev`
- Ignores errors if we failed to find a proccess to kill
  (assumes the process was already killed)

* fix: throw `UserError`s for R2 object/bucket not-found errors

These errors should not be reported to Sentry.

* global install

* Ensure internal workers listen on ipv4 only

* shorter timeouts


---------

Co-authored-by: Samuel Macleod <[email protected]>

* Python support (#4901)

* Implements wrangler deploy/dev support for Python.

* Migrate to `--no-bundle` approach

* Basic support for `requirements.txt`

* address review comments

* Strip package versions

* Support deploying

* Address comments

* Fix tests

---------

Co-authored-by: Dominik Picheta <[email protected]>

* Version Packages (#4891)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* [C3] Add `getBindingsProxy` support to qwik template (#4927)

* Split package.json update into multiple phases

* Add getBindingsProxy to qwik template

* Add support for testing dev scripts in c3 e2e tests

* Refactor framework e2e verification helpers

* Add support for verifying build script in framework e2es

* Refactor e2e helpers

* Refactor workers e2e tests to re-align with frameworks tests

* Refactor RunnerConfig in e2e tests

* Fixing cli e2e tests

* changeset

* remove leftover test value

* Fix issue with npm tests & fix e2e logging

* Addressing PR feedback

* [playground-preview-worker] fix: don't report invalid upload input (#4937)

* fix: don't report invalid `edge-preview-authenticated-proxy` URLs (#4939)

* [D1] print wrangler banner at the start of every D1 command (#4938)

* fix: make the entrypoint optional for the `types` command (#4931)

---------

Co-authored-by: MrBBot <[email protected]>

* add a `cf` field to the `getBindingsProxy` result (#4926)


---------

Co-authored-by: James Culveyhouse <[email protected]>

* Improve DX with `node:*` modules (#4499)

* Turn node build failures into warnings

* Allow files to suppress warnings for specific modules

* Remove comment-based allow-listing

* Add changeset

* Update .changeset/chatty-balloons-impress.md

Co-authored-by: James M Snell <[email protected]>

* Pass through `defineNavigatorUserAgent`

* Add tests

* lockfile

* Linting

* fix tests

---------

Co-authored-by: James M Snell <[email protected]>

* improve(r2): Update Sippy endpoint request payloads to match new schema (#4928)

* fix(r2): update Sippy API request payloads

* improve(r2): rename sippy flags for clarity

* improve(r2): stricter existence in Sippy

* [C3] Bump create-qwik from 1.4.3 to 1.4.4 in /packages/create-cloudflare/src/frameworks (#4935)

* [C3] Bump create-qwik in /packages/create-cloudflare/src/frameworks

Bumps [create-qwik](https://github.com/BuilderIO/qwik/tree/HEAD/packages/create-qwik) from 1.4.3 to 1.4.4.
- [Release notes](https://github.com/BuilderIO/qwik/releases)
- [Commits](https://github.com/BuilderIO/qwik/commits/v1.4.4/packages/create-qwik)

---
updated-dependencies:
- dependency-name: create-qwik
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* [C3] Update frameworks cli dependencies

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wrangler automated PR updater <[email protected]>

* fix: allow `port` option to be specified with `unstable_dev()` (#4953)

* Extend error handling of proxy request errors in ProxyWorker (#4867)

* ignore stale proxy errors

* attempt to recover from ProxyWorker fetch errors
by requeuing the request (only if it is GET or HEAD)

* add test

* add changeset

* refactor to flatten nested if-else blocks

* requeue request for retry at front of queue

* sort batch of requests in queue by order of arrival

* Revert "sort batch of requests in queue by order of arrival"

This reverts commit 3329f19.

* Revert "requeue request for retry at front of queue"

This reverts commit f0377b7.

* prioritise requests being retried
over requests being proxied for the first time

* better comments

* update changeset to match recommeded format

* Update five-cooks-share.md (#4956)

* Version Packages (#4934)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Pete Bacon Darwin <[email protected]>
Co-authored-by: Dario Piotrowicz <[email protected]>
Co-authored-by: James Culveyhouse <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wrangler automated PR updater <[email protected]>
Co-authored-by: petero-dk <[email protected]>
Co-authored-by: Dominik Picheta <[email protected]>
Co-authored-by: [email protected] <[email protected]>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Peter Wu <[email protected]>
Co-authored-by: Taylor Smith <[email protected]>
Co-authored-by: Peter Bacon Darwin <[email protected]>
Co-authored-by: Magnus Dahlstrand <[email protected]>
Co-authored-by: Max Rozen <[email protected]>
Co-authored-by: Nora Söderlund <[email protected]>
Co-authored-by: Samuel Macleod <[email protected]>
Co-authored-by: Dominik Picheta <[email protected]>
Co-authored-by: James M Snell <[email protected]>
Co-authored-by: Siddhant <[email protected]>
Co-authored-by: Rahul Sethi <[email protected]>
lrapoport-cf pushed a commit that referenced this pull request Feb 8, 2024
* ci: only deploy Workers when pushing to special branches (#4848)

Previously every push to `main` that contained changes to a Worker package would cause that Worker to be deploy "to production".
This meant that we had to be very careful about merging PRs that touch these Workers files.

Now production deployment is only run for a Worker on a push to its special deployment branch (e.g. `deploy-worker/playground-preview-worker`).
This allows us to land PRs to `main` and then collect up changes to release in a single go by updating the special deployment branch in a controlled way.
Moreover it is also easy to see what changes will be released by looking at the difference between `main` and the deployment branch for the Worker package directory.

The three workers in this repo now follow this pattern:

- edge-preview-authenticated-proxy
- format-errors
- playground-preview-worker

In addition, the Playground Preview Worker has end-to-end tests that are run on every push to the `main` branch, and also any PRs that have the "playground-worker" label.
For these tests the Worker is deployed to the testing environment before running the tests against this deployment.

* C3: bump `create-next-app` and handle new `next.config.mjs` defaults (#4863)

* bump create-next-app from 14.0.4 to 14.1.0

* C3: handle new next.config.mjs default files

* [wrangler] Support ai bindings in getBindingsProxy (#4869)

* Retain AI service binding from miniflare options

* Update changeset

* chore: bump `workerd` to `1.20240129.0` (#4874)

* [C3] Bump create-vue from 3.9.1 to 3.9.2 in /packages/create-cloudflare/src/frameworks (#4870)

* [C3] Bump create-vue in /packages/create-cloudflare/src/frameworks

Bumps [create-vue](https://github.com/vuejs/create-vue) from 3.9.1 to 3.9.2.
- [Release notes](https://github.com/vuejs/create-vue/releases)
- [Commits](vuejs/create-vue@v3.9.1...v3.9.2)

---
updated-dependencies:
- dependency-name: create-vue
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* [C3] Update frameworks cli dependencies

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wrangler automated PR updater <[email protected]>

* Exclude standardPricingWarning from dryrun (#4880)

* Exclude standardPricingWarning from dryrun

That way we do not need authentication for dryrun, again.

* fixup! Exclude standardPricingWarning from dryrun

* fixup! Exclude standardPricingWarning from dryrun

---------

Co-authored-by: petero-dk <[email protected]>

* Implements Python support in miniflare. (#4873)

* Fix changesets (#4885)

* fix dario-piotrowicz's changesets

* fix existing C3 changesets and amend the changeset text in the creation logic

* Version Packages (#4854)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* [C3] Bump create-qwik from 1.4.2 to 1.4.3 in /packages/create-cloudflare/src/frameworks (#4881)

* [C3] Bump create-qwik in /packages/create-cloudflare/src/frameworks

Bumps [create-qwik](https://github.com/BuilderIO/qwik/tree/HEAD/packages/create-qwik) from 1.4.2 to 1.4.3.
- [Release notes](https://github.com/BuilderIO/qwik/releases)
- [Commits](https://github.com/BuilderIO/qwik/commits/v1.4.3/packages/create-qwik)

---
updated-dependencies:
- dependency-name: create-qwik
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* [C3] Update frameworks cli dependencies

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wrangler automated PR updater <[email protected]>

* [wrangler] fix: listen on loopback for wrangler dev port check and login (#4830)

The `wrangler dev` port availability check triggers a firewall prompt on
macOS while it briefly opens and closes listeners. The OAuth callback
server from `wrangler login` has the same issue.

Fix both cases by listening on the loopback address only by default.

Fixed some new test failures by using locally available IP addresses:

    wrangler:test:   ● wrangler dev › ip › should use to `ip` from `wrangler.toml`, if available
    wrangler:test:     listen EADDRNOTAVAIL: address not available 1.2.3.4:8787
    wrangler:test:
    wrangler:test:   ● wrangler dev › ip › should use --ip command line arg, if provided
    wrangler:test:     listen EADDRNOTAVAIL: address not available 5.6.7.8:8787

Relates to #4430

* remove outdated and no longer valid miniflare development section from CONTRIBUTING.md (#4893)

* [C3] Bump @angular/create from 17.1.1 to 17.1.2 in /packages/create-cloudflare/src/frameworks (#4892)

* [C3] Bump @angular/create in /packages/create-cloudflare/src/frameworks

Bumps [@angular/create](https://github.com/angular/angular-cli) from 17.1.1 to 17.1.2.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](angular/angular-cli@17.1.1...17.1.2)

---
updated-dependencies:
- dependency-name: "@angular/create"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* [C3] Update frameworks cli dependencies

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wrangler automated PR updater <[email protected]>

* [Stream] WebRTC Template Improvements (#4157)

* Add port numbers to fix stackblitz automatic startup

* Pull the variables up and show clear instructions

* fixup! Pull the variables up and show clear instructions

---------

Co-authored-by: Peter Bacon Darwin <[email protected]>

* fix: return 4xx error from playground preview worker on invalid tokens (#4904)

Previously, we were passing user-controllable token inputs
(`X-CF-Token` header, `user` search param, `token` cookie) directly to
the `DurableObjectNamespace#idFromString()` function. This validated
the token to be a valid Durable Object ID, but threw a reportable
`TypeError`, generating a 500 response and increasing the errored
request count. This is a user error, so shouldn't be reported. This
change wraps calls to `idFromString()` inside `try`/`catch`es, and
re-throws non-reportable user errors that generate 4xx responses.
We could just validate that the tokens were 64 hex digits before
calling `idFromString()`, but this approach ensures the IDs are for
the `UserSession` object by validating the signature encoded in the
ID too.

* chore: rename deprecated Vitest `TestContext.meta` properties to `TestContext.task` (#4897)

This is a precursor to updating to latest Vitest.

* [wrangler] fix: stop rebuild attempts when sources are missing (#3886) (#4877)

* [wrangler] fix: stop rebuild attempts when sources are missing (#3886)

* fixup! [wrangler] fix: stop rebuild attempts when sources are missing (#3886)

* fixup! [wrangler] fix: stop rebuild attempts when sources are missing (#3886)

* fixup! [wrangler] fix: stop rebuild attempts when sources are missing (#3886)

* Update .changeset/hip-files-count.md

Co-authored-by: Pete Bacon Darwin <[email protected]>

* !fixup: [wrangler] fix: stop rebuild attempts when sources are missing (#3886)

* !fixup: [wrangler] fix: stop rebuild attempts when sources are missing (#3886)

---------

Co-authored-by: Peter Bacon Darwin <[email protected]>
Co-authored-by: Pete Bacon Darwin <[email protected]>

* [C3] Bump create-remix from 2.5.1 to 2.6.0 in /packages/create-cloudflare/src/frameworks (#4903)

* [C3] Bump create-remix in /packages/create-cloudflare/src/frameworks

Bumps [create-remix](https://github.com/remix-run/remix/tree/HEAD/packages/create-remix) from 2.5.1 to 2.6.0.
- [Release notes](https://github.com/remix-run/remix/releases)
- [Changelog](https://github.com/remix-run/remix/blob/main/packages/create-remix/CHANGELOG.md)
- [Commits](https://github.com/remix-run/remix/commits/[email protected]/packages/create-remix)

---
updated-dependencies:
- dependency-name: create-remix
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* [C3] Update frameworks cli dependencies

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wrangler automated PR updater <[email protected]>

* fix: ensure that the Pages dev proxy server does not change the Host header (#4888)

* fix: ensure that the Pages dev proxy server does not change the Host header

Previously, when configuring `wrangler pages dev` to use a proxy to a 3rd party dev server,
the proxy would replace the Host header, resulting in problems at the dev server if it was
checking for cross-site scripting attacks.

Now the proxy server passes through the Host header unaltered making it invisible to the
3rd party dev server.

Fixes #4799

* fixup! fix: ensure that the Pages dev proxy server does not change the Host header

* fixup! fix: ensure that the Pages dev proxy server does not change the Host header

* fixup! fix: ensure that the Pages dev proxy server does not change the Host header

* fix: fallback to returning stack trace if `format-errors` broken (#4908)

* expose cf object from Miniflare instances (#4905)

* expose cf object from Miniflare instances

---------

Co-authored-by: MrBBot <[email protected]>

* Add a `ctx` field to the `getBindingsProxy` result (#4922)

* split get-bindings-proxy fixture tests in multiple files

* add ctx to getBindingsProxy

* add ctx tests to get-bindings-proxy fixture

---------

Co-authored-by: MrBBot <[email protected]>

* fix(d1): intercept and stringify errors thrown in --json mode (#4872)

* fix(d1): intercept and stringify errors thrown in --json mode

* fix: add light parsing on d1 execute error message

* add test

* wip

* implement JsonFriendlyFatalError

* address PR feedback

* fix: don't report invalid `format-errors` input (#4911)

* [D1] Add user friendly D1 validation error messages for `dev --remote` and `deploy` (#4914)

* chore: refactor user friendly errors and add 10063 code handling

* chore: add user friendly error message to deployments

* chore: lint

* chore: cleanup directory

* chore: fix remote error handling

* chore: add patch change set

* chore: move ABORT_ERR logic out of the user friendly error handler

* chore: fix syntax

* Update .changeset/fair-shoes-melt.md

Co-authored-by: Pete Bacon Darwin <[email protected]>

---------

Co-authored-by: Pete Bacon Darwin <[email protected]>

* [D1] teach wrangler how to fetch insights about D1's queries (#4909)

* [D1] teach wrangler how to fetch insights about D1's queries

* add options for sorting and number of results

* add a means of filtering the datetime geq/leq

* add more options, fix tests

* add wrangler banner, add warning text

* add changeset

* rename last to timePeriod

* use string format over numbers as >1mo's data could be possible

* Update red-icons-flow.md

* make it possible to order by count

* Update red-icons-flow.md

* PR feedback

* Update .changeset/red-icons-flow.md

Co-authored-by: Pete Bacon Darwin <[email protected]>

* address PR feedback

---------

Co-authored-by: Pete Bacon Darwin <[email protected]>

* [wrangler] test: fix E2E tests (#4907)

* ci: ensure E2E tests failures not reported as successes

#4458 accidentally left `continue-on-error: true` in the workflow.
This meant that E2E test failures weren't reported as check failures.

* test: remove redundant `deploy.test.ts` E2E test

This test was a strict subset of `deployments.test.ts`, and wasn't
providing any additional value.

* test: remove standard pricing warning from E2E test output

This warning may not be shown if an account has opted-in to standard
pricing. This change normalises output to remove it, meaning tests
can be run on any account, regardless of opt-in state.

* test: update format of writing logs message in E2E tests

* test: use `fallback` instead of `default` in E2E tests

#4571 updated the message logged in non-interactive contexts for
default values to use the word `fallback` instead of `default`.

* fix: ensure `--log-level` argument applied immediately

Some messages were being logged before the `--log-level` argument was
applied. In particular, this meant the "writing logs to" message at
`debug` level, was not output when using `--log-level=debug`.

* test: improve reliability of `dev.test.ts` E2E test

This change makes a few improvements to `dev.test.ts`:

- Shorter timeouts for `fetch()` retries
- Replaces `get-port` with native port `0` implementation
- Waits for stdout handlers to be registered before starting
  `wrangler dev`
- Ignores errors if we failed to find a proccess to kill
  (assumes the process was already killed)

* fix: throw `UserError`s for R2 object/bucket not-found errors

These errors should not be reported to Sentry.

* global install

* Ensure internal workers listen on ipv4 only

* shorter timeouts


---------

Co-authored-by: Samuel Macleod <[email protected]>

* Python support (#4901)

* Implements wrangler deploy/dev support for Python.

* Migrate to `--no-bundle` approach

* Basic support for `requirements.txt`

* address review comments

* Strip package versions

* Support deploying

* Address comments

* Fix tests

---------

Co-authored-by: Dominik Picheta <[email protected]>

* Version Packages (#4891)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* [C3] Add `getBindingsProxy` support to qwik template (#4927)

* Split package.json update into multiple phases

* Add getBindingsProxy to qwik template

* Add support for testing dev scripts in c3 e2e tests

* Refactor framework e2e verification helpers

* Add support for verifying build script in framework e2es

* Refactor e2e helpers

* Refactor workers e2e tests to re-align with frameworks tests

* Refactor RunnerConfig in e2e tests

* Fixing cli e2e tests

* changeset

* remove leftover test value

* Fix issue with npm tests & fix e2e logging

* Addressing PR feedback

* [playground-preview-worker] fix: don't report invalid upload input (#4937)

* fix: don't report invalid `edge-preview-authenticated-proxy` URLs (#4939)

* [D1] print wrangler banner at the start of every D1 command (#4938)

* fix: make the entrypoint optional for the `types` command (#4931)

---------

Co-authored-by: MrBBot <[email protected]>

* add a `cf` field to the `getBindingsProxy` result (#4926)


---------

Co-authored-by: James Culveyhouse <[email protected]>

* Improve DX with `node:*` modules (#4499)

* Turn node build failures into warnings

* Allow files to suppress warnings for specific modules

* Remove comment-based allow-listing

* Add changeset

* Update .changeset/chatty-balloons-impress.md

Co-authored-by: James M Snell <[email protected]>

* Pass through `defineNavigatorUserAgent`

* Add tests

* lockfile

* Linting

* fix tests

---------

Co-authored-by: James M Snell <[email protected]>

* improve(r2): Update Sippy endpoint request payloads to match new schema (#4928)

* fix(r2): update Sippy API request payloads

* improve(r2): rename sippy flags for clarity

* improve(r2): stricter existence in Sippy

* [C3] Bump create-qwik from 1.4.3 to 1.4.4 in /packages/create-cloudflare/src/frameworks (#4935)

* [C3] Bump create-qwik in /packages/create-cloudflare/src/frameworks

Bumps [create-qwik](https://github.com/BuilderIO/qwik/tree/HEAD/packages/create-qwik) from 1.4.3 to 1.4.4.
- [Release notes](https://github.com/BuilderIO/qwik/releases)
- [Commits](https://github.com/BuilderIO/qwik/commits/v1.4.4/packages/create-qwik)

---
updated-dependencies:
- dependency-name: create-qwik
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* [C3] Update frameworks cli dependencies

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wrangler automated PR updater <[email protected]>

* fix: allow `port` option to be specified with `unstable_dev()` (#4953)

* Extend error handling of proxy request errors in ProxyWorker (#4867)

* ignore stale proxy errors

* attempt to recover from ProxyWorker fetch errors
by requeuing the request (only if it is GET or HEAD)

* add test

* add changeset

* refactor to flatten nested if-else blocks

* requeue request for retry at front of queue

* sort batch of requests in queue by order of arrival

* Revert "sort batch of requests in queue by order of arrival"

This reverts commit 3329f19.

* Revert "requeue request for retry at front of queue"

This reverts commit f0377b7.

* prioritise requests being retried
over requests being proxied for the first time

* better comments

* update changeset to match recommeded format

* Update five-cooks-share.md (#4956)

* Version Packages (#4934)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Pete Bacon Darwin <[email protected]>
Co-authored-by: Dario Piotrowicz <[email protected]>
Co-authored-by: James Culveyhouse <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wrangler automated PR updater <[email protected]>
Co-authored-by: petero-dk <[email protected]>
Co-authored-by: Dominik Picheta <[email protected]>
Co-authored-by: [email protected] <[email protected]>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Peter Wu <[email protected]>
Co-authored-by: Taylor Smith <[email protected]>
Co-authored-by: Peter Bacon Darwin <[email protected]>
Co-authored-by: Magnus Dahlstrand <[email protected]>
Co-authored-by: Max Rozen <[email protected]>
Co-authored-by: Nora Söderlund <[email protected]>
Co-authored-by: Samuel Macleod <[email protected]>
Co-authored-by: Dominik Picheta <[email protected]>
Co-authored-by: James M Snell <[email protected]>
Co-authored-by: Siddhant <[email protected]>
Co-authored-by: Rahul Sethi <[email protected]>
lrapoport-cf pushed a commit that referenced this pull request Feb 8, 2024
* ci: only deploy Workers when pushing to special branches (#4848)

Previously every push to `main` that contained changes to a Worker package would cause that Worker to be deploy "to production".
This meant that we had to be very careful about merging PRs that touch these Workers files.

Now production deployment is only run for a Worker on a push to its special deployment branch (e.g. `deploy-worker/playground-preview-worker`).
This allows us to land PRs to `main` and then collect up changes to release in a single go by updating the special deployment branch in a controlled way.
Moreover it is also easy to see what changes will be released by looking at the difference between `main` and the deployment branch for the Worker package directory.

The three workers in this repo now follow this pattern:

- edge-preview-authenticated-proxy
- format-errors
- playground-preview-worker

In addition, the Playground Preview Worker has end-to-end tests that are run on every push to the `main` branch, and also any PRs that have the "playground-worker" label.
For these tests the Worker is deployed to the testing environment before running the tests against this deployment.

* C3: bump `create-next-app` and handle new `next.config.mjs` defaults (#4863)

* bump create-next-app from 14.0.4 to 14.1.0

* C3: handle new next.config.mjs default files

* [wrangler] Support ai bindings in getBindingsProxy (#4869)

* Retain AI service binding from miniflare options

* Update changeset

* chore: bump `workerd` to `1.20240129.0` (#4874)

* [C3] Bump create-vue from 3.9.1 to 3.9.2 in /packages/create-cloudflare/src/frameworks (#4870)

* [C3] Bump create-vue in /packages/create-cloudflare/src/frameworks

Bumps [create-vue](https://github.com/vuejs/create-vue) from 3.9.1 to 3.9.2.
- [Release notes](https://github.com/vuejs/create-vue/releases)
- [Commits](vuejs/create-vue@v3.9.1...v3.9.2)

---
updated-dependencies:
- dependency-name: create-vue
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* [C3] Update frameworks cli dependencies

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wrangler automated PR updater <[email protected]>

* Exclude standardPricingWarning from dryrun (#4880)

* Exclude standardPricingWarning from dryrun

That way we do not need authentication for dryrun, again.

* fixup! Exclude standardPricingWarning from dryrun

* fixup! Exclude standardPricingWarning from dryrun

---------

Co-authored-by: petero-dk <[email protected]>

* Implements Python support in miniflare. (#4873)

* Fix changesets (#4885)

* fix dario-piotrowicz's changesets

* fix existing C3 changesets and amend the changeset text in the creation logic

* Version Packages (#4854)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* [C3] Bump create-qwik from 1.4.2 to 1.4.3 in /packages/create-cloudflare/src/frameworks (#4881)

* [C3] Bump create-qwik in /packages/create-cloudflare/src/frameworks

Bumps [create-qwik](https://github.com/BuilderIO/qwik/tree/HEAD/packages/create-qwik) from 1.4.2 to 1.4.3.
- [Release notes](https://github.com/BuilderIO/qwik/releases)
- [Commits](https://github.com/BuilderIO/qwik/commits/v1.4.3/packages/create-qwik)

---
updated-dependencies:
- dependency-name: create-qwik
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* [C3] Update frameworks cli dependencies

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wrangler automated PR updater <[email protected]>

* [wrangler] fix: listen on loopback for wrangler dev port check and login (#4830)

The `wrangler dev` port availability check triggers a firewall prompt on
macOS while it briefly opens and closes listeners. The OAuth callback
server from `wrangler login` has the same issue.

Fix both cases by listening on the loopback address only by default.

Fixed some new test failures by using locally available IP addresses:

    wrangler:test:   ● wrangler dev › ip › should use to `ip` from `wrangler.toml`, if available
    wrangler:test:     listen EADDRNOTAVAIL: address not available 1.2.3.4:8787
    wrangler:test:
    wrangler:test:   ● wrangler dev › ip › should use --ip command line arg, if provided
    wrangler:test:     listen EADDRNOTAVAIL: address not available 5.6.7.8:8787

Relates to #4430

* remove outdated and no longer valid miniflare development section from CONTRIBUTING.md (#4893)

* [C3] Bump @angular/create from 17.1.1 to 17.1.2 in /packages/create-cloudflare/src/frameworks (#4892)

* [C3] Bump @angular/create in /packages/create-cloudflare/src/frameworks

Bumps [@angular/create](https://github.com/angular/angular-cli) from 17.1.1 to 17.1.2.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](angular/angular-cli@17.1.1...17.1.2)

---
updated-dependencies:
- dependency-name: "@angular/create"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* [C3] Update frameworks cli dependencies

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wrangler automated PR updater <[email protected]>

* [Stream] WebRTC Template Improvements (#4157)

* Add port numbers to fix stackblitz automatic startup

* Pull the variables up and show clear instructions

* fixup! Pull the variables up and show clear instructions

---------

Co-authored-by: Peter Bacon Darwin <[email protected]>

* fix: return 4xx error from playground preview worker on invalid tokens (#4904)

Previously, we were passing user-controllable token inputs
(`X-CF-Token` header, `user` search param, `token` cookie) directly to
the `DurableObjectNamespace#idFromString()` function. This validated
the token to be a valid Durable Object ID, but threw a reportable
`TypeError`, generating a 500 response and increasing the errored
request count. This is a user error, so shouldn't be reported. This
change wraps calls to `idFromString()` inside `try`/`catch`es, and
re-throws non-reportable user errors that generate 4xx responses.
We could just validate that the tokens were 64 hex digits before
calling `idFromString()`, but this approach ensures the IDs are for
the `UserSession` object by validating the signature encoded in the
ID too.

* chore: rename deprecated Vitest `TestContext.meta` properties to `TestContext.task` (#4897)

This is a precursor to updating to latest Vitest.

* [wrangler] fix: stop rebuild attempts when sources are missing (#3886) (#4877)

* [wrangler] fix: stop rebuild attempts when sources are missing (#3886)

* fixup! [wrangler] fix: stop rebuild attempts when sources are missing (#3886)

* fixup! [wrangler] fix: stop rebuild attempts when sources are missing (#3886)

* fixup! [wrangler] fix: stop rebuild attempts when sources are missing (#3886)

* Update .changeset/hip-files-count.md

Co-authored-by: Pete Bacon Darwin <[email protected]>

* !fixup: [wrangler] fix: stop rebuild attempts when sources are missing (#3886)

* !fixup: [wrangler] fix: stop rebuild attempts when sources are missing (#3886)

---------

Co-authored-by: Peter Bacon Darwin <[email protected]>
Co-authored-by: Pete Bacon Darwin <[email protected]>

* [C3] Bump create-remix from 2.5.1 to 2.6.0 in /packages/create-cloudflare/src/frameworks (#4903)

* [C3] Bump create-remix in /packages/create-cloudflare/src/frameworks

Bumps [create-remix](https://github.com/remix-run/remix/tree/HEAD/packages/create-remix) from 2.5.1 to 2.6.0.
- [Release notes](https://github.com/remix-run/remix/releases)
- [Changelog](https://github.com/remix-run/remix/blob/main/packages/create-remix/CHANGELOG.md)
- [Commits](https://github.com/remix-run/remix/commits/[email protected]/packages/create-remix)

---
updated-dependencies:
- dependency-name: create-remix
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* [C3] Update frameworks cli dependencies

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wrangler automated PR updater <[email protected]>

* fix: ensure that the Pages dev proxy server does not change the Host header (#4888)

* fix: ensure that the Pages dev proxy server does not change the Host header

Previously, when configuring `wrangler pages dev` to use a proxy to a 3rd party dev server,
the proxy would replace the Host header, resulting in problems at the dev server if it was
checking for cross-site scripting attacks.

Now the proxy server passes through the Host header unaltered making it invisible to the
3rd party dev server.

Fixes #4799

* fixup! fix: ensure that the Pages dev proxy server does not change the Host header

* fixup! fix: ensure that the Pages dev proxy server does not change the Host header

* fixup! fix: ensure that the Pages dev proxy server does not change the Host header

* fix: fallback to returning stack trace if `format-errors` broken (#4908)

* expose cf object from Miniflare instances (#4905)

* expose cf object from Miniflare instances

---------

Co-authored-by: MrBBot <[email protected]>

* Add a `ctx` field to the `getBindingsProxy` result (#4922)

* split get-bindings-proxy fixture tests in multiple files

* add ctx to getBindingsProxy

* add ctx tests to get-bindings-proxy fixture

---------

Co-authored-by: MrBBot <[email protected]>

* fix(d1): intercept and stringify errors thrown in --json mode (#4872)

* fix(d1): intercept and stringify errors thrown in --json mode

* fix: add light parsing on d1 execute error message

* add test

* wip

* implement JsonFriendlyFatalError

* address PR feedback

* fix: don't report invalid `format-errors` input (#4911)

* [D1] Add user friendly D1 validation error messages for `dev --remote` and `deploy` (#4914)

* chore: refactor user friendly errors and add 10063 code handling

* chore: add user friendly error message to deployments

* chore: lint

* chore: cleanup directory

* chore: fix remote error handling

* chore: add patch change set

* chore: move ABORT_ERR logic out of the user friendly error handler

* chore: fix syntax

* Update .changeset/fair-shoes-melt.md

Co-authored-by: Pete Bacon Darwin <[email protected]>

---------

Co-authored-by: Pete Bacon Darwin <[email protected]>

* [D1] teach wrangler how to fetch insights about D1's queries (#4909)

* [D1] teach wrangler how to fetch insights about D1's queries

* add options for sorting and number of results

* add a means of filtering the datetime geq/leq

* add more options, fix tests

* add wrangler banner, add warning text

* add changeset

* rename last to timePeriod

* use string format over numbers as >1mo's data could be possible

* Update red-icons-flow.md

* make it possible to order by count

* Update red-icons-flow.md

* PR feedback

* Update .changeset/red-icons-flow.md

Co-authored-by: Pete Bacon Darwin <[email protected]>

* address PR feedback

---------

Co-authored-by: Pete Bacon Darwin <[email protected]>

* [wrangler] test: fix E2E tests (#4907)

* ci: ensure E2E tests failures not reported as successes

#4458 accidentally left `continue-on-error: true` in the workflow.
This meant that E2E test failures weren't reported as check failures.

* test: remove redundant `deploy.test.ts` E2E test

This test was a strict subset of `deployments.test.ts`, and wasn't
providing any additional value.

* test: remove standard pricing warning from E2E test output

This warning may not be shown if an account has opted-in to standard
pricing. This change normalises output to remove it, meaning tests
can be run on any account, regardless of opt-in state.

* test: update format of writing logs message in E2E tests

* test: use `fallback` instead of `default` in E2E tests

#4571 updated the message logged in non-interactive contexts for
default values to use the word `fallback` instead of `default`.

* fix: ensure `--log-level` argument applied immediately

Some messages were being logged before the `--log-level` argument was
applied. In particular, this meant the "writing logs to" message at
`debug` level, was not output when using `--log-level=debug`.

* test: improve reliability of `dev.test.ts` E2E test

This change makes a few improvements to `dev.test.ts`:

- Shorter timeouts for `fetch()` retries
- Replaces `get-port` with native port `0` implementation
- Waits for stdout handlers to be registered before starting
  `wrangler dev`
- Ignores errors if we failed to find a proccess to kill
  (assumes the process was already killed)

* fix: throw `UserError`s for R2 object/bucket not-found errors

These errors should not be reported to Sentry.

* global install

* Ensure internal workers listen on ipv4 only

* shorter timeouts


---------

Co-authored-by: Samuel Macleod <[email protected]>

* Python support (#4901)

* Implements wrangler deploy/dev support for Python.

* Migrate to `--no-bundle` approach

* Basic support for `requirements.txt`

* address review comments

* Strip package versions

* Support deploying

* Address comments

* Fix tests

---------

Co-authored-by: Dominik Picheta <[email protected]>

* Version Packages (#4891)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* [C3] Add `getBindingsProxy` support to qwik template (#4927)

* Split package.json update into multiple phases

* Add getBindingsProxy to qwik template

* Add support for testing dev scripts in c3 e2e tests

* Refactor framework e2e verification helpers

* Add support for verifying build script in framework e2es

* Refactor e2e helpers

* Refactor workers e2e tests to re-align with frameworks tests

* Refactor RunnerConfig in e2e tests

* Fixing cli e2e tests

* changeset

* remove leftover test value

* Fix issue with npm tests & fix e2e logging

* Addressing PR feedback

* [playground-preview-worker] fix: don't report invalid upload input (#4937)

* fix: don't report invalid `edge-preview-authenticated-proxy` URLs (#4939)

* [D1] print wrangler banner at the start of every D1 command (#4938)

* fix: make the entrypoint optional for the `types` command (#4931)

---------

Co-authored-by: MrBBot <[email protected]>

* add a `cf` field to the `getBindingsProxy` result (#4926)


---------

Co-authored-by: James Culveyhouse <[email protected]>

* Improve DX with `node:*` modules (#4499)

* Turn node build failures into warnings

* Allow files to suppress warnings for specific modules

* Remove comment-based allow-listing

* Add changeset

* Update .changeset/chatty-balloons-impress.md

Co-authored-by: James M Snell <[email protected]>

* Pass through `defineNavigatorUserAgent`

* Add tests

* lockfile

* Linting

* fix tests

---------

Co-authored-by: James M Snell <[email protected]>

* improve(r2): Update Sippy endpoint request payloads to match new schema (#4928)

* fix(r2): update Sippy API request payloads

* improve(r2): rename sippy flags for clarity

* improve(r2): stricter existence in Sippy

* [C3] Bump create-qwik from 1.4.3 to 1.4.4 in /packages/create-cloudflare/src/frameworks (#4935)

* [C3] Bump create-qwik in /packages/create-cloudflare/src/frameworks

Bumps [create-qwik](https://github.com/BuilderIO/qwik/tree/HEAD/packages/create-qwik) from 1.4.3 to 1.4.4.
- [Release notes](https://github.com/BuilderIO/qwik/releases)
- [Commits](https://github.com/BuilderIO/qwik/commits/v1.4.4/packages/create-qwik)

---
updated-dependencies:
- dependency-name: create-qwik
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* [C3] Update frameworks cli dependencies

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wrangler automated PR updater <[email protected]>

* fix: allow `port` option to be specified with `unstable_dev()` (#4953)

* Extend error handling of proxy request errors in ProxyWorker (#4867)

* ignore stale proxy errors

* attempt to recover from ProxyWorker fetch errors
by requeuing the request (only if it is GET or HEAD)

* add test

* add changeset

* refactor to flatten nested if-else blocks

* requeue request for retry at front of queue

* sort batch of requests in queue by order of arrival

* Revert "sort batch of requests in queue by order of arrival"

This reverts commit 3329f19.

* Revert "requeue request for retry at front of queue"

This reverts commit f0377b7.

* prioritise requests being retried
over requests being proxied for the first time

* better comments

* update changeset to match recommeded format

* Update five-cooks-share.md (#4956)

* Version Packages (#4934)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Pete Bacon Darwin <[email protected]>
Co-authored-by: Dario Piotrowicz <[email protected]>
Co-authored-by: James Culveyhouse <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wrangler automated PR updater <[email protected]>
Co-authored-by: petero-dk <[email protected]>
Co-authored-by: Dominik Picheta <[email protected]>
Co-authored-by: [email protected] <[email protected]>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Peter Wu <[email protected]>
Co-authored-by: Taylor Smith <[email protected]>
Co-authored-by: Peter Bacon Darwin <[email protected]>
Co-authored-by: Magnus Dahlstrand <[email protected]>
Co-authored-by: Max Rozen <[email protected]>
Co-authored-by: Nora Söderlund <[email protected]>
Co-authored-by: Samuel Macleod <[email protected]>
Co-authored-by: Dominik Picheta <[email protected]>
Co-authored-by: James M Snell <[email protected]>
Co-authored-by: Siddhant <[email protected]>
Co-authored-by: Rahul Sethi <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

e2e Run wrangler + vite-plugin e2e tests on a PR python Issues/PRs relating to Python on Workers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants