Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/restore-effect-4-0-0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@typeonce/effect-machine": patch
"@typeonce/effect-machine-react": patch
"@typeonce/effect-machine-devtools": patch
---

Accept Effect `^4.0.0` again. Effect 4.0.5 is not required: the `effect`, `@effect/atom-react`, and `@effect/platform-*` requirements return to `^4.0.0`, so projects on any stable Effect 4 release can install this version without upgrading Effect.
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@
},
"devDependencies": {
"@changesets/cli": "2.31.0",
"@effect/vitest": "4.0.5",
"@effect/vitest": "4.0.0",
"@types/node": "25.7.0",
"dprint": "0.55.2",
"effect": "4.0.5",
"effect": "4.0.0",
"pagefind": "1.5.2",
"tinybench": "2.9.0",
"tstyche": "7.2.1",
Expand Down
4 changes: 2 additions & 2 deletions packages/devtools/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ The package is experimental and pre-1.0. Minor releases may change its command o
Core and devtools always release at the same version. Install matching versions:

```sh
pnpm add @typeonce/effect-machine@latest effect@4.0.5
pnpm add @typeonce/effect-machine@latest effect@4.0.0
pnpm add --save-dev @typeonce/effect-machine-devtools@latest
```

When pinning a release instead of using `latest`, use the same explicit version for both packages.

The current release requires Node.js 22.19 or newer and stable Effect `^4.0.5`.
The current release requires Node.js 22.19 or newer and stable Effect `^4.0.0`.

## Run the visualizer

Expand Down
10 changes: 5 additions & 5 deletions packages/devtools/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,21 +32,21 @@
"dev": "tsx src/bin.ts"
},
"dependencies": {
"@effect/platform-browser": "^4.0.5",
"@effect/platform-node": "^4.0.5",
"@effect/platform-node-shared": "^4.0.5",
"@effect/platform-browser": "^4.0.0",
"@effect/platform-node": "^4.0.0",
"@effect/platform-node-shared": "^4.0.0",
"@typeonce/effect-machine": "workspace:^",
"chokidar": "4.0.3",
"elkjs": "0.12.0",
"typescript": "6.0.3",
"vite": "8.1.5"
},
"peerDependencies": {
"effect": "^4.0.5"
"effect": "^4.0.0"
},
"devDependencies": {
"@types/node": "25.7.0",
"effect": "4.0.5",
"effect": "4.0.0",
"tsx": "4.21.0"
},
"files": [
Expand Down
8 changes: 4 additions & 4 deletions packages/effect-machine-react/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,17 +49,17 @@
"@typeonce/effect-machine": "workspace:^"
},
"peerDependencies": {
"@effect/atom-react": "^4.0.5",
"effect": "^4.0.5",
"@effect/atom-react": "^4.0.0",
"effect": "^4.0.0",
"react": ">=19.0.0 <20.0.0",
"scheduler": ">=0.25.0 <0.28.0"
},
"devDependencies": {
"@effect/atom-react": "4.0.5",
"@effect/atom-react": "4.0.0",
"@testing-library/react": "16.3.0",
"@types/react": "19.2.16",
"@types/react-dom": "19.2.3",
"effect": "4.0.5",
"effect": "4.0.0",
"jsdom": "27.2.0",
"react": "19.2.7",
"react-dom": "19.2.7",
Expand Down
4 changes: 2 additions & 2 deletions packages/effect-machine/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@ Cluster and are exposed only through explicit integration boundaries.
## Install

```sh
pnpm add @typeonce/effect-machine effect@4.0.5
pnpm add @typeonce/effect-machine effect@4.0.0
```

`effect` is a peer dependency requiring stable `^4.0.5`. Keep any installed
`effect` is a peer dependency requiring stable `^4.0.0`. Keep any installed
`@effect/*` packages on the same version as `effect`.

Development and benchmarks use exact versions. CI checks both the pinned
Expand Down
6 changes: 3 additions & 3 deletions packages/effect-machine/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,12 @@
"test:types": "tstyche"
},
"peerDependencies": {
"effect": "^4.0.5"
"effect": "^4.0.0"
},
"devDependencies": {
"@effect/vitest": "4.0.5",
"@effect/vitest": "4.0.0",
"@types/node": "25.7.0",
"effect": "4.0.5",
"effect": "4.0.0",
"tinybench": "2.9.0",
"tstyche": "7.2.1",
"typescript": "6.0.3",
Expand Down
112 changes: 56 additions & 56 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 6 additions & 6 deletions pnpm-workspace.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ packages:
- "packages/*"

overrides:
effect: 4.0.5
"@effect/vitest": 4.0.5
"@effect/atom-react": 4.0.5
"@effect/platform-browser": 4.0.5
"@effect/platform-node": 4.0.5
"@effect/platform-node-shared": 4.0.5
effect: 4.0.0
"@effect/vitest": 4.0.0
"@effect/atom-react": 4.0.0
"@effect/platform-browser": 4.0.0
"@effect/platform-node": 4.0.0
"@effect/platform-node-shared": 4.0.0

minimumReleaseAge: 1440
minimumReleaseAgeExclude:
Expand Down
6 changes: 3 additions & 3 deletions scripts/release-contract.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -43,17 +43,17 @@ test("Effect consumers accept stable 4.x while development versions stay synchro
const effect = root.devDependencies.effect
assert.match(effect, /^4\.\d+\.\d+$/)
for (const manifest of [core, react, devtools]) {
assert.equal(manifest.peerDependencies.effect, "^4.0.5")
assert.equal(manifest.peerDependencies.effect, "^4.0.0")
assert.equal(manifest.devDependencies.effect, effect)
}
assert.equal(root.devDependencies["@effect/vitest"], effect)
assert.equal(core.devDependencies["@effect/vitest"], effect)
assert.equal(react.peerDependencies["@effect/atom-react"], "^4.0.5")
assert.equal(react.peerDependencies["@effect/atom-react"], "^4.0.0")
assert.equal(react.devDependencies["@effect/atom-react"], effect)
for (const name of ["@effect/platform-browser", "@effect/platform-node", "@effect/platform-node-shared"]) {
assert.equal(
devtools.dependencies[name],
"^4.0.5",
"^4.0.0",
`${name} must accept the same stable Effect major as its peer`
)
}
Expand Down
Loading