Skip to content

Commit 840f9c7

Browse files
justin808claude
andauthored
Remove developer-only and beta-specific changelog entries (#2072)
### Summary Cleaned up the v16.2.0.beta.11 changelog by removing entries that are not relevant to end users upgrading from 16.1.x. After thorough investigation of each PR, removed developer-only tooling fixes and fixes for bugs introduced during the beta cycle. ### Changes Made **Removed developer-only entries:** - PR 2054: Yalc publish path resolution (yalc is developer tooling for local package testing) - PR 1873: Git dependency support (developer workflow feature) **Removed beta-specific entries:** - PR 2066: Generator version handling for beta/RC releases (only affects beta installations, not stable) - PR 2070: bin/dev NameError fix (bug introduced by PR #1977 during beta cycle) - PR 2023: bin/dev --verbose option fix (bin/dev is a new feature added in beta) - PR 2021: Shakapacker template configuration (fix specific to new bin/dev feature) **Kept legitimate user-facing fixes:** - PR 2064: Doctor command version mismatch detection (affects all users, not just beta) - PR 2052: Duplicate rake task execution (bug existed since 16.0.0) - PR 2058: Rails 5.2-6.0 compatibility (bug existed in 16.1.1) ### Pull Request checklist - [x] ~Add/update test to cover these changes~ - [x] ~Update documentation~ - [x] Update CHANGELOG file ### Other Information Each entry was carefully investigated by checking git history to determine when bugs were introduced (before or after 16.1.x) and whether features/fixes are relevant to end users versus gem developers. --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 464dca5 commit 840f9c7

File tree

3 files changed

+55
-28
lines changed

3 files changed

+55
-28
lines changed

CHANGELOG.md

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,6 @@ Changes since the last non-beta release.
3939

4040
- **Improved RSC Payload Error Handling**: Errors that happen during generation of RSC payload are transferred properly to rails side and logs the error message and stack. [PR #1888](https://github.com/shakacode/react_on_rails/pull/1888) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
4141

42-
- **Use as Git dependency**: All packages can now be installed as Git dependencies. This is useful for development and testing purposes. See [CONTRIBUTING.md](./CONTRIBUTING.md#git-dependencies) for documentation. [PR #1873](https://github.com/shakacode/react_on_rails/pull/1873) by [alexeyr-ci2](https://github.com/alexeyr-ci2).
43-
4442
- **Doctor Checks for :async Loading Strategy**: Added proactive diagnostic checks to the React on Rails doctor tool to detect usage of the `:async` loading strategy in projects without React on Rails Pro. The feature scans view files and initializer configuration, providing clear guidance to either upgrade to Pro or use alternative loading strategies like `:defer` or `:sync` to avoid component registration race conditions. [PR 2010](https://github.com/shakacode/react_on_rails/pull/2010) by [justin808](https://github.com/justin808).
4543

4644
#### Changed
@@ -65,36 +63,14 @@ Changes since the last non-beta release.
6563

6664
- **Simplified Configuration Files**: Improved configuration documentation and generator template for better clarity and usability. Reduced generator template from 67 to 42 lines (37% reduction). Added comprehensive testing configuration guide. Reorganized configuration docs into Essential vs Advanced sections. Enhanced Doctor program with diagnostics for server rendering and test compilation consistency. [PR #2011](https://github.com/shakacode/react_on_rails/pull/2011) by [justin808](https://github.com/justin808).
6765

68-
#### Deprecated
69-
70-
- **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).
71-
7266
#### Fixed
7367

74-
- **bin/dev NameError**: Fixed `NameError: uninitialized constant ReactOnRails::PackerUtils` that occurred when running `bin/dev`. Missing requires for `PackerUtils` have been added to ensure proper module loading. [PR 2070](https://github.com/shakacode/react_on_rails/pull/2070) by [justin808](https://github.com/justin808).
75-
7668
- **Doctor Command Version Mismatch Detection**: Fixed false version mismatch warnings in `rake react_on_rails:doctor` when using beta/prerelease versions. The command now correctly recognizes that gem version `16.2.0.beta.10` matches npm version `16.2.0-beta.10` using proper semver conversion instead of string normalization that stripped prerelease identifiers. [PR 2064](https://github.com/shakacode/react_on_rails/pull/2064) by [ihabadham](https://github.com/ihabadham).
7769

78-
- **Generator Version Handling for Beta/RC Releases**: Fixed generator installing wrong npm package versions during beta and RC releases. The version detection regex now properly recognizes prerelease formats (e.g., `16.2.0-beta.10`, `16.1.0-rc.1`) instead of only matching stable versions, ensuring the generator installs the exact version matching the gem rather than defaulting to latest stable. [PR 2066](https://github.com/shakacode/react_on_rails/pull/2066) by [justin808](https://github.com/justin808).
79-
8070
- **Rails 5.2-6.0 Compatibility**: Fixed compatibility with Rails 5.2-6.0 by adding polyfill for `compact_blank` method (introduced in Rails 6.1). Also refactored webpack asset handling to conditionally include React on Rails Pro files only when available, preventing NoMethodErrors in open-source installations. [PR 2058](https://github.com/shakacode/react_on_rails/pull/2058) by [justin808](https://github.com/justin808).
8171

82-
- **Yalc Publish Path Resolution**: Fixed broken `yalc publish` workflow by correcting file path references in build script. Updated artifact detection from `packages/react-on-rails/lib/ReactOnRails.full.js` to `lib/ReactOnRails.full.js` in `package-scripts.yml` to match actual build output location. [PR 2054](https://github.com/shakacode/react_on_rails/pull/2054) by [Judahmeek](https://github.com/Judahmeek).
83-
8472
- **Duplicate Rake Task Execution**: Fixed rake tasks executing twice during asset precompilation and other rake operations. Rails Engine was loading task files twice: once via explicit `load` calls in the `rake_tasks` block (Railtie layer) and once via automatic file loading from `lib/tasks/` (Engine layer). This caused `react_on_rails:assets:webpack`, `react_on_rails:generate_packs`, and `react_on_rails:locale` tasks to run twice, significantly increasing build times. Removed explicit `load` calls and now rely on Rails Engine's standard auto-loading behavior. [PR 2052](https://github.com/shakacode/react_on_rails/pull/2052) by [justin808](https://github.com/justin808).
8573

86-
- **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).
87-
88-
- **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).
89-
90-
- **bin/dev --verbose Option**: Fixed `OptionParser::InvalidOption` error that occurred when using the `--verbose`/`-v` flag. The flag was documented in help text but not functional. Now properly implemented with flag parsing and passing verbose option through method calls. [PR 2023](https://github.com/shakacode/react_on_rails/pull/2023) by [justin808](https://github.com/justin808).
91-
92-
- **Shakapacker Template Configuration**: Fixed shakapacker.yml template to prevent unnecessary "Slow setup for development" warnings by setting `compile: false` as the default configuration. This allows development environments to inherit the setting instead of forcing on-demand compilation when using Procfiles with `bin/dev` that already run the shakapacker dev server or watch mode. [PR 2021](https://github.com/shakacode/react_on_rails/pull/2021) by [justin808](https://github.com/justin808).
93-
94-
#### Improved
95-
96-
- **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. [PR 2015](https://github.com/shakacode/react_on_rails/pull/2015) by [ihabadham](https://github.com/ihabadham).
97-
9874
#### Breaking Changes
9975

10076
- **`config.immediate_hydration` configuration removed**: The `config.immediate_hydration` setting in `config/initializers/react_on_rails.rb` has been removed. Immediate hydration is now automatically enabled for React on Rails Pro users and automatically disabled for non-Pro users.

CLAUDE.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,50 @@ When making changes, update the **appropriate changelog(s)**:
214214
- Pro: `cd react_on_rails_pro && bundle exec rake update_changelog`
215215
- **Examples**: Run `grep -A 3 "^#### " CHANGELOG.md | head -30` to see real formatting examples
216216

217+
### Beta Release Changelog Curation
218+
219+
When consolidating beta versions into a stable release, carefully curate entries to include only user-facing changes:
220+
221+
**Remove these types of entries:**
222+
223+
1. **Developer-only tooling**:
224+
- yalc publish fixes (local development tool)
225+
- Git dependency support (contributor workflow)
226+
- CI/build script improvements
227+
- Internal tooling changes
228+
229+
2. **Beta-specific fixes**:
230+
- Bugs introduced during the beta cycle (not present in last stable)
231+
- Fixes for new beta-only features (e.g., bin/dev in 16.2.0.beta)
232+
- Generator handling of beta/RC version formats
233+
234+
3. **Pro-specific features** (move to Pro changelog):
235+
- Node renderer fixes/improvements
236+
- Streaming-related changes
237+
- Async loading features (Pro-exclusive)
238+
239+
**Keep these types of entries:**
240+
241+
1. **User-facing fixes**:
242+
- Bugs that existed in previous stable release (e.g., 16.1.x)
243+
- Compatibility fixes (Rails version support, etc.)
244+
- Performance improvements affecting all users
245+
246+
2. **Breaking changes**:
247+
- API changes requiring migration
248+
- Removed methods/features
249+
- Configuration changes
250+
251+
**Investigation process:**
252+
253+
For each suspicious entry:
254+
1. Check git history: `git log --oneline <last_stable>..<current_beta> -- <file>`
255+
2. Determine when bug was introduced (stable vs beta cycle)
256+
3. Verify whether fix applies to stable users or only beta users
257+
4. Check PR description for context about what was broken
258+
259+
**Example reference:** See [PR #2072](https://github.com/shakacode/react_on_rails/pull/2072) for a complete example of beta changelog curation with detailed investigation notes.
260+
217261
## ⚠️ FORMATTING RULES
218262

219263
**Prettier is the SOLE authority for formatting non-Ruby files, and RuboCop for formatting Ruby files. NEVER manually format code.**

react_on_rails_pro/CHANGELOG.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,12 @@ You can find the **package** version numbers from this repo's tags and below in
2020
_Add changes in master not yet tagged._
2121

2222
### Improved
23-
- Significantly improved streaming performance by processing React components concurrently instead of sequentially. This reduces latency and improves responsiveness when using `stream_view_containing_react_components`.
2423

25-
### Added
26-
- 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.
24+
- **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).
2725

2826
### Added
2927

28+
- 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.
3029
- Added `cached_stream_react_component` helper method, similar to `cached_react_component` but for streamed components.
3130
- **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).
3231
- **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`:
@@ -46,9 +45,17 @@ _Add changes in master not yet tagged._
4645

4746
- **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).
4847

48+
### Fixed
49+
50+
- **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).
51+
52+
- **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).
53+
4954
### Changed
5055

51-
- Renamed Node Renderer configuration option `bundlePath` to `serverBundleCachePath` to better clarify its purpose as a cache directory for uploaded server bundles, distinct from Shakapacker's public asset directory. The old `bundlePath` property and `RENDERER_BUNDLE_PATH` environment variable continue to work with deprecation warnings. [PR 2008](https://github.com/shakacode/react_on_rails/pull/2008) by [justin808](https://github.com/justin808).
56+
### Deprecated
57+
58+
- **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).
5259

5360
### Changed (Breaking)
5461

0 commit comments

Comments
 (0)