Skip to content

feat: introduce defaultPersistRoot option#9330

Merged
edmundhung merged 5 commits intomainfrom
edmundhung/DEVX-1828
May 23, 2025
Merged

feat: introduce defaultPersistRoot option#9330
edmundhung merged 5 commits intomainfrom
edmundhung/DEVX-1828

Conversation

@edmundhung
Copy link
Member

@edmundhung edmundhung commented May 21, 2025

Fixes DEVX-1828

This introduces a defaultPersistRoot setting that, when provided, is used as the base directory for any plugin (i.e. path.join(defaultPersistRoot, pluginName)) whose persist option is undefined or true. Explicit string values for a plugin’s persist path are still honored.

This removes the need for both Wrangler and the Vite plugin to set individual persist options as long as all the miniflare plugins continue to derive the persist path using the getPersistPath helper. This will not break existing users as well as the result paths match current settings on both Wrangler / Vite plugin.

Example:

// Without `defaultPersistRoot` / Before this change:
new Miniflare({
  kvPersist: undefined,       // → "/(tmp)/kv"
  d1Persist: true,            // → "/.mf/d1"
  r2Persist: false,           // → "/(tmp)/r2"
  cachePersist: "/my-cache",  // → "/my-cache"
});

// With `defaultPersistRoot`
new Miniflare({
  defaultPersistRoot: "/storage",
  kvPersist: undefined,       // → "/storage/kv"
  d1Persist: true,            // → "/storage/d1"
  r2Persist: false,           // → "/(tmp)/r2"
  cachePersist: "/my-cache",  // → "/my-cache"
});

  • Tests
    • TODO (before merge)
    • Tests included
    • Tests not necessary because: covered by existing tests
  • Wrangler / Vite E2E Tests CI Job required? (Use "e2e" label or ask maintainer to run separately)
    • I don't know
    • Required
    • Not required because:
  • Public documentation
  • Wrangler V3 Backport
    • TODO (before merge)
    • Wrangler PR:
    • Not necessary because: not patch

@changeset-bot
Copy link

changeset-bot bot commented May 21, 2025

🦋 Changeset detected

Latest commit: a4278d3

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

This PR includes changesets to release 5 packages
Name Type
miniflare Minor
@cloudflare/vite-plugin Minor
wrangler Minor
@cloudflare/pages-shared Patch
@cloudflare/vitest-pool-workers 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
Contributor

github-actions bot commented May 21, 2025

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/15215016320/npm-package-wrangler-9330
Prereleases for other packages:

cloudflare-workers-bindings-extension:

wget https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/15215016320/npm-package-cloudflare-workers-bindings-extension-9330 -O ./cloudflare-workers-bindings-extension.0.0.0-v2275919a7.vsix && code --install-extension ./cloudflare-workers-bindings-extension.0.0.0-v2275919a7.vsix

create-cloudflare:

npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/15215016320/npm-package-create-cloudflare-9330 --no-auto-update

@cloudflare/kv-asset-handler:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/15215016320/npm-package-cloudflare-kv-asset-handler-9330

miniflare:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/15215016320/npm-package-miniflare-9330

@cloudflare/pages-shared:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/15215016320/npm-package-cloudflare-pages-shared-9330

@cloudflare/unenv-preset:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/15215016320/npm-package-cloudflare-unenv-preset-9330

@cloudflare/vite-plugin:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/15215016320/npm-package-cloudflare-vite-plugin-9330

@cloudflare/vitest-pool-workers:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/15215016320/npm-package-cloudflare-vitest-pool-workers-9330

@cloudflare/workers-editor-shared:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/15215016320/npm-package-cloudflare-workers-editor-shared-9330

@cloudflare/workers-shared:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/15215016320/npm-package-cloudflare-workers-shared-9330

@cloudflare/workflows-shared:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/15215016320/npm-package-cloudflare-workflows-shared-9330

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

@edmundhung edmundhung added the e2e Run wrangler + vite-plugin e2e tests on a PR label May 21, 2025
@edmundhung edmundhung marked this pull request as ready for review May 22, 2025 17:39
@edmundhung edmundhung requested a review from a team May 22, 2025 17:39
@edmundhung edmundhung requested review from a team as code owners May 22, 2025 17:39
@edmundhung edmundhung force-pushed the edmundhung/DEVX-1828 branch from 44678f8 to 3bba18c Compare May 22, 2025 18:57
@github-project-automation github-project-automation bot moved this from Untriaged to Approved in workers-sdk May 23, 2025
edmundhung and others added 4 commits May 23, 2025 17:25
Co-authored-by: Pete Bacon Darwin <pete@bacondarwin.com>
g getPersistPath on secret store plugin
@edmundhung edmundhung force-pushed the edmundhung/DEVX-1828 branch from 57e0956 to 2d19600 Compare May 23, 2025 16:25
@edmundhung edmundhung enabled auto-merge May 23, 2025 16:27
@edmundhung edmundhung disabled auto-merge May 23, 2025 16:27
@edmundhung edmundhung added this pull request to the merge queue May 23, 2025
Merged via the queue into main with commit 34c71ce May 23, 2025
18 checks passed
@edmundhung edmundhung deleted the edmundhung/DEVX-1828 branch May 23, 2025 17:39
@github-project-automation github-project-automation bot moved this from Approved to Done in workers-sdk May 23, 2025
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

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

2 participants