Skip to content

Releases: redwoodjs/redwood

v8.4.0

09 Oct 13:08
c608868
Compare
Choose a tag to compare

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 to
make 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 option
freeSpaceRequired to however many MB you want.

You can skip this step by passing --no-df to the deploy baremetal command or
setting freeSpaceRequired to 0.

🛠️ Fixes

fix(jobs): merge job options to prevent 'undefined' values in place of defaults (#11666) by @Josh-Walker-GM Please see #11666 for more details
fix(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 the BackgroundJobs 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 in createWorker 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 the
type will be something like FindPostById, i.e. the first type that is passed
to CellSuccessProps (instead of just being any).

fix(crwa): Better handling of installing to . (#11645) by @Tobbe

When installing to cwd:

  • Print "the current directory" instead of "."
  • Skip the output of cd (which would move you to your home directory, which
    most likely is not what you want)

📚 Docs

docs(deploy): fix grove command (#11689) by @Josh-Walker-GM Please see #11689 for more details
docs: fix versioned docs (#11643) by @Josh-Walker-GM Please see #11643 for more details
Removed 'Azure' as deploy provider mention' (#11116) by @pantheredeye Please see #11116 for more details
Fix email link in tutorial (#11636) by @cannikin Please see #11636 for more details
Update 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(deps): update babel monorepo to v7.25.7 (#11682) by @renovate
  • chore(deps): update dependency firebase to v10.14.0 (#11680) by @renovate
  • fix(deps): update dependency firebase-admin to v12.6.0 (#11681) by @renovate
  • fix(deps): update dependency @types/node to v20.16.11 (#11679) by @renovate
  • fix(deps): update dependency @joshwooding/vite-plugin-react-docgen-typescript to v0.4.1 (#11675) by @renovate
  • fix(deps): update dependency @vitejs/plugin-react to v4.3.2 (#11673) by @renovate
  • chore(deps): update dependency node to v20.18.0 (#11669) by @renovate
  • fix(deps): update dependency @faire/mjml-react to v3.4.0 (#11672) by @renovate
  • fix(deps): update dependency cookie to v0.7.2 (#11670) by @renovate
  • chore(deps): bump cookie from 0.7.0 to 0.7.1 (#11665) by @dependabot
  • fix(deps): update dependency cookie to v0.7.0 [security] (#11661) by @renovate
  • fix(deps): update dependency http-proxy-middleware to v3.0.3 (#11657) by @renovate
  • fix(deps): update dependency vite to v5.4.8 (#11658) by @renovate

🧹 Chore

Click to see all chore contributions

🚧 🧹 Experimental Chore

Click to see all chore contributions
  • chore(rsc): Extract importRsdwServer() and move type assertions to utils (#11688) by @Tobbe
  • chore(rsc): Fix console log and add todo (#11685) by @Tobbe
  • chore(rsc): Fix TODO and simplify SSR code (#11650) by @Tobbe
  • chore(rsc): Rename renderRoutesFromDist to renderRoutesSsr (#11647) by @Tobbe
  • chore(rsc): Make Router-related imports safer for RSC (#11644) by @Tobbe
  • chore(rsc): Remove unused node-loader (#11642) by @Tobbe
  • chore(rsc): Refactor: Extract rscFetch and rsaFetch (#11582) by @Tobbe

v8.3.0

25 Sep 01:23
b6e6805
Compare
Choose a tag to compare

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 with yarn rw dev. Previously there may have been issues like unescaped spaces in paths which would have produced errors like:

api | node:events:497
api |       throw er; // Unhandled 'error' event
api |       ^
api |
api | Error: spawn space.js --enable-source-maps ENOENT
api |     at ChildProcess._handle.onexit (node:internal/child_process:286:19)
api |     at onErrorNT (node:internal/child_process:484:16)
api |     at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
api | Emitted 'error' event on ChildProcess instance at:
api |     at ChildProcess._handle.onexit (node:internal/child_process:292:12)
api |     at onErrorNT (node:internal/child_process:484:16)
api |     at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
api |   errno: -2,
api |   code: 'ENOENT',
api |   syscall: 'spawn space.js --enable-source-maps',
api |   path: 'space.js --enable-source-maps',
api |   spawnargs: [
api |     'yarn',
api |     'nodemon',
api |     '--quiet',
api |     '--watch',
api |     '/Users/jgmw/Development/redwood/rw-test/node_options_fix/redwood.toml',
api |     '--exec',
api |     'yarn rw-api-server-watch       --port 8911       --debug-port 18911       | rw-log-formatter'
api |   ]
api | }
api |
api | Node.js v20.17.0

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 and UserCredential models to some other name, such as Account and AccountCredential then dbAuth would have failed with an error something like:

{
  "error": "this.dbCredentialAccessor.findFirst(...).user is not a function"
}

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:

model UserCredential {
  id         String @id // <-- Note the index!
  ...
}
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:

3:49:51 PM [vite] Internal server error: Transform failed with 1 error:
…/web/src/auth.ts:2:9: ERROR: Expected identifier but found ","
  Plugin: vite:esbuild
  File: …/web/src/auth.ts:3:6

  Expected identifier but found ","
  1  |  import { createAuthentication as createAuth } from '@redwoodjs/testing/dist/web/mockAuth.js'
  2  |  import { , createDbAuthClient } from '@redwoodjs/auth-dbauth-web';
     |           ^
  3  |  const dbAuthClient = createDbAuthClient();
  4  |  export const {

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 own File 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 the Graphql docs here

Default NODE_ENV to "development" if it's `undefined` when starting jobs worker (#11572) by @cannikin

This mimics the behavior of yarn rw dev where NODE_ENV will equal development 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 details
fix(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
  • chore(rsc): Simplify RscRoutes by removing external promise (#11574) by @Tobbe

v8.2.0

16 Sep 23:36
3187ee8
Compare
Choose a tag to compare

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 and buttonTo 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 details
fix(crwrsca): Spawn in shell on Windows (#11565) by @Tobbe Please see #11565 for more details
fix(crwa): silence telemetry errors (#11557) by @Josh-Walker-GM Please see #11557 for more details
fix(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 details
docs(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 details
docs(how-to): Fix example in dbauth-passworless docs (#11567) by @Tobbe Please see #11567 for more details
Docs: Use Redwood's hashPassword() for loginToken hashing in the password-less dbAuth flow (#11566) by @antonmoiseev Please see #11566 for more details
Replace MetaTags with Metadata component (#11564) by @antonmoiseev Please see #11564 for more details
docs(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
  • chore(rsc): Remove client.ts and clean-up outdated tests (#11527) by @Tobbe
  • chore(rsc): Unify RSC and RSA cache structure (#11521) by @Tobbe
  • chore(rsc/rsa): Use "model" naming (#11522) by @Tobbe

v8.1.1

12 Sep 02:19
e0a1e7d
Compare
Choose a tag to compare

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

10 Sep 13:34
8603343
Compare
Choose a tag to compare

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 details
fix(cli): explicitly set the version so `--version` works (#11461) by @Josh-Walker-GM Please see #11461 for more details
fix(jobs): Make deleteSuccessfulJobs configurable (#11459) by @Tobbe

Make the jobs Executor respect the deleteSuccessfulJobs config option

fix(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 details
fix(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 details
docs(uploads): Add upload docs (#11398) by @dac09 Please see #11398 for more details

📦 Dependencies

Click to see all dependency updates
  • chore(deps): update dependency typescript to v5.6.2 (#11513) by @renovate
  • fix(deps): update typescript-eslint monorepo to v8.5.0 (#11517) by @renovate
  • chore(deps): update babel monorepo (#11499) by @renovate
  • fix(deps): update dependency @graphql-yoga/plugin-persisted-operations to v3.7.0 (#11489) by @renovate
  • fix(deps): update dependency core-js to v3.38.1 (#11497) by @renovate
  • fix(deps): update dependency @graphql-yoga/plugin-defer-stream to v3.7.0 (#11487) by @renovate
  • chore(deps): update dependency @supabase/ssr to v0.5.1 (#11503) by @renovate
  • fix(deps): update dependency graphql-yoga to v5.7.0 (#11493) by @renovate
  • chore(deps): update dependency @testing-library/jest-dom to v6.5.0 (#11504) by @renovate
  • fix(deps): update dependency @graphql-yoga/plugin-graphql-sse to v3.7.0 (#11488) by @renovate
  • fix(deps): update dependency eslint-plugin-import to v2.30.0 (#11490) by @renovate
  • fix(deps): update graphql-tools monorepo (#11498) by @renovate
  • chore(deps): update dependency node to v20.17.0 (#11508) by @renovate
  • fix(deps): update dependency firebase-admin to v12.4.0 (#11492) by @renovate
  • fix(deps): update dependency eslint-plugin-jsx-a11y to v6.10.0 (#11491) by @renovate
  • fix(deps): update dependency react-hook-form to v7.53.0 (#11495) by @renovate
  • fix(deps): update dependency type-fest to v4.26.1 (#11496) by @renovate
  • chore(deps): update prisma monorepo to v5.19.1 (#11486) by @renovate
  • fix(deps): update dependency @whatwg-node/server to v0.9.49 (#11484) by @renovate
  • fix(deps): update dependency pino to v9.4.0 (#11494) by @renovate
  • fix(deps): update dependency vite to v5.4.3 (#11477) by @renovate
  • fix(deps): update dependency @envelop/on-resolve to v4.1.1 (#11480) by @renovate
  • fix(deps): update dependency @types/aws-lambda to v8.10.145 (#11482) by @renovate
  • fix(deps): update dependency @swc/core to v1.7.24 (#11481) by @renovate
  • fix(deps): update dependency @whatwg-node/fetch to v0.9.21 (#11483) by @renovate
  • fix(deps): update dependency msw to v1.3.4 (#11474) by @renovate
  • fix(deps): update dependency vite-plugin-cjs-interop to v2.1.3 (#11478) by @renovate
  • fix(deps): update dependency systeminformation to v5.23.5 (#11476) by @renovate
  • fix(deps): update dependency isbot to v5.1.17 (#11472) by @renovate
  • fix(deps): update dependency nodemailer to v6.9.15 (#11475) by @renovate
  • fix(deps): update dependency lru-cache to v11.0.1 (#11473) by @renovate
  • fix(deps): update dependency eslint-plugin-react to v7.35.2 (#11470) by @renovate
  • fix(deps): update dependency http-proxy-middleware to v3.0.2 (#11471) by @renovate
  • chore(deps): update dependency firebase to v10.13.1 (#11437) by @renovate
  • chore(deps): update dependency @supabase/supabase-js to v2.45.3 (#11434) by @renovate
  • chore(deps): update dependency @envelop/core to v5.0.2 (#11432) by @renovate
  • chore(deps): update dependency esbuild to v0.23.1 (#11436) by @renovate

🧹 Chore

Click to see all chore contributions

🚧 🧹 Experimental Chore

Click to see all chore contributions
  • chore(rsc): Remove Node RSC worker (#11449) by @Tobbe
  • chore(rsc): Fix executeRsa comments (#11453) by @Tobbe
  • chore(rsc): Switch to web streams instead of using node streams (#11445) by @Tobbe
  • chore(rsc): Simplify worker by not using vite config (#11430) by @Tobbe

v8.0.0

04 Sep 01:31
0599b32
Compare
Choose a tag to compare

Upgrade Guide

https://redwoodjs.com/upgrade/v8

Changelog

🚨 Breaking

deps(react): 18.3.1 (#10885) by @Tobbe Please see #10885 for more details
fix(template): Set scripts/ module resolution to match api/ (#11366) by @Tobbe

Make the module resolution for scripts/ be more predictable/stable, and match that of api/

See also #11170

fix(tsconfig): set "module" to "ESNext" for web/tsconfig.json (#11368) by @Tobbe Please see #11368 for more details
refactor(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 modern moduleResolution 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 details
fix: Update default tsconfig options (target, module and moduleResolution) (#11170) by @Josh-Walker-GM

This changes the default values of:

  • target
  • module
  • moduleResolution

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 their package.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:

  1. jsx-a11y/no-noninteractive-element-to-interactive-role has it's default config updated.
  2. @typescript-eslint/explicit-function-return-type used to be turned off, now it's no longer applied.
  3. @typescript-eslint/no-empty-interface - used to be turned off, now it's no longer applied.
  4. @typescript-eslint/explicit-module-boundary-types - used be turned off, now it's no longer applied.
  5. @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.
  6. no-empty-function - used be turned off, now it's no longer applied. The ts-eslint flavour is still there and turned off still.
  7. camelcase - used to be turned off, now it's 'warn'.
  8. @typescript-eslint/camelcase - used to be turned off, now it's no longer applied.
  9. no-use-before-define - used to be turned off, now it's no longer applied.
  10. @typescript-eslint/no-use-before-define - used to be turned off, now it's no longer applied.
  11. @typescript-eslint/prefer-namespace-keyword - used to be turned off, now it's 'error'
  12. unicode-bom - used to be turned off, now it's no longer applied.
  13. @typescript-eslint/adjacent-overload-signatures - used to be 'error', now it's no longer applied.
  14. @typescript-eslint/no-explicit-any - used be 'warn', now 'error'
  15. @typescript-eslint/no-inferrable-types - used to be 'error', now it's no longer applied.
  16. no-loss-of-precision - used be 'off', now 'error'
  17. @typescript-eslint/no-loss-of-precision - used be 'error', now it's no longer applied.
  18. @typescript-eslint/no-non-null-assertion - used be 'warn', now it's no longer applied.
  19. valid-typeof - used be either 'error' or 'off', now always 'error'
  20. no-unused-expressions - used be always 'error', now either 'error' or 'off'
  21. @typescript-eslint/prefer-function-type - newly added as 'off'
  22. @typescript-eslint/no-require-imports - newly added as 'off'
  23. @typescript-eslint/no-empty-object-type - newly added as 'off'
  24. unicorn/template-indent - newly added as 'off'
  25. @typescript-eslint/no-duplicate-enum-values - newly added as 'error'
  26. @typescript-eslint/no-unsafe-declaration-merging - newly added as 'error'
  27. @typescript-eslint/no-unsafe-function-type - newly added as 'error'
  28. @typescript-eslint/no-unused-expressions - newly added as 'error'
  29. @typescript-eslint/no-wrapper-object-types - newly added as 'error'
  30. 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 details
fix(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 File

This PR removes all the cases where we use createFastifyInstance for the api server, and replaces it with createServer. 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 details
breaking: 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:

  1. prebuildWebFile is function no longer exported from @redwoodjs/babel-config package
  2. @redwoodjs/cli-storybook has been removed
  3. yarn rw build no longer accepts the --stats flag
  4. yarn rw dev no longer accepts the --watchNodeModules flag
  5. yarn rw setup custom-web-index command has been removed
  6. yarn rw setup webpack has been removed
  7. @redwoodjs/core no longer provides @redwoodjs/core/config/* files
  8. The web.bundler TOML config option has been removed
  9. @redwoodjs/testing no longer provides storybook config files
  10. @redwoodjs/testing no longer provides a StorybookProvider
  11. The 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. Use tip or success
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 details
fix(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 of firebase-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 or payload to mockHttpEvent({ ... }) or if you're trying to explicitly set payload to null 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 the yarn 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 a...

Read more

v7.7.4

09 Aug 20:08
d6a1bc5
Compare
Choose a tag to compare

Patch Release

  • fix(cli-cache): Remove RW CLI cache on upgrade (#11135) by @dac09

    This change removes the redwood cli plugin cache in .redwood/commandCache.json on running rw upgrade. This prevents the redwood CLI from using outdated versions of CLI plugins, and is particularly important when they same alias.

    Before
    running yarn rw sb -> would use the outdated storybook-cli package, and error out.
    After
    with no commandCache, it'll create a new command cache, and attempt to install the new vite CLI

v8.0.0-rc.x

31 Jul 17:03
86b2bcf
Compare
Choose a tag to compare
v8.0.0-rc.x Pre-release
Pre-release

Upgrade Guide

https://community.redwoodjs.com/t/redwood-v8-0-0-upgrade-guide/

Changelog

🚨 Breaking

deps(react): 18.3.1 (#10885) by @Tobbe Please see #10885 for more details
fix: Update default tsconfig options (target, module and moduleResolution) (#11170) by @Josh-Walker-GM

This changes the default values of:

  • target
  • module
  • moduleResolution

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 their package.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:

  1. jsx-a11y/no-noninteractive-element-to-interactive-role has it's default config updated.
  2. @typescript-eslint/explicit-function-return-type used to be turned off, now it's no longer applied.
  3. @typescript-eslint/no-empty-interface - used to be turned off, now it's no longer applied.
  4. @typescript-eslint/explicit-module-boundary-types - used be turned off, now it's no longer applied.
  5. @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.
  6. no-empty-function - used be turned off, now it's no longer applied. The ts-eslint flavour is still there and turned off still.
  7. camelcase - used to be turned off, now it's 'warn'.
  8. @typescript-eslint/camelcase - used to be turned off, now it's no longer applied.
  9. no-use-before-define - used to be turned off, now it's no longer applied.
  10. @typescript-eslint/no-use-before-define - used to be turned off, now it's no longer applied.
  11. @typescript-eslint/prefer-namespace-keyword - used to be turned off, now it's 'error'
  12. unicode-bom - used to be turned off, now it's no longer applied.
  13. @typescript-eslint/adjacent-overload-signatures - used to be 'error', now it's no longer applied.
  14. @typescript-eslint/no-explicit-any - used be 'warn', now 'error'
  15. @typescript-eslint/no-inferrable-types - used to be 'error', now it's no longer applied.
  16. no-loss-of-precision - used be 'off', now 'error'
  17. @typescript-eslint/no-loss-of-precision - used be 'error', now it's no longer applied.
  18. @typescript-eslint/no-non-null-assertion - used be 'warn', now it's no longer applied.
  19. valid-typeof - used be either 'error' or 'off', now always 'error'
  20. no-unused-expressions - used be always 'error', now either 'error' or 'off'
  21. @typescript-eslint/prefer-function-type - newly added as 'off'
  22. @typescript-eslint/no-require-imports - newly added as 'off'
  23. @typescript-eslint/no-empty-object-type - newly added as 'off'
  24. unicorn/template-indent - newly added as 'off'
  25. @typescript-eslint/no-duplicate-enum-values - newly added as 'error'
  26. @typescript-eslint/no-unsafe-declaration-merging - newly added as 'error'
  27. @typescript-eslint/no-unsafe-function-type - newly added as 'error'
  28. @typescript-eslint/no-unused-expressions - newly added as 'error'
  29. @typescript-eslint/no-wrapper-object-types - newly added as 'error'
  30. 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 details
fix(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 File

This PR removes all the cases where we use createFastifyInstance for the api server, and replaces it with createServer. 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 details
breaking: 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:

  1. prebuildWebFile is function no longer exported from @redwoodjs/babel-config package
  2. @redwoodjs/cli-storybook has been removed
  3. yarn rw build no longer accepts the --stats flag
  4. yarn rw dev no longer accepts the --watchNodeModules flag
  5. yarn rw setup custom-web-index command has been removed
  6. yarn rw setup webpack has been removed
  7. @redwoodjs/core no longer provides @redwoodjs/core/config/* files
  8. The web.bundler TOML config option has been removed
  9. @redwoodjs/testing no longer provides storybook config files
  10. @redwoodjs/testing no longer provides a StorybookProvider
  11. The 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. Use tip or success
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 details
fix(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 of firebase-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 or payload to mockHttpEvent({ ... }) or if you're trying to explicitly set payload to null 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 the yarn 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 and router.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 from router.tsx is already exported by other files (except Router 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.

  • The quick fix is to find the original export and pull from there instead
  • The real fix is to talk to us on the core team and see if we can provide an
    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 links

Fixes https://g...

Read more

v7.7.3

10 Jul 23:49
62509c9
Compare
Choose a tag to compare

Patch Release

  • hotfix(js-setup): Await all transformTSToJS functions (#10930) by @dac09

    This fixes an issue with the CLI for JS projects that caused file generation to fail due to unawaited promises. See #10929 and #10762 for more details.

v7.7.2

28 Jun 14:00
dfb9b83
Compare
Choose a tag to compare

Patch Release

  • fix(prerender): Fold output to prevent crashing on large prerender counts (#10888) by @Josh-Walker-GM

    This change alters the CLI output during prerendering to prevent crashes when prerendering a large number (>100,000) of routes.

  • fix(tw): settings key should be "tailwindCSS.classAttributes" (#10881) by @Tobbe

    Fixes the VSCode settings for our TailwindCSS setup.

  • fix(cli): Add check for excessively long route (#10830) by @Josh-Walker-GM

    This change adds an additional internal check to protect against route definitions which are preposterously long.

  • docs(directives): Removes outdated mockAsyncRedwoodDirective and explains how to test async directives (#10827) by @dthyresson

    This change removes mockAsyncRedwoodDirective from documentation and properly show how to test async directives using resolves and rejects. Fixing #10812.

  • fix(auth): Allows RedwoodAuthCurrentUserQuery when using Auth, GraphQL and Trusted Documents (#10817) by @dthyresson

    This PR allows authentication to function as expected when using Trusted Documents. For more information please see issue #10816.