Skip to content

Commit d130c94

Browse files
Update CHANGELOG with detailed migration instructions for breaking changes in version 15.0.0 (#1759)
* Update CHANGELOG with detailed migration instructions for breaking changes in version 15.0.0 * Replace performance comparison link with an image in release notes for version 15.0.0
1 parent 301e9c8 commit d130c94

File tree

3 files changed

+39
-10
lines changed

3 files changed

+39
-10
lines changed

CHANGELOG.md

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,35 @@ After a release, please make sure to run `bundle exec rake update_changelog`. Th
2424
Changes since the last non-beta release.
2525

2626
### [15.0.0] - 2025-08-28
27+
2728
See [Release Notes](docs/release-notes/15.0.0.md) for full details.
2829

2930
### Removed (Breaking Changes)
30-
- Deprecated `defer_generated_component_packs` configuration option. You should use `generated_component_packs_loading_strategy` instead. [PR 1712](https://github.com/shakacode/react_on_rails/pull/1712) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
31-
- The package is ESM-only now. Please see [Release Notes](docs/release-notes/15.0.0.md#esm-only-package) for more details.
32-
- `ReactOnRails.reactOnRailsPageLoaded` is now an async function
33-
- `force_load` configuration now defaults to `true`
34-
- `defer_generated_component_packs` configuration now defaults to `false`
31+
32+
- Deprecated `defer_generated_component_packs` configuration option. You should use `generated_component_packs_loading_strategy` instead.
33+
- Migration:
34+
- `defer_generated_component_packs: true``generated_component_packs_loading_strategy: :defer`
35+
- `defer_generated_component_packs: false``generated_component_packs_loading_strategy: :sync`
36+
- For best performance, use `generated_component_packs_loading_strategy: :async`
37+
- [PR 1712](https://github.com/shakacode/react_on_rails/pull/1712) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
38+
- The package is ESM-only now. Migration:
39+
- If using `require('react-on-rails')`, upgrade to Node v20.19.0+ or change to `import`.
40+
- For TypeScript errors, upgrade to TypeScript 5.8+ and set `module` to `nodenext`.
41+
- `ReactOnRails.reactOnRailsPageLoaded` is now an async function. Migration:
42+
- Add `await` when calling this function: `await ReactOnRails.reactOnRailsPageLoaded()`.
43+
- `force_load` configuration now defaults to `true`. Migration:
44+
- Set `force_load: false` in your config if you want the previous behavior.
45+
46+
For detailed migration instructions, see the [15.0.0 Release Notes](docs/release-notes/15.0.0.md).
3547

3648
#### Fixed
49+
3750
- Enable support for ReactRefreshWebpackPlugin v0.6.0 by adding conditional logic regarding configuration. [PR 1748](https://github.com/shakacode/react_on_rails/pull/1748) by [judahmeek](https://github.com/judahmeek).
3851
- Replace RenderOptions.renderRequestId and use local trackers instead. This change should only be relevant to ReactOnRails Pro users. [PR 1745](https://github.com/shakacode/react_on_rails/pull/1745) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
3952
- Fixed invalid warnings about non-exact versions when using a pre-release version of React on Rails, as well as missing warnings when using different pre-release versions of the gem and the Node package. [PR 1742](https://github.com/shakacode/react_on_rails/pull/1742) by [alexeyr-ci2](https://github.com/alexeyr-ci2).
4053

4154
#### Improved
55+
4256
- Ensured that the RSC payload is injected after the component's HTML markup to improve the performance of the RSC payload injection. [PR 1738](https://github.com/shakacode/react_on_rails/pull/1738) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
4357
- Improved RSC rendering flow by eliminating double rendering of server components and reducing the number of HTTP requests.
4458
- Updated communication protocol between Node Renderer and Rails to version 2.0.0 which supports the ability to upload multiple bundles at once.
@@ -50,6 +64,7 @@ See [Release Notes](docs/release-notes/15.0.0.md) for full details.
5064
- Include a stack trace when clicked
5165

5266
#### Added
67+
5368
- Configuration option `generated_component_packs_loading_strategy` to control how generated component packs are loaded. It supports `sync`, `async`, and `defer` strategies. [PR 1712](https://github.com/shakacode/react_on_rails/pull/1712) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
5469
- Support for returning React component from async render-function. [PR 1720](https://github.com/shakacode/react_on_rails/pull/1720) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
5570
- React Server Components Support (Pro Feature) [PR 1644](https://github.com/shakacode/react_on_rails/pull/1644) by [AbanoubGhadban](https://github.com/AbanoubGhadban).

docs/guides/configuration.md

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -213,9 +213,23 @@ ReactOnRails.configure do |config|
213213
# config.server_bundle_js_file for the filename.
214214
config.make_generated_server_bundle_the_entrypoint = false
215215

216-
# Default is false
217-
# Set this to true to have `defer: true` added to your `append_javascript_pack` calls for generated entrypoints.
218-
config.defer_generated_component_packs = false
216+
# Configuration for how generated component packs are loaded.
217+
# Options: :sync, :async, :defer
218+
# - :sync (default for Shakapacker < 8.2.0): Loads scripts synchronously
219+
# - :async (default for Shakapacker ≥ 8.2.0): Loads scripts asynchronously for better performance
220+
# - :defer: Defers script execution until after page load
221+
config.generated_component_packs_loading_strategy = :async
222+
223+
# DEPRECATED: Use `generated_component_packs_loading_strategy` instead.
224+
# Migration: `defer_generated_component_packs: true` → `generated_component_packs_loading_strategy: :defer`
225+
# Migration: `defer_generated_component_packs: false` → `generated_component_packs_loading_strategy: :sync`
226+
# See [15.0.0 Release Notes](docs/release-notes/15.0.0.md) for more details.
227+
# config.defer_generated_component_packs = false
228+
229+
# Default is true
230+
# When true, components hydrate immediately as soon as their server-rendered HTML reaches the client,
231+
# without waiting for the full page load. This improves time-to-interactive performance.
232+
config.force_load = true
219233

220234
################################################################################
221235
# I18N OPTIONS

docs/release-notes/15.0.0.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# React on Rails 15.0.0 Release Notes
22

3-
Also see the [Changelog for 15.0.0]([url](https://github.com/shakacode/react_on_rails/blob/master/CHANGELOG.md#1500---2025-08-28)).
3+
Also see the [Changelog for 15.0.0](https://github.com/shakacode/react_on_rails/blob/master/CHANGELOG.md#1500---2025-08-28).
44

55
## Major Features
66

@@ -32,7 +32,7 @@ This optimization is particularly impactful for:
3232

3333
_Performance improvement visualization:_
3434

35-
[Performance comparison showing early hydration improvement](https://drive.google.com/file/d/1rArLh8EX1dKBWksZ1Ypbj4_K1B5Fn7dq/view)
35+
![Performance comparison showing early hydration improvement](../assets/early-hydration-performance-comparison.jpg)
3636

3737
_The image above demonstrates the dramatic performance improvement:_
3838

0 commit comments

Comments
 (0)