Before we get started, just in case you missed them, here are quick links to the announcement post and Changelog:
Changelog
Highlights & Upgrading
Our highlights and upgrade guide are available at:
https://redwoodjs.com/upgrade/v8
Before we get started, just in case you missed them, here are quick links to the announcement post and Changelog:
Our highlights and upgrade guide are available at:
https://redwoodjs.com/upgrade/v8
Pretty smooth, nothing major that broke for me (except for trusted documents not properly working but I opened a thread on discord for that). The only other thing I see when I run yarn install is:
ā¤ YN0060: ā @redwoodjs/graphql-server is listed by your project with version 8.0.0-rc.1130 (p3b88c), which doesn't satisfy what @redwoodjs/api-server requests (but they have non-overlapping ranges!).
Great job guys!
Hereās my graphql-server package.json
{
"name": "@redwoodjs/graphql-server",
"version": "8.0.0-rc.1130+86e6952ee",
"repository": {
"type": "git",
"url": "git+https://github.com/redwoodjs/redwood.git",
"directory": "packages/graphql-server"
},
"license": "MIT",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"files": [
"dist"
],
"scripts": {
"build": "tsx ./build.mts && yarn build:types",
"build:pack": "yarn pack -o redwoodjs-graphql-server.tgz",
"build:types": "tsc --build --verbose",
"build:watch": "nodemon --watch src --ext \"js,jsx,ts,tsx\" --ignore dist --exec \"yarn build\"",
"prepublishOnly": "NODE_ENV=production yarn build",
"test": "jest src",
"test:watch": "yarn test --watch"
},
"dependencies": {
"@babel/runtime-corejs3": "7.24.8",
"@envelop/core": "5.0.1",
"@envelop/depth-limit": "4.0.0",
"@envelop/disable-introspection": "6.0.0",
"@envelop/filter-operation-type": "6.0.0",
"@envelop/on-resolve": "4.1.0",
"@escape.tech/graphql-armor": "3.0.1",
"@graphql-tools/merge": "9.0.4",
"@graphql-tools/schema": "10.0.4",
"@graphql-tools/utils": "10.3.2",
"@graphql-yoga/plugin-persisted-operations": "3.6.2",
"@opentelemetry/api": "1.8.0",
"@redwoodjs/api": "8.0.0-rc.1130+86e6952ee",
"@redwoodjs/context": "8.0.0-rc.1130+86e6952ee",
"core-js": "3.37.1",
"graphql": "16.9.0",
"graphql-scalars": "1.23.0",
"graphql-tag": "2.12.6",
"graphql-yoga": "5.6.2",
"lodash": "4.17.21",
"uuid": "10.0.0"
},
"devDependencies": {
"@babel/cli": "7.24.8",
"@babel/core": "^7.22.20",
"@envelop/testing": "7.0.0",
"@envelop/types": "5.0.0",
"@redwoodjs/project-config": "8.0.0-rc.1130+86e6952ee",
"@redwoodjs/realtime": "8.0.0-rc.1130+86e6952ee",
"@types/aws-lambda": "8.10.142",
"@types/jsonwebtoken": "9.0.6",
"@types/lodash": "4.17.7",
"@types/uuid": "10.0.0",
"@whatwg-node/fetch": "0.9.19",
"jest": "29.7.0",
"jsonwebtoken": "9.0.2",
"tsx": "4.16.2",
"typescript": "5.5.4"
},
"gitHead": "86e6952eed228305717382363ddf59aae0b31daz"
}
Hereās my api-server package.json
{
"name": "@redwoodjs/api-server",
"version": "8.0.0-rc.1130+86e6952ee",
"description": "Redwood's HTTP server for Serverless Functions",
"repository": {
"type": "git",
"url": "git+https://github.com/redwoodjs/redwood.git",
"directory": "packages/api-server"
},
"license": "MIT",
"main": "./dist/createServer.js",
"types": "./dist/createServer.d.ts",
"bin": {
"rw-api-server-watch": "./dist/watch.js",
"rw-log-formatter": "./dist/logFormatter/bin.js",
"rw-server": "./dist/bin.js"
},
"files": [
"dist"
],
"scripts": {
"build": "tsx ./build.mts && yarn build:types",
"build:pack": "yarn pack -o redwoodjs-api-server.tgz",
"build:types": "tsc --build --verbose tsconfig.build.json",
"build:watch": "nodemon --watch src --ext \"js,jsx,ts,tsx\" --ignore dist --exec \"yarn build && yarn fix:permissions\"",
"fix:permissions": "chmod +x dist/index.js; chmod +x dist/watch.js",
"prepublishOnly": "NODE_ENV=production yarn build",
"test": "vitest run",
"test:watch": "vitest watch"
},
"dependencies": {
"@fastify/url-data": "5.4.0",
"@redwoodjs/context": "8.0.0-rc.1130+86e6952ee",
"@redwoodjs/fastify-web": "8.0.0-rc.1130+86e6952ee",
"@redwoodjs/project-config": "8.0.0-rc.1130+86e6952ee",
"@redwoodjs/web-server": "8.0.0-rc.1130+86e6952ee",
"chalk": "4.1.2",
"chokidar": "3.6.0",
"dotenv-defaults": "5.0.2",
"fast-glob": "3.3.2",
"fast-json-parse": "1.0.3",
"fastify": "4.28.1",
"fastify-raw-body": "4.3.0",
"lodash": "4.17.21",
"pretty-bytes": "5.6.0",
"pretty-ms": "7.0.1",
"qs": "6.12.3",
"split2": "4.2.0",
"yargs": "17.7.2"
},
"devDependencies": {
"@redwoodjs/framework-tools": "7.0.0",
"@types/aws-lambda": "8.10.142",
"@types/lodash": "4.17.7",
"@types/qs": "6.9.15",
"@types/split2": "4.2.3",
"@types/yargs": "17.0.32",
"pino-abstract-transport": "1.2.0",
"tsx": "4.16.2",
"typescript": "5.5.4",
"vitest": "2.0.4"
},
"peerDependencies": {
"@redwoodjs/graphql-server": "workspace:*"
},
"peerDependenciesMeta": {
"@redwoodjs/graphql-server": {
"optional": true
}
},
"gitHead": "86e6952eed228305717382363ddf59aae0b31daz"
}
Thank you @Tobbe for this detailed upgrade guide!
Does this mean storybook with webpack is no longer supported too?
I got this error when running yarn rw storybook
:
Error: Cannot find module '@redwoodjs/testing/config/storybook/main.js'
The command still installs and runs the webpack version of storybook and does not have RC package version.
We also have an unlisted breaking change with the type of ApolloError
, nothing major, mostly misused of Apollo Client error on our part that is now explicit in type.
Something seems to have changed with the default behavior of context.currentUser
that is now undefined
on jest API unit test, I will dig more on my side about this one.
Otherwise, everything seems to run properly on local dev!
Thanks for the feedback! I havenāt looked into the discord thread but I hope things moved forward with that?
The workspace:*
is a problem on our side that Iāll address and get an updated rc out. Thanks!
Thanks @simoncrypta! I was going to reach out to you so awesome youāve started exploring the upgrade.
Webpack
Yeah we no longer support the webpack version of storybook. The reason your CLI is still picking up the old on is because of the commandCache.json
in the .redwood
directory. I hope that if you try deleting that file and then running the command again that it will use the new vite version of storybook.
Iām going to release a patch for v7 that will make that happen automatically during the rw upgrade
command.
ApolloError
Interesting. Is there information you think we should add to this upgrade guide? I hadnāt noticed a type change but itās easy for things to split by with this major.
currentUser
Hmm interesting. Iād be happy to look into this with you since I donāt think we wanted to introduce a change here.
Thanks Josh, I was wondering if the workspace:* was causing that issue. Hadnāt seen that before.
Honestly everything runs smoothly (considering I run sockets, tus, zenstack, etc. Iām surprised nothing broke honestly), I had some issues with fragments/trusted documents but I opened a thread here on the forum to condense my āissueā. I donāt think itās an actual issue but rather a misunderstanding on my part on how to make fragments work seamlessly but thank you for checking in!
Sometimes yarn will break and not know how to handle it when we publish packages that include workspace:*
. We handle doing that in our release process for stable releases but looks like our script that releases release candidates doesnāt.
Iāve seen your posts here about your tech stack and really need to find the time to dive into what youāve experienced because it sounds awesome! Weāre in the process of building our own deployment platform to make deploying redwood apps truly effortless. Sounds like weāll be playing catch-up to match your feature set. Itās awesome youāre building with redwood!
For Apollo Client, you mentioned that the Apollo PR make a small breaking change on type :
I donāt know whatās the impact exactly, but itās nothing really new since the type was wrong at first, so any error we had was a misused of graphQLErrors
like transforming the message on the client. For what I know, the change that has impact on us is error.message
is now read-only and error.name
doesnāt exist anymore.
For currentUser
, it seems like the upgrade command forgot some rw packages, I donāt remember which one, but now everything works correctly.
Thank you @Josh-Walker-GM !
Currently, our only blocker to be able to run RW v8 is the storybook-vite upgrade :
Haha, it turns out I was the culprit all along! Thanks for the additional information. Iāll probably update the guide in the main post to call out the fix in the types.
Replied to you there!
Just an FYI that this command:
yarn rw upgrade -t rc
put me onto v7.74.rc.0
I ran:
yarn rw upgrade -t canary
to get onto v8, but that may not be what you want
Ah thanks for pointing that out. Should be fixed now.
Hi, Iām using Canary. Canary is completely separate from these v# updates, correct? I tried implementing these upgrades and it actually broke my code. I did a git reset --hard command to undo the updates I made per this v8 upgrade guide and my code is working as expected now.
Hi. Canary is ābleeding edgeā latest and not a proper release. It has the very most current updates to the main branch as PRs for features roll in.
Iād stick to either the release v8 packages or 7.x if building and not looking to try out the latest features.
I tried giving v8 a spin and just spun up a new project. Do these commands not yet work?
yarn rw setup exp-streaming-ssr
yarn rw setup exp-rsc
I know the old commands were:
yarn rw experimental setup-streaming-ssr -f
yarn rw experimental setup-rsc
But the blog guide had these news ones here: https://redwoodjs.com/upgrade/v8
Do the old commands behave the same way if I use those on a v8 project?
I just made a new project via:
yarn create redwood-app Version8Test --typescript
yarn cd Version8Test
yarn install
yarn rw dev
and then the new commands were not found with suggestions for things like setup graphql or setup docker
One thing that is weird too is when i try to confirm RW versions via cli:
yarn rw --version
i get an āunknownā, but in package.json do see it installed v8.0.0. When I roll back to 7.7.4 I do see the version with that command.
Excited to try RSC and SSR!
Hello - trying to upgrade to v8 from latest v7
One of the issue I am seeing is navigate()
or <Link>
require to be run twice to actually navigate to the page. I see the url updating in the bar, but somehow, no navigation happens. I can see I have 2 active RWHISTORY_LISTENER_ID (if that matters), and I am not using blockers. Any idea ?
Thanks!