Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update redwood monorepo to v8 (major) #64

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jan 30, 2023

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@redwoodjs/api (source) 4.1.4 -> 8.2.0 age adoption passing confidence
@redwoodjs/api (source) ^4.0.0-canary.227 -> ^8.0.0 age adoption passing confidence
@redwoodjs/api (source) 3.4.0 -> 8.2.0 age adoption passing confidence
@redwoodjs/auth (source) 4.0.0-canary.227+80b207b88 -> 8.2.0 age adoption passing confidence
@redwoodjs/core (source) 4.1.4 -> 8.2.0 age adoption passing confidence
@redwoodjs/core (source) ^4.0.0-canary.227 -> ^8.0.0 age adoption passing confidence
@redwoodjs/core (source) 3.4.0 -> 8.2.0 age adoption passing confidence
@redwoodjs/core (source) 3.2.1 -> 8.2.0 age adoption passing confidence
@redwoodjs/forms (source) 4.1.4 -> 8.2.0 age adoption passing confidence
@redwoodjs/forms (source) ^4.0.0-canary.227 -> ^8.0.0 age adoption passing confidence
@redwoodjs/forms (source) 3.4.0 -> 8.2.0 age adoption passing confidence
@redwoodjs/graphql-server (source) 4.1.4 -> 8.2.0 age adoption passing confidence
@redwoodjs/graphql-server (source) ^4.0.0-canary.227 -> ^8.0.0 age adoption passing confidence
@redwoodjs/graphql-server (source) 3.4.0 -> 8.2.0 age adoption passing confidence
@redwoodjs/router (source) 4.1.4 -> 8.2.0 age adoption passing confidence
@redwoodjs/router (source) ^4.0.0-canary.227 -> ^8.0.0 age adoption passing confidence
@redwoodjs/router (source) 3.4.0 -> 8.2.0 age adoption passing confidence
@redwoodjs/web (source) 4.1.4 -> 8.2.0 age adoption passing confidence
@redwoodjs/web (source) ^4.0.0-canary.227 -> ^8.0.0 age adoption passing confidence
@redwoodjs/web (source) 3.4.0 -> 8.2.0 age adoption passing confidence

Release Notes

