Update redwood monorepo to v8 (major) #115
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
6.3.1
->8.4.1
6.3.1
->8.4.1
6.3.1
->8.4.1
6.3.1
->8.4.1
6.3.1
->8.4.1
6.3.1
->8.4.1
6.3.1
->8.4.1
6.3.1
->8.4.1
6.3.1
->8.4.1
6.3.1
->8.4.1
Release Notes
redwoodjs/redwood (@redwoodjs/api)
v8.4.1
Compare Source
Changelog
🛠️ Fixes
fix(dbAuth): Don't use Multi Value Headers on Vercel (#11718) by @Tobbe
Fixes a regression regarding dbAuth on Vercel introduced in RW 8
Properly kill dev api-server (#11691) by @callingmedic911
Sometime the api-server doesn't get killed in time before the new instance is started. This change makes sure that we wait for the process. If it's not killed within 2 seconds with SIGTERM, we send a SIGKILL to it.
Fix build with TS alias without basePath (#11693) by @callingmedic911
It fixes the build process for a project with TypeScript path alias. It uses root directory as the fallback if there's no baseUrl in
tsconfig.json
.v8.4.0
Compare Source
Changelog
🚧 🚨 Experimental Breaking
breaking(rsc): Removing live-reload RSC dev server approach (#11648) by @Tobbe
Please see #11648 for more details🚀 Features
feat(baremetal): Check available disk space (#11469) by @Tobbe
Adds an early step to the
yarn rw deploy baremetal
command that checks tomake sure there is enough free disk space on the server before continuing.
By default it will make sure there is at least 2048 MB (2 GB) of free disk space
but this can be changed by setting the new
deploy.toml
optionfreeSpaceRequired
to however many MB you want.You can skip this step by passing
--no-df
to thedeploy baremetal
command orsetting
freeSpaceRequired
to0
.🛠️ Fixes
fix(jobs): merge job options to prevent 'undefined' values in place of defaults (#11666) by @Josh-Walker-GM
Please see #11666 for more detailsfix(jobs): Fixes creating worker with deleteSuccessfulJobs config setting in JobManager (#11653) by @dthyresson
According to the Job documentation, the JobManager's
deleteSuccessfulJobs
can be used to decide if one wants successfully completed jobs from being deleted from theBackgroundJobs
table.Keeping job run history around is useful for reporting purposes, such s hoe many jobs run over time, how many fails, how many successes, etc.
However, the
deleteSuccessfulJobs
was not being correctly passed to the worker increateWorker
so the worker always used the default value -- true -- and always deleted the job run record regardless of configuration.This PR fixes this issue by setting the config value when creating the worker.
fix(crwa): Add missing quotes to seed example (#11651) by @Tobbe
Just un-commenting the example seed code now gives you valid code to seed your database with
fix(web) type NonSuspenseCellQueryResult... (#11639) by @richard-stafflink
The result you get back as
queryResult
is now properly typed. Typically thetype will be something like
FindPostById
, i.e. the first type that is passedto
CellSuccessProps
(instead of just beingany
).fix(crwa): Better handling of installing to . (#11645) by @Tobbe
When installing to
cwd
:cd
(which would move you to your home directory, whichmost likely is not what you want)
📚 Docs
docs(deploy): fix grove command (#11689) by @Josh-Walker-GM
Please see #11689 for more detailsdocs: fix versioned docs (#11643) by @Josh-Walker-GM
Please see #11643 for more detailsRemoved 'Azure' as deploy provider mention' (#11116) by @pantheredeye
Please see #11116 for more detailsFix email link in tutorial (#11636) by @cannikin
Please see #11636 for more detailsUpdate the Deployment step of the tutorial for GROVE (#10890) by @cannikin
Please see #10890 for more details📦 Dependencies
Click to see all dependency updates
🧹 Chore
Click to see all chore contributions
🚧 🧹 Experimental Chore
Click to see all chore contributions
v8.3.0
Compare Source
Changelog
🚧 🚨 Experimental Breaking
chore(deps): Upgrade to React 19 RC 20240916 (#11575) by @Tobbe
Please see #11575 for more details🛠️ Fixes
fix `NODE_OPTIONS` env forwarding (#11587) by @cometkim
This change updates how we pass through any
NODE_OPTIONS
when you run the API side development server withyarn rw dev
. Previously there may have been issues like unescaped spaces in paths which would have produced errors like:Now these sort of error should no longer occur.
fix(dbAuth): Fix WebAuthn when authModelAccessor is set to a custom value (#11605) by @antonmoiseev
Previously if you had setup dbAuth with WebAuthn support and had chosen to rename the
User
andUserCredential
models to some other name, such asAccount
andAccountCredential
then dbAuth would have failed with an error something like:This change fixes the database access so that it correctly takes into account the configured
authModelAccessor
.Note: You should ensure your WebAuthn table has a unique index applied on the configured
id
column. Something like what our setup command generates will work great:Fix storybook-vite not starting when `auth.ts` contains named imports after `createAuth` (#11593) by @Philzen
This change fixes an issue with our internal storybook mocks. Previous to this you might find that your storybook would fail with an error like:
This was due to a bug in our handling of imports which this change fixes.
Fixes `yarn rw jobs clear` command (#11578) by @cannikin
fix(graphql): Allow including 'File' scalar by default to be disabled (#11540) by @Josh-Walker-GM
As of v8.0.0 a
File
scalar was added to your graphql schema by default. This could be problematic if you wanted to define your ownFile
scalar.With this change it is now possible to disable including this scalar by default. To see how to do so look at the
Default Scalar
section of theGraphql
docs hereDefault NODE_ENV to "development" if it's `undefined` when starting jobs worker (#11572) by @cannikin
This mimics the behavior of
yarn rw dev
whereNODE_ENV
will equaldevelopment
if you don't set it explicitly.🚧 🛠️ Experimental Fixes
Revert "fix(rsc): Set a yarn resolution for rollup 4.21.3 (#11592)" (#11600) by @Tobbe
Please see #11600 for more detailsfix(rsc): Set a yarn resolution for rollup 4.21.3 (#11592) by @Tobbe
Please see #11592 for more details📚 Docs
fix(docs): warn that uploads/storage is experimental (#11590) by @Josh-Walker-GM
Please see #11590 for more details📦 Dependencies
Click to see all dependency updates
🧹 Chore
Click to see all chore contributions
🚧 🧹 Experimental Chore
Click to see all chore contributions
v8.2.0
Compare Source
Changelog
🚀 Features
feat(cli): Make scaffolded layout routing type-safe (#11542) by @Tobbe
With this feature we now make sure only valid route names are passed as
titleTo
andbuttonTo
props to the scaffolded layout.This also means you get helpful code completion when typing out the prop values
[gh11385] Updated the generated page template (#11533) by @ahaywood
This change alters the default content produced when you generate page with
yarn rw g page
. Previously our generated content contained code that would error out if you had a route parameter in your page - because the link we automatically generated would not contain a value for that parameter.🛠️ Fixes
fix(scaffold): Use plain strings in NamesCell template (#11546) by @Tobbe
Please see #11546 for more detailsfix(crwrsca): Spawn in shell on Windows (#11565) by @Tobbe
Please see #11565 for more detailsfix(crwa): silence telemetry errors (#11557) by @Josh-Walker-GM
Please see #11557 for more detailsfix(crwrsca): Check for Node >= 20.10.0 (#11544) by @Tobbe
Please see #11544 for more details📚 Docs
docs(uploads): Tweaks from updating the Recipes example app (#11571) by @Tobbe
Please see #11571 for more detailsdocs(how-to): replace crypto-js with node's crypto module for random number generation in passwordless auth (#11568) by @antonmoiseev
Please see #11568 for more detailsdocs(how-to): Fix example in dbauth-passworless docs (#11567) by @Tobbe
Please see #11567 for more detailsDocs: Use Redwood's hashPassword() for loginToken hashing in the password-less dbAuth flow (#11566) by @antonmoiseev
Please see #11566 for more detailsReplace MetaTags with Metadata component (#11564) by @antonmoiseev
Please see #11564 for more detailsdocs(chore): Fix formatting (#11524) by @Tobbe
Please see #11524 for more details📦 Dependencies
Click to see all dependency updates
🧹 Chore
Click to see all chore contributions
🚧 🧹 Experimental Chore
Click to see all chore contributions
v8.1.1
Compare Source
Changelog
🛠️ Fixes
fix(cli): handle both single and double quotes during dbAuth setup (#11534) by @Josh-Walker-GM
If you had changed your prettier config to use double quotes instead of the default single quotes then the
yarn rw setup auth dbAuth
would fail. This change fixes that command to work regardless of quote flavour.fix(auth0): avoid use of undefined global in browser environment (#11531) by @Josh-Walker-GM
The Auth0 auth provider was failing in the browser due to trying to access
global
. This change corrects this and fixes Auth0 usage in the browser.🧹 Chore
Click to see all chore contributions
v8.1.0
Compare Source
Changelog
🚧 🚀 Experimental Features
feat(uploads): Add setup command (#11423) by @dac09
Please see #11423 for more details🛠️ Fixes
fix: update community discussion link in output from cli - yarn rw upgrade (#11468) by @jgal1
Please see #11468 for more detailsfix(cli): explicitly set the version so `--version` works (#11461) by @Josh-Walker-GM
Please see #11461 for more detailsfix(jobs): Make deleteSuccessfulJobs configurable (#11459) by @Tobbe
Make the jobs Executor respect the
deleteSuccessfulJobs
config optionfix(linting): Re-enable babel presets during linting of javascript projects (#11458) by @Josh-Walker-GM
The
yarn rw lint
command was failing for JavaScript projects. This change re-enables certain babel plugins to correct this issue and allow this command to succeed again.fix(resolutions): Remove rehackt resolution (#11447) by @Tobbe
The rehackt resolution isn't needed anymore. Apollo Client has updated to rehackt 0.1.0. See https://github.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#3101
Unfortunately this requires our users to manually go and update their resolutions
Updates SDL codegen to handle prettier 3 correctly (#11446) by @orta
Please see #11446 for more details🚧 🛠️ Experimental Fixes
fix(rsc): Don't run the Vite dev server in production (#11425) by @Tobbe
Please see #11425 for more detailsfix(rsa): Use dist filenames when registering server references (#11417) by @Tobbe
Please see #11417 for more details📚 Docs
Correct Note Admonition (#11455) by @pantheredeye
Please see #11455 for more detailsdocs(uploads): Add upload docs (#11398) by @dac09
Please see #11398 for more details📦 Dependencies
Click to see all dependency updates
🧹 Chore
Click to see all chore contributions
🚧 🧹 Experimental Chore
Click to see all chore contributions
v8.0.0
Compare Source
Upgrade Guide
https://redwoodjs.com/upgrade/v8
Changelog
🚨 Breaking
deps(react): 18.3.1 (#10885) by @Tobbe
Please see #10885 for more detailsfix(template): Set scripts/ module resolution to match api/ (#11366) by @Tobbe
Make the module resolution for
scripts/
be more predictable/stable, and match that ofapi/
See also https://github.com/redwoodjs/redwood/pull/11170
fix(tsconfig): set "module" to "ESNext" for web/tsconfig.json (#11368) by @Tobbe
Please see #11368 for more detailsrefactor(forms): Build with esbuild and add conditional exports (#11338) by @Josh-Walker-GM
This change introduces restrictions on what can be imported from the
@redwoodjs/forms
package. You can no longer import from@redwoodjs/forms/dist/...
. All imports should be available simply from@redwoodjs/forms
.refactor(prerender): build with esbuild and introduce conditional exports (#11337) by @Josh-Walker-GM
This change restricts the available imports from the
@redwoodjs/prerender
package. You will also have to use modernmoduleResolution
settings in your tsconfig to resolve the imports correctly within TS.refactor(api): Add conditional exports to package.json (#11307) by @Josh-Walker-GM
This change restricts the available imports from this package. You can no longer freely import from within the dist like
@redwoodjs/api/dist/...
. If you were doing so please consult the@redwoodjs/api
package.json
file to see what exports are now available.fix(internal): Move away from babel for building package (#11304) by @Josh-Walker-GM
Please see #11304 for more detailsfix: Update default tsconfig options (target, module and moduleResolution) (#11170) by @Josh-Walker-GM
This changes the default values of:
in the tsconfig files for both the API and web side. The benefit of this change is increased correctness for build time checking of the imports from packages which specify
exports
in theirpackage.json
files.This change will have a limited effect while Redwood apps are still built to CJS rather than ESM. After that switch to ESM there would be more breaking changes but they are not applied here and are a future concern.
chore: brought in typescript-eslint@v8 with stylistic preset (#10911) by @JoshuaKGoldberg
This change updates Redwood linting config and introduces some changes to the linting rules that are applied to your project.
Specifically:
jsx-a11y/no-noninteractive-element-to-interactive-role
has it's default config updated.@typescript-eslint/explicit-function-return-type
used to be turned off, now it's no longer applied.@typescript-eslint/no-empty-interface
- used to be turned off, now it's no longer applied.@typescript-eslint/explicit-module-boundary-types
- used be turned off, now it's no longer applied.@typescript-eslint/ban-types
- used to be 'warn', now it's no longer applied. This has been replaces with a set of smaller more specific rules.no-empty-function
- used be turned off, now it's no longer applied. The ts-eslint flavour is still there and turned off still.camelcase
- used to be turned off, now it's 'warn'.@typescript-eslint/camelcase
- used to be turned off, now it's no longer applied.no-use-before-define
- used to be turned off, now it's no longer applied.@typescript-eslint/no-use-before-define
- used to be turned off, now it's no longer applied.@typescript-eslint/prefer-namespace-keyword
- used to be turned off, now it's 'error'unicode-bom
- used to be turned off, now it's no longer applied.@typescript-eslint/adjacent-overload-signatures
- used to be 'error', now it's no longer applied.@typescript-eslint/no-explicit-any
- used be 'warn', now 'error'@typescript-eslint/no-inferrable-types
- used to be 'error', now it's no longer applied.no-loss-of-precision
- used be 'off', now 'error'@typescript-eslint/no-loss-of-precision
- used be 'error', now it's no longer applied.@typescript-eslint/no-non-null-assertion
- used be 'warn', now it's no longer applied.valid-typeof
- used be either 'error' or 'off', now always 'error'no-unused-expressions
- used be always 'error', now either 'error' or 'off'@typescript-eslint/prefer-function-type
- newly added as 'off'@typescript-eslint/no-require-imports
- newly added as 'off'@typescript-eslint/no-empty-object-type
- newly added as 'off'unicorn/template-indent
- newly added as 'off'@typescript-eslint/no-duplicate-enum-values
- newly added as 'error'@typescript-eslint/no-unsafe-declaration-merging
- newly added as 'error'@typescript-eslint/no-unsafe-function-type
- newly added as 'error'@typescript-eslint/no-unused-expressions
- newly added as 'error'@typescript-eslint/no-wrapper-object-types
- newly added as 'error'no-new-native-nonconstructor
- newly added as 'off'fix(deps): update typescript-eslint monorepo to v8 (major) (#11235) by @Josh-Walker-GM
Please see #11235 for more detailsfix(api-server): Use createServer in all cases, to make fastify config consistent (#11176) by @dac09
[BREAKING] Removes serverConfig support, in favour of server file to configure your Fastify instance.
You can still customise your server settings by running
yarn rw setup server-file
first. See docs for Server FileThis PR removes all the cases where we use
createFastifyInstance
for the api server, and replaces it withcreateServer
. This makes sure that the API server config is always consistent - whether you use a server file or not.fix(deps): update dependency resend to v3 (#11040) by @Josh-Walker-GM
Please see #11040 for more detailsbreaking: remove webpack (#10867) by @Josh-Walker-GM
This PR removes support for webpack. There are a number of breaking changes associated with removing a core component of previous versions. A list of such changes is:
prebuildWebFile
is function no longer exported from@redwoodjs/babel-config
package@redwoodjs/cli-storybook
has been removedyarn rw build
no longer accepts the--stats
flagyarn rw dev
no longer accepts the--watchNodeModules
flagyarn rw setup custom-web-index
command has been removedyarn rw setup webpack
has been removed@redwoodjs/core
no longer provides@redwoodjs/core/config/*
filesweb.bundler
TOML config option has been removed@redwoodjs/testing
no longer provides storybook config files@redwoodjs/testing
no longer provides aStorybookProvider
webpack
bin has been removed from@redwoodjs/web
You can also find more information on the upgrade guide.
feat(colors): Add more chalk colors. And prepare for chalk upgrade (#10939) by @Tobbe
Add more colors to
@redwoodjs/cli-helpers
.Breaking: No longer exporting
green
as a color. Usetip
orsuccess
instead depending on what you want to convey.
remove(cli): Remove deprecated deploy providers (#10859) by @Josh-Walker-GM
This change removes the deprecated deploy providers edgio and
serverless. Serverless has been restored and is available in v8.chore(codemods): Remove pre v1 related content (#10831) by @Josh-Walker-GM
Please see #10831 for more detailsfix(deps): update dependency firebase-admin to v12 (#10833) by @renovate
This change updates our firebase auth provider to use the v12 major version of the
firebase-admin
package. This will require you to update your own version offirebase-admin
that is listed in your api side package json file.We have noticed no breaking api changes in our limited testing. Please consult the
firebase-admin
upgrade guide if you experience problems after upgrading - especially if you have more extensive or complex use of the firebase suite of products.fix(functions-test): Fix mockHttpEvent for null bodies (#10570) by @Tobbe
With an empty/null payload (which it is by default) the body should be empty, not the string
'null'
This is a breaking change for anyone who was depending on the current "null" behavior in their api function tests. More specifically, if you're NOT passing
body
orpayload
tomockHttpEvent({ ... })
or if you're trying to explicitly setpayload
tonull
you might have to update your tests.feat: Remove `--performance` option from `yarn rw build` (#10453) by @Josh-Walker-GM
This change removes the
--performance
flag from theyarn rw build
command. It will no longer be available to use and the CLI will no longer accept this flag being passed in.Additionally, the associated webpack config (
@redwoodjs/core/config/webpack.perf.js
) has been removed so it can no longer be imported if you were doing so.fix(router): Remove barrel exports from router.tsx (#10464) by @Tobbe
We were using both
index.ts
androuter.tsx
as barrel export files. We should move away from barrel exports at some point, and we definitely don't need two files doing it in the same package. Everything that was exported fromrouter.tsx
is already exported by other files (exceptRouter
itself). So I updated the code to import from there directly instead.This is a breaking change for anyone who does
import ... from '@​redwoodjs/router/dist/router'
in their project. Which hopefully isn't very many.official way of solving it instead of relying on internal implementation
details 🙂
chore(linting): Update versions and avoid `{}` (#10266) by @Josh-Walker-GM
This PR updates the versions of the
eslint
and the@typescript-eslint
packages from v5 to v7.This is a major upgrade of the
@typescript-eslint
package and although we think it is unlikely to introduce a breaking change for you we would recommend that you read the associated documentation. The v6 upgrade can be found here and the v7 one here.fix(navlink): Replace (don't merge) className of active link (#10342) by @Tobbe
We should be replacing className with
activeClassName
for the active link. Currently we try to merge them, but that makes it very difficult for end users to have full control over exactly what classes are applied to active linksFixes https://github.com/redwoodjs/redwood/issues/10296
Before
The
<NavLink>
above would get the following classes if it was the active linkinline-block rounded-t-lg border-b-2 border-transparent p-4 hover:border-gray-300 hover:text-gray-600 dark:hover:text-gray-300 active inline-block rounded-t-lg border-b-2 border-blue-600 p-4 text-blue-600 dark:border-blue-500 dark:text-blue-500
After
That same
<NavLink>
now only gets theactiveClassName
classesactive inline-block rounded-t-lg border-b-2 border-blue-600 p-4 text-blue-600 dark:border-blue-500 dark:text-blue-500
Breaking
If you were relying on the merging behavior you will now have to copy all classes from
className
and also include them inactiveClassName
.So if you had this:
you will now have to change it to:
feat(vite): upgrade to v5 (#10197) by @jtoar
Please see #10197 for more detailsfeat(prettier) upgrade to prettier v3 (#10179) by @jtoar
This PR upgrades Redwood internally to Prettier v3. We believe this won't have any downstream effect for users.
If you have Tailwind CSS configured, can upgrade
prettier-plugin-tailwindcss
to a version later than0.4.1
if you make a few changes:prettier.config.js
toprettier.config.mjs
(js -> mjs)export default
instead ofmodule.exports
await import('...')
any plugins instead ofrequire('...')
Here's an example of an updated
prettier.config.mjs
to work withprettier-plugin-tailwindcss@^0.5.12
: