From c9652fdf08defb116d2d898a5eaf523adbe9751b Mon Sep 17 00:00:00 2001 From: Filip Weiss Date: Thu, 1 Oct 2026 12:47:01 +0200 Subject: [PATCH] Upgrade to stable Effect 4.0.0 --- CHANGELOG.md | 2 +- README.md | 5 +---- package.json | 6 +++--- pnpm-lock.yaml | 24 ++++++++++++------------ pnpm-workspace.yaml | 4 ++-- 5 files changed, 19 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b950b13..67ea71a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ All notable changes to this project will be documented in this file. ### Breaking Changes -- **Effect 4**: Upgraded the library to Effect 4. Consumers must migrate their applications and Effect dependencies to Effect 4 before upgrading. +- **Stable Effect 4**: Upgraded `effect` and `@effect/vitest` to `4.0.0`. The library now requires `effect@^4.0.0`; Effect 3 and Effect 4 prereleases are no longer supported. Consumers must migrate their applications and Effect dependencies to stable Effect 4 before upgrading. - **Common wrappers are now services**: `Playwright.Request`, `Playwright.Response`, `Playwright.Worker`, `Playwright.Dialog`, `Playwright.FileChooser`, and `Playwright.Download` are now same-named `Context.Service` values and interfaces instead of `Data.TaggedClass` constructors. - Replace static constructors such as `Playwright.Request.make(request)` with their named equivalents, such as `Playwright.makeRequest(request)`. The corresponding constructors are `makeRequest`, `makeResponse`, `makeWorker`, `makeDialog`, `makeFileChooser`, and `makeDownload`. - Wrapped values no longer expose the `Data.TaggedClass` `_tag` field. diff --git a/README.md b/README.md index 529a7a2..2a50dc3 100644 --- a/README.md +++ b/README.md @@ -9,13 +9,10 @@ A Playwright wrapper for the Effect ecosystem. This library provides a set of se [Playwright Test Integration](README.md#playwright-test-integration) is also supported. -> [!IMPORTANT] -> This branch and its documentation target Effect v4. The [`v3` branch can be found here](https://github.com/Jobflow-io/effect-playwright/tree/v3). - ## Installation ```bash -pnpm add effect-playwright@next # Effect v4 use @latest for v3 +pnpm add effect@^4.0.0 effect-playwright pnpm effect-playwright install chromium ``` diff --git a/package.json b/package.json index 8847062..b3e7e8d 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ }, "peerDependencies": { "@playwright/test": "^1.63.0", - "effect": "^4.0.0-rc.115" + "effect": "^4.0.0" }, "peerDependenciesMeta": { "@playwright/test": { @@ -61,10 +61,10 @@ "devDependencies": { "@biomejs/biome": "2.5.13", "@effect/language-service": "0.87.2", - "@effect/vitest": "^4.0.0-rc.115", + "@effect/vitest": "^4.0.0", "@playwright/test": "^1.63.0", "@types/node": "^24.13.4", - "effect": "^4.0.0-rc.115", + "effect": "^4.0.0", "pkg-pr-new": "^0.0.88", "playwright": "^1.63.0", "ts-morph": "^28.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1a9e2af..45bd611 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,8 +19,8 @@ importers: specifier: 0.87.2 version: 0.87.2 '@effect/vitest': - specifier: ^4.0.0-rc.115 - version: 4.0.0-rc.115(effect@4.0.0-rc.115)(vitest@5.0.1(@types/node@24.13.4)(vite@8.3.0(@types/node@24.13.4)(esbuild@0.28.2)(tsx@4.23.13)(yaml@2.9.0))) + specifier: ^4.0.0 + version: 4.0.0(effect@4.0.0)(vitest@5.0.1(@types/node@24.13.4)(vite@8.3.0(@types/node@24.13.4)(esbuild@0.28.2)(tsx@4.23.13)(yaml@2.9.0))) '@playwright/test': specifier: ^1.63.0 version: 1.63.0 @@ -28,8 +28,8 @@ importers: specifier: ^24.13.4 version: 24.13.4 effect: - specifier: ^4.0.0-rc.115 - version: 4.0.0-rc.115 + specifier: ^4.0.0 + version: 4.0.0 pkg-pr-new: specifier: ^0.0.88 version: 0.0.88 @@ -121,10 +121,10 @@ packages: resolution: {integrity: sha512-CfiSoaVQO8pZgaMZGw5VvMvRGybsJ2LaSDoLYaqiVGvo/YYPYVR2GzUKY0h1NtIweq/+SQ5XLrvtzPIttWQ0GQ==} hasBin: true - '@effect/vitest@4.0.0-rc.115': - resolution: {integrity: sha512-DJR0hfdr3HNXAkzW8AzfvUz6VmrNFLrKk9tZGDURi33faMyxkc7ZewxELMMZwGpOTGN4mfqYVbX2CXgI+ZJBeQ==} + '@effect/vitest@4.0.0': + resolution: {integrity: sha512-kGElCPFGtP+CgMCwV/HjJWqtE3zYo6I1+8MSA54l+EI24lPU9p2Efa+TBp1jfkg9j711KKzEqgSAy3VzTsb76Q==} peerDependencies: - effect: ^4.0.0-rc.115 + effect: ^4.0.0 vitest: '>=5.0.0 <6.0.0' '@esbuild/aix-ppc64@0.28.2': @@ -636,8 +636,8 @@ packages: oxc-resolver: optional: true - effect@4.0.0-rc.115: - resolution: {integrity: sha512-ogYulZ5ffeOzrJqQrG0XOkDO5lKn2s9KNHhoxJy/6wKUkF0i12dlVXWA9TgsgQ+zV/JzizyG0+XMPepZEQX6vw==} + effect@4.0.0: + resolution: {integrity: sha512-ooc1TG5t+FfzgYnFz2ff6BBKyZ7EwBRVXC7c4RhQUAD6/TZ2gTXXMeb4WX7a19ozQo4J73/QW+S00YAIresoMQ==} empathic@2.0.1: resolution: {integrity: sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q==} @@ -1102,9 +1102,9 @@ snapshots: '@effect/language-service@0.87.2': {} - '@effect/vitest@4.0.0-rc.115(effect@4.0.0-rc.115)(vitest@5.0.1(@types/node@24.13.4)(vite@8.3.0(@types/node@24.13.4)(esbuild@0.28.2)(tsx@4.23.13)(yaml@2.9.0)))': + '@effect/vitest@4.0.0(effect@4.0.0)(vitest@5.0.1(@types/node@24.13.4)(vite@8.3.0(@types/node@24.13.4)(esbuild@0.28.2)(tsx@4.23.13)(yaml@2.9.0)))': dependencies: - effect: 4.0.0-rc.115 + effect: 4.0.0 vitest: 5.0.1(@types/node@24.13.4)(vite@8.3.0(@types/node@24.13.4)(esbuild@0.28.2)(tsx@4.23.13)(yaml@2.9.0)) '@esbuild/aix-ppc64@0.28.2': @@ -1413,7 +1413,7 @@ snapshots: dts-resolver@3.0.0: {} - effect@4.0.0-rc.115: {} + effect@4.0.0: {} empathic@2.0.1: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 223ac71..50e7b6b 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -3,5 +3,5 @@ allowBuilds: esbuild: false msgpackr-extract: false minimumReleaseAgeExclude: - - '@effect/vitest@4.0.0-rc.111' - - effect@4.0.0-rc.111 + - '@effect/vitest@4.0.0' + - effect@4.0.0