redwoodjs/redwood (@​redwoodjs/api)

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 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
  • fix(deps): update dependency vite to v5.4.5 (#​11556) by @​renovate
  • fix(deps): update dependency @​types/jest to v29.5.13 (#​11554) by @​renovate
  • fix(deps): update dependency unplugin-auto-import to v0.18.3 (#​11555) by @​renovate
  • fix(deps): update dependency @​swc/core to v1.7.26 (#​11553) by @​renovate
  • fix(deps): update dependency eslint-plugin-react to v7.36.1 (#​11550) by @​renovate
  • fix(deps): update dependency firebase-admin to v12.5.0 (#​11551) by @​renovate
  • fix(deps): update dependency envinfo to v7.14.0 (#​11549) by @​renovate
  • fix(deps): update dependency express to v4.21.0 (#​11548) by @​renovate
  • fix(deps): update dependency express to v4.20.0 (#​11525) by @​renovate
🧹 Chore
Click to see all chore contributions
  • Add note to error message about running `yarn rw dev` or `yarn rw build` before the workers can be started (#​11573) by @​cannikin
  • chore(kitchen-sink): Fix css for page width (#​11570) by @​Tobbe
  • chore(deps): update chore (#​11561) by @​renovate
  • chore(deps): update dependency tsx to v4.19.1 (#​11559) by @​renovate
  • chore(deps): update dependency eslint-plugin-perfectionist to v3.6.0 (#​11562) by @​renovate
  • chore(deps): update dependency tsx to v4.19.1 (#​11560) by @​renovate
  • chore(fixture): update deps (#​11552) by @​Josh-Walker-GM
  • chore(rsc): Don't pass any props to the user's Routes (#​11539) by @​Tobbe
  • chore(deps): bump dset from 3.1.2 to 3.1.4 (#​11535) by @​dependabot
  • chore(deps): bump express from 4.19.2 to 4.20.0 in /docs (#​11530) by @​dependabot
  • chore(rsc): Remove RSC-specific logic from our babel config (#​11528) by @​Tobbe
🚧 🧹 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

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
  • chore(crwa): transform lint ignore line as part of ts-to-js (#​11538) by @​Josh-Walker-GM

v8.1.0

Compare Source

Changelog
🚀 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
  • chore(ci): Temporarily disable 'check:package' step (#​11520) by @​Josh-Walker-GM
  • chore(deps): update dependency @​arethetypeswrong/cli to v0.16.2 (#​11502) by @​renovate
  • chore(deps): update dependency @​actions/glob to v0.5.0 (#​11501) by @​renovate
  • chore(deps): update dependency tsx to v4.19.0 (#​11511) by @​renovate
  • chore(deps): update dependency @​types/vscode to v1.93.0 (#​11505) by @​renovate
  • chore(deps): update chore (#​11500) by @​renovate
  • chore(deps): update dependency eslint-plugin-perfectionist to v3.5.0 (#​11506) by @​renovate
  • chore(deps): update dependency ora to v8.1.0 (#​11509) by @​renovate
  • chore(deps): update dependency tsx to v4.19.0 (#​11512) by @​renovate
  • chore(deps): update dependency knip to v5.30.1 (#​11507) by @​renovate
  • chore(deps): update dependency rollup to v4.21.2 (#​11510) by @​renovate
  • chore(deps): update dependency typescript to v5.6.2 (#​11514) by @​renovate
  • chore(deps): update eslint monorepo to v9.10.0 (#​11515) by @​renovate
  • fix(deps): update dependency prism-react-renderer to v2.4.0 (#​11516) by @​renovate
  • chore(deps): update ossf/scorecard-action action to v2.4.0 (#​11485) by @​renovate
  • chore(auth-providers): switch firebase web to esbuild (#​11467) by @​Josh-Walker-GM
  • chore(auth-providers): switch firebase-web to vitest (#​11466) by @​Josh-Walker-GM
  • chore(ci): Fix snapshots after CLI update (#​11462) by @​Josh-Walker-GM
  • chore(ci): fix type tests running in ci (#​11460) by @​Josh-Walker-GM
  • chore(ci): Revert scorecard related action bump (#​11456) by @​Josh-Walker-GM
  • chore: fix ending newline in package.json (#​11454) by @​Josh-Walker-GM
  • chore(rsc): Refactor: Split rscWorker into worker and renderer (#​11452) by @​Tobbe
  • chore(rsc): Random changes, mostly to comments etc, in prep for removing the worker (#​11451) by @​Tobbe
  • chore(storage): Add type tests & extra tests for savers and result extension (#​11416) by @​dac09
  • chore(deps): update dependency jsdom to v24.1.3 (#​11438) by @​renovate
  • chore(deps): update dependency @​playwright/test to v1.47.0 (#​11433) by @​renovate
  • chore(deps): update dependency @​types/eslint to v8.56.12 (#​11435) by @​renovate
  • chore(deps): update eslint monorepo to v9.9.1 (#​11441) by @​renovate
  • chore(deps): update actions/upload-artifact digest (#​11442) by @​renovate
  • chore(deps): update dependency prettier-plugin-packagejson to v2.5.2 (#​11440) by @​renovate
  • chore(deps): update mheap/github-action-required-labels digest to d25134c (#​11443) by @​renovate
  • chore(deps): update dependency prettier-plugin-packagejson to v2.5.2 (#​11439) by @​renovate
  • chore(deps): update actions/checkout action to v4.1.7 (#​11444) by @​renovate
  • chore(rsc): Remove unused methods in the worker (#​11431) by @​Tobbe
  • chore(publishing): Fix canary publishing for next branch (#​11429) by @​Josh-Walker-GM
  • chore(changesets): Delete old ones post v8 release (#​11428) by @​Josh-Walker-GM
  • chore(test-project): Update to postcss 8.4.45 (#​11424) by @​Tobbe
  • chore(docs): Compress v7 versions into v7.x (#​11422) by @​Josh-Walker-GM
🚧 🧹 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

Compare Source

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 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 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 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://github.com/redwoodjs/redwood/issues/10296

Before
<NavLink
  to={routes.air()}
  className="inline-block rounded-t-lg border-b-2 border-transparent p-4 hover:border-gray-300 hover:text-gray-600 dark:hover:text-gray-300"
  activeClassName="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"
>
  Air
</NavLink>

The <NavLink> above would get the following classes if it was the active link
inline-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 the activeClassName classes 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

Breaking

If you were relying on the merging behavior you will now have to copy all classes from className and also include them in activeClassName.
So if you had this:

<NavLink
  to={routes.home()}
  className="border-b-2"
  activeClassName="text-red-200"
>
  Air
</NavLink>

you will now have to change it to:

<NavLink
  to={routes.home()}
  className="border-b-2"
  activeClassName="border-b-2 text-red-200"
>
  Air
</NavLink>
feat(vite): upgrade to v5 (#​10197) by @​jtoar Please see #​10197 for more details
feat(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 than 0.4.1 if you make a few changes:

  • Change prettier.config.js to prettier.config.mjs (js -> mjs)
  • export default instead of module.exports
  • await import('...') any plugins instead of require('...')

Here's an example of an updated prettier.config.mjs to work with prettier-plugin-tailwindcss@^0.5.12:

// prettier.config.mjs

export default {
  trailingComma: "es5",
  bracketSpacing: true,
  tabWidth: 2,
  semi: false,
  singleQuote: true,
  arrowParens: "always",
  overrides: [
    {
      files: "Routes.*",
      options: {
        printWidth: 999,
      },
    },
  ],
  tailwindConfig: "./web/config/tailwind.config.js",
  plugins: [await import("prettier-plugin-tailwindcss")],
};
RSC: createServerCell (#​9987) by @​Tobbe Please see #​9987 for more details
🚀 Features
feat(uploads): Increase default fastify body limit to 100MB (#​11412) by @​dac09

Increases the default limit for receiving requests to 100MB (instead of 15MB). This number is arbitrary really, but it is the TOTAL size of the request, not of each file being uploaded.

The user can override this in their server file.

// api/server.js
const server = await createServer({
  logger,
  fastifyServerOptions: {
    bodyLimit: 1048576 * 2, // 2 MiB
  },
});
feat(rsc): Initial support for RSA rerender (#​11406) by @​Tobbe

This PR makes it so that the entire page is re-rendered when a React Server Action returns.
Previously when calling an RSA you'd only get the result of the action back.
Now, when calling an RSA you'll still get the result back, and in addition to that the page will update.
What this means is that if you for example update a counter on the server that a server component is displaying that counter will now immediately update.
Also, if some data has been updated by something external to the app the new data will be displayed (like if someone used an external CMS to update some .md file you're rendering)

feat(storage): Add support for createMany, updateMany and upsert (#​11390) by @​dac09

Extends the uploads Prisma client extension with the following:

  1. createMany: support for bulk creation with automatic cleanup of uploaded files if the operation fails.

  2. updateMany: bulk update functionality that manages file uploads across multiple records, including removal of old files after successful updates.

  3. upsert: determining whether it's an insert or update and managing file uploads accordingly - delete files on creation fail, and replace files on update

feat(uploads): Create uploads package with prisma extension and upload processors (#​11263) by @​dac09 Please see #​11263 for more details
template(db): Update `api/src/lib/db` template (#​11379) by @​dac09

Updates the template in api/src/lib/db.{js,ts} to export db differently.

In your existing projects, you can make the following changes:

import { PrismaClient } from '@&#8203;prisma/client'

import { emitLogLevels, handlePrismaLogging } from '@&#8203;redwoodjs/api/logger'

import { logger } from './logger'
import { prismaExtension } from './uploads'

- export const db = new PrismaClient({
+ const prismaClient = new PrismaClient({
  log: emitLogLevels(['info', 'warn', 'error']),
})

handlePrismaLogging({
- db
+ db: prismaClient,
  logger,
  logLevels: ['info', 'warn', 'error'],
})

+ export const db = prismaClient
feat(uploads): Add File scalar to rootSchema (#​11378) by @​dac09

Adds File scalar to rootSchema, to enable parsing fields set to File as a https://developer.mozilla.org/en-US/docs/Web/API/File

The parsing and scalar is actually built in to GraphQL Yoga, this change just enables it by default instead of having to add scalar File to one or more of your SDLs.

RCS: Basic support for 'use server' inside components (#​11376) by @​Tobbe Please see #​11376 for more details
feat(jobs): Expose types (#​11369) by @​Tobbe Please see #​11369 for more details
Adds a "highlight" color option (#​11345) by @​cannikin Please see #​11345 for more details
Adds background job scheduling and execution (#​11238) by @​cannikin

This new package provides scheduling and processing of background jobs. We want everything needed to run a modern web application to be included in Redwood itself—you shouldn't need any third party integrations if you don't want.

Background jobs have been sorely missed, but the time has come! (If you do want to use a third party service we have had an integration with Inngest since May of 2023!)

Features
  • Named queues: you can schedule jobs in separate named queues and have a different number of workers monitoring each one—makes it much easier to scale your background processing
  • Priority: give your jobs a priority from 1 (highest) to 100 (lowest). Workers will sort available jobs by priority, working the most important ones first.
  • Configurable delay: run your job as soon as possible (default), wait a number of seconds before running, or run at a specific time in the future
  • Auto-retries with backoff: if your job fails it will back off at the rate of attempts ** 4 for a default of 24 tries, the time between the last two attempts is a little over three days.
  • Run inline: instead of scheduling to run in the background, run immediately
  • Integrates with Redwood's logger: use your existing one in api/src/lib/logger or create a new one just for job logging
feat(uploads): Configure apollo client to do multi-part form uploads (#​11175) by @​dac09

a) Configures the Apollo client we export to use upload link - https://github.com/jaydenseric/apollo-upload-client
b) Configures our API side fastify server to accept multipart form data

Notes:

  1. apollo-upload-client is ESM only. In order to get this working for prerender, I had to bundle it for CJS version only.
    Without this change you get errors during prerender like this:
Error [ERR_REQUIRE_ESM]: require() of ES Module /Users/dac09/Experiments/apollo-upload-link/node_modules/apollo-upload-client/createUploadLink.mjs not supported.
  1. Currently the multi-part config only applies when you have a server file (see separate PR with fix: https://github.com/redwoodjs/redwood/pull/11176)

  2. The upload link internally will handle whether to do a regular POST or multipart POST. In order to make use of this on the backend you need to set your graphql schema field to a scalar of File

feat(context): Build and publish package as dual esm/cjs (#​11294) by @​Josh-Walker-GM Please see #​11294 for more details
feat(exec): Add --silent to silence all RW output (#​11278) by @​Tobbe

Run with --silent (or -s) to not have the framework itself print anything to
your console. Only console logs you have yourself in the script, or any files
the script includes, will come through.

If you're using Prisma you might want to tweak Prisma's logging (in
api/lib/db.ts) and turn off "info" logging, depending on your goals.

feat(rsc): Register top-level function-scoped RSAs (#​11255) by @​Tobbe Please see #​11255 for more details
feat(rsc): Detect single RSA functions (not just entire files) (#​11168) by @​Tobbe Please see #​11168 for more details
feature(studio): Make studioHandler install Studio v12 (#​11131) by @​Tobbe

Makes sure you get the latest version of Redwood Studio the first time you run
yarn rw studio

feat(rsc): rsc-cache-read (#​11127) by @​Tobbe Please see #​11127 for more details
RSC cache control (#​11126) by @​Tobbe Please see #​11126 for more details
feat(crwrsca): Add support for --template (#​11123) by @​Tobbe Please see #​11123 for more details
feat(storybook): switch command for storybook vite (#​11069) by @​Josh-Walker-GM

This change moves the vite based storybook to the standard storybook command. Essentially making it the default storybook command.

Introduce RSC "live reload." (#​10932) by @​peterp Please see #​10932 for more details
feat(cli): Move docker setup out of experimental (#​11072) by @​Josh-Walker-GM

This cha


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@netlify
Copy link

netlify bot commented Jan 30, 2023

Deploy Preview for rw-office-hours-og-images failed. Why did it fail? →

Name Link
🔨 Latest commit d7b5f02
🔍 Latest deploy log https://app.netlify.com/sites/rw-office-hours-og-images/deploys/66e8d64f5ac8090008ded5f8

@netlify
Copy link

netlify bot commented Jan 30, 2023

Deploy Preview for rw-office-hours-rest-directive failed. Why did it fail? →

Name Link
🔨 Latest commit d7b5f02
🔍 Latest deploy log https://app.netlify.com/sites/rw-office-hours-rest-directive/deploys/66e8d64fd7b5530008234c44

@netlify
Copy link

netlify bot commented Jan 30, 2023

Deploy Preview for rw-office-hours-enum-select-list failed. Why did it fail? →

Name Link
🔨 Latest commit d7b5f02
🔍 Latest deploy log https://app.netlify.com/sites/rw-office-hours-enum-select-list/deploys/66e8d64fc79e870007727cc5

@netlify
Copy link

netlify bot commented Jan 30, 2023

Deploy Preview for rw-office-hours-custom-auth failed. Why did it fail? →

Name Link
🔨 Latest commit d7b5f02
🔍 Latest deploy log https://app.netlify.com/sites/rw-office-hours-custom-auth/deploys/66e8d64f4f04e60008950371

@netlify
Copy link

netlify bot commented Jan 30, 2023

Deploy Preview for rw-office-hours-algolia-autocomplete failed. Why did it fail? →

Name Link
🔨 Latest commit d7b5f02
🔍 Latest deploy log https://app.netlify.com/sites/rw-office-hours-algolia-autocomplete/deploys/66e8d64f6eca72000813b802

@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch 2 times, most recently from 8798b08 to a5724d2 Compare February 23, 2023 00:38
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch 2 times, most recently from 4ac2e0e to ba0168e Compare March 1, 2023 19:39
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch 2 times, most recently from 79a9aa4 to 7b7130c Compare March 9, 2023 20:40
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch 4 times, most recently from 63d83e4 to c3346f7 Compare March 25, 2023 02:21
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch from c3346f7 to d698615 Compare April 2, 2023 05:01
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch from d698615 to eeb577f Compare April 11, 2023 07:03
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch from eeb577f to 5fae91b Compare May 28, 2023 11:05
@renovate renovate bot changed the title Update redwood monorepo to v4 (major) Update redwood monorepo to v5 (major) May 28, 2023
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch 2 times, most recently from d4e989a to ab0868f Compare June 6, 2023 23:43
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch 2 times, most recently from 169f27f to 294065e Compare June 23, 2023 04:29
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch 3 times, most recently from 688b90f to c913317 Compare July 1, 2023 07:53
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch from c913317 to f98f5bd Compare July 9, 2023 10:37
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch from f98f5bd to 6621c98 Compare July 28, 2023 01:45
@renovate renovate bot changed the title Update redwood monorepo to v5 (major) Update redwood monorepo to v6 (major) Jul 28, 2023
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch from 6621c98 to d395d1b Compare July 28, 2023 07:18
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch 2 times, most recently from 7f33edd to 8556649 Compare March 12, 2024 17:56
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch 3 times, most recently from aeacfb9 to b7af679 Compare March 29, 2024 10:02
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch 4 times, most recently from 443dc41 to b180b34 Compare April 13, 2024 20:31
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch 2 times, most recently from 8ba18f7 to 97401e8 Compare April 23, 2024 17:04
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch 2 times, most recently from c9ab4a6 to 2942e5b Compare May 8, 2024 18:15
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch from 2942e5b to 386ab70 Compare May 15, 2024 18:04
Copy link
Contributor Author

renovate bot commented May 15, 2024

⚠️ Artifact update problem

Renovate failed to update artifacts related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: 2022-11-13-custom-md5-auth/yarn.lock
/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22095
  const isURL = URL.canParse(range);
                    ^

TypeError: URL.canParse is not a function
    at parseSpec (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22095:21)
    at loadSpec (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22158:11)
    at async Engine.findProjectSpec (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22348:22)
    at async Engine.executePackageManagerRequest (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22404:24)
    at async Object.runMain (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:23096:5)

File name: 2022-11-02-og-image-demo/yarn.lock
/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22095
  const isURL = URL.canParse(range);
                    ^

TypeError: URL.canParse is not a function
    at parseSpec (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22095:21)
    at loadSpec (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22158:11)
    at async Engine.findProjectSpec (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22348:22)
    at async Engine.executePackageManagerRequest (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22404:24)
    at async Object.runMain (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:23096:5)

File name: 2022-10-26-nested-writes-demo/yarn.lock
/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22095
  const isURL = URL.canParse(range);
                    ^

TypeError: URL.canParse is not a function
    at parseSpec (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22095:21)
    at loadSpec (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22158:11)
    at async Engine.findProjectSpec (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22348:22)
    at async Engine.executePackageManagerRequest (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22404:24)
    at async Object.runMain (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:23096:5)

File name: 2022-10-19-snaplet-copycat-seeds/yarn.lock
/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22095
  const isURL = URL.canParse(range);
                    ^

TypeError: URL.canParse is not a function
    at parseSpec (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22095:21)
    at loadSpec (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22158:11)
    at async Engine.findProjectSpec (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22348:22)
    at async Engine.executePackageManagerRequest (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22404:24)
    at async Object.runMain (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:23096:5)

File name: 2022-10-12-algolia-autocomplete/yarn.lock
/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22095
  const isURL = URL.canParse(range);
                    ^

TypeError: URL.canParse is not a function
    at parseSpec (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22095:21)
    at loadSpec (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22158:11)
    at async Engine.findProjectSpec (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22348:22)
    at async Engine.executePackageManagerRequest (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22404:24)
    at async Object.runMain (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:23096:5)

File name: 2022-10-05-enum-select-options/yarn.lock
/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22095
  const isURL = URL.canParse(range);
                    ^

TypeError: URL.canParse is not a function
    at parseSpec (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22095:21)
    at loadSpec (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22158:11)
    at async Engine.findProjectSpec (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22348:22)
    at async Engine.executePackageManagerRequest (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22404:24)
    at async Object.runMain (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:23096:5)

File name: 2022-09-28-rest-directive/yarn.lock
/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22095
  const isURL = URL.canParse(range);
                    ^

TypeError: URL.canParse is not a function
    at parseSpec (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22095:21)
    at loadSpec (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22158:11)
    at async Engine.findProjectSpec (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22348:22)
    at async Engine.executePackageManagerRequest (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:22404:24)
    at async Object.runMain (/opt/containerbase/tools/corepack/0.29.4/16.20.2/node_modules/corepack/dist/lib/corepack.cjs:23096:5)

@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch 3 times, most recently from c896c3e to bf04b46 Compare May 22, 2024 22:45
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch from bf04b46 to 350a151 Compare June 3, 2024 20:13
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch from 350a151 to fa3b194 Compare June 17, 2024 16:54
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch from fa3b194 to 014281f Compare June 28, 2024 14:16
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch from 014281f to 78ff454 Compare July 11, 2024 00:58
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch 2 times, most recently from 228d595 to 055e22e Compare August 9, 2024 21:39
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch from 055e22e to f6f9251 Compare September 4, 2024 01:40
@renovate renovate bot changed the title Update redwood monorepo to v7 (major) Update redwood monorepo to v8 (major) Sep 4, 2024
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch 2 times, most recently from dec9827 to f58ddb0 Compare September 12, 2024 04:29
@renovate renovate bot force-pushed the renovate/major-redwood-monorepo branch from f58ddb0 to d7b5f02 Compare September 17, 2024 01:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants