react_on_rails_pro 16.3.0 → 16.4.0.rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6da39e80fe1534f8ca6de8d632070dcdf0285f40e08d543542085c28b1a7fcdc
4
- data.tar.gz: e60672e769edad0a50d35bfe8fffbdfcf5f86e81b4c2b9ba655cb2aaf8519aed
3
+ metadata.gz: 4a58e73aefc7b9946b9307511283fe276a1a1546d8c197dc0ae3c74752abdf06
4
+ data.tar.gz: 4e98bfddf58f8b765721724e4291970e419f5c451eff6301f31bb0b398ac88b9
5
5
  SHA512:
6
- metadata.gz: 155a20af4e01291ae9696251f35cb01e5ae66234a59301fbe2bad7cc986e73870c10d452e58ef6bc950bbf8d1dffb8e1b35d8bdeba3281336f0dd39945aa1b36
7
- data.tar.gz: cc045792d8d1b04bc5bab388d97d9224f0b72ffd6a98999a5e44b22c76b0c89b4ad368b48e3eb449a54df008c269d9386d00753fe6b121229e629a81287d4373
6
+ metadata.gz: fb79fd41344fd56f2b436b8fa851652bf59ccb804bf9b62cf9272e3fcb2cb7f6854ea1f530021d8f43b6a47553bfca04a8d2c02df1a33f612229bd83119495d5
7
+ data.tar.gz: 62c06d7da0cd561cd4b64fec146d63eb076ba7f8965a0c761d4ba1f00c45afc743a049ddb31971ce77d135a1a2370d4f45430a729cf4c0801d2f1b1b42326d02
data/CHANGELOG.md CHANGED
@@ -1,593 +1,9 @@
1
- # Change Log
2
-
3
- All notable changes to this project will be documented in this file. Items under `Unreleased` is upcoming features that will be out in next release.
4
-
5
- ## Gem and Package Versions
6
-
7
- Gem and package versions are the same except for beta releases where the gem uses a `.beta` and the package uses a `-beta` (same for `rc`).
8
-
9
- 1. **Gem**: `X.X.X.beta.X`
10
- 2. **Package**: `X.X.X-beta.X`
11
-
12
- You can find the **package** version numbers from this repo's tags and below in this file.
13
-
14
- ---
15
-
16
- [HEAD compared to 3.3.1]: Click to see all changes compared to the last 3.x version. See the [4.0 Release Notes](https://github.com/shakacode/react_on_rails_pro/blob/master/docs/release-notes/4.0.md).
17
-
18
- ## [Unreleased]
19
-
20
- Changes since the last non-beta release.
21
-
22
- ### Changed
23
-
24
- - **License-Optional Attribution Model**: React on Rails Pro now works without a license for evaluation, development, testing, and CI/CD. A paid license is only required for production deployments. Added `plan` field validation to both Ruby and Node.js license validators — only `"paid"` plan (or no plan field for backwards compatibility) is accepted. Old free licenses are now treated as invalid. Documentation overhauled across README and LICENSE_SETUP guides; removed CI_SETUP.md (CI needs no license configuration). [PR 2324](https://github.com/shakacode/react_on_rails/pull/2324) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
25
-
26
- ### Added
27
-
28
- - **Multiple License Plan Types**: License validation now supports multiple plan types beyond "paid": `startup`, `nonprofit`, `education`, `oss`, and `partner`. Non-paid plan types are displayed in the license validation success message (e.g., "License validated successfully (startup license)."). Includes thread-safe caching for plan type retrieval via `LicenseValidator.license_plan`. [PR 2334](https://github.com/shakacode/react_on_rails/pull/2334) by [justin808](https://github.com/justin808).
29
- - **Node Renderer Master/Worker Exports**: Added public `master` and `worker` exports to `react-on-rails-pro-node-renderer` package, allowing users to import from `react-on-rails-pro-node-renderer/master` and `react-on-rails-pro-node-renderer/worker`. [PR 2326](https://github.com/shakacode/react_on_rails/pull/2326) by [justin808](https://github.com/justin808).
30
-
31
- ## [16.2.0] - 2026-01-14
32
-
33
- ### Improved
34
-
35
- - **Concurrent Streaming Performance**: Implemented concurrent draining of streamed React components using the async gem. Instead of processing components sequentially, the system now uses a producer-consumer pattern with bounded buffering to allow multiple components to stream simultaneously while maintaining per-component chunk ordering. This significantly reduces latency and improves responsiveness when using `stream_view_containing_react_components`. [PR 2015](https://github.com/shakacode/react_on_rails/pull/2015) by [ihabadham](https://github.com/ihabadham).
36
-
37
- ### Added
38
-
39
- - **Async React Component Rendering**: Added `async_react_component` and `cached_async_react_component` helpers for concurrent component rendering. Multiple components now execute HTTP requests to the Node renderer in parallel instead of sequentially, significantly reducing latency when rendering multiple components in a view. Requires `ReactOnRailsPro::AsyncRendering` concern in controller. [PR 2139](https://github.com/shakacode/react_on_rails/pull/2139) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
40
- - Added `config.concurrent_component_streaming_buffer_size` configuration option to control the memory buffer size for concurrent component streaming (defaults to 64). This allows fine-tuning of memory usage vs. performance for streaming applications.
41
- - Added `cached_stream_react_component` helper method, similar to `cached_react_component` but for streamed components.
42
- - **License Validation System**: Implemented comprehensive JWT-based license validation with offline verification using RSA-256 signatures. License validation occurs at startup in both Ruby and Node.js environments. Supports required fields (`sub`, `iat`, `exp`) and optional fields (`plan`, `organization`, `iss`). FREE evaluation licenses are available for 3 months at [shakacode.com/react-on-rails-pro](https://shakacode.com/react-on-rails-pro). [PR #1857](https://github.com/shakacode/react_on_rails/pull/1857) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
43
- - **Pro-Specific Configurations Moved from Open-Source**: The following React Server Components (RSC) configurations are now exclusively in the Pro gem and should be configured in `ReactOnRailsPro.configure`:
44
- - `rsc_bundle_js_file` - Path to the RSC bundle file
45
- - `react_server_client_manifest_file` - Path to the React server client manifest
46
- - `react_client_manifest_file` - Path to the React client manifest
47
-
48
- These configurations were previously available in the open-source `ReactOnRails.configure` block but have been moved to Pro where they belong since RSC is a Pro-only feature.
49
-
50
- - **Streaming View Helpers Now Pro-Exclusive**: The following view helpers are now defined exclusively in the Pro gem:
51
- - `stream_react_component` - Progressive SSR using React 18+ streaming
52
- - `rsc_payload_react_component` - RSC payload rendering
53
-
54
- These helpers were previously in the open-source gem but have been moved to Pro as they are Pro-only features.
55
-
56
- - **Node Renderer Gem Version Validation**: The node renderer now validates that the Ruby gem version (`react_on_rails_pro`) matches the node renderer package version (`@shakacode-tools/react-on-rails-pro-node-renderer`) on every render request. Environment-aware: strict enforcement in development (returns 412 Precondition Failed on mismatch), permissive in production (allows with warning). Includes version normalization to handle Ruby gem vs NPM format differences (e.g., `4.0.0.rc.1` vs `4.0.0-rc.1`). [PR #1881](https://github.com/shakacode/react_on_rails/pull/1881) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
57
-
58
- ### Fixed
59
-
60
- - **Thread-Safe Connection Management**: Fixed race conditions in `ReactOnRailsPro::Request` connection management. The lazy initialization (`@connection ||= create_connection`) was not atomic, allowing multiple threads to create duplicate connections at startup. Now uses a mutex with double-checked locking pattern for thread-safe initialization while maintaining lock-free reads for optimal performance. [PR 2259](https://github.com/shakacode/react_on_rails/pull/2259) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
61
-
62
- - **Legacy Module Resolver Compatibility**: Added `main` field to `react-on-rails-pro` and `react-on-rails-pro-node-renderer` package.json files for compatibility with legacy module resolvers like `eslint-import-resolver-node` that don't support Node.js conditional exports. [PR 2256](https://github.com/shakacode/react_on_rails/pull/2256) by [ihabadham](https://github.com/ihabadham).
63
-
64
- - **SECURITY: CVE-2025-55182 - React Server Components RCE Vulnerability**: by updating `react-on-rails-rsc` peer dependency to `v19.0.3` which mitigates that vulnerability. Also, users should update `react` and `react-dom` package versions to `v19.0.1` to ensure complete mitigation. [PR 2175](https://github.com/shakacode/react_on_rails/pull/2175) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
65
-
66
- - Fixed compatibility issue with httpx 1.6.x by explicitly requiring http-2 >= 1.1.1. [PR 2141](https://github.com/shakacode/react_on_rails/pull/2141) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
67
-
68
- - **Client Disconnect Handling for Streaming**: Added error handling for client disconnects during streaming. When a client disconnects mid-stream (browser closed, network drop), the system now catches `IOError`/`Errno::EPIPE`, sets a `client_disconnected` flag, stops the barrier to cancel producer tasks, and logs the disconnect for debugging. Prevents wasted CPU from producers continuing after the writer fails. [PR 2137](https://github.com/shakacode/react_on_rails/pull/2137) by [justin808](https://github.com/justin808).
69
-
70
- - **Node Renderer Worker Restart**: Fixed "descriptor closed" error that occurred when the node renderer restarts while handling an in-progress request (especially streaming requests). Workers now perform graceful shutdowns: they disconnect from the cluster to stop receiving new requests, wait for active requests to complete, then shut down cleanly. A configurable `gracefulWorkerRestartTimeout` ensures workers are forcibly killed if they don't shut down in time. [PR 1970](https://github.com/shakacode/react_on_rails/pull/1970) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
71
-
72
- - **Body Duplication Bug On Streaming**: Fixed a bug that happens while streaming if the node renderer connection closed after streaming some chunks to the client. [PR 1995](https://github.com/shakacode/react_on_rails/pull/1995) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
73
-
74
- ### Deprecated
75
-
76
- - **Node Renderer Configuration**: Renamed `bundlePath` configuration option to `serverBundleCachePath` in the node renderer to better describe its purpose and avoid confusion with Shakapacker's public bundle path. The old `bundlePath` option continues to work with deprecation warnings. Both `RENDERER_SERVER_BUNDLE_CACHE_PATH` (new) and `RENDERER_BUNDLE_PATH` (deprecated) environment variables are supported. [PR 2008](https://github.com/shakacode/react_on_rails/pull/2008) by [justin808](https://github.com/justin808).
77
-
78
- ### Changed (Breaking)
79
-
80
- - `config.prerender_caching`, which controls caching for non-streaming components, now also controls caching for streamed components. To disable caching for an individual render, pass `internal_option(:skip_prerender_cache)`.
81
- - **Configuration Migration Required**: If you are using RSC features, you must move the RSC-related configurations from `ReactOnRails.configure` to `ReactOnRailsPro.configure` in your initializers. See the migration example in the [React on Rails CHANGELOG](https://github.com/shakacode/react_on_rails/blob/master/CHANGELOG.md#unreleased).
82
- - Added `async` gem dependency (>= 2.6) to support concurrent streaming functionality.
83
-
84
- ## [4.0.0-rc.15] - 2025-08-11
85
-
86
- ### Fixed
87
-
88
- - Fixed an issue where, when React Server Components (RSC) support was disabled, the Node Renderer unnecessarily requested bundles on every render. Now, bundles are only requested when actually needed, improving performance and reducing redundant network traffic. [PR 545](https://github.com/shakacode/react_on_rails_pro/pull/545) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
89
- - **Fix `descriptor closed` error**: The errors happens when the node renderer restarts while it's still handling an in-progress request (especially if it's a streaming request that may take more time to handle). Implemented a fix that makes worker shutdown gracefully after it finishes all active requests. When a worker receives the shutdown message, if it doesn't shut down during the `gracefulWorkerRestartTimeout`, the master forcibly kills it. [PR #1970][https://github.com/shakacode/react_on_rails/pull/1970] by [AbanoubGhadban](https://github.com/AbanoubGhadban).
90
-
91
- ### Changed
92
-
93
- - Upgraded HTTPX dependency from 1.3.4 to ~> 1.5 (currently 1.5.1). [PR 520](https://github.com/shakacode/react_on_rails_pro/pull/520) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
94
-
95
- ## [4.0.0-rc.14] - 2025-06-22
96
-
97
- ### Improved
98
-
99
- - Improved RSC rendering flow by eliminating double rendering of server components and reducing the number of HTTP requests.
100
- - Updated communication protocol between Node Renderer and Rails to version 2.0.0 which supports the ability to upload multiple bundles at once.
101
- - Added the ability to communicate between different bundles on the renderer by using the `runOnOtherBundle` function which is globally available for the rendering request.
102
-
103
- [PR 515](https://github.com/shakacode/react_on_rails_pro/pull/515) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
104
-
105
- ## [4.0.0-rc.13] - 2025-03-07
106
-
107
- ### Added
108
-
109
- - 🚀 **Introducing React Server Components Support!** 🎉
110
- - Experience the future of React with full RSC integration
111
- - Seamlessly use React Server Components in your Rails apps
112
- - Reduce client bundle sizes
113
- - Enable powerful new patterns for data fetching
114
- - [See the full tutorial](https://www.shakacode.com/react-on-rails-pro/docs/react-server-components/tutorial)
115
-
116
- [PR 422](https://github.com/shakacode/react_on_rails_pro/pull/422) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
117
-
118
- ### Changed (Breaking)
119
-
120
- - `ReactOnRailsPro::Utils#copy_assets` retuns `nil` instead of `Response` object. Because it throws an error if an error occurs.
121
-
122
- ## [4.0.0.rc.11] - 2025-02-09
123
-
124
- ### Changed
125
-
126
- - [PR 511](https://github.com/shakacode/react_on_rails_pro/pull/511) by [Romex91](https://github.com/Romex91)
127
- - Set `bodyLimit` to 100 MB by default to fix error 413.
128
- - Add `fastifyServerOptions` to the config
129
-
130
- - Specify exact httpx version until the bug there is fixed [PR #496](https://github.com/shakacode/react_on_rails_pro/pull/496) by [alexeyr-ci](https://github.com/alexeyr-ci)
131
-
132
- ### Changed
133
-
134
- - Renamed `includeTimerPolyfills` configuration option to `stubTimers`. [PR 506](https://github.com/shakacode/react_on_rails_pro/pull/506) by [alexeyr-ci](https://github.com/alexeyr-ci).
135
- - Fail immediately on detecting obsolete config options to prevent unexpected misconfigurations. [PR 506](https://github.com/shakacode/react_on_rails_pro/pull/506) by [alexeyr-ci](https://github.com/alexeyr-ci).
136
-
137
- ## [4.0.0.rc.9] - 2024-12-05
138
-
139
- ### Changed
140
-
141
- - Error reporting and tracing integrations are completely redone. See [the docs](./docs/node-renderer/error-reporting-and-tracing.md) for details. [PR 471](https://github.com/shakacode/react_on_rails_pro/pull/471) by [alexeyr-ci](https://github.com/alexeyr-ci).
142
- - Upgraded to Fastify 5 by default, with an option to fall back to Fastify 4 on older Node versions. [PR 478](https://github.com/shakacode/react_on_rails_pro/pull/478) by [alexeyr-ci](https://github.com/alexeyr-ci).
143
- - Logging now uses Pino instead of Winston, aligning with Fastify. [PR 479](https://github.com/shakacode/react_on_rails_pro/pull/479) by [alexeyr-ci](https://github.com/alexeyr-ci).
144
- - In particular, this can make a difference on uncaught exceptions and unhandled rejections; now the process should always exit if they happen, as recommended.
145
- - Converted from `Net::HTTP` to HTTPX for requests to the Node renderer [PR 452](https://github.com/shakacode/react_on_rails_pro/pull/452) by [alexeyr-ci](https://github.com/alexeyr-ci).
146
- - Communication with Node Renderer now uses HTTP/2 Cleartext [PR 392](https://github.com/shakacode/react_on_rails_pro/pull/392) by [alexeyr-ci](https://github.com/alexeyr-ci).
147
-
148
- ## [4.0.0.rc.6] - 2024-11-12
149
-
150
- ### Added
151
-
152
- - Added streaming server rendering support:
153
- - [PR 407](https://github.com/shakacode/react_on_rails_pro/pull/407) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
154
- - New `stream_view_containing_react_components` helper method that can be used with `stream_react_component` helper method in react_on_rails gem.
155
- - Enables progressive page loading and improved performance for server-rendered React components.
156
- - Added support for replaying console logs that occur during server rendering of streamed React components. This enables debugging of server-side rendering issues by capturing and displaying console output on the client and on the server output. [PR #429](https://github.com/shakacode/react_on_rails_pro/pull/429) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
157
- - Added support for handling errors happening during server rendering of streamed React components [PR #432](https://github.com/shakacode/react_on_rails_pro/pull/432) by [AbanoubGhadban](https://github.com/AbanoubGhadban):
158
- - It handles errors that happen during the initial render and errors that happen inside suspense boundaries.
159
- - Added `raise_non_shell_server_rendering_errors` configuration option.
160
- - Added support for replaying console logs from asynchronous operations:
161
- - New `replayServerAsyncOperationLogs` configuration option to enable/disable this feature
162
- - When enabled, captures and replays console output from async operations during server-side rendering
163
- - [PR 440](https://github.com/shakacode/react_on_rails_pro/pull/440) by [AbanoubGhadban](https://github.com/AbanoubGhadban)
164
-
165
- ### Removed
166
-
167
- - Drop support for EOL'd Ruby 2.7 [PR 365](https://github.com/shakacode/react_on_rails_pro/pull/365) by [ahangarha](https://github.com/ahangarha).
168
- - Drop support for React on Rails below 14.0.4 [PR 415](https://github.com/shakacode/react_on_rails_pro/pull/415) by [rameziophobia](https://github.com/rameziophobia).
169
-
170
- ### Fixed
171
-
172
- - Updated multiple JS dependencies for bug fixes.
173
- - Added execute permission for `spec/dummy/bin/dev` [PR 387](https://github.com/shakacode/react_on_rails_pro/pull/387) by [alexeyr](https://github.com/alexeyr).
174
- - Made default bundle paths in node-renderer and Rails consistent [PR 399](https://github.com/shakacode/react_on_rails_pro/pull/399) by [alexeyr-ci](https://github.com/alexeyr-ci).
175
-
176
- ### Changed
177
-
178
- - Support Shakapacker 8.0.0, Modified webpack configurations to use shakapacker instead of webpacker. This drops support for shakapacker 6.X [PR 415](https://github.com/shakacode/react_on_rails_pro/pull/415) by [rameziophobia](https://github.com/rameziophobia).
179
- - Converted the node-renderer worker from Express to Fastify [PR 398](https://github.com/shakacode/react_on_rails_pro/pull/398) by [alexeyr-ci](https://github.com/alexeyr-ci).
180
-
181
- ## [3.3.1] - 2025-08-11
182
-
183
- ### Changed
184
-
185
- - Converted JS code to TS [PR 386](https://github.com/shakacode/react_on_rails_pro/pull/386) and [PR 389](https://github.com/shakacode/react_on_rails_pro/pull/389) by [alexeyr-ci](https://github.com/alexeyr-ci).
186
-
187
- ### Fixed
188
-
189
- - Removed file size limit for assets and bundles. [PR 459](https://github.com/shakacode/react_on_rails_pro/pull/459) by [alexeyr-ci](https://github.com/alexeyr-ci).
190
- - Enabled use as a `git:` dependency. [PR 490](https://github.com/shakacode/react_on_rails_pro/pull/490) by [alexeyr-ci](https://github.com/alexeyr-ci).
191
- - Enabled `queueMicrotask` use in server bundle to support React 19. [PR 505](https://github.com/shakacode/react_on_rails_pro/pull/505) by [alexeyr-ci](https://github.com/alexeyr-ci).
192
- - Made bundle hash environment aware. [PR 512](https://github.com/shakacode/react_on_rails_pro/pull/512) by [judahmeek](https://github.com/judahmeek).
193
- - Made compatible with Ruby 3.4. [PR 541](https://github.com/shakacode/react_on_rails_pro/pull/541) by [alexeyr-ci2](https://github.com/alexeyr-ci2).
194
-
195
- ## [3.2.1] - 2023-06-07
196
-
197
- Fixed release, supports Ruby 2.7.5.
198
-
199
- See branch https://github.com/shakacode/react_on_rails_pro/tree/3-support-ruby-2-7
200
-
201
- ### Fixed
202
-
203
- - Removed console errors when `setTimeout` is used server-size. The call is silently ignored for seamless integration of https://github.com/petyosi/react-virtuoso
204
- - Numerous Dependabot alerts
205
-
206
- ## Doc and Spec Only Updates
207
-
208
- React 18 is now supported! Check the [React on Rails CHANGELOG.md](https://github.com/shakacode/react_on_rails/blob/master/CHANGELOG.md) for details and the updates to the [loadable-components instructions](https://github.com/shakacode/react_on_rails_pro/blob/master/docs/code-splitting-loadable-components.md).
209
-
210
- ### Improved
211
-
212
- - Updated `Rubocop` version from `1.18.3` to `1.36.0`. Fixed Rubocop warnings. [PR 296](https://github.com/shakacode/react_on_rails_pro/pull/296) by [alkesh26](https://github.com/alkesh26).
213
- - Updated dependencies to address known security vulnerabilities
214
-
215
- ## [3.1.0] - 2022-08-03
216
-
217
- ### Fixed
218
-
219
- - Removes `include_execjs_polyfills` options from RoRP gem configuration & adds `include_timer_polyfills` option for Node Renderer configuration, which enables use of setTimeout & other timer functions during server rendering. [PR 281](https://github.com/shakacode/react_on_rails_pro/pull/281) by [judahmeek](https://github.com/judahmeek).
220
-
221
- ### Improvement
222
-
223
- - Warn, do not raise on missing assets [PR 280](https://github.com/shakacode/react_on_rails_pro/pull/280) by [Romex91](https://github.com/Romex91)
224
-
225
- ## [3.0.1] - 2022-07-011
226
-
227
- ### Fixed
228
-
229
- - Fix possible `uninitialized constant ReactOnRails (NameError)` in `lib/react_on_rails_pro/error.rb:4`. [PR 277](https://github.com/shakacode/react_on_rails_pro/pull/273) by [alexeyr](https://github.com/alexeyr).
230
-
231
- ## [3.0.0] - 2022-07-07
232
-
233
- ### Fixed
234
-
235
- - Make asset paths in PrepareNodeRenderBundles relative too. The symlink to the bundle itself was made relative in #231, but asset symlinks remained absolute. This makes them relative too. Fixes #272. [PR 273](https://github.com/shakacode/react_on_rails_pro/pull/273) by [alexeyr](https://github.com/alexeyr).
236
-
237
- ## [3.0.0-rc.4] - 2022-06-28
238
-
239
- ### Fixed
240
-
241
- - Add RAILS_ENV to bundle cache key. This ensures a development bundle will never get accidentally deployed to production. [PR 270](https://github.com/shakacode/react_on_rails_pro/pull/270) by [justin808](https://github.com/justin808).
242
- - Replace use of utc_timestamp with Utils.bundle_hash. Important fix as timestamps are not stable between build time and the deployment of a Heroku slug. [PR 269](https://github.com/shakacode/react_on_rails_pro/pull/269) by [Judahmeek](https://github.com/Judahmeek).
243
-
244
- ## [3.0.0-rc.3] - 2022-04-14
245
-
246
- ### Fixed
247
-
248
- - Fix prepare_node_renderer script. [PR 254](https://github.com/shakacode/react_on_rails_pro/pull/254) by [judahmeek](https://github.com/judahmeek).
249
- - Better logging for error 'Request protocol undefined does not match installed renderer protocol'. [PR 252](https://github.com/shakacode/react_on_rails_pro/pull/252) by [justin808](https://github.com/justin808).
250
-
251
- ## [3.0.0-rc.1] - 2022-02-26
252
-
253
- ### Fixed
254
-
255
- - Use relative source path for bundle symlink which conflicted with extraction of (Heroku) slugs caching resulting in incorrect extraction of the slugs due to absolute paths in the symlinks. [PR 231](https://github.com/shakacode/react_on_rails_pro/pull/231) by [judahmeek](https://github.com/judahmeek).
256
-
257
- ## [3.0.0-rc.0] - 2021-10-27
258
-
259
- ### Upgrading to 3.0
260
-
261
- 1. Changed rake task name from vm to node:
262
- Rename react_on_rails_pro:pre_stage_bundle_for_vm_renderer to react_on_rails_pro:pre_stage_bundle_for_node_renderer
263
- 2. **Bundle Caching**: ReactOnRailsPro::AssetsPrecompile will automatically pre_stage_bundle_for_node_renderer if using the node_renderer. So don't do this twice in another place if using ReactOnRailsPro::AssetsPrecompile for bundle caching. You might have modified your own assets:precompile task.
264
-
265
- ### Changed
266
-
267
- - Moved default location of placed node renderer sym links to be /.node-renderer-bundles as the /tmp directory is typically
268
- cleared during slug trimming
269
-
270
- ### Added
271
-
272
- - [PR 220](https://github.com/shakacode/react_on_rails_pro/pull/220) by [justin808](https://github.com/justin808).
273
- - **Add `ssr_timeout` configuration** so the Rails server will not wait more than this many seconds for a SSR request to return once issued.
274
- - Change default for `renderer_use_fallback_exec_js` to `false`.
275
- - Change default log level to info.
276
-
277
- - Add support for render functions to be async (returning promises). Also add `include_execjs_polyfills` option to configuration for React on Rails to optionally stop stubbing of setTimeout, setInterval, & clearTimeout polyfills while using NodeRenderer. [PR 210](https://github.com/shakacode/react_on_rails_pro/pull/210) by [judahmeek](https://github.com/judahmeek).
278
-
279
- ### Fixed
280
-
281
- - Ability to call `server_render_js(raw_js)` fixed. Previously, always errored.
282
- - Errors during rendering result in ReactOnRails::PrerenderError
283
- - When retrying rendering, the retry message is more clear
284
-
285
- ## [2.3.0] - 2021-09-22
286
-
287
- ### Added
288
-
289
- - Configuration option for `ssr_timeout` so the Rails server will not wait more than this many seconds
290
- for a SSR request to return once issued. Default timeout if not set is 5.
291
- `config.ssr_timeout = 5`
292
-
293
- - Added optional method `extra_files_to_cache` to the definition of the module for the configuration of
294
- the remote_bundle_cache_adapter. This allows files outside of the regular build directory to be
295
- placed in the cached zip file and then extracted and restored when the cache is restored. The use
296
- case for this is some files created during the build process that belongs to a location outside of
297
- the regular deployment directory for files produced by the `build` method of the module.
298
-
299
- [PR 221](https://github.com/shakacode/react_on_rails_pro/pull/221) by
300
- [justin808](https://github.com/justin808) and [ershadul1](https://github.com/ershadul1).
301
-
302
- ## [2.2.0] - 2021-07-13
303
-
304
- - Change rake react_on_rails_pro:pre_stage_bundle_for_vm_renderer to use symlinks to save slug size. [PR 202](https://github.com/shakacode/react_on_rails_pro/pull/202) by [justin808](https://github.com/justin808).
305
-
306
- ## [2.1.1] - 2021-05-29
307
-
308
- - Add optional extra cache values for bundle caching. The cache adapter can now provide a method cache_keys. [PR 196](https://github.com/shakacode/react_on_rails_pro/pull/196) by [justin808](https://github.com/justin808).
309
-
310
- ## [2.1.0] - 2021-05-15
311
-
312
- ### Added
313
-
314
- - Optional production bundle caching. [PR 179](https://github.com/shakacode/react_on_rails_pro/pull/179) by [judahmeek](https://github.com/judahmeek).
315
- - Added configurations:
316
- - `excluded_dependency_globs`: don't include these in caches
317
- - `remote_bundle_cache_adapter`: See `docs/bundle-caching.md
318
-
319
- ---
320
-
321
- ### 2.0 Upgrade Steps
322
-
323
- 1. Update React on Rails to 12.2.0
324
- 2. Be sure to use an API key that has the Github package access and know your API key username. For questions, message Justin Gordon on Slack or [justin@shakacode.com](mailto:justin@shakacode.com).
325
-
326
- In your `config/initializers/react_on_rails_pro.rb`:
327
-
328
- 1. Rename any references from `config.serializer_globs` to `config.dependency_globs`
329
- 1. Rename any references from `vm-renderer` to `node-renderer`
330
- 1. Rename `vmRenderer` to `NodeRenderer`
331
-
332
- Follow the steps for the new installation that uses Github Packages: [docs/installation.md](https://github.com/shakacode/react_on_rails_pro/blob/master/docs/installation.md).
333
-
334
- 1. Be sure to namespace the package like `require('@shakacode-tools/react-on-rails-pro-node-renderer');`
335
- 1. Add the Honeybadger ("@honeybadger-io/js") or Sentry ("@sentry/node") NPM packages, as those used to be **dependencies**. Now they are optional.
336
- 1. Add the `@sentry/tracing` package if you want to try Sentry tracing. See [Error Reporting and Tracing for Sentry and HoneyBadger](./docs/node-renderer/error-reporting-and-tracing.md).
337
-
338
- For example, the old code might be:
339
-
340
- ```js
341
- const { reactOnRailsProVmRenderer } = require('react-on-rails-pro-vm-renderer');
342
- ```
343
-
344
- New
345
-
346
- ```js
347
- const { reactOnRailsProNodeRenderer } = require('@shakacode-tools/react-on-rails-pro-node-renderer');
348
- ```
349
-
350
- ---
351
-
352
- ## [2.0.0] - 2021-04-02
353
-
354
- - See 2.0 Upgrade steps!
355
-
356
- ## [2.0.0.beta.3] - 2021-03-31
357
-
358
- #### Improved
359
-
360
- - Warn, do not raise on missing assets [PR 176](https://github.com/shakacode/react_on_rails_pro/pull/176) by [Romex91](https://github.com/Romex91)
361
-
362
- ## [2.0.0.beta.2] - 2021-03-23
363
-
364
- #### Added
365
-
366
- - Added option `config.throw_js_errors` so that any errors in SSR will go to the console plus HoneyBadger/Sentry. [PR 174](https://github.com/shakacode/react_on_rails_pro/pull/174) by [justin808](https://github.com/justin808).
367
-
368
- #### Fixed
369
-
370
- - Logs missing error reporting packages (Sentry/HoneyBadger) instead of throwing an error. [PR 174](https://github.com/shakacode/react_on_rails_pro/pull/174) by [justin808](https://github.com/justin808).
371
-
372
- ## [2.0.0.beta.1] - 2021-03-14
373
-
374
- - Added Sentry Tracing support. [PR 150](https://github.com/shakacode/react_on_rails_pro/pull/150) by [ashgaliyev](https://github.com/ashgaliyev). To use this feature, you need to add `config.sentryTracing = true` (or ENV `SENTRY_TRACING=true`) and optionally the `config.sentryTracesSampleRate = 0.5` (or ENV `SENTRY_TRACES_SAMPLE_RATE=0.5`). The value of the sample rate is the percentage of requests to trace. For documentation of Sentry Tracing, see the [Sentry Performance Monitoring Docs](https://docs.sentry.io/platforms/ruby/performance/), the [Sentry Distributed Tracing Docs](https://docs.sentry.io/product/performance/distributed-tracing/), and the [Sentry Sampling Transactions Docs](https://docs.sentry.io/platforms/ruby/performance/sampling/). The default **config.sentryTracesSampleRate** is **0.1**.
375
-
376
- * Renamed `config.serializer_globs`to `config.dependency_globs`. [PR 165](https://github.com/shakacode/react_on_rails_pro/pull/165) by [judahmeek](https://github.com/judahmeek)
377
- * RORP_CACHE_HIT and RORP_CACHE_KEY is returned for prerender caching, which is only when there is no fragment caching.
378
- * Improve cache information from react_component_hash. Hash result now includes 2 new keys
379
- - RORP_CACHE_HIT
380
- - RORP_CACHE_KEY
381
- Additionally, ReactOnRailsPro::Utils.printable_cache_key(cache_key) added.
382
- * [PR 170](https://github.com/shakacode/react_on_rails_pro/pull/170) by [justin808](https://github.com/justin808).
383
-
384
- ## [2.0.0.beta.0] - 2020-12-03
385
-
386
- - Renamed VM Renderer to Node Renderer. [PR 140](https://github.com/shakacode/react_on_rails_pro/pull/140) by [justin808](https://github.com/justin808).
387
-
388
- ### Fixed
389
-
390
- - Cache key not stable between machines same deploy. [PR 159](https://github.com/shakacode/react_on_rails_pro/pull/136) by [justin808](https://github.com/justin808).
391
-
392
- ## [1.5.6] - 2020-12-02
393
-
394
- Switched to releases being published packages.
395
-
396
- ### Fixed
397
-
398
- - Minor fix to error messages
399
- - Updated gem and package dependencies
400
-
401
- ## [1.5.5] - 2020-08-17
402
-
403
- ### Added
404
-
405
- - Added request retrying in case of timeouts. [PR 136](https://github.com/shakacode/react_on_rails_pro/pull/136) by [ashgaliyev](https://github.com/ashgaliyev).
406
-
407
- ## [1.5.4] - 2020-07-22
408
-
409
- ### Added
410
-
411
- - Added support for Github packages. To switch from using the Github private repo with a tag, request a new auth token from justin@shakacode.com.
412
-
413
- ## [1.5.3] - 2020-06-30
414
-
415
- ### Added
416
-
417
- - Added sentry support. [PR 132](https://github.com/shakacode/react_on_rails_pro/pull/132) by [ashgaliyev](https://github.com/ashgaliyev).
418
-
419
- ## [1.5.2] - 2020-06-25
420
-
421
- ### Improved
422
-
423
- - Added `process` and `Buffer` to the context if `suppportModules === true`. [PR 131](https://github.com/shakacode/react_on_rails_pro/pull/131) by [ashgaliyev](https://github.com/ashgaliyev).
424
-
425
- ## [1.5.1] - 2020-03-25
426
-
427
- ### Improved
428
-
429
- - config.assets_to_copy can take a single value in addition to an array. [PR 122](https://github.com/shakacode/react_on_rails_pro/pull/122) [justin808](https://github.com/justin808).
430
- - Better handling for an invalid renderer_url configuration. [PR 109](https://github.com/shakacode/react_on_rails_pro/pull/109) [justin808](https://github.com/justin808).
431
-
432
- ## [1.5.0] - 2020-03-17
433
-
434
- ### Added
435
-
436
- - Added support for loadable components SSR [PR 112](https://github.com/shakacode/react_on_rails_pro/pull/112) and [PR 118](https://github.com/shakacode/react_on_rails_pro/pull/118) by [ashgaliyev](https://github.com/ashgaliyev) and [justin808](https://github.com/justin808).
437
- - New option added to the node-renderer: `supportModules`. This setting is necessary for using [loadable-components](https://github.com/gregberge/loadable-components/). See [Server-side rendering with code-splitting using Loadable/Components](https://github.com/shakacode/react_on_rails_pro/blob/master/docs/code-splitting-loadable-components.md) for more detailss.
438
-
439
- ### Changed
440
-
441
- - Updated to bundler V2. [PR 114](https://github.com/shakacode/react_on_rails_pro/pull/114) by [justin808](https://github.com/justin808).
442
- - Updated spec dummy. [PR 115](https://github.com/shakacode/react_on_rails_pro/pull/115) by [justin808](https://github.com/justin808).
443
-
444
- - Better handling for an invalid renderer_url configuration
445
-
446
- ## [1.4.4] - 2019-06-10
447
-
448
- ### Fixed
449
-
450
- - Improve error handling. [PR 103](https://github.com/shakacode/react_on_rails_pro/pull/103) by [justin808](https://github.com/justin808).
451
-
452
- ## [1.4.3] - 2019-06-06
453
-
454
- ### Fixed
455
-
456
- - Lock timeouts and update error handling. Previously, many renderer errors resulted in crashes rather than a fallback
457
- to ExecJS. Also, lengthened the lock timeouts for the bundle lock. [PR 100](https://github.com/shakacode/react_on_rails_pro/pull/100) by [justin808](https://github.com/justin808).
458
- - Added check to skip pre-render cache for components rendered by `cache_react_component` and `cache_react_component_hash` because this saves on cache storage, thus improving overall performance. [PR 91](https://github.com/shakacode/react_on_rails_pro/pull/91) by [ashgaliyev](https://github.com/ashgaliyev).
459
-
460
- ## [1.4.2] - 2019-05-26
461
-
462
- ### Changed
463
-
464
- - Removed babel processing. Node v12 recommended. [PR 93](https://github.com/shakacode/react_on_rails_pro/pull/91) by [ashgaliyev](https://github.com/ashgaliyev).
465
-
466
- ## [1.4.1] - 2019-03-19
467
-
468
- ### Fixed
469
-
470
- - `cached_react_component_hash` incorrectly failed to include the bundle_hash unless `prerender: true` was used as an option. This fix addresses that issue. There is no need to use `prerender: true` as generating a hash only makes sense if prerendering is done. [PR 82](https://github.com/shakacode/react_on_rails_pro/pull/82) by [justin808](https://github.com/justin808).
471
-
472
- ## [1.4.0] - 2019-01-15
473
-
474
- ### Added
475
-
476
- - Added config option `honeybadgerApiKey` or ENV value `HONEYBADGER_API_KEY` so that errors can flow to HoneyBadger. [PR 93](https://github.com/shakacode/react_on_rails_pro/pull/75) by [ashgaliyev](https://github.com/ashgaliyev).
477
-
478
- ## [1.3.1] - 2018-12-26
479
-
480
- ### Added
481
-
482
- - Added option `cache_options:` to the cached_react_component_hash and cached_react_component
483
- a hash including values such as :compress, :expires_in, :race_condition_ttl
484
- - Added option `:if`, `:unless` to the cached_react_component_hash and cached_react_component
485
- to skip or use caching
486
- - option `cache_keys:` can be passed as a lambda now to delay evaluation when passing the :if or
487
- :unless options
488
-
489
- Above are in [PR 82](https://github.com/shakacode/react_on_rails_pro/pull/82) by [justin808](https://github.com/justin808)
490
-
491
- ## [1.3.0] - 2018-12-18
492
-
493
- - **Migration:** react_on_rails must be updated to version >= 11.2.1.
494
-
495
- ### Added
496
-
497
- - Added `config.ssr_pre_hook_js` to call some JavaScript to clear out state from libraries that
498
- misbehave during server Rendering. For example, suppose that we had to call `SomeLibrary.clearCache()`
499
- between calls to server renderer. Note, SomeLibrary needs to be globally exposed in the server
500
- rendering webpack bundle.
501
-
502
- ## [1.2.1] - 2018-08-26
503
-
504
- ### Fixed
505
-
506
- - Major overhaul of the node-renderer. Improved logging and error handling, ready for async
507
- - Fixed race conditions with init of renderer
508
- - Improved logging
509
- - Ensuring all places that an error will result in a 400 sent to the rails server.
510
- - Handle threading issue with writing the bundle by using a lockfile.
511
- - Change internals so that async rendering is ready.
512
- - Add debugging instructions
513
- - Promisified some node APIs and wrote everything with careful async/await syntax, ensuring that errors are always caught and that promises are always returned from the async functions.
514
-
515
- Above are in [PR 65](https://github.com/shakacode/react_on_rails_pro/pull/65) by [justin808](https://github.com/justin808).
516
-
517
- ## [1.2.0]
518
-
519
- - **Migration:** react_on_rails must be updated to version 11.1.x+.
520
-
521
- ### Added
522
-
523
- - Added `serializer_globs` configuration value to add a MD5 of serializer files to the cache key for fragment caching. [#60](https://github.com/shakacode/react_on_rails_pro/pull/60) by [justin808](https://github.com/justin808).
524
- - More efficient calculation of the request digest. Previously, we would do a regexp replace to filter out the dom node id because if was randomized. React on Rails 11.1.x provides a default to say not to randomize. [#64](https://github.com/shakacode/react_on_rails_pro/pull/64) by [justin808](https://github.com/justin808).
525
-
526
- ### Fixed
527
-
528
- - Fix for truncation of code and better error logs. This fixes the issue with truncation of the code when over 1 MB due to large props. Max changes to 10 MB. [#63](https://github.com/shakacode/react_on_rails_pro/pull/63) by [justin808](https://github.com/justin808).
529
-
530
- ## [1.1.0]
531
-
532
- ### Added
533
-
534
- - Added `tracing` configuration flag to time server rendering calls
535
-
536
- ### Changed
537
-
538
- - Default usage of PORT and LOG_LEVEL for the node-renderer bin file changed to use values RENDERER_PORT and RENDERER_LOG_LEVEL
539
- - Default Rails config.server_render is "ExecJS". Previously was "VmRenderer"
540
-
541
- Above changes in [PR 52](https://github.com/shakacode/react_on_rails_pro/pull/52) by [justin808](https://github.com/justin808).
542
-
543
- ## [1.0.0]
544
-
545
- ### Added
546
-
547
- - support for node renderer & fallback renderer
548
- - support for javascript evaluation caching
549
- - advanced error handling
550
-
551
- [Unreleased]: https://github.com/shakacode/react_on_rails/compare/v16.2.0...master
552
- [16.2.0]: https://github.com/shakacode/react_on_rails/compare/v16.2.0.beta.0...v16.2.0
553
- [4.0.0-rc.15]: https://github.com/shakacode/react_on_rails_pro/compare/4.0.0-rc.14...4.0.0-rc.15
554
- [4.0.0.rc.11]: https://github.com/shakacode/react_on_rails_pro/compare/4.0.0-rc.9...4.0.0-rc.11
555
- [4.0.0.rc.9]: https://github.com/shakacode/react_on_rails_pro/compare/4.0.0-rc.6...4.0.0-rc.9
556
- [4.0.0.rc.6]: https://github.com/shakacode/react_on_rails_pro/compare/3.3.1...4.0.0-rc.6
557
- [3.3.1]: https://github.com/shakacode/react_on_rails_pro/compare/3.2.1...3.3.1
558
- [3.2.1]: https://github.com/shakacode/react_on_rails_pro/compare/3.1.2...3.2.1
559
- [3.1.2]: https://github.com/shakacode/react_on_rails_pro/compare/3.1.0...3.1.2
560
- [3.1.0]: https://github.com/shakacode/react_on_rails_pro/compare/3.0.1...3.1.0
561
- [3.0.1]: https://github.com/shakacode/react_on_rails_pro/compare/3.0.0...3.0.1
562
- [3.0.0]: https://github.com/shakacode/react_on_rails_pro/compare/2.3.0...3.0.0
563
- [3.0.0-rc.4]: https://github.com/shakacode/react_on_rails_pro/compare/3.0.0-rc.3...3.0.0-rc.4
564
- [3.0.0-rc.3]: https://github.com/shakacode/react_on_rails_pro/compare/3.0.0-rc.1...3.0.0-rc.3
565
- [3.0.0-rc.1]: https://github.com/shakacode/react_on_rails_pro/compare/3.0.0-rc.0...3.0.0-rc.1
566
- [3.0.0-rc.0]: https://github.com/shakacode/react_on_rails_pro/compare/2.3.0...3.0.0-rc.0
567
- [2.3.0]: https://github.com/shakacode/react_on_rails_pro/compare/2.2.0...2.3.0
568
- [2.2.0]: https://github.com/shakacode/react_on_rails_pro/compare/2.1.1...2.2.0
569
- [2.1.1]: https://github.com/shakacode/react_on_rails_pro/compare/2.1.0...2.1.1
570
- [2.1.0]: https://github.com/shakacode/react_on_rails_pro/compare/2.0.0...2.1.0
571
- [2.0.0]: https://github.com/shakacode/react_on_rails_pro/compare/1.5.6...2.0.0
572
- [2.0.0.beta.3]: https://github.com/shakacode/react_on_rails_pro/compare/2.0.0-beta.2...2.0.0-beta.3
573
- [2.0.0.beta.2]: https://github.com/shakacode/react_on_rails_pro/compare/2.0.0-beta.1...2.0.0-beta.2
574
- [2.0.0.beta.1]: https://github.com/shakacode/react_on_rails_pro/compare/2.0.0-beta.0...2.0.0-beta.1
575
- [2.0.0.beta.0]: https://github.com/shakacode/react_on_rails_pro/compare/1.5.6...2.0.0-beta.0
576
- [1.5.6]: https://github.com/shakacode/react_on_rails_pro/compare/1.5.5...1.5.6
577
- [1.5.5]: https://github.com/shakacode/react_on_rails_pro/compare/1.5.4...1.5.5
578
- [1.5.4]: https://github.com/shakacode/react_on_rails_pro/compare/1.5.3...1.5.4
579
- [1.5.3]: https://github.com/shakacode/react_on_rails_pro/compare/1.5.2...1.5.3
580
- [1.5.2]: https://github.com/shakacode/react_on_rails_pro/compare/1.5.1...1.5.2
581
- [1.5.1]: https://github.com/shakacode/react_on_rails_pro/compare/1.5.0...1.5.1
582
- [1.5.0]: https://github.com/shakacode/react_on_rails_pro/compare/1.4.4...1.5.0
583
- [1.4.4]: https://github.com/shakacode/react_on_rails_pro/compare/1.4.3...1.4.4
584
- [1.4.3]: https://github.com/shakacode/react_on_rails_pro/compare/1.4.2...1.4.3
585
- [1.4.2]: https://github.com/shakacode/react_on_rails_pro/compare/1.4.1...1.4.2
586
- [1.4.1]: https://github.com/shakacode/react_on_rails_pro/compare/1.4.0...1.4.1
587
- [1.4.0]: https://github.com/shakacode/react_on_rails_pro/compare/1.3.1...1.4.0
588
- [1.3.1]: https://github.com/shakacode/react_on_rails_pro/compare/1.3.0...1.3.1
589
- [1.3.0]: https://github.com/shakacode/react_on_rails_pro/compare/1.2.1...1.3.0
590
- [1.2.1]: https://github.com/shakacode/react_on_rails_pro/compare/1.2.0...1.2.1
591
- [1.2.0]: https://github.com/shakacode/react_on_rails_pro/compare/1.1.0...1.2.0
592
- [1.1.0]: https://github.com/shakacode/react_on_rails_pro/compare/1.0.0...1.1.0
593
- [1.0.0]: https://github.com/shakacode/react_on_rails_pro/releases/tag/1.0.0
1
+ # React on Rails Pro Change Log
2
+
3
+ > **This file is no longer maintained.**
4
+ >
5
+ > Starting with version 16.2.0, all React on Rails Pro changes are documented in the
6
+ > **unified [CHANGELOG.md](../CHANGELOG.md)** under `#### Pro` sections within each release.
7
+ >
8
+ > For pre-monorepo Pro history (versions 4.0.0-rc.15 and earlier), see the
9
+ > [archived Pro CHANGELOG on the 4.0.0 tag](https://github.com/shakacode/react_on_rails_pro/blob/4.0.0/CHANGELOG.md).