react_on_rails 14.2.0 → 16.1.1

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.
Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. data/AI_AGENT_INSTRUCTIONS.md +63 -0
  3. data/CHANGELOG.md +569 -78
  4. data/CLAUDE.md +135 -0
  5. data/CODING_AGENTS.md +313 -0
  6. data/CONTRIBUTING.md +448 -37
  7. data/Gemfile.development_dependencies +6 -1
  8. data/Gemfile.lock +13 -4
  9. data/KUDOS.md +22 -1
  10. data/LICENSE.md +30 -4
  11. data/LICENSES/README.md +14 -0
  12. data/NEWS.md +48 -48
  13. data/PROJECTS.md +45 -40
  14. data/REACT-ON-RAILS-PRO-LICENSE.md +129 -0
  15. data/README.md +113 -42
  16. data/SUMMARY.md +62 -52
  17. data/TODO.md +135 -0
  18. data/bin/lefthook/check-trailing-newlines +38 -0
  19. data/bin/lefthook/get-changed-files +26 -0
  20. data/bin/lefthook/prettier-format +26 -0
  21. data/bin/lefthook/ruby-autofix +26 -0
  22. data/bin/lefthook/ruby-lint +27 -0
  23. data/eslint.config.ts +232 -0
  24. data/knip.ts +40 -6
  25. data/lib/generators/USAGE +4 -5
  26. data/lib/generators/react_on_rails/USAGE +65 -0
  27. data/lib/generators/react_on_rails/base_generator.rb +276 -62
  28. data/lib/generators/react_on_rails/dev_tests_generator.rb +5 -8
  29. data/lib/generators/react_on_rails/generator_helper.rb +35 -1
  30. data/lib/generators/react_on_rails/generator_messages.rb +138 -17
  31. data/lib/generators/react_on_rails/install_generator.rb +474 -26
  32. data/lib/generators/react_on_rails/react_no_redux_generator.rb +19 -6
  33. data/lib/generators/react_on_rails/react_with_redux_generator.rb +110 -18
  34. data/lib/generators/react_on_rails/templates/.eslintrc +1 -1
  35. data/lib/generators/react_on_rails/templates/base/base/Procfile.dev +5 -0
  36. data/lib/generators/react_on_rails/templates/base/base/Procfile.dev-prod-assets +8 -0
  37. data/lib/generators/react_on_rails/templates/base/base/Procfile.dev-static-assets +2 -0
  38. data/lib/generators/react_on_rails/templates/base/base/app/javascript/bundles/HelloWorld/components/HelloWorld.jsx +0 -5
  39. data/lib/generators/react_on_rails/templates/base/base/app/javascript/bundles/HelloWorld/components/HelloWorld.module.css +2 -2
  40. data/lib/generators/react_on_rails/templates/base/base/app/javascript/bundles/HelloWorld/components/HelloWorldServer.js +1 -1
  41. data/lib/generators/react_on_rails/templates/base/base/app/javascript/packs/server-bundle.js +1 -8
  42. data/lib/generators/react_on_rails/templates/base/base/app/javascript/src/HelloWorld/ror_components/HelloWorld.client.jsx +21 -0
  43. data/lib/generators/react_on_rails/templates/base/base/app/javascript/src/HelloWorld/ror_components/HelloWorld.client.tsx +25 -0
  44. data/lib/generators/react_on_rails/templates/base/base/app/javascript/src/HelloWorld/ror_components/HelloWorld.module.css +4 -0
  45. data/lib/generators/react_on_rails/templates/base/base/app/javascript/src/HelloWorld/ror_components/HelloWorld.server.jsx +5 -0
  46. data/lib/generators/react_on_rails/templates/base/base/app/javascript/src/HelloWorld/ror_components/HelloWorld.server.tsx +5 -0
  47. data/lib/generators/react_on_rails/templates/base/base/app/views/hello_world/index.html.erb.tt +1 -1
  48. data/lib/generators/react_on_rails/templates/base/base/app/views/layouts/hello_world.html.erb +4 -2
  49. data/lib/generators/react_on_rails/templates/base/base/babel.config.js.tt +5 -2
  50. data/lib/generators/react_on_rails/templates/base/base/bin/dev +34 -0
  51. data/lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb.tt +14 -5
  52. data/lib/generators/react_on_rails/templates/base/base/config/shakapacker.yml +76 -7
  53. data/lib/generators/react_on_rails/templates/base/base/config/webpack/commonWebpackConfig.js.tt +1 -1
  54. data/lib/generators/react_on_rails/templates/base/base/config/webpack/development.js.tt +6 -10
  55. data/lib/generators/react_on_rails/templates/base/base/config/webpack/production.js.tt +2 -2
  56. data/lib/generators/react_on_rails/templates/base/base/config/webpack/serverWebpackConfig.js.tt +3 -2
  57. data/lib/generators/react_on_rails/templates/base/base/config/webpack/test.js.tt +2 -2
  58. data/lib/generators/react_on_rails/templates/dev_tests/spec/system/hello_world_spec.rb +0 -2
  59. data/lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/actions/helloWorldActionCreators.ts +18 -0
  60. data/lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/components/HelloWorld.jsx +0 -6
  61. data/lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/components/HelloWorld.module.css +4 -0
  62. data/lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/components/HelloWorld.tsx +24 -0
  63. data/lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/constants/helloWorldConstants.ts +6 -0
  64. data/lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/containers/HelloWorldContainer.ts +20 -0
  65. data/lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/reducers/helloWorldReducer.js +1 -1
  66. data/lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/reducers/helloWorldReducer.ts +22 -0
  67. data/lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/startup/HelloWorldApp.client.tsx +23 -0
  68. data/lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/startup/HelloWorldApp.server.jsx +5 -0
  69. data/lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/startup/HelloWorldApp.server.tsx +5 -0
  70. data/lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/store/helloWorldStore.ts +18 -0
  71. data/lib/react_on_rails/configuration.rb +141 -57
  72. data/lib/react_on_rails/controller.rb +6 -2
  73. data/lib/react_on_rails/dev/file_manager.rb +78 -0
  74. data/lib/react_on_rails/dev/pack_generator.rb +27 -0
  75. data/lib/react_on_rails/dev/process_manager.rb +61 -0
  76. data/lib/react_on_rails/dev/server_manager.rb +487 -0
  77. data/lib/react_on_rails/dev.rb +20 -0
  78. data/lib/react_on_rails/doctor.rb +1149 -0
  79. data/lib/react_on_rails/engine.rb +6 -0
  80. data/lib/react_on_rails/git_utils.rb +12 -2
  81. data/lib/react_on_rails/helper.rb +176 -74
  82. data/lib/react_on_rails/json_parse_error.rb +6 -1
  83. data/lib/react_on_rails/packer_utils.rb +61 -71
  84. data/lib/react_on_rails/packs_generator.rb +222 -20
  85. data/lib/react_on_rails/prerender_error.rb +4 -0
  86. data/lib/react_on_rails/pro/NOTICE +21 -0
  87. data/lib/react_on_rails/pro/helper.rb +122 -0
  88. data/lib/react_on_rails/pro/utils.rb +53 -0
  89. data/lib/react_on_rails/react_component/render_options.rb +38 -6
  90. data/lib/react_on_rails/server_rendering_js_code.rb +0 -1
  91. data/lib/react_on_rails/server_rendering_pool/ruby_embedded_java_script.rb +12 -5
  92. data/lib/react_on_rails/system_checker.rb +659 -0
  93. data/lib/react_on_rails/test_helper/webpack_assets_compiler.rb +1 -1
  94. data/lib/react_on_rails/test_helper/webpack_assets_status_checker.rb +6 -4
  95. data/lib/react_on_rails/test_helper.rb +2 -3
  96. data/lib/react_on_rails/utils.rb +139 -43
  97. data/lib/react_on_rails/version.rb +1 -1
  98. data/lib/react_on_rails/version_checker.rb +14 -20
  99. data/lib/react_on_rails/version_syntax_converter.rb +1 -1
  100. data/lib/react_on_rails.rb +1 -0
  101. data/lib/tasks/assets.rake +1 -1
  102. data/lib/tasks/doctor.rake +48 -0
  103. data/lib/tasks/generate_packs.rake +158 -1
  104. data/react_on_rails.gemspec +1 -0
  105. data/tsconfig.eslint.json +6 -0
  106. data/tsconfig.json +5 -3
  107. metadata +63 -14
  108. data/REACT-ON-RAILS-PRO-LICENSE +0 -95
  109. data/lib/generators/react_on_rails/adapt_for_older_shakapacker_generator.rb +0 -41
  110. data/lib/generators/react_on_rails/bin/dev +0 -30
  111. data/lib/generators/react_on_rails/bin/dev-static +0 -30
  112. data/lib/generators/react_on_rails/templates/base/base/Procfile.dev-static.tt +0 -9
  113. data/lib/generators/react_on_rails/templates/base/base/Procfile.dev.tt +0 -5
  114. data/lib/generators/react_on_rails/templates/base/base/app/javascript/packs/registration.js.tt +0 -8
  115. /data/lib/generators/react_on_rails/templates/base/base/config/webpack/{webpackConfig.js.tt → generateWebpackConfigs.js.tt} +0 -0
  116. /data/lib/generators/react_on_rails/templates/redux/base/app/javascript/bundles/HelloWorld/startup/{HelloWorldApp.jsx → HelloWorldApp.client.jsx} +0 -0
data/CHANGELOG.md CHANGED
@@ -1,39 +1,210 @@
1
1
  # Change Log
2
- All notable changes to this project's source code will be documented in this file. Items under `Unreleased` is upcoming features that will be out in the next version.
2
+
3
+ All notable changes to this project's source code will be documented in this file. Items under `Unreleased` is upcoming features that will be out in the next version.
3
4
 
4
5
  Migration instructions for the major updates can be found [here](https://www.shakacode.com/react-on-rails/docs/guides/upgrading-react-on-rails#upgrading-to-version-9.md). Some smaller migration information can be found here.
5
6
 
6
7
  ## Want to Save Time Updating?
7
8
 
8
- If you need help upgrading `react_on_rails`, `webpacker` to `shakapacker`, or JS packages, contact justin@shakacode.com. We can upgrade your project and improve your development and customer experiences, allowing you to focus on building new features or fixing bugs instead.
9
+ If you need help upgrading `react_on_rails`, `webpacker` to `shakapacker`, or JS packages, contact justin@shakacode.com. We can upgrade your project and improve your development and customer experiences, allowing you to focus on building new features or fixing bugs instead.
9
10
 
10
11
  For an overview of working with us, see our [Client Engagement Model](https://www.shakacode.com/blog/client-engagement-model/) article and [how we bill for time](https://www.shakacode.com/blog/shortcut-jira-trello-github-toggl-time-and-task-tracking/).
11
12
 
12
13
  If you think ShakaCode can help your project, [click here](https://meetings.hubspot.com/justingordon/30-minute-consultation) to book a call with [Justin Gordon](mailto:justin@shakacode.com), the creator of React on Rails and Shakapacker.
13
14
 
14
15
  ## Contributors
15
- Please follow the recommendations outlined at [keepachangelog.com](http://keepachangelog.com/). Please use the existing headings and styling as a guide, and add a link for the version diff at the bottom of the file. Also, please update the `Unreleased` link to compare to the latest release version.
16
+
17
+ Please follow the recommendations outlined at [keepachangelog.com](http://keepachangelog.com/). Please use the existing headings and styling as a guide.
18
+ After a release, please make sure to run `bundle exec rake update_changelog`. This will add a heading for the latest version and update the links at the end of the file.
16
19
 
17
20
  ## Versions
21
+
18
22
  ### [Unreleased]
23
+
19
24
  Changes since the last non-beta release.
20
25
 
26
+ #### Bug Fixes
27
+
28
+ - **React Server Components**: Fixed bug in resolving `react-server-client-manifest.json` file path. The manifest file path is now correctly resolved using `bundle_js_file_path` for improved configuration flexibility and consistency in bundle management. [PR 1818](https://github.com/shakacode/react_on_rails/pull/1818) by [AbanoubGhadban](https://github.com/AbanoubGhadban)
29
+
30
+ ### [16.1.0] - 2025-09-23
31
+
32
+ #### New Features
33
+
34
+ - **Server Bundle Security**: Added new configuration options for enhanced server bundle security and organization:
35
+
36
+ - `server_bundle_output_path`: Configurable directory (relative to the Rails root) for server bundle output (default: "ssr-generated"). If set to `nil`, the server bundle will be loaded from the same public directory as client bundles. [PR 1798](https://github.com/shakacode/react_on_rails/pull/1798) by [justin808](https://github.com/justin808)
37
+ - `enforce_private_server_bundles`: When enabled, ensures server bundles are only loaded from private directories outside the public folder (default: false for backward compatibility) [PR 1798](https://github.com/shakacode/react_on_rails/pull/1798) by [justin808](https://github.com/justin808)
38
+
39
+ - **Improved Bundle Path Resolution**: Bundle path resolution for server bundles now works as follows:
40
+
41
+ - If `server_bundle_output_path` is set, the server bundle is loaded from that directory.
42
+ - If `server_bundle_output_path` is not set, the server bundle falls back to the client bundle directory (typically the public output path).
43
+ - If `enforce_private_server_bundles` is enabled:
44
+ - The server bundle will only be loaded from the private directory specified by `server_bundle_output_path`.
45
+ - If the bundle is not found there, it will _not_ fall back to the public directory.
46
+ - If `enforce_private_server_bundles` is not enabled and the bundle is not found in the private directory, it will fall back to the public directory.
47
+ - This logic ensures that, when strict enforcement is enabled, server bundles are never loaded from public directories, improving security and clarity of bundle resolution. [PR 1798](https://github.com/shakacode/react_on_rails/pull/1798) by [justin808](https://github.com/justin808)
48
+
49
+ - **`react_on_rails:doctor` rake task**: New diagnostic command to validate React on Rails setup and identify configuration issues. Provides comprehensive checks for environment prerequisites, dependencies, Rails integration, and Webpack configuration. Use `rake react_on_rails:doctor` to diagnose your setup, with optional `VERBOSE=true` for detailed output. [PR 1791](https://github.com/shakacode/react_on_rails/pull/1791) by [AbanoubGhadban](https://github.com/AbanoubGhadban)
50
+
51
+ #### Deprecations
52
+
53
+ - **Deprecated `generated_assets_dirs` configuration**: The legacy `config.generated_assets_dirs` option is now deprecated and will show a deprecation warning if used. Since Shakapacker is now required, asset paths are automatically determined from `shakapacker.yml` configuration. Remove any `config.generated_assets_dirs` from your `config/initializers/react_on_rails.rb` file. Use `public_output_path` in `config/shakapacker.yml` to customize asset output location instead. [PR 1798](https://github.com/shakacode/react_on_rails/pull/1798) by [justin808](https://github.com/justin808)
54
+
55
+ #### API Improvements
56
+
57
+ - **Method Naming Clarification**: Added `public_bundles_full_path` method to clarify bundle path handling:
58
+ - `public_bundles_full_path`: New method specifically for webpack bundles in public directories
59
+ - `generated_assets_full_path`: Now deprecated (backwards-compatible alias)
60
+ - This eliminates confusion between webpack bundles and general Rails public assets [PR 1798](https://github.com/shakacode/react_on_rails/pull/1798) by [justin808](https://github.com/justin808)
61
+
62
+ #### Security Enhancements
63
+
64
+ - **Private Server Bundle Enforcement**: When `enforce_private_server_bundles` is enabled, server bundles bypass public directory fallbacks and are only loaded from designated private locations [PR 1798](https://github.com/shakacode/react_on_rails/pull/1798) by [justin808](https://github.com/justin808)
65
+ - **Path Validation**: Added validation to ensure `server_bundle_output_path` points to private directories when enforcement is enabled [PR 1798](https://github.com/shakacode/react_on_rails/pull/1798) by [justin808](https://github.com/justin808)
66
+ - **Fixed command injection vulnerabilities**: Replaced unsafe string interpolation in generator package installation commands with secure array-based system calls [PR 1786](https://github.com/shakacode/react_on_rails/pull/1786) by [justin808](https://github.com/justin808)
67
+ - **Improved input validation**: Enhanced package manager validation and argument sanitization across all generators [PR 1786](https://github.com/shakacode/react_on_rails/pull/1786) by [justin808](https://github.com/justin808)
68
+ - **Hardened DOM selectors**: Using `CSS.escape()` and proper JavaScript escaping for XSS protection [PR 1791](https://github.com/shakacode/react_on_rails/pull/1791) by [AbanoubGhadban](https://github.com/AbanoubGhadban)
69
+
70
+ #### Pro License Features
71
+
72
+ - **Core/Pro separation**: Moved Pro features into dedicated `lib/react_on_rails/pro/` and `node_package/src/pro/` directories with clear licensing boundaries [PR 1791](https://github.com/shakacode/react_on_rails/pull/1791) by [AbanoubGhadban](https://github.com/AbanoubGhadban)
73
+ - **Runtime license validation**: Implemented Pro license gating with graceful fallback to core functionality when Pro license unavailable [PR 1791](https://github.com/shakacode/react_on_rails/pull/1791) by [AbanoubGhadban](https://github.com/AbanoubGhadban)
74
+ - **Enhanced immediate hydration**: Improved immediate hydration functionality with Pro license validation and warning badges [PR 1791](https://github.com/shakacode/react_on_rails/pull/1791) by [AbanoubGhadban](https://github.com/AbanoubGhadban)
75
+ - **License documentation**: Added NOTICE files in Pro directories referencing canonical `REACT-ON-RAILS-PRO-LICENSE.md` [PR 1791](https://github.com/shakacode/react_on_rails/pull/1791) by [AbanoubGhadban](https://github.com/AbanoubGhadban)
76
+
77
+ #### Generator Improvements
78
+
79
+ - **Modern TypeScript patterns**: Generators now produce more idiomatic TypeScript code with improved type inference instead of explicit type annotations [PR 1786](https://github.com/shakacode/react_on_rails/pull/1786) by [justin808](https://github.com/justin808)
80
+ - **Optimized tsconfig.json**: Updated compiler options to use `"moduleResolution": "bundler"` for better bundler compatibility [PR 1786](https://github.com/shakacode/react_on_rails/pull/1786) by [justin808](https://github.com/justin808)
81
+ - **Enhanced Redux TypeScript integration**: Improved type safety and modern React patterns (useMemo, type-only imports) [PR 1786](https://github.com/shakacode/react_on_rails/pull/1786) by [justin808](https://github.com/justin808)
82
+ - **Smart bin/dev defaults**: Generated `bin/dev` script now automatically navigates to `/hello_world` route for immediate component visibility [PR 1786](https://github.com/shakacode/react_on_rails/pull/1786) by [justin808](https://github.com/justin808)
83
+ - **Better component templates**: Removed unnecessary type annotations while maintaining type safety through TypeScript's inference [PR 1786](https://github.com/shakacode/react_on_rails/pull/1786) by [justin808](https://github.com/justin808)
84
+ - **Cleaner generated code**: Streamlined templates following modern React and TypeScript best practices [PR 1786](https://github.com/shakacode/react_on_rails/pull/1786) by [justin808](https://github.com/justin808)
85
+ - **Improved helper methods**: Added reusable `component_extension` helper for consistent file extension handling [PR 1786](https://github.com/shakacode/react_on_rails/pull/1786) by [justin808](https://github.com/justin808)
86
+
87
+ #### Bug Fixes
88
+
89
+ - **Doctor rake task**: Fixed LoadError in `rake react_on_rails:doctor` when using packaged gem. The task was trying to require excluded `rakelib/task_helpers` file. [PR 1795](https://github.com/shakacode/react_on_rails/pull/1795) by [justin808](https://github.com/justin808)
90
+ - **Packs generator**: Fixed error when `server_bundle_js_file` configuration is empty (default). Added safety check to prevent attempting operations on invalid file paths when server-side rendering is not configured. [PR 1802](https://github.com/shakacode/react_on_rails/pull/1802) by [justin808](https://github.com/justin808)
91
+ - **Non-Packer Environment Compatibility**: Fixed potential NoMethodError when using bundle path resolution in environments without Shakapacker [PR 1798](https://github.com/shakacode/react_on_rails/pull/1798) by [justin808](https://github.com/justin808)
92
+ - **Shakapacker version requirements**: Fixed inconsistent version requirements between basic pack generation (6.5.1+) and advanced auto-bundling features (7.0.0+). Added backward compatibility for users on Shakapacker 6.5.1-6.9.x while providing clear upgrade guidance for advanced features. Added new constants `MINIMUM_SHAKAPACKER_VERSION_FOR_AUTO_BUNDLING` and improved version checking performance with caching. [PR 1798](https://github.com/shakacode/react_on_rails/pull/1798) by [justin808](https://github.com/justin808)
93
+
94
+ #### Code Improvements
95
+
96
+ - **PackerUtils abstraction removal**: Removed unnecessary `PackerUtils.packer` abstraction method and replaced all calls with direct `::Shakapacker` usage. This simplifies the codebase by eliminating an abstraction layer that was originally created to support multiple webpack tools but is no longer needed since we only support Shakapacker. All tests updated accordingly. [PR 1798](https://github.com/shakacode/react_on_rails/pull/1798) by [claude-code](https://claude.ai/code)
97
+ - **Architecture refactoring**: Centralized Pro utilities and clean separation between core and Pro helper functionality [PR 1791](https://github.com/shakacode/react_on_rails/pull/1791) by [AbanoubGhadban](https://github.com/AbanoubGhadban)
98
+
99
+ ### [16.0.0] - 2025-09-16
100
+
101
+ **React on Rails v16 is a major release that modernizes the library with ESM support, removes legacy Webpacker compatibility, and introduces significant performance improvements. This release builds on the foundation of v14 with enhanced RSC (React Server Components) support and streamlined configuration.**
102
+
103
+ See [Release Notes](docs/release-notes/16.0.0.md) for complete migration guide.
104
+
105
+ #### Major Enhancements
106
+
107
+ **🚀 React Server Components (RSC) -- Requires React on Rails Pro**
108
+
109
+ - **Enhanced RSC rendering flow**: Eliminated double rendering and reduced HTTP requests
110
+ - **`RSCRoute` component**: Seamless server-side rendering with automatic payload injection and hydration [PR 1696](https://github.com/shakacode/react_on_rails/pull/1696) by [AbanoubGhadban](https://github.com/AbanoubGhadban)
111
+ - **Optimized RSC payload injection**: Now injected after component HTML markup for better performance [PR 1738](https://github.com/shakacode/react_on_rails/pull/1738) by [AbanoubGhadban](https://github.com/AbanoubGhadban)
112
+ - **Communication protocol v2.0.0**: Supports uploading multiple bundles at once for improved efficiency
113
+
114
+ **⚡ Performance & Loading Strategy**
115
+
116
+ - **New `generated_component_packs_loading_strategy`**: Choose from `sync`, `async`, or `defer` strategies [PR 1712](https://github.com/shakacode/react_on_rails/pull/1712) by [AbanoubGhadban](https://github.com/AbanoubGhadban)
117
+ - **Async render function support**: Components can now return from async render functions [PR 1720](https://github.com/shakacode/react_on_rails/pull/1720) by [AbanoubGhadban](https://github.com/AbanoubGhadban)
118
+ - **Optimized client imports**: Generated packs now import from `react-on-rails/client` for better tree-shaking [PR 1706](https://github.com/shakacode/react_on_rails/pull/1706) by [alexeyr-ci](https://github.com/alexeyr-ci)
119
+
120
+ #### Developer Experience
121
+
122
+ - **Enhanced error messaging**: Clearer troubleshooting steps and prominent optimization warnings
123
+ - **Modern global access**: Using `globalThis` instead of window/global detection [PR 1727](https://github.com/shakacode/react_on_rails/pull/1727) by [alexeyr-ci2](https://github.com/alexeyr-ci2)
124
+ - **Simplified CI configuration**: Clear `minimum`/`latest` dependency naming instead of `oldest`/`newest`
125
+ - **ReactRefreshWebpackPlugin v0.6.0 support**: Added conditional logic for proper configuration [PR 1748](https://github.com/shakacode/react_on_rails/pull/1748) by [judahmeek](https://github.com/judahmeek)
126
+ - **Version validation improvements**: Fixed invalid warnings with pre-release versions [PR 1742](https://github.com/shakacode/react_on_rails/pull/1742) by [alexeyr-ci2](https://github.com/alexeyr-ci2)
127
+
128
+ #### Breaking Changes
129
+
130
+ **🔧 Webpacker Support Removed**
131
+
132
+ - **Complete removal of Webpacker support**. Shakapacker >= 6.0 is now required.
133
+ - Migration:
134
+ - Remove `webpacker` gem from your Gemfile
135
+ - Install `shakapacker` gem version 6.0+ (8.0+ recommended)
136
+ - Replace `bin/webpacker` commands with `bin/shakapacker`
137
+ - Update webpacker configuration files to shakapacker equivalents
138
+ - Removed files: `rakelib/webpacker_examples.rake`, `lib/generators/react_on_rails/adapt_for_older_shakapacker_generator.rb`
139
+
140
+ **📦 Package System Modernization**
141
+
142
+ - **ESM-only package**: CommonJS `require()` no longer supported
143
+ - Migration:
144
+ - Replace `require('react-on-rails')` with `import ReactOnRails from 'react-on-rails'`
145
+ - For Node.js < 20.19.0, upgrade or use dynamic imports
146
+ - For TypeScript errors, upgrade to TypeScript 5.8+ and set `module: "nodenext"`
147
+
148
+ **⚡ Configuration API Changes**
149
+
150
+ - **`defer_generated_component_packs` deprecated** → use `generated_component_packs_loading_strategy`
151
+ - Migration:
152
+
153
+ - `defer_generated_component_packs: true` → `generated_component_packs_loading_strategy: :defer`
154
+ - `defer_generated_component_packs: false` → `generated_component_packs_loading_strategy: :sync`
155
+ - Recommended: `generated_component_packs_loading_strategy: :async` for best performance
156
+
157
+ - **`force_load` renamed to `immediate_hydration`** for API clarity
158
+ - Migration:
159
+ - `config.force_load = true` → `config.immediate_hydration = true`
160
+ - `react_component(force_load: true)` → `react_component(immediate_hydration: true)`
161
+ - `redux_store(force_load: true)` → `redux_store(immediate_hydration: true)`
162
+ - Note: `immediate_hydration` requires React on Rails Pro license
163
+
164
+ **🔄 Async API Changes**
165
+
166
+ - **`ReactOnRails.reactOnRailsPageLoaded()` is now async**
167
+ - Migration: Add `await` when calling: `await ReactOnRails.reactOnRailsPageLoaded()`
168
+
169
+ **🏗️ Runtime Suggested Versions**
170
+
171
+ - Ruby: 3.2 - 3.4 (was 3.0 - 3.3)
172
+ - Node.js: 20 - 22 (was 16 - 20)
173
+ - Note: These are CI-tested versions; older versions may work but aren't guaranteed
174
+
175
+ **🎯 Generator Improvements**
176
+
177
+ - Install generator now validates JavaScript package manager presence
178
+ - Improved error handling with `Thor::Error` instead of `exit(1)`
179
+ - Enhanced error messages with clearer troubleshooting steps
180
+
181
+ ### [15.0.0] - 2025-08-28 - RETRACTED
182
+
183
+ **⚠️ This version has been retracted due to API design issues. Please upgrade directly to v16.0.0.**
184
+
185
+ The `force_load` feature was incorrectly available without a Pro license and has been renamed to `immediate_hydration` for better clarity. All features from v15 are available in v16 with the corrected API.
186
+
187
+ ### [14.2.0] - 2025-03-03
188
+
21
189
  #### Added
190
+
22
191
  - Add export option 'react-on-rails/client' to avoid shipping server-rendering code to browsers (~5KB improvement) [PR 1697](https://github.com/shakacode/react_on_rails/pull/1697) by [Romex91](https://github.com/Romex91).
23
192
 
24
193
  #### Fixed
194
+
25
195
  - Fix obscure errors by introducing FULL_TEXT_ERRORS [PR 1695](https://github.com/shakacode/react_on_rails/pull/1695) by [Romex91](https://github.com/Romex91).
26
196
  - Disable `esModuleInterop` to increase interoperability [PR 1699](https://github.com/shakacode/react_on_rails/pull/1699) by [alexeyr-ci](https://github.com/alexeyr-ci).
27
197
  - Resolved 14.1.1 incompatibility with eslint & made sure that spec/dummy is linted by eslint. [PR 1693](https://github.com/shakacode/react_on_rails/pull/1693) by [judahmeek](https://github.com/judahmeek).
28
198
 
29
199
  #### Changed
200
+
30
201
  - More up-to-date TS config [PR 1700](https://github.com/shakacode/react_on_rails/pull/1700) by [alexeyr-ci](https://github.com/alexeyr-ci).
31
202
 
32
203
  ### [14.1.1] - 2025-01-15
33
204
 
34
205
  #### Fixed
35
206
 
36
- - Separated streamServerRenderedReactComponent from the ReactOnRails object in order to stop users from getting errors during webpack compilation about needing the `stream-browserify` package. [PR 1680](https://github.com/shakacode/react_on_rails/pull/1680) by [judahmeek](https://github.com/judahmeek).
207
+ - Separated streamServerRenderedReactComponent from the ReactOnRails object in order to stop users from getting errors during Webpack compilation about needing the `stream-browserify` package. [PR 1680](https://github.com/shakacode/react_on_rails/pull/1680) by [judahmeek](https://github.com/judahmeek).
37
208
  - Removed obsolete `js-yaml` peer dependency. [PR 1678](https://github.com/shakacode/react_on_rails/pull/1678) by [alexeyr-ci](https://github.com/alexeyr-ci).
38
209
 
39
210
  ### [14.1.0] - 2025-01-06
@@ -46,6 +217,7 @@ Changes since the last non-beta release.
46
217
  - Enable use as a `git:` dependency. [PR 1664](https://github.com/shakacode/react_on_rails/pull/1664) by [alexeyr-ci](https://github.com/alexeyr-ci).
47
218
 
48
219
  #### Added
220
+
49
221
  - Added streaming server rendering support:
50
222
  - [PR #1633](https://github.com/shakacode/react_on_rails/pull/1633) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
51
223
  - New `stream_react_component` helper for adding streamed components to views
@@ -56,23 +228,29 @@ Changes since the last non-beta release.
56
228
  - Added support for passing options to `YAML.safe_load` when loading locale files with `config.i18n_yml_safe_load_options`. [PR #1668](https://github.com/shakacode/react_on_rails/pull/1668) by [dzirtusss](https://github.com/dzirtusss).
57
229
 
58
230
  #### Changed
231
+
59
232
  - Console replay script generation now awaits the render request promise before generating, allowing it to capture console logs from asynchronous operations. This requires using a version of the Node renderer that supports replaying async console logs. [PR #1649](https://github.com/shakacode/react_on_rails/pull/1649) by [AbanoubGhadban](https://github.com/AbanoubGhadban).
60
233
 
61
234
  ### [14.0.5] - 2024-08-20
235
+
62
236
  #### Fixed
237
+
63
238
  - Should force load react-components which send over turbo-stream [PR #1620](https://github.com/shakacode/react_on_rails/pull/1620) by [theforestvn88](https://github.com/theforestvn88).
64
239
 
65
240
  ### [14.0.4] - 2024-07-02
66
241
 
67
242
  #### Improved
243
+
68
244
  - Improved dependency management by integrating package_json. [PR 1639](https://github.com/shakacode/react_on_rails/pull/1639) by [vaukalak](https://github.com/vaukalak).
69
245
 
70
246
  #### Changed
247
+
71
248
  - Update outdated GitHub Actions to use Node.js 20.0 versions instead [PR 1623](https://github.com/shakacode/react_on_rails/pull/1623) by [adriangohjw](https://github.com/adriangohjw).
72
249
 
73
250
  ### [14.0.3] - 2024-06-28
74
251
 
75
252
  #### Fixed
253
+
76
254
  - Fixed css-loader installation with [PR 1634](https://github.com/shakacode/react_on_rails/pull/1634) by [vaukalak](https://github.com/vaukalak).
77
255
  - Address a number of typos and grammar mistakes [PR 1631](https://github.com/shakacode/react_on_rails/pull/1631) by [G-Rath](https://github.com/G-Rath).
78
256
  - Adds an adapter module & improves test suite to support all versions of Shakapacker. [PR 1622](https://github.com/shakacode/react_on_rails/pull/1622) by [adriangohjw](https://github.com/adriangohjw) and [judahmeek](https://github.com/judahmeek).
@@ -80,96 +258,121 @@ Changes since the last non-beta release.
80
258
  ### [14.0.2] - 2024-06-11
81
259
 
82
260
  #### Fixed
261
+
83
262
  - Generator errors with Shakapacker v8+ fixed [PR 1629](https://github.com/shakacode/react_on_rails/pull/1629) by [vaukalak](https://github.com/vaukalak)
84
263
 
85
264
  ### [14.0.1] - 2024-05-16
86
265
 
87
266
  #### Fixed
267
+
88
268
  - Pack Generation: Added functionality that will add an import statement, if missing, to the server bundle entry point even if the auto-bundle generated files still exist [PR 1610](https://github.com/shakacode/react_on_rails/pull/1610) by [judahmeek](https://github.com/judahmeek).
89
269
 
90
270
  ### [14.0.0] - 2024-04-03
271
+
91
272
  _Major bump because dropping support for Ruby 2.7 and deprecated `webpackConfigLoader.js`._
92
273
 
93
274
  #### Removed
275
+
94
276
  - Dropped Ruby 2.7 support [PR 1595](https://github.com/shakacode/react_on_rails/pull/1595) by [ahangarha](https://github.com/ahangarha).
95
277
  - Removed deprecated `webpackConfigLoader.js` [PR 1600](https://github.com/shakacode/react_on_rails/pull/1600) by [ahangarha](https://github.com/ahangarha).
96
278
 
97
279
  #### Fixed
280
+
98
281
  - Trimmed the Gem to remove package.json which could cause superflous security warnings. [PR 1605](https://github.com/shakacode/react_on_rails/pull/1605) by [justin808](https://github.com/justin808).
99
282
  - Prevent displaying the deprecation message for using `webpacker_precompile?` method and `webpacker:clean` rake task when using Shakapacker v7+ [PR 1592](https://github.com/shakacode/react_on_rails/pull/1592) by [ahangarha](https://github.com/ahangarha).
100
283
  - Fixed Typescript types for ServerRenderResult, ReactComponent, RenderFunction, and RailsContext interfaces. [PR 1582](https://github.com/shakacode/react_on_rails/pull/1582) & [PR 1585](https://github.com/shakacode/react_on_rails/pull/1585) by [kotarella1110](https://github.com/kotarella1110)
101
284
  - Removed a workaround in `JsonOutput#escape` for an no-longer supported Rails version. Additionally, removed `Utils.rails_version_less_than_4_1_1`
102
- which was only used in the workaround. [PR 1580](https://github.com/shakacode/react_on_rails/pull/1580) by [wwahammy](https://github.com/wwahammy)
285
+ which was only used in the workaround. [PR 1580](https://github.com/shakacode/react_on_rails/pull/1580) by [wwahammy](https://github.com/wwahammy)
103
286
 
104
287
  #### Added
288
+
105
289
  - Exposed TypeScript all types [PR 1586](https://github.com/shakacode/react_on_rails/pull/1586) by [kotarella1110](https://github.com/kotarella1110)
106
290
 
107
291
  ### [13.4.0] - 2023-07-30
292
+
108
293
  #### Fixed
294
+
109
295
  - Fixed Pack Generation logic during `assets:precompile` if `auto_load_bundle` is `false` & `components_subdirectory` is not set. [PR 1567](https://github.com/shakacode/react_on_rails/pull/1545) by [blackjack26](https://github.com/blackjack26) & [judahmeek](https://github.com/judahmeek).
110
296
 
111
297
  #### Improved
298
+
112
299
  - Improved performance by removing an unnecessary JS eval from Ruby. [PR 1544](https://github.com/shakacode/react_on_rails/pull/1544) by [wyattades](https://github.com/wyattades).
113
300
 
114
301
  #### Added
302
+
115
303
  - Added support for Shakapacker 7 in install generator [PR 1548](https://github.com/shakacode/react_on_rails/pull/1548) by [ahangarha](https://github.com/ahangarha).
116
304
 
117
305
  #### Changed
306
+
118
307
  - Throw error when attempting to redefine ReactOnRails. [PR 1562](https://github.com/shakacode/react_on_rails/pull/1562) by [rubenochiavone](https://github.com/rubenochiavone).
119
308
  - Prevent generating FS-based packs when `component_subdirectory` configuration is not present. [PR 1567](https://github.com/shakacode/react_on_rails/pull/1567) by [blackjack26](https://github.com/blackjack26).
120
309
  - Removed a requirement for autoloaded pack files to be generated as part of CI or deployment separate from initial Shakapacker bundling. [PR 1545](https://github.com/shakacode/react_on_rails/pull/1545) by [judahmeek](https://github.com/judahmeek).
121
310
 
122
-
123
311
  ### [13.3.5] - 2023-05-31
312
+
124
313
  #### Fixed
125
- - Fixed race condition where a react component could attempt to initialize before it had been registered. [PR 1540](https://github.com/shakacode/react_on_rails/pull/1540) by [judahmeek](https://github.com/judahmeek).
314
+
315
+ - Fixed race condition where a React component could attempt to initialize before it had been registered. [PR 1540](https://github.com/shakacode/react_on_rails/pull/1540) by [judahmeek](https://github.com/judahmeek).
126
316
 
127
317
  ### [13.3.4] - 2023-05-23
128
318
 
129
319
  #### Added
320
+
130
321
  - Improved functionality of Filesystem-based pack generation & auto-bundling. Added `make_generated_server_bundle_the_entrypoint` configuration key. [PR 1531](https://github.com/shakacode/react_on_rails/pull/1531) by [judahmeek](https://github.com/judahmeek).
131
322
 
132
323
  #### Removed
324
+
133
325
  - Removed unneeded `HMR=true` from `Procfile.dev` in install template [PR 1537](https://github.com/shakacode/react_on_rails/pull/1537) by [ahangarha](https://github.com/ahangarha).
134
326
 
135
327
  ### [13.3.3] - 2023-03-21
136
328
 
137
329
  #### Fixed
330
+
138
331
  - Fixed bug regarding loading FS-based packs. [PR 1527](https://github.com/shakacode/react_on_rails/pull/1527) by [judahmeek](https://github.com/judahmeek).
139
332
 
140
333
  ### [13.3.2] - 2023-02-24
141
334
 
142
335
  #### Fixed
336
+
143
337
  - Fixed the bug in `bin/dev` and `bin/dev-static` scripts by using `system` instead of `exec` and remove option to pass arguments [PR 1519](https://github.com/shakacode/react_on_rails/pull/1519) by [ahangarha](https://github.com/ahangarha).
144
338
 
145
339
  ### [13.3.1] - 2023-01-30
340
+
146
341
  #### Added
342
+
147
343
  - Optimized `ReactOnRails::TestHelper`'s RSpec integration using `when_first_matching_example_defined`. [PR 1496](https://github.com/shakacode/react_on_rails/pull/1496) by [mcls](https://github.com/mcls).
148
-
344
+
149
345
  #### Fixed
346
+
150
347
  - Fixed bug regarding FS-based packs generation. [PR 1515](https://github.com/shakacode/react_on_rails/pull/1515) by [pulkitkkr](https://github.com/pulkitkkr).
151
348
 
152
349
  ### [13.3.0] - 2023-01-29
350
+
153
351
  #### Fixed
352
+
154
353
  - Fixed pack not found warning while using `react_component` and `react_component_hash` helpers, even when corresponding chunks are present. [PR 1511](https://github.com/shakacode/react_on_rails/pull/1511) by [pulkitkkr](https://github.com/pulkitkkr).
155
- - Fixed FS-based packs generation functionality to trigger pack generation on the creation of a new react component inside `components_subdirectory`. [PR 1506](https://github.com/shakacode/react_on_rails/pull/1506) by [pulkitkkr](https://github.com/pulkitkkr).
354
+ - Fixed FS-based packs generation functionality to trigger pack generation on the creation of a new React component inside `components_subdirectory`. [PR 1506](https://github.com/shakacode/react_on_rails/pull/1506) by [pulkitkkr](https://github.com/pulkitkkr).
156
355
  - Upgrade several JS dependencies to fix security issues. [PR 1514](https://github.com/shakacode/react_on_rails/pull/1514) by [ahangarha](https://github.com/ahangarha).
157
356
 
158
357
  #### Added
358
+
159
359
  - Added `./bin/dev` and `./bin/dev-static` executables to ease and standardize running the dev server. [PR 1491](https://github.com/shakacode/react_on_rails/pull/1491) by [ahangarha](https://github.com/ahangarha).
160
360
 
161
361
  ### [13.2.0] - 2022-12-23
162
-
362
+
163
363
  #### Fixed
364
+
164
365
  - Fix reactOnRailsPageUnloaded when there is no component on the page. Important for apps using both hotwire and react_on_rails. [PR 1498](https://github.com/shakacode/react_on_rails/pull/1498) by [NhanHo](https://github.com/NhanHo).
165
366
  - Fixing wrong type. The throwIfMissing param of getStore should be optional as it defaults to true. [PR 1480](https://github.com/shakacode/react_on_rails/pull/1480) by [wouldntsavezion](https://github.com/wouldntsavezion).
166
367
 
167
368
  #### Added
369
+
168
370
  - Exposed `reactHydrateOrRender` utility via [PR 1481](https://github.com/shakacode/react_on_rails/pull/1481) by [vaukalak](https://github.com/vaukalak).
169
371
 
170
372
  ### [13.1.0] - 2022-08-20
171
373
 
172
374
  #### Improved
375
+
173
376
  - Removed addition of `mini_racer` gem by default. [PR 1453](https://github.com/shakacode/react_on_rails/pull/1453) by [vtamara](https://github.com/vtamara) and [tomdracz](https://github.com/tomdracz).
174
377
 
175
378
  Using `mini_racer` makes most sense when deploying or building in environments that do not have Javascript runtime present. Since `react_on_rails` requires Node.js, there's no reason to override `ExecJS` runtime with `mini_racer`.
@@ -181,62 +384,80 @@ which was only used in the workaround. [PR 1580](https://github.com/shakacode/re
181
384
  - Added file-system-based automatic bundle generation feature. [PR 1455](https://github.com/shakacode/react_on_rails/pull/1455) by [pulkitkkr](https://github.com/pulkitkkr).
182
385
 
183
386
  #### Fixed
387
+
184
388
  - Correctly unmount roots under React 18. [PR 1466](https://github.com/shakacode/react_on_rails/pull/1466) by [alexeyr](https://github.com/alexeyr).
185
389
 
186
390
  - Fixed the `You are importing hydrateRoot from "react-dom" [...] You should instead import it from "react-dom/client"` warning under React 18 ([#1441](https://github.com/shakacode/react_on_rails/issues/1441)). [PR 1460](https://github.com/shakacode/react_on_rails/pull/1460) by [alexeyr](https://github.com/alexeyr).
187
391
 
188
392
  In exchange, you may see a warning like this when building using any version of React below 18:
393
+
189
394
  ```
190
395
  WARNING in ./node_modules/react-on-rails/node_package/lib/reactHydrateOrRender.js19:25-52
191
396
  Module not found: Error: Can't resolve 'react-dom/client' in '/home/runner/work/react_on_rails/react_on_rails/spec/dummy/node_modules/react-on-rails/node_package/lib'
192
397
  @ ./node_modules/react-on-rails/node_package/lib/ReactOnRails.js 34:45-78
193
398
  @ ./client/app/packs/client-bundle.js 5:0-42 32:0-23 35:0-21 59:0-26
194
399
  ```
400
+
195
401
  It can be safely [suppressed](https://webpack.js.org/configuration/other-options/#ignorewarnings) in your Webpack configuration.
196
402
 
197
403
  ### [13.0.2] - 2022-03-09
404
+
198
405
  #### Fixed
406
+
199
407
  - React 16 doesn't support version property, causing problems loading React on Rails. [PR 1435](https://github.com/shakacode/react_on_rails/pull/1435) by [justin808](https://github.com/justin808).
200
408
 
201
409
  ### [13.0.1] - 2022-02-09
410
+
202
411
  #### Improved
412
+
203
413
  - Updated the default generator. [PR 1431](https://github.com/shakacode/react_on_rails/pull/1431) by [justin808](https://github.com/justin808).
204
414
 
205
415
  ### [13.0.0] - 2022-02-08
416
+
206
417
  #### Breaking
418
+
207
419
  - Removed webpacker as a dependency. Add gem Shakapacker to your project, and update your package.json to also use shakapacker.
208
420
 
209
421
  #### Fixed
422
+
210
423
  - Proper throwing of exceptions.
211
424
  - Default configuration better handles test env.
212
425
 
213
426
  ### [12.6.0] - 2022-01-22
214
427
 
215
428
  #### Added
429
+
216
430
  - A `rendering_props_extension` configuration which takes a module with an `adjust_props_for_client_side_hydration` method, which is used to process props differently for server/client if `prerender` is set to `true`. [PR 1413](https://github.com/shakacode/react_on_rails/pull/1413) by [gscarv13](https://github.com/gscarv13) & [judahmeek](https://github.com/judahmeek).
217
431
 
218
432
  ### [12.5.2] - 2021-12-29
433
+
219
434
  #### Fixed
435
+
220
436
  - Usage of config.build_production_command for custom command for production builds fixed. [PR 1415](https://github.com/shakacode/react_on_rails/pull/1415) by [judahmeek](https://github.com/judahmeek).
221
437
 
222
438
  ### [12.5.1] - 2021-12-27
223
439
 
224
440
  #### Fixed
441
+
225
442
  - A fatal server rendering error if running an ReactOnRails >=12.4.0 with ReactOnRails Pro <2.4.0. [PR 1412](https://github.com/shakacode/react_on_rails/pull/1412) by [judahmeek](https://github.com/judahmeek).
226
443
 
227
444
  ### [12.5.0] - 2021-12-26
228
445
 
229
446
  #### Added
447
+
230
448
  - Support for React 18, including the changed SSR API. [PR 1409](https://github.com/shakacode/react_on_rails/pull/1409) by [kylemellander](https://github.com/kylemellander).
231
- - Added webpack configuration files as part of the generator and updated webpacker to version 6. [PR 1404](https://github.com/shakacode/react_on_rails/pull/1404) by [gscarv13](https://github.com/gscarv13).
449
+ - Added Webpack configuration files as part of the generator and updated webpacker to version 6. [PR 1404](https://github.com/shakacode/react_on_rails/pull/1404) by [gscarv13](https://github.com/gscarv13).
232
450
  - Supports Rails 7.
233
451
 
234
452
  #### Changed
235
- - Changed logic of determining the usage of the default rails/webpacker webpack config or a custom command to only check if the config.build_production_command is defined. [PR 1402](https://github.com/shakacode/react_on_rails/pull/1402) by [justin808](https://github.com/justin808) and [gscarv13](https://github.com/gscarv13).
453
+
454
+ - Changed logic of determining the usage of the default rails/webpacker Webpack config or a custom command to only check if the config.build_production_command is defined. [PR 1402](https://github.com/shakacode/react_on_rails/pull/1402) by [justin808](https://github.com/justin808) and [gscarv13](https://github.com/gscarv13).
236
455
  - Minimum required Ruby is 2.7 to match latest rails/webpacker.
237
456
 
238
457
  ### [12.4.0] - 2021-09-22
458
+
239
459
  #### Added
460
+
240
461
  - ScoutAPM tracing support for server rendering [PR 1379](https://github.com/shakacode/react_on_rails/pull/1379) by [justin808](https://github.com/justin808).
241
462
 
242
463
  - Ability to stop React on Rails from modifying or creating the `assets:precompile` task. [PR 1371](https://github.com/shakacode/react_on_rails/pull/1371) by [justin808](https://github.com/justin808). Thanks to [elstgav](https://github.com/elstgav) for [the suggestion](https://github.com/shakacode/react_on_rails/issues/1368)!
@@ -244,30 +465,41 @@ which was only used in the workaround. [PR 1580](https://github.com/shakacode/re
244
465
  - Added the ability to have render functions return a promise to be awaited by React on Rails Pro Node Renderer. [PR 1380](https://github.com/shakacode/react_on_rails/pull/1380) by [judahmeek](https://github.com/judahmeek)
245
466
 
246
467
  ### [12.3.0] - 2021-07-26
468
+
247
469
  #### Added
470
+
248
471
  - Ability to use with Turbo (@hotwired/turbo), as Turbolinks gets obsolete. [PR 1374](https://github.com/shakacode/react_on_rails/pull/1374) by [pgruener](https://github.com/pgruener) and [PR 1377](https://github.com/shakacode/react_on_rails/pull/1377) by [mdesantis](https://github.com/mdesantis).
249
472
 
250
473
  To configure turbo the following option can be set:
251
474
  `ReactOnRails.setOptions({ turbo: true })`
252
475
 
253
476
  ### [12.2.0] - 2021-03-25
477
+
254
478
  #### Added
255
- - Ability to configure server react rendering to throw rather than just logging the error. Useful for
479
+
480
+ - Ability to configure server React rendering to throw rather than just logging the error. Useful for
256
481
  React on Rails Pro Node rendering [PR 1365](https://github.com/shakacode/react_on_rails/pull/1365) by [justin808](https://github.com/justin808).
257
482
 
258
483
  ### [12.1.0] - 2021-03-23
484
+
259
485
  #### Added
486
+
260
487
  - Added the ability to assign a module with a `call` method to `config.build_production_command`. See [the configuration docs](https://www.shakacode.com/react-on-rails/docs/guides/configuration). [PR 1362: Accept custom module for config.build_production_command](https://github.com/shakacode/react_on_rails/pull/1362).
261
488
 
262
489
  #### Fixed
490
+
263
491
  - Stop setting NODE_ENV value during precompile, as it interfered with rails/webpacker's setting of NODE_ENV to production by default. Fixes [#1334](https://github.com/shakacode/react_on_rails/issues/1334). [PR 1356: Don't set NODE_ENV in assets.rake](https://github.com/shakacode/react_on_rails/pull/1356) by [alexrozanski](https://github.com/alexrozanski).
264
492
 
265
493
  ### [12.0.4] - 2020-11-14
494
+
266
495
  #### Fixed
496
+
267
497
  - Install generator now specifies the version. Fixes [React on Rails Generator installs the older npm package #1336](https://github.com/shakacode/react_on_rails/issues/1336). [PR 1338: Fix Generator to use Exact NPM Version](https://github.com/shakacode/react_on_rails/pull/1338) by [justin808](https://github.com/justin808).
268
498
 
269
499
  ### [12.0.3] - 2020-09-20
500
+
270
501
  #### Fixed
502
+
271
503
  - Async script loading optimizes page load speed. With this fix, a bundle
272
504
  can be loaded "async" and a handler function can determine when to hydrate.
273
505
  For an example of this, see the [docs for loadable-components SSR](https://loadable-components.com/docs/server-side-rendering/#4-add-loadableready-client-side).
@@ -275,23 +507,30 @@ which was only used in the workaround. [PR 1580](https://github.com/shakacode/re
275
507
  Loadable-Components is supported by [React on Rails Pro](https://www.shakacode.com/react-on-rails-pro).
276
508
 
277
509
  ### [12.0.2] - 2020-07-09
510
+
278
511
  #### Fixed
512
+
279
513
  - Remove dependency upon Redux for Typescript types. [PR 1323](https://github.com/shakacode/react_on_rails/pull/1323) by [justin808](https://github.com/justin808).
280
514
 
281
515
  ### [12.0.1] - 2020-07-09
516
+
282
517
  #### Fixed
518
+
283
519
  - Changed invocation of webpacker:clean to use a very large number of versions so it does not accidentally delete the server-bundle.js. [PR 1306](https://github.com/shakacode/react_on_rails/pull/1306) by By [justin808](https://github.com/justin808).
284
520
 
285
521
  ### [12.0.0] - 2020-07-08
522
+
286
523
  For upgrade instructions, see [docs/guides/upgrading-react-on-rails.md](https://www.shakacode.com/react-on-rails/docs/guides/upgrading-react-on-rails).
287
524
 
288
525
  #### Major Improvements
526
+
289
527
  1. **React Hooks Support** for top level components
290
528
  2. **Typescript bindings**
291
529
  3. **rails/webpacker** "just works" with React on Rails by default.
292
530
  4. i18n support for generating a JSON file rather than a JS file.
293
531
 
294
532
  #### BREAKING CHANGE
533
+
295
534
  In order to solve the issues regarding React Hooks compatibility, the number of parameters
296
535
  for functions is used to determine if you have a generator function that will get invoked to
297
536
  return a React component, or you are registering a functional React component. Alternately, you can
@@ -303,19 +542,20 @@ See [docs/guides/upgrading-react-on-rails](https://www.shakacode.com/react-on-ra
303
542
  for details.
304
543
 
305
544
  #### Other Updates
306
- * `react_on_rails` fully supports `rails/webpacker`. The example test app in `spec/dummy` was recently converted over to use rails/webpacker v4+. It's a good example of how to leverage rails/webpacker's webpack configuration for server-side rendering.
307
- * Changed the precompile task to use the rails/webpacker one by default
308
- * Updated generators to use React hooks
309
- * Requires the use of rails/webpacker view helpers
310
- * If the webpacker webpack config files exist, then React on Rails will not override the default
311
- assets:precompile setup by rails/webpacker. If you are not using the rails/webpacker setup for webpack,
545
+
546
+ - `react_on_rails` fully supports `rails/webpacker`. The example test app in `spec/dummy` was recently converted over to use rails/webpacker v4+. It's a good example of how to leverage rails/webpacker's Webpack configuration for server-side rendering.
547
+ - Changed the precompile task to use the rails/webpacker one by default
548
+ - Updated generators to use React hooks
549
+ - Requires the use of rails/webpacker view helpers
550
+ - If the webpacker Webpack config files exist, then React on Rails will not override the default
551
+ assets:precompile set up by rails/webpacker. If you are not using the rails/webpacker setup for Webpack,
312
552
  then be sure to remove the JS files inside of config/webpack, like `config/webpack/production.js.`
313
- * Removed **env_javascript_include_tag** and **env_stylesheet_link_tag** as these are replaced by view helpers
553
+ - Removed **env_javascript_include_tag** and **env_stylesheet_link_tag** as these are replaced by view helpers
314
554
  from rails/webpacker
315
- * Removal of support for old Rubies and Rails.
316
- * Removal of config.symlink_non_digested_assets_regex as it's no longer needed with rails/webpacker.
555
+ - Removal of support for old Rubies and Rails.
556
+ - Removal of config.symlink_non_digested_assets_regex as it's no longer needed with rails/webpacker.
317
557
  If any business needs this, we can move the code to a separate gem.
318
- * Added configuration option `same_bundle_for_client_and_server` with default `false` because
558
+ - Added configuration option `same_bundle_for_client_and_server` with default `false` because
319
559
 
320
560
  1. Production applications would typically have a server bundle that differs from the client bundle
321
561
  2. This change only affects trying to use HMR with react_on_rails with rails/webpacker.
@@ -326,7 +566,7 @@ for details.
326
566
  If you are using the **same bundle for client and server rendering**, then set this configuration option
327
567
  to `true`. By [justin808](https://github.com/shakacode/react_on_rails/pull/1240).
328
568
 
329
- * Added support to export locales in JSON format. New option added `i18n_output_format` which allows to
569
+ - Added support to export locales in JSON format. New option added `i18n_output_format` which allows to
330
570
  specify locales format either `JSON` or `JS`. **`JSON` format is now the default.**
331
571
 
332
572
  **Use this config setting to get the old behavior: config.i18n_output_format = 'js'**
@@ -334,31 +574,40 @@ for details.
334
574
  [PR 1271](https://github.com/shakacode/react_on_rails/pull/1271) by [ashgaliyev](https://github.com/ashgaliyev).
335
575
 
336
576
  - Added Typescript definitions to the Node package. By [justin808](https://github.com/justin808) and [judahmeek](https://github.com/judahmeek) in [PR 1287](https://github.com/shakacode/react_on_rails/pull/1287).
337
- - Removed restriction to keep the server bundle in the same directory with the client bundles. Rails/webpacker 4 has an advanced cleanup that will remove any files in the directory of other webpack files. Removing this restriction allows the server bundle to be created in a sibling directory. By [justin808](https://github.com/shakacode/react_on_rails/pull/1240).
577
+ - Removed restriction to keep the server bundle in the same directory with the client bundles. Rails/webpacker 4 has an advanced cleanup that will remove any files in the directory of other Webpack files. Removing this restriction allows the server bundle to be created in a sibling directory. By [justin808](https://github.com/shakacode/react_on_rails/pull/1240).
338
578
 
339
579
  ### [11.3.0] - 2019-05-24
580
+
340
581
  #### Added
582
+
341
583
  - Added method for retrieving any option from `render_options` [PR 1213](https://github.com/shakacode/react_on_rails/pull/1213)
342
- by [ashgaliyev](https://github.com/ashgaliyev).
584
+ by [ashgaliyev](https://github.com/ashgaliyev).
343
585
 
344
586
  - html_options has an option for 'tag' to set the html tag name like this: `html_options: { tag: "span" }`.
345
- [PR 1208](https://github.com/shakacode/react_on_rails/pull/1208) by [tahsin352](https://github.com/tahsin352).
587
+ [PR 1208](https://github.com/shakacode/react_on_rails/pull/1208) by [tahsin352](https://github.com/tahsin352).
346
588
 
347
589
  ### [11.2.2] - 2018-12-24
590
+
348
591
  #### Improved
592
+
349
593
  - rails_context can more easily be called from controller methods. The mandatory param of server_side has been made optional.
350
594
 
351
595
  ### [11.2.1] - 2018-12-06
596
+
352
597
  ## MIGRATION for v11.2
598
+
353
599
  - If using **React on Rails Pro**, upgrade react_on_rails_pro to a version >= 1.3.
354
600
 
355
601
  #### Improved
602
+
356
603
  - To support React v16, updated API for manually calling `ReactOnRails.render(name, props, domNodeId, hydrate)`. Added 3rd @param hydrate Pass truthy to update server rendered html. Default is falsey Any truthy values calls hydrate rather than render. [PR 1159](https://github.com/shakacode/react_on_rails/pull/1159) by [justin808](https://github.com/justin808) and [coopersamuel](https://github.com/coopersamuel).
357
604
 
358
605
  - Enabled the use of webpack-dev-server with Server-side rendering. [PR 1173](https://github.com/shakacode/react_on_rails/pull/1173) by [justin808](https://github.com/justin808) and [judahmeek](https://github.com/judahmeek).
359
606
 
360
607
  #### Changed
608
+
361
609
  - Changed the default for:
610
+
362
611
  ```rb
363
612
  config.raise_on_prerender_error = Rails.env.development?
364
613
  ```
@@ -367,28 +616,37 @@ by [ashgaliyev](https://github.com/ashgaliyev).
367
616
  [PR 1145](https://github.com/shakacode/react_on_rails/pull/1145) by [justin808](https://github.com/justin808).
368
617
 
369
618
  ### 11.2.0 - 2018-12-06
619
+
370
620
  Do not use. Unpublished. Caused by an issue with the release script.
371
621
 
372
622
  ### [11.1.8] - 2018-10-14
373
623
 
374
624
  #### Improved
625
+
375
626
  - Improved tutorial and support for HMR when using `rails/webpacker` for Webpack configuration. [PR 1156](https://github.com/shakacode/react_on_rails/pull/1156) by [justin808](https://github.com/justin808).
376
627
 
377
628
  ### [11.1.7] - 2018-10-10
629
+
378
630
  #### Fixed
631
+
379
632
  - Fixed bug where intl parsing would fail when trying to parse integers or blank entries. by [sepehr500](https://github.com/sepehr500)
380
633
 
381
634
  ### [11.1.6] - 2018-10-05
635
+
382
636
  #### Fixed
637
+
383
638
  - Fix client startup invoking render prematurely, **AGAIN**. Fix additional cases of client startup failing during interactive readyState". Closes [issue #1150](https://github.com/shakacode/react_on_rails/issues/1150). [PR 1152](https://github.com/shakacode/react_on_rails/pull/1152) by [rakelley](https://github.com/rakelley).
384
639
 
385
640
  ### [11.1.5] - 2018-10-03
641
+
386
642
  #### Fixed
387
- - Fix client startup invoking render prematurely. Closes [issue #1150](https://github.com/shakacode/react_on_rails/issues/1150). [PR 1151](https://github.com/shakacode/react_on_rails/pull/1151) by [rakelley](https://github.com/rakelley).
643
+
644
+ - Fix client startup invoking render prematurely. Closes [issue #1150](https://github.com/shakacode/react_on_rails/issues/1150). [PR 1151](https://github.com/shakacode/react_on_rails/pull/1151) by [rakelley](https://github.com/rakelley).
388
645
 
389
646
  ### [11.1.4] - 2018-09-12
390
647
 
391
648
  #### Fixed
649
+
392
650
  - Ignore Arrays in Rails i18n yml files. [PR 1129](https://github.com/shakacode/react_on_rails/pull/1129) by [vcarel](https://github.com/vcarel).
393
651
  - Fix to apply transform-runtime. And work with Babel 6 and 7. (Include revert of [PR 1136](https://github.com/shakacode/react_on_rails/pull/1136)) [PR 1140](https://github.com/shakacode/react_on_rails/pull/1140) by [Ryunosuke Sato](https://github.com/tricknotes).
394
652
  - Upgrade Babel version to 7 [PR 1141](https://github.com/shakacode/react_on_rails/pull/1141) by [Ryunosuke Sato](https://github.com/tricknotes).
@@ -396,62 +654,83 @@ Do not use. Unpublished. Caused by an issue with the release script.
396
654
  ### [11.1.3] - 2018-08-26
397
655
 
398
656
  #### Fixed
657
+
399
658
  - Don't apply babel-plugin-transform-runtime inside react-on-rails to work with babel 7. [PR 1136](https://github.com/shakacode/react_on_rails/pull/1136) by [Ryunosuke Sato](https://github.com/tricknotes).
400
659
  - Add support for webpacker 4 prereleases. [PR 1134](https://github.com/shakacode/react_on_rails/pull/1134) by [Judahmeek](https://github.com/Judahmeek))
401
660
 
402
661
  ### [11.1.2] - 2018-08-18
403
662
 
404
663
  #### Fixed
664
+
405
665
  - Tests now properly exit if the config.build_test_command fails!
406
666
  - Source path for project using Webpacker would default to "app/javascript" even if when the node_modules
407
667
  directory was set to "client". Fix now makes the configuration of this crystal clear.
408
668
  - renamed method RenderOptions.has_random_dom_id? to RenderOptions.random_dom_id? for rubocop rule.
409
- [PR 1133](https://github.com/shakacode/react_on_rails/pull/1133) by [justin808](https://github.com/justin808)
669
+ [PR 1133](https://github.com/shakacode/react_on_rails/pull/1133) by [justin808](https://github.com/justin808)
410
670
 
411
671
  ### [11.1.1] - 2018-08-09
672
+
412
673
  #### Fixed
674
+
413
675
  - `TRUE` was deprecated in ruby 2.4, using `true` instead. [PR 1128](https://github.com/shakacode/react_on_rails/pull/1128) by [Aguardientico](https://github.com/Aguardientico).
414
676
 
415
677
  ### [11.1.0] - 2018-08-07
678
+
416
679
  #### Added
680
+
417
681
  - Add random dom id option. This new global and react_component helper option allows configuring whether or not React on Rails will automatically add a random id to the DOM node ID. [PR 1121](https://github.com/shakacode/react_on_rails/pull/1121) by [justin808](https://github.com/justin808)
418
- * Added configuration option random_dom_id
419
- * Added method RenderOptions has_random_dom_id?
682
+ - Added configuration option random_dom_id
683
+ - Added method RenderOptions has_random_dom_id?
684
+
420
685
  #### Fixed
686
+
421
687
  - Fix invalid warn directive. [PR 1123](https://github.com/shakacode/react_on_rails/pull/1123) by [mustangostang](https://github.com/mustangostang).
422
688
 
423
689
  ### [11.0.10] - 2018-07-22
690
+
424
691
  #### Fixed
692
+
425
693
  - Much better logging of rendering errors when there are lots of props. Only the a 1,000 chars are logged, and the center is indicated to be truncated. [PR 1117](https://github.com/shakacode/react_on_rails/pull/1117) and [PR 1118](https://github.com/shakacode/react_on_rails/pull/1118) by [justin808](https://github.com/justin808).
426
694
  - Properly clearing hydrated stores when server rendering. [PR 1120](https://github.com/shakacode/react_on_rails/pull/1120) by [squadette](https://github.com/squadette).
427
695
 
428
696
  ### [11.0.9] - 2018-06-24
429
- - Handle <script async> for Webpack bundle transparently. Closes [issue #290](https://github.com/shakacode/react_on_rails/issues/290) [PR 1099](https://github.com/shakacode/react_on_rails/pull/1099) by [squadette](https://github.com/squadette). Merged in [PR 1107]( https://github.com/shakacode/react_on_rails/pull/1107).
697
+
698
+ - Handle <script async> for Webpack bundle transparently. Closes [issue #290](https://github.com/shakacode/react_on_rails/issues/290) [PR 1099](https://github.com/shakacode/react_on_rails/pull/1099) by [squadette](https://github.com/squadette). Merged in [PR 1107](https://github.com/shakacode/react_on_rails/pull/1107).
430
699
 
431
700
  ### [11.0.8] - 2018-06-15
701
+
432
702
  #### Fixed
703
+
433
704
  - HashWithIndifferent access for props threw if used for props. [PR 1100](https://github.com/shakacode/react_on_rails/pull/1100) by [justin808](https://github.com/justin808).
434
705
  - Test helper for detecting stale bundles did not properly handle the case of a server-bundle.js without a hash.[PR 1102](https://github.com/shakacode/react_on_rails/pull/1102) by [justin808](https://github.com/justin808).
435
706
  - Fix test helper determination of stale assets. [PR 1093](https://github.com/shakacode/react_on_rails/pull/1093) by [justin808](https://github.com/justin808).
436
707
 
437
708
  #### Changed
709
+
438
710
  - Document how to manually rehydrate XHR-substituted components on client side. [PR 1095](https://github.com/shakacode/react_on_rails/pull/1095) by [hchevalier](https://github.com/hchevalier).
439
711
 
440
712
  ### [11.0.7] - 2018-05-16
713
+
441
714
  #### Fixed
715
+
442
716
  - Fix npm publishing. [PR 1090](https://github.com/shakacode/react_on_rails/pull/1090) by [justin808](https://github.com/justin808).
443
717
 
444
718
  ### [11.0.6] - 2018-05-15
719
+
445
720
  #### Changed
721
+
446
722
  - Even more detailed errors for Honeybadger and Sentry when there's a JSON parse error on server rendering. [PR 1086](https://github.com/shakacode/react_on_rails/pull/1086) by [justin808](https://github.com/justin808).
447
723
 
448
724
  ### [11.0.5] - 2018-05-11
725
+
449
726
  #### Changed
727
+
450
728
  - More detailed errors for Honeybadger and Sentry. [PR 1081](https://github.com/shakacode/react_on_rails/pull/1081) by [justin808](https://github.com/justin808).
451
729
 
452
730
  ### [11.0.4] - 2018-05-3
453
731
 
454
732
  #### Changed
733
+
455
734
  - Throw if configuration.generated_assets_dir specified, and using webpacker, and if that doesn't match the public_output_path. Otherwise, warn if generated_assets_dir is specified
456
735
  - Fix the setup for tests for spec/dummy so they automatically rebuild by correctly setting the source_path in the webpacker.yml
457
736
  - Updated documentation for the testing setup.
@@ -461,48 +740,56 @@ Do not use. Unpublished. Caused by an issue with the release script.
461
740
  ### [11.0.3] - 2018-04-24
462
741
 
463
742
  #### Fixed
743
+
464
744
  - Fixed issue with component script initialization when using react_component_hash. [PR 1071](https://github.com/shakacode/react_on_rails/pull/1071) by [jblasco3](https://github.com/jblasco3).
465
745
 
466
746
  ### [11.0.2] - 2018-04-24
467
747
 
468
748
  #### Fixed
749
+
469
750
  - Server rendering error for React on Rails Pro. [PR 1069](https://github.com/shakacode/react_on_rails/pull/1069) by [justin808](https://github.com/justin808).
470
751
 
471
752
  ### [11.0.1] - 2018-04-23
472
753
 
473
754
  #### Added
755
+
474
756
  - `react_component` allows logging_on_server specified at the component level. [PR 1068](https://github.com/shakacode/react_on_rails/pull/1068) by [justin808](https://github.com/justin808).
475
757
 
476
758
  #### Fixed
759
+
477
760
  - Missing class when throwing some error messages. [PR 1068](https://github.com/shakacode/react_on_rails/pull/1068) by [justin808](https://github.com/justin808).
478
761
 
479
762
  ### [11.0.0] - 2018-04-21
480
763
 
481
764
  ## MIGRATION for v11
765
+
482
766
  - Unused `server_render_method` was removed from the configuration. If you want to use a custom renderer, contact justin@shakacode.com. We have a custom node rendering solution in production for egghead.io.
483
767
  - Removed ReactOnRails::Utils.server_bundle_file_name and ReactOnRails::Utils.bundle_file_name. These are part of the performance features of "React on Rails Pro".
484
768
  - Removed ENV["TRACE_REACT_ON_RAILS"] usage and replacing it with config.trace.
485
769
 
486
770
  #### Enhancements: Better Error Messages, Support for React on Rails Pro
771
+
487
772
  - Tracing (debugging) options are simplified with a single `config.trace` setting that defaults to true for development and false otherwise.
488
773
  - Calls to setTimeout, setInterval, clearTimeout will now always log some message if config.trace is true. Your JavaScript code should not be calling setTimout when server rendering.
489
774
  - Errors raised are of type ReactOnRailsError, so you can see they came from React on Rails for debugging.
490
775
  - Removed ReactOnRails::Utils.server_bundle_file_name and ReactOnRails::Utils.bundle_file_name.
491
776
  - No longer logging the `railsContext` when server logging.
492
777
  - Rails.env is provided in the default railsContext, as suggested in [issue #697](https://github.com/shakacode/react_on_rails/issues/697).
493
- [PR 1065](https://github.com/shakacode/react_on_rails/pull/1065) by [justin808](https://github.com/justin808).
778
+ [PR 1065](https://github.com/shakacode/react_on_rails/pull/1065) by [justin808](https://github.com/justin808).
494
779
 
495
780
  #### Fixes
781
+
496
782
  - More exact version checking. We keep the react_on_rails gem and the react-on-rails node package at
497
- the same exact versions so that we can be sure that the interaction between them is precise.
498
- This is so that if a bug is detected after some update, it's critical that
499
- both the gem and the node package get the updates. This change ensures that the package.json specification does not use a
500
- ~ or ^ as reported in [issue #1062](https://github.com/shakacode/react_on_rails/issues/1062). [PR 1063](https://github.com/shakacode/react_on_rails/pull/1063) by [justin808](https://github.com/justin808).
783
+ the same exact versions so that we can be sure that the interaction between them is precise.
784
+ This is so that if a bug is detected after some update, it's critical that
785
+ both the gem and the node package get the updates. This change ensures that the package.json specification does not use a
786
+ ~ or ^ as reported in [issue #1062](https://github.com/shakacode/react_on_rails/issues/1062). [PR 1063](https://github.com/shakacode/react_on_rails/pull/1063) by [justin808](https://github.com/justin808).
501
787
  - Sprockets: Now use the most recent manifest when creating symlinks. See [issue #1023](https://github.com/shakacode/react_on_rails/issues/1023). [PR 1064](https://github.com/shakacode/react_on_rails/pull/1064) by [justin808](https://github.com/justin808).
502
788
 
503
789
  ### [10.1.4] - 2018-04-11
504
790
 
505
791
  #### Fixed
792
+
506
793
  - Changed i18n parsing to convert ruby i18n argument syntax into FormatJS argument syntax. [PR 1046](https://github.com/shakacode/react_on_rails/pull/1046) by [sepehr500](https://github.com/sepehr500).
507
794
 
508
795
  - Fixed an issue where the spec compiler check would fail if the project path contained spaces. [PR 1045](https://github.com/shakacode/react_on_rails/pull/1045) by [andrewmarkle](https://github.com/andrewmarkle).
@@ -510,32 +797,45 @@ both the gem and the node package get the updates. This change ensures that the
510
797
  - Updated the default `build_production_command` that caused production assets to be built with development settings. [PR 1053](https://github.com/shakacode/react_on_rails/pull/1053) by [Roman Kushnir](https://github.com/RKushnir).
511
798
 
512
799
  ### [10.1.3] - 2018-02-28
800
+
513
801
  #### Fixed
802
+
514
803
  - Improved error reporting on version mismatches between Javascript and Ruby packages. [PR 1025](https://github.com/shakacode/react_on_rails/pull/1025) by [theJoeBiz](https://github.com/squadette).
515
804
 
516
805
  ### [10.1.2] - 2018-02-27
806
+
517
807
  #### Fixed
808
+
518
809
  - Use ReactDOM.hydrate() for hydrating a SSR component if available. ReactDOM.render() has been deprecated for use on SSR components in React 16 and this addresses the warning. [PR 1028](https://github.com/shakacode/react_on_rails/pull/1028) by [theJoeBiz](https://github.com/theJoeBiz).
519
810
 
520
811
  ### [10.1.1] - 2018-01-26
812
+
521
813
  #### Fixed
814
+
522
815
  - Fixed issue with server-rendering error handler: [PR 1020](https://github.com/shakacode/react_on_rails/pull/1020) by [jblasco3](https://github.com/jblasco3).
523
816
 
524
817
  ### [10.1.0] - 2018-01-23
818
+
525
819
  #### Added
820
+
526
821
  - Added 2 cache helpers: ReactOnRails::Utils.bundle_file_name(bundle_name) and ReactOnRails::Utils.server_bundle_file_name
527
- for easy access to the hashed filenames for use in cache keys. [PR 1018](https://github.com/shakacode/react_on_rails/pull/1018) by [justin808](https://github.com/justin808).
822
+ for easy access to the hashed filenames for use in cache keys. [PR 1018](https://github.com/shakacode/react_on_rails/pull/1018) by [justin808](https://github.com/justin808).
528
823
 
529
824
  #### Fixed
530
- - Use redux component in generated redux Hello World example: [PR 1006](https://github.com/shakacode/react_on_rails/pull/1006) by [lewaabahmad](https://github.com/lewaabahmad).
825
+
826
+ - Use Redux component in the generated Redux Hello World example: [PR 1006](https://github.com/shakacode/react_on_rails/pull/1006) by [lewaabahmad](https://github.com/lewaabahmad).
531
827
  - Fixed `Utils.bundle_js_file_path` generating the incorrect path for `manifest.json` in webpacker projects: [Issue #1011](https://github.com/shakacode/react_on_rails/issues/1011) by [elstgav](https://github.com/elstgav)
532
828
 
533
829
  ### [10.0.2] - 2017-11-10
830
+
534
831
  #### Fixed
832
+
535
833
  - Remove unnecessary dependencies from released NPM package: [PR 968](https://github.com/shakacode/react_on_rails/pull/968) by [tricknotes](https://github.com/tricknotes).
536
834
 
537
835
  ### [10.0.1] - 2017-10-28
836
+
538
837
  #### Fixed
838
+
539
839
  - Fixed `react_component_hash` functionality in cases of prerendering errors: [PR 960](https://github.com/shakacode/react_on_rails/pull/960) by [Judahmeek](https://github.com/Judahmeek).
540
840
  - Fix to add missing dependency to run generator spec individually: [PR 962](https://github.com/shakacode/react_on_rails/pull/962) by [tricknotes](https://github.com/tricknotes).
541
841
  - Fixes check for i18n_dir in LocalesToJs returning false when i18n_dir was set. [PR 899](https://github.com/shakacode/react_on_rails/pull/899) by [hakongit](https://github.com/hakongit).
@@ -543,58 +843,78 @@ for easy access to the hashed filenames for use in cache keys. [PR 1018](https:/
543
843
  - Fixed and improved I18n directories checks: [PR 967](https://github.com/shakacode/react_on_rails/pull/967) by [railsme](https://github.com/railsme)
544
844
 
545
845
  ### [10.0.0] - 2017-10-08
846
+
546
847
  #### Created
848
+
547
849
  - Created `react_component_hash` method for react_helmet support.
850
+
548
851
  #### Deprecated
852
+
549
853
  - Deprecated `react_component` functionality for react_helmet support.
550
- To clarify, the method itself is not deprecated, only certain functionality which has been moved to `react_component_hash`
551
- [PR 951](https://github.com/shakacode/react_on_rails/pull/951) by [Judahmeek](https://github.com/Judahmeek).
854
+ To clarify, the method itself is not deprecated, only certain functionality which has been moved to `react_component_hash`
855
+ [PR 951](https://github.com/shakacode/react_on_rails/pull/951) by [Judahmeek](https://github.com/Judahmeek).
552
856
 
553
857
  ### [9.0.3] - 2017-09-20
858
+
554
859
  #### Improved
860
+
555
861
  - Improved comments in generated Procfile.dev-server. [PR 940](https://github.com/shakacode/react_on_rails/pull/940) by [justin808](https://github.com/justin808).
556
862
 
557
863
  ### [9.0.2] - 2017-09-10
864
+
558
865
  #### Fixed
866
+
559
867
  - Improved post install doc comments for generator. [PR 933](https://github.com/shakacode/react_on_rails/pull/933) by [justin808](https://github.com/justin808).
560
868
 
561
869
  ### [9.0.1] - 2017-09-10
562
870
 
563
871
  #### Fixed
872
+
564
873
  - Fixes Rails 3.2 compatability issues. [PR 926](https://github.com/shakacode/react_on_rails/pull/926) by [morozovm](https://github.com/morozovm).
565
874
 
566
875
  ### [9.0.0] - 2017-09-06
567
- Updated React on Rails to depend on [rails/webpacker](https://github.com/rails/webpacker). [PR 908](https://github.com/shakacode/react_on_rails/pull/908) by [justin808](https://github.com/justin808).
568
876
 
877
+ Updated React on Rails to depend on [rails/webpacker](https://github.com/rails/webpacker). [PR 908](https://github.com/shakacode/react_on_rails/pull/908) by [justin808](https://github.com/justin808).
569
878
 
570
879
  #### 9.0 from 8.x. Upgrade Instructions
880
+
571
881
  Moved to [our documentation](https://www.shakacode.com/react-on-rails/docs/guides/upgrading-react-on-rails#upgrading-to-version-9).
572
882
 
573
883
  ### [8.0.7] - 2017-08-16
884
+
574
885
  #### Fixed
886
+
575
887
  - Fixes generator bug by keeping blank line at top in case existing .gitignore does not end in a newline. [#916](https://github.com/shakacode/react_on_rails/pull/916) by [justin808](https://github.com/justin808).
576
888
 
577
889
  ### [8.0.6] - 2017-07-19
890
+
578
891
  #### Fixed
892
+
579
893
  - Fixes server rendering when using a CDN. Server rendering would try to fetch a file with the "asset_host". This change updates the webpacker_lite dependency to 2.1.0 which has a new helper `pack_path`. [#901](https://github.com/shakacode/react_on_rails/pull/901) by [justin808](https://github.com/justin808). Be sure to update webpacker_lite to 2.1.0.
580
- - The package.json file created by the generator now creates minified javascript production builds by default. This was done by adding the -p flag to webpack on the build:production script. [#895](https://github.com/shakacode/react_on_rails/pull/895) by [serodriguez68 ](https://github.com/serodriguez68)
894
+ - The package.json file created by the generator now creates minified javascript production builds by default. This was done by adding the -p flag to Webpack on the build:production script. [#895](https://github.com/shakacode/react_on_rails/pull/895) by [serodriguez68 ](https://github.com/serodriguez68)
581
895
  - Fixes GitUtils.uncommitted_changes? throwing an error when called in an environment without Git, and allows install generator to be run successfully with `--ignore-warnings` [#878](https://github.com/shakacode/react_on_rails/pull/878) by [jasonblalock](https://github.com/jasonblalock).
582
896
 
583
897
  ## [8.0.5] - 2017-07-04
898
+
584
899
  #### Fixed
585
- - Corrects `devBuild` value for webpack production build from webpackConfigLoader. [#877](https://github.com/shakacode/react_on_rails/pull/877) by [chenqingspring](https://github.com/chenqingspring).
586
- - Remove contentBase deprecation warning message. [#878](https://github.com/shakacode/react_on_rails/pull/878) by [ened ](https://github.com/ened).
587
- - Removes invalid reference to _railsContext in the generated files. [#886](https://github.com/shakacode/react_on_rails/pull/886) by [justin808](https://github.com/justin808).
588
- - All tests run against Rails 5.1.2
589
900
 
590
- *Note: 8.0.4 skipped.*
901
+ - Corrects `devBuild` value for webpack production build from webpackConfigLoader. [#877](https://github.com/shakacode/react_on_rails/pull/877) by [chenqingspring](https://github.com/chenqingspring).
902
+ - Remove contentBase deprecation warning message. [#878](https://github.com/shakacode/react_on_rails/pull/878) by [ened ](https://github.com/ened).
903
+ - Removes invalid reference to \_railsContext in the generated files. [#886](https://github.com/shakacode/react_on_rails/pull/886) by [justin808](https://github.com/justin808).
904
+ - All tests run against Rails 5.1.2
905
+
906
+ _Note: 8.0.4 skipped._
591
907
 
592
908
  ## [8.0.3] - 2017-06-19
909
+
593
910
  #### Fixed
911
+
594
912
  - Ruby 2.1 issue due to `<<~` as reported in [issue #870](https://github.com/shakacode/react_on_rails/issues/870). [#867](https://github.com/shakacode/react_on_rails/pull/867) by [justin808](https://github.com/justin808)
595
913
 
596
914
  ## [8.0.2] - 2017-06-04
915
+
597
916
  #### Fixed
917
+
598
918
  - Any failure in webpack to build test files quits tests.
599
919
  - Fixed a Ruby 2.4 potential crash which could cause a crash due to pathname change in Ruby 2.4.
600
920
  - CI Improvements:
@@ -605,10 +925,13 @@ Moved to [our documentation](https://www.shakacode.com/react-on-rails/docs/guide
605
925
  - [#862](https://github.com/shakacode/react_on_rails/pull/862) by [justin808](https://github.com/justin808)
606
926
 
607
927
  ## [8.0.1] - 2017-05-30
928
+
608
929
  #### Fixed
930
+
609
931
  - Generator no longer modifies `assets.rb`. [#859](https://github.com/shakacode/react_on_rails/pull/859) by [justin808](https://github.com/justin808)
610
932
 
611
933
  ## [8.0.0] - 2017-05-29
934
+
612
935
  - Generators and full support for [webpacker_lite](https://github.com/shakacode/webpacker_lite)
613
936
  - No breaking changes to move to 8.0.0 other than the default for this setting changed to nil. If you depended on the default of this setting and are using the asset pipeline (and not webpacker_lite), then add this to your `config/initializers/react_on_rails.rb`:
614
937
  ```
@@ -618,21 +941,26 @@ Moved to [our documentation](https://www.shakacode.com/react-on-rails/docs/guide
618
941
  - For a simple example of the webpacker_lite setup, run the basic generator.
619
942
 
620
943
  ## [8.0.0-beta.3] - 2017-05-27
944
+
621
945
  #### Changed
946
+
622
947
  - Major updates for WebpackerLite 2.0.2. [#844](https://github.com/shakacode/react_on_rails/pull/845) by [justin808](https://github.com/justin808) with help from ](https://github.com/robwise)
623
948
  - Logging no longer occurs when trace is turned to false. [#845](https://github.com/shakacode/react_on_rails/pull/845) by [conturbo](https://github.com/Conturbo)
624
949
 
625
950
  ## [8.0.0-beta.2] - 2017-05-08
626
951
 
627
952
  #### Changed
953
+
628
954
  Removed unnecessary values in default paths.yml files for generators. [#834](https://github.com/shakacode/react_on_rails/pull/834) by [justin808](https://github.com/justin808).
629
955
 
630
956
  ## [8.0.0-beta.1] - 2017-05-03
631
957
 
632
958
  #### Added
959
+
633
960
  Support for WebpackerLite in the generators. [#822](https://github.com/shakacode/react_on_rails/pull/822) by [kaizencodes](https://github.com/kaizencodes) and [justin808](https://github.com/justin808).
634
961
 
635
962
  #### Changed
963
+
636
964
  Breaking change is that the default value of symlink_non_digested_assets_regex has changed from this
637
965
  old value to nil. This is a breaking change if you didn't have this value set in your
638
966
  config/initializers/react_on_rails.rb file and you need this because you're using webpack's CSS
@@ -643,90 +971,119 @@ symlink_non_digested_assets_regex: /\.(png|jpg|jpeg|gif|tiff|woff|ttf|eot|svg|ma
643
971
  ```
644
972
 
645
973
  ## [7.0.4] - 2017-04-27
974
+
646
975
  - Return empty json when nil in json_safe_and_pretty [#824](https://github.com/shakacode/react_on_rails/pull/824) by [dzirtusss](https://github.com/dzirtusss)
647
976
 
648
977
  ## [7.0.3] - 2017-04-27
978
+
649
979
  Same as 7.0.1.
650
980
 
651
981
  ## 7.0.2 - 2017-04-27
652
- *Accidental release of beta gem here*
982
+
983
+ _Accidental release of beta gem here_
653
984
 
654
985
  ## [7.0.1] - 2017-04-27
986
+
655
987
  #### Fixed
988
+
656
989
  - Fix to handle nil values in json_safe_and_pretty [#823](https://github.com/shakacode/react_on_rails/pull/823) by [dzirtusss](https://github.com/dzirtusss)
657
990
 
658
991
  ## [7.0.0] - 2017-04-25
992
+
659
993
  #### Changed
994
+
660
995
  - Any version differences in gem and node package for React on Rails throw an error [#821](https://github.com/shakacode/react_on_rails/pull/821) by [justin808](https://github.com/justin808)
661
996
 
662
997
  #### Fixed
998
+
663
999
  - Fixes serious performance regression when using String props for rendering. [#821](https://github.com/shakacode/react_on_rails/pull/821) by [justin808](https://github.com/justin808)
664
1000
 
665
1001
  ## [6.10.1] - 2017-04-23
1002
+
666
1003
  #### Fixed
1004
+
667
1005
  - Improve json conversion with tests and support for older Rails 3.x. [#787](https://github.com/shakacode/react_on_rails/pull/787) by [cheremukhin23](https://github.com/cheremukhin23) and [Ynote](https://github.com/Ynote).
668
1006
 
669
1007
  ## [6.10.0] - 2017-04-13
670
1008
 
671
1009
  #### Added
1010
+
672
1011
  - Add an ability to return multiple HTML strings in a `Hash` as a result of `react_component` method call. Allows to build `<head>` contents with [React Helmet](https://github.com/nfl/react-helmet). [#800](https://github.com/shakacode/react_on_rails/pull/800) by [udovenko](https://github.com/udovenko).
673
1012
 
674
1013
  #### Fixed
1014
+
675
1015
  - Fix PropTypes, createClass deprecation warnings for React 15.5.x. [#804](https://github.com/shakacode/react_on_rails/pull/804) by [udovenko ](https://github.com/udovenko).
676
1016
 
677
1017
  ## [6.9.3] - 2017-04-03
678
1018
 
679
1019
  #### Fixed
1020
+
680
1021
  - Removed call of to_json on strings when formatting props. [#791](https://github.com/shakacode/react_on_rails/pull/791) by [justin808](https://github.com/justin808).
681
1022
 
682
1023
  ## [6.9.2] - 2017-04-02
683
1024
 
684
1025
  #### Changed
1026
+
685
1027
  - Update version_checker.rb to `logger.error` rather than `logger.warn` for gem/npm version mismatch. [#788](https://github.com/shakacode/react_on_rails/issues/788) by [justin808](https://github.com/justin808).
686
1028
 
687
1029
  #### Fixed
1030
+
688
1031
  - Remove pretty formatting of JSON in development. [#789](https://github.com/shakacode/react_on_rails/pull/789) by [justin808](https://github.com/justin808)
689
1032
  - Clear hydrated stores with each server rendered block. [#785](https://github.com/shakacode/react_on_rails/pull/785) by [udovenko](https://github.com/udovenko)
690
1033
 
691
1034
  ## [6.9.1] - 2017-03-30
692
1035
 
693
1036
  #### Fixed
1037
+
694
1038
  - Fixes Crash in Development for String Props. [#784](https://github.com/shakacode/react_on_rails/issues/784) by [justin808](https://github.com/justin808).
695
1039
 
696
1040
  ## [6.9.0] - 2017-03-29
697
1041
 
698
1042
  #### Fixed
1043
+
699
1044
  - Fixed error in the release script. [#767](https://github.com/shakacode/react_on_rails/issues/767) by [isolo](https://github.com/isolo).
700
1045
 
701
1046
  #### Changed
1047
+
702
1048
  - Use <script type="application/json"> for props and store instead of hidden div. [#775] (https://github.com/shakacode/react_on_rails/pull/775) by [cheremukhin23](https://github.com/cheremukhin23).
703
1049
 
704
1050
  #### Added
1051
+
705
1052
  - Add option to specify i18n_yml_dir in order to include only subset of locale files when generating translations.js & default.js for react-intl.
706
- [#777](https://github.com/shakacode/react_on_rails/pull/777) by [danijel](https://github.com/danijel).
1053
+ [#777](https://github.com/shakacode/react_on_rails/pull/777) by [danijel](https://github.com/danijel).
707
1054
 
708
1055
  ## [6.8.2] - 2017-03-24
1056
+
709
1057
  #### Fixed
1058
+
710
1059
  - Change webpack output path to absolute and update webpack to version ^2.3.1. [#771](https://github.com/shakacode/react_on_rails/pull/771) by [cheremukhin23](https://github.com/cheremukhin23).
711
1060
 
712
1061
  ## [6.8.1] - 2017-03-21
1062
+
713
1063
  #### Fixed
714
- - Fixed error "The node you're attempting to unmount was rendered by another copy of React." [#706](https://github.com/shakacode/react_on_rails/issues/706) when navigating to cached page using Turbolinks [#763](https://github.com/shakacode/react_on_rails/pull/763) by [szyablitsky](https://github.com/szyablitsky).
1064
+
1065
+ - Fixed error "The node you're attempting to unmount was rendered by another copy of React." [#706](https://github.com/shakacode/react_on_rails/issues/706) when navigating to cached page using Turbolinks [#763](https://github.com/shakacode/react_on_rails/pull/763) by [szyablitsky](https://github.com/szyablitsky).
715
1066
 
716
1067
  ## [6.8.0] - 2017-03-06
1068
+
717
1069
  ## Added
1070
+
718
1071
  - Converted to Webpack v2 for generators, tests, and all example code. [#742](https://github.com/shakacode/react_on_rails/pull/742) by [justin808](https://github.com/justin808).
719
1072
 
720
1073
  ## [6.7.2] - 2017-03-05
1074
+
721
1075
  #### Improved
1076
+
722
1077
  - Improve i18n Integration with a better error message if the value of the i18n directory is invalid. [#748](https://github.com/shakacode/react_on_rails/pull/748) by [justin808](https://github.com/justin808).
723
1078
 
724
1079
  ## [6.7.1] - 2017-02-28
1080
+
725
1081
  No changes other than a test fix.
726
1082
 
727
1083
  ## [6.7.0] - 2017-02-28
728
1084
 
729
1085
  #### IMPORTANT
1086
+
730
1087
  - If you installed 6.6.0, you will need to comment out the line matching i18n_dir unless you are using this feature. 6.7.1 will give you an error like:
731
1088
 
732
1089
  ```
@@ -740,72 +1097,99 @@ config.i18n_dir = Rails.root.join("client", "app", "libs", "i18n")
740
1097
  ```
741
1098
 
742
1099
  #### Added
1100
+
743
1101
  - Allow using rake task to generate javascript locale files. The test helper automatically creates the localization files when needed. [#717](https://github.com/shakacode/react_on_rails/pull/717) by [JasonYCHuang](https://github.com/JasonYCHuang).
744
1102
 
745
1103
  #### Fixed
1104
+
746
1105
  - Upgrade Rails to 4.2.8 to fix security vulnerabilities in 4.2.5. [#735](https://github.com/shakacode/react_on_rails/pull/735) by [hrishimittal](https://github.com/hrishimittal).
747
1106
  - Fix spec failing due to duplicate component. [#734](https://github.com/shakacode/react_on_rails/pull/734) by [hrishimittal](https://github.com/hrishimittal).
748
1107
 
749
1108
  ## [6.6.0] - 2017-02-18
1109
+
750
1110
  #### Added
1111
+
751
1112
  - Switched to yarn! [#715](https://github.com/shakacode/react_on_rails/pull/715) by [squadette](https://github.com/squadette).
752
1113
 
753
1114
  ## [6.5.1] - 2017-02-11
1115
+
754
1116
  #### Fixed
1117
+
755
1118
  - Allow using gem without sprockets. [#671](https://github.com/shakacode/react_on_rails/pull/671) by [fc-arny](https://github.com/fc-arny).
756
1119
  - Fixed issue [#706](https://github.com/shakacode/react_on_rails/issues/706) with "flickering" components when they are unmounted too early [#709](https://github.com/shakacode/react_on_rails/pull/709) by [szyablitsky](https://github.com/szyablitsky).
757
1120
  - Small formatting fix for errors [#703](https://github.com/shakacode/react_on_rails/pull/703) by [justin808](https://github.com/justin808).
758
1121
 
759
1122
  ## [6.5.0] - 2017-01-31
1123
+
760
1124
  #### Added
1125
+
761
1126
  - Allow generator function to return Object with property `renderedHtml` (already could return Object with props `redirectLocation, error`) rather than a React component or a function that returns a React component. One reason to use a generator function is that sometimes in server rendering, specifically with React Router v4, you need to return the result of calling ReactDOMServer.renderToString(element). [#689](https://github.com/shakacode/react_on_rails/issues/689) by [justin808](https://github.com/justin808).
762
1127
 
763
1128
  #### Fixed
1129
+
764
1130
  - Fix incorrect "this" references of Node.js SSR [#690](https://github.com/shakacode/react_on_rails/issues/689) by [nostophilia](https://github.com/nostophilia).
765
1131
 
766
1132
  ## [6.4.2] - 2017-01-17
1133
+
767
1134
  #### Fixed
1135
+
768
1136
  - Added OS detection for install generator, system call for Windows and unit-tests for it. [#666](https://github.com/shakacode/react_on_rails/pull/666) by [GeorgeGorbanev](https://github.com/GeorgeGorbanev).
769
1137
 
770
1138
  ## [6.4.1] - 2017-1-17
1139
+
771
1140
  No changes.
772
1141
 
773
1142
  ## [6.4.0] - 2017-1-12
774
1143
 
775
1144
  #### Possible Breaking Change
1145
+
776
1146
  - Since foreman is no longer a dependency of the React on Rails gem, please run `gem install foreman`. If you are using rvm, you may wish to run `rvm @global do gem install foreman` to install foreman for all your gemsets.
777
1147
 
778
1148
  #### Fixed
1149
+
779
1150
  - Removed foreman as a dependency. [#678](https://github.com/shakacode/react_on_rails/pull/678) by [x2es](https://github.com/x2es).
780
1151
 
781
1152
  #### Added
782
- - Automatically generate __i18n__ javascript files for `react-intl` when the serve starts up. [#642](https://github.com/shakacode/react_on_rails/pull/642) by [JasonYCHuang](https://github.com/JasonYCHuang).
1153
+
1154
+ - Automatically generate **i18n** javascript files for `react-intl` when the serve starts up. [#642](https://github.com/shakacode/react_on_rails/pull/642) by [JasonYCHuang](https://github.com/JasonYCHuang).
783
1155
 
784
1156
  ## [6.3.5] - 2017-1-6
1157
+
785
1158
  #### Fixed
786
- - The redux generator now creates a HelloWorld component that uses redux rather than local state. [#669](https://github.com/shakacode/react_on_rails/issues/669) by [justin808](https://github.com/justin808).
1159
+
1160
+ - The Redux generator now creates a HelloWorld component that uses redux rather than local state. [#669](https://github.com/shakacode/react_on_rails/issues/669) by [justin808](https://github.com/justin808).
787
1161
 
788
1162
  ## [6.3.4] - 2016-12-25
1163
+
789
1164
  ##### Fixed
1165
+
790
1166
  - Disable Turbolinks support when not supported. [#650](https://github.com/shakacode/react_on_rails/pull/650) by [ka2n](https://github.com/ka2n).
791
1167
 
792
1168
  ## [6.3.3] - 2016-12-25
1169
+
793
1170
  ##### Fixed
1171
+
794
1172
  - By using the hook on `turbolinks:before-visit` to unmount the components, we can ensure that components are unmounted even when Turbolinks cache is disabled. Previously, we used `turbolinks:before-cache` event hook. [#644](https://github.com/shakacode/react_on_rails/pull/644) by [volkanunsal](https://github.com/volkanunsal).
795
1173
  - Added support for Ruby 2.0 [#651](https://github.com/shakacode/react_on_rails/pull/651) by [bbonamin](https://github.com/bbonamin).
796
1174
 
797
1175
  ## [6.3.2] - 2016-12-5
1176
+
798
1177
  ##### Fixed
1178
+
799
1179
  - The `react_component` method was raising a `NameError` when `ReactOnRailsHelper` was included in a plain object. [#636](https://github.com/shakacode/react_on_rails/pull/636) by [jtibbertsma](https://github.com/jtibbertsma).
800
1180
  - "Node parse error" for node server rendering. [#641](https://github.com/shakacode/react_on_rails/pull/641) by [alleycat-at-git](https://github.com/alleycat-at-git) and [rocLv](https://github.com/rocLv)
801
1181
  - Better error handling when the react-on-rails node package entry is missing.[#602](https://github.com/shakacode/react_on_rails/pull/602) by [benjiwheeler](https://github.com/benjiwheeler).
802
1182
 
803
1183
  ## [6.3.1] - 2016-11-30
1184
+
804
1185
  ##### Changed
1186
+
805
1187
  - Improved generator post-install help messages. [#631](https://github.com/shakacode/react_on_rails/pull/631) by [justin808](https://github.com/justin808).
806
1188
 
807
1189
  ## [6.3.0] - 2016-11-30
1190
+
808
1191
  ##### Changed
1192
+
809
1193
  - Modified register API to allow registration of renderers, allowing a user to manually render their app to the DOM. This allows for code splitting and deferred loading. [#581](https://github.com/shakacode/react_on_rails/pull/581) by [jtibbertsma](https://github.com/jtibbertsma).
810
1194
 
811
1195
  - Updated Basic Generator & Linters. Examples are simpler. [#624](https://github.com/shakacode/react_on_rails/pull/624) by [Judahmeek](https://github.com/Judahmeek).
@@ -815,65 +1199,88 @@ No changes.
815
1199
  - Don't assume ActionMailer is available. [#608](https://github.com/shakacode/react_on_rails/pull/608) by [tuzz](https://github.com/tuzz).
816
1200
 
817
1201
  ## [6.2.1] - 2016-11-19
1202
+
818
1203
  - Removed unnecessary passing of context in the HelloWorld Container example and basic generator. [#612](https://github.com/shakacode/react_on_rails/pull/612) by [justin808](https://github.com/justin808)
819
1204
 
820
1205
  - Turbolinks 5 bugfix to use `before-cache`, not `before-render`. [#611](https://github.com/shakacode/react_on_rails/pull/611) by [volkanunsal](https://github.com/volkanunsal).
821
1206
 
822
1207
  ## [6.2.0] - 2016-11-19
1208
+
823
1209
  ##### Changed
824
- - Updated the generator templates to reflect current best practices, especially for the redux version. [#584](https://github.com/shakacode/react_on_rails/pull/584) by [nostophilia](https://github.com/nostophilia).
1210
+
1211
+ - Updated the generator templates to reflect current best practices, especially for the Redux version. [#584](https://github.com/shakacode/react_on_rails/pull/584) by [nostophilia](https://github.com/nostophilia).
825
1212
 
826
1213
  ## [6.1.2] - 2016-10-24
1214
+
827
1215
  ##### Fixed
1216
+
828
1217
  - Added compatibility with older manifest.yml files produced by Rails 3 Sprockets when symlinking digested assets during precompilation [#566](https://github.com/shakacode/react_on_rails/pull/566) by [etripier](https://github.com/etripier).
829
1218
 
830
1219
  ## [6.1.1] - 2016-09-09
1220
+
831
1221
  ##### Fixed
1222
+
832
1223
  - React on Rails was incorrectly failing to create symlinks when a file existed in the location for the new symlink. [#491](https://github.com/shakacode/react_on_rails/pull/541) by [robwise ](https://github.com/robwise) and [justin808](https://github.com/justin808).
833
1224
 
834
1225
  ## [6.1.0] - 2016-08-21
835
1226
 
836
1227
  ##### Added
1228
+
837
1229
  - Node option for installer added as alternative for server rendering [#469](https://github.com/shakacode/react_on_rails/pull/469) by [jbhatab](https://github.com/jbhatab).
838
1230
  - Server rendering now supports contexts outside of browser rendering, such as ActionMailer templates [#486](https://github.com/shakacode/react_on_rails/pull/486) by [eacaps](https://github.com/eacaps).
839
1231
  - Added authenticityToken() and authenticityHeaders() javascript helpers for easier use when working with CSRF protection tag generated by Rails [#517](https://github.com/shakacode/react_on_rails/pull/517) by [dzirtusss](https://github.com/dzirtusss).
840
1232
  - Updated JavaScript error handling on the client side. Errors in client rendering now pass through to the browser [#521](https://github.com/shakacode/react_on_rails/pull/521) by [dzirtusss](https://github.com/dzirtusss).
841
1233
 
842
1234
  ##### Fixed
1235
+
843
1236
  - React on Rails now correctly parses single-digit version strings from package.json [#491](https://github.com/shakacode/react_on_rails/pull/491) by [samphilipd ](https://github.com/samphilipd).
844
1237
  - Fixed assets symlinking to correctly use filenames with spaces. Beginning in [#510](https://github.com/shakacode/react_on_rails/pull/510), ending in [#513](https://github.com/shakacode/react_on_rails/pull/513) by [dzirtusss](https://github.com/dzirtusss).
845
1238
  - Check encoding of request's original URL and force it to UTF-8 [#527](https://github.com/shakacode/react_on_rails/pull/527) by [lucke84](https://github.com/lucke84)
846
1239
 
847
1240
  ## [6.0.5] - 2016-07-11
1241
+
848
1242
  ##### Added
849
- - Added better error messages to avoid issues with shared redux stores [#470](https://github.com/shakacode/react_on_rails/pull/470) by [justin808](https://github.com/justin808).
1243
+
1244
+ - Added better error messages to avoid issues with shared Redux stores [#470](https://github.com/shakacode/react_on_rails/pull/470) by [justin808](https://github.com/justin808).
850
1245
 
851
1246
  ## [6.0.4] - 2016-06-13
1247
+
852
1248
  ##### Fixed
853
- - Added polyfill for clearTimeout which is used by babel-polyfill [#451](https://github.com/shakacode/react_on_rails/pull/451) by [martyphee](https://github.com/martyphee)
1249
+
1250
+ - Added a polyfill for `clearTimeout` which is used by `babel-polyfill` [#451](https://github.com/shakacode/react_on_rails/pull/451) by [martyphee](https://github.com/martyphee)
854
1251
 
855
1252
  ## [6.0.3] - 2016-06-07
1253
+
856
1254
  ##### Fixed
1255
+
857
1256
  - Added assets symlinking support on Heroku [#446](https://github.com/shakacode/react_on_rails/pull/446) by [Alexey Karasev](https://github.com/alleycat-at-git).
858
1257
 
859
1258
  ## [6.0.2] - 2016-06-06
1259
+
860
1260
  ##### Fixed
1261
+
861
1262
  - Fix collisions in ids of DOM nodes generated by `react_component` by indexing in using a UUID rather than an auto-increment value. This means that it should be overridden using the `id` parameter of `react_component` if one wants to generate a predictable id (_e.g._ for testing purpose). See [Issue #437](https://github.com/shakacode/react_on_rails/issues/437). Fixed in [#438](https://github.com/shakacode/react_on_rails/pull/438) by [Michael Baudino](https://github.com/michaelbaudino).
862
1263
 
863
1264
  ## [6.0.1] - 2016-05-27
1265
+
864
1266
  ##### Fixed
1267
+
865
1268
  - Allow for older version of manifest.json for older versions of sprockets. See [Issue #435](https://github.com/shakacode/react_on_rails/issues/435). Fixed in [#436](https://github.com/shakacode/react_on_rails/pull/436) by [alleycat-at-git](https://github.com/alleycat-at-git).
866
1269
 
867
1270
  ## [6.0.0] - 2016-05-25
1271
+
868
1272
  ##### Breaking Changes
1273
+
869
1274
  - Added automatic compilation of assets at precompile is now done by ReactOnRails. Thus, you don't need to provide your own `assets.rake` file that does the precompilation.
870
1275
  [#398](https://github.com/shakacode/react_on_rails/pull/398) by [robwise](https://github.com/robwise), [jbhatab](https://github.com/jbhatab), and [justin808](https://github.com/justin808).
871
1276
  - **Migration to v6**
1277
+
872
1278
  - Do not run the generator again if you've already run it.
873
1279
 
874
- - See [shakacode/react-webpack-rails-tutorial/pull/287](https://github.com/shakacode/react-webpack-rails-tutorial/pull/287) for an example of upgrading from v5.
1280
+ - See [shakacode/react-webpack-rails-tutorial/pull/287](https://github.com/shakacode/react-webpack-rails-tutorial/pull/287) for an example of upgrading from v5.
875
1281
 
876
1282
  - To configure the asset compilation you can either
1283
+
877
1284
  1. Specify a `config/react_on_rails` setting for `build_production_command` to be nil to turn this feature off.
878
1285
  2. Specify the script command you want to run to build your production assets, and remove your `assets.rake` file.
879
1286
 
@@ -882,6 +1289,7 @@ No changes.
882
1289
  - See [shakacode/react-webpack-rails-tutorial #287](https://github.com/shakacode/react-webpack-rails-tutorial/pull/287/files) for an upgrade example. The PR has a few comments on the upgrade.
883
1290
 
884
1291
  Here is the addition to the generated config file:
1292
+
885
1293
  ```ruby
886
1294
  # This configures the script to run to build the production assets by webpack. Set this to nil
887
1295
  # if you don't want react_on_rails building this file for you.
@@ -894,48 +1302,61 @@ Here is the addition to the generated config file:
894
1302
  ```
895
1303
 
896
1304
  ##### Fixed
1305
+
897
1306
  - Fixed errors when server rendered props contain \u2028 or \u2029 characters [#375](https://github.com/shakacode/react_on_rails/pull/375) by [mariusandra](https://github.com/mariusandra)
898
1307
  - Fixed "too early unmount" which caused problems with Turbolinks 5 not updating the screen [#425](https://github.com/shakacode/react_on_rails/pull/425) by [szyablitsky](https://github.com/szyablitsky)
899
1308
 
900
1309
  ##### Added
1310
+
901
1311
  - Experimental ability to use node.js process for server rendering. See [#380](https://github.com/shakacode/react_on_rails/pull/380) by [alleycat-at-git](https://github.com/alleycat-at-git).
902
1312
  - Non-digested version of assets in public folder [#413](https://github.com/shakacode/react_on_rails/pull/413) by [alleycat-at-git](https://github.com/alleycat-at-git).
903
1313
  - Cache client/node_modules directory to prevent Heroku from reinstalling all modules from scratch [#324](https://github.com/shakacode/react_on_rails/pull/324) by [modosc](https://github.com/modosc).
904
1314
  - ReactOnRails.reactOnRailsPageLoaded() is exposed in case one needs to call this manually and information on async script loading added. See [#315](https://github.com/shakacode/react_on_rails/pull/315) by [SqueezedLight](https://github.com/SqueezedLight).
905
1315
 
906
1316
  ##### Changed
1317
+
907
1318
  - [#398](https://github.com/shakacode/react_on_rails/pull/398) by [robwise](https://github.com/robwise), [jbhatab](https://github.com/jbhatab), and [justin808](https://github.com/justin808) contains:
908
1319
  - Only one webpack config is generated for server and client config. Package.json files were changed to reflect this.
909
1320
  - Added npm_build_test_command to allow developers to change what npm command is automatically run from rspec.
910
1321
  - Replace URI with Addressable gem. See [#405](https://github.com/shakacode/react_on_rails/pull/405) by [lucke84](https://github.com/lucke84)
911
1322
 
912
1323
  ##### Removed
1324
+
913
1325
  - [#398](https://github.com/shakacode/react_on_rails/pull/398) by [robwise](https://github.com/robwise), [jbhatab](https://github.com/jbhatab), and [justin808](https://github.com/justin808) contains:
914
1326
  - Server rendering is no longer an option in the generator and is always accessible.
915
1327
  - Removed lodash, jquery, and loggerMiddleware from the generated code.
916
1328
  - Removed webpack watch check for test helper automatic compilation.
917
1329
 
918
1330
  ## [5.2.0] - 2016-04-08
1331
+
919
1332
  ##### Added
1333
+
920
1334
  - Support for React 15.0 to react_on_rails. See [#379](https://github.com/shakacode/react_on_rails/pull/379) by [brucek](https://github.com/brucek).
921
1335
  - Support for Node.js server side rendering. See [#380](https://github.com/shakacode/react_on_rails/pull/380) by [alleycat](https://github.com/alleycat-at-git) and [doc](https://www.shakacode.com/react-on-rails/docs/react-on-rails-pro/react-on-rails-pro#pro-integration-with-nodejs-for-server-rendering)
922
1336
 
923
1337
  ##### Removed
1338
+
924
1339
  - Generator removals to simplify installer. See [#364](https://github.com/shakacode/react_on_rails/pull/364) by [jbhatab](https://github.com/jbhatab).
925
1340
  - Removed options for heroku, boostrap, and the linters from generator.
926
1341
  - Removed install for the Webpack Dev Server, as we can now do hot reloading with Rails, so the complexity of this feature is not justified. Nevertheless, the setup of React on Rails still supports this setup, just not with the generator.
927
1342
  - Documentation added for removed installer options.
928
1343
 
929
1344
  ## [5.1.1] - 2016-04-04
1345
+
930
1346
  ##### Fixed
1347
+
931
1348
  - Security Fixes: Address failure to sanitize console messages when server rendering and displaying in the browser console. See [#366](https://github.com/shakacode/react_on_rails/pull/366) and [#370](https://github.com/shakacode/react_on_rails/pull/370) by [justin808](https://github.com/justin808)
932
1349
 
933
1350
  ##### Added
1351
+
934
1352
  - railsContext includes the port number and a boolean if the code is being run on the server or client.
935
1353
 
936
1354
  ## [5.1.0] - 2016-04-03
1355
+
937
1356
  ##### Added
1357
+
938
1358
  All 5.1.0 changes can be found in [#362](https://github.com/shakacode/react_on_rails/pull/362) by [justin808](https://github.com/justin808).
1359
+
939
1360
  - Generator enhancements
940
1361
  - Generator adds line to spec/rails_helper.rb so that running specs will ensure assets are compiled.
941
1362
  - Other small changes to the generator including adding necessary npm scripts to allow React on Rails to build assets.
@@ -951,149 +1372,192 @@ All 5.1.0 changes can be found in [#362](https://github.com/shakacode/react_on_r
951
1372
  ## [5.0.0] - 2016-04-01
952
1373
 
953
1374
  ##### Added
954
- - Added `railsContext`, an object which gets passed always as the second parameter to both react component and redux store generator functions, both for server and client rendering. This provides data like the current locale, the pathname, etc. The data values are customizable by a new configuration called `rendering_extension` where you can create a module with a method called `rendering_extension`. This allows you to add additional values to the Rails Context. Implement one static method called `custom_context(view_context)` and return a Hash. See [#345](https://github.com/shakacode/react_on_rails/pull/345) by [justin808](https://github.com/justin808)
1375
+
1376
+ - Added `railsContext`, an object which gets passed always as the second parameter to both React component and Redux store generator functions, both for server and client rendering. This provides data like the current locale, the pathname, etc. The data values are customizable by a new configuration called `rendering_extension` where you can create a module with a method called `rendering_extension`. This allows you to add additional values to the Rails Context. Implement one static method called `custom_context(view_context)` and return a Hash. See [#345](https://github.com/shakacode/react_on_rails/pull/345) by [justin808](https://github.com/justin808)
955
1377
 
956
1378
  ##### Changed
957
- - Previously, you could pass arbitrary additional html attributes to react_component. Now, you need to pass them in as a named parameter `html_options` to react_component.
1379
+
1380
+ - Previously, you could pass arbitrary additional HTML attributes to react_component. Now, you need to pass them in as a named parameter `html_options` to react_component.
958
1381
 
959
1382
  ##### Breaking Changes
1383
+
960
1384
  - You must provide named attributes, including `props` for view helper `react_component`. See [this commit](https://github.com/shakacode/react-webpack-rails-tutorial/commit/a97fa90042cbe27be7fd7fa70b5622bfcf9c3673) for an example migration used for [www.reactrails.com](http://www.reactrails.com).
961
1385
 
962
1386
  ## [4.0.3] - 2016-03-17
963
1387
 
964
1388
  ##### Fixed
1389
+
965
1390
  - `ReactOnRailsHelper#react_component`: Invalid deprecation message when called with only one parameter, the component name.
966
1391
 
967
1392
  ## [4.0.2] - 2016-03-17
968
1393
 
969
1394
  ##### Fixed
1395
+
970
1396
  - `ReactOnRails::Controller#redux_store`: 2nd parameter changed to a named parameter `props` for consistency.
971
1397
 
972
1398
  ## [4.0.1] - 2016-03-16
973
1399
 
974
1400
  ##### Fixed
1401
+
975
1402
  - Switched to `heroku buildpacks:set` syntax rather than using a `.buildpacks` file, which is deprecated. See [#319](https://github.com/shakacode/react_on_rails/pull/319) by [esauter5](https://github.com/esauter5). Includes both generator and doc updates.
976
1403
 
977
1404
  ## [4.0.0] - 2016-03-14
978
1405
 
979
1406
  ##### Added
1407
+
980
1408
  - [spec/dummy](spec/dummy) is a full sample app of React on Rails techniques **including** the hot reloading of assets from Rails!
981
1409
  - Added helpers `env_stylesheet_link_tag` and `env_javascript_include_tag` to support hot reloading Rails. See the [README.md](./README.md) for more details and see the example application in `spec/dummy`. Also see how this is used in the [tutorial: application.html.erb](https://github.com/shakacode/react-webpack-rails-tutorial/blob/master/app%2Fviews%2Flayouts%2Fapplication.html.erb#L6)
982
1410
  - Added optional parameter for ReactOnRails.getStore(name, throwIfMissing = true) so that you can check if a store is defined easily.
983
- - Added controller `module ReactOnRails::Controller`. Adds method `redux_store` to setup redux stores in the view.
1411
+ - Added controller `module ReactOnRails::Controller`. Adds method `redux_store` to set up Redux stores in the view.
984
1412
  - Added option `defer: true` for view helper `redux_store`. This allows the view helper to specify the props for store hydration, yet still render the props at the bottom of the view.
985
1413
  - Added view helper `redux_store_hydration_data` to render the props on the application's layout, near the bottom. This allows for the client hydration data to be parsed after the server rendering, which may result in a faster load time.
986
1414
  - The checker for outdated bundles before running tests will two configuration options: `generated_assets_dir` and `webpack_generated_files`.
987
1415
  - Better support for Turbolinks 5!
988
- - Fixed generator check of uncommitted code for foreign languages. See [#303](https://github.com/shakacode/react_on_rails/pull/303) by [nmatyukov](https://github.com/nmatyukov).
1416
+ - Fixed generator check of uncommitted code for foreign languages. See [#303](https://github.com/shakacode/react_on_rails/pull/303) by [nmatyukov](https://github.com/nmatyukov).
989
1417
  - Added several parameters used for ensuring webpack assets are built for running tests:
990
1418
  - `config.generated_assets_dir`: Directory where your generated webpack assets go. You can have only **one** directory for this.
991
1419
  - `config.webpack_generated_files`: List of files that will get created in the `generated_assets_dir`. The test runner helper will ensure these generated files are newer than any of the files in the client directory.
992
1420
 
993
1421
  ##### Changed
994
- - Generator default for webpack generated assets is now `app/assets/webpack` as we use this for both JavaScript and CSS generated assets.
1422
+
1423
+ - Generator default for webpack generated assets is now `app/assets/webpack` as we use this for both JavaScript and CSS generated assets.
995
1424
 
996
1425
  ##### Fixed
1426
+
997
1427
  - The test runner "assets up to date checker" is greatly improved.
998
1428
  - Lots of doc updates!
999
1429
  - Improved the **spec/dummy** sample app so that it supports CSS modules, hot reloading, etc, and it can server as a template for a new ReactOnRails installation.
1000
1430
 
1001
1431
  ##### Breaking Changes
1002
- - Deprecated calling `redux_store(store_name, props)`. The API has changed. Use `redux_store(store_name, props: props, defer: false)` A new option called `defer` allows the rendering of store hydration at the bottom of the your layout. Place `redux_store_hydration_data` on your layout.
1432
+
1433
+ - Deprecated calling `redux_store(store_name, props)`. The API has changed. Use `redux_store(store_name, props: props, defer: false)` A new option called `defer` allows the rendering of store hydration at the bottom of the your layout. Place `redux_store_hydration_data` on your layout.
1003
1434
  - `config.server_bundle_js_file` has changed. The default value is now blank, meaning no server rendering. Addtionally, if you specify the file name, you should not include the path, as that should be specified in the `config.generated_assets_dir`.
1004
1435
  - `config.generated_assets_dirs` has been renamed to `config.generated_assets_dir` (singular) and it only takes one directory.
1005
1436
 
1006
1437
  ## [3.0.6] - 2016-03-01
1438
+
1007
1439
  ##### Fixed
1008
- - Improved errors when registered store is not found. See [#301](https://github.com/shakacode/react_on_rails/pull/301) by [justin808](https://github.com/justin808).
1440
+
1441
+ - Improved errors when registered store is not found. See [#301](https://github.com/shakacode/react_on_rails/pull/301) by [justin808](https://github.com/justin808).
1009
1442
 
1010
1443
  ## [3.0.5] - 2016-02-26
1444
+
1011
1445
  ##### Fixed
1012
- - Fixed error in linters rake file for generator. See [#299](https://github.com/shakacode/react_on_rails/pull/299) by [mpugach](https://github.com/mpugach).
1446
+
1447
+ - Fixed error in linters rake file for generator. See [#299](https://github.com/shakacode/react_on_rails/pull/299) by [mpugach](https://github.com/mpugach).
1013
1448
 
1014
1449
  ## [3.0.4] - 2016-02-25
1450
+
1015
1451
  ##### Fixed
1452
+
1016
1453
  - Updated CHANGELOG.md to include contributors for each PR.
1017
- - Fixed config.server_bundle_js file value in generator to match generator setting of server rendering. See [#295](https://github.com/shakacode/react_on_rails/pull/295) by [aaronvb](https://github.com/aaronvb).
1454
+ - Fixed config.server_bundle_js file value in generator to match generator setting of server rendering. See [#295](https://github.com/shakacode/react_on_rails/pull/295) by [aaronvb](https://github.com/aaronvb).
1018
1455
 
1019
1456
  ## [3.0.3] - 2016-02-21
1457
+
1020
1458
  ##### Fixed
1459
+
1021
1460
  - Cleaned up code in `spec/dummy` to latest React and Redux APIs. See [#282](https://github.com/shakacode/react_on_rails/pull/282).
1022
1461
  - Update generator messages with helpful information. See [#279](https://github.com/shakacode/react_on_rails/pull/279).
1023
1462
  - Other small generated comment fixes and doc fixes.
1024
1463
 
1025
1464
  ## [3.0.2] - 2016-02-15
1465
+
1026
1466
  ##### Fixed
1467
+
1027
1468
  - Fixed missing information in the helpful message after running the base install generator regarding how to run the node server with hot reloading support.
1028
1469
 
1029
1470
  ## [3.0.1] - 2016-02-15
1471
+
1030
1472
  ##### Fixed
1473
+
1031
1474
  - Fixed several jscs linter issues.
1032
1475
 
1033
1476
  ## [3.0.0] - 2016-02-15
1477
+
1034
1478
  ##### Fixed
1479
+
1035
1480
  - Fix Bootstrap Sass Append to Gemfile, missing new line. [#262](https://github.com/shakacode/react_on_rails/pull/262).
1036
1481
 
1037
1482
  ##### Added
1483
+
1038
1484
  - Added helper `redux_store` and associated JavaScript APIs that allow multiple React components to use the same store. Thus, you initialize the store, with props, separately from the components.
1039
1485
  - Added forman to gemspec in case new dev does not have it globally installed. [#248](https://github.com/shakacode/react_on_rails/pull/248).
1040
1486
  - Support for Turbolinks 5! [#270](https://github.com/shakacode/react_on_rails/pull/270).
1041
1487
  - Added better error messages for `ReactOnRails.register()`. [#273](https://github.com/shakacode/react_on_rails/pull/273).
1042
1488
 
1043
1489
  ##### Breaking Change
1490
+
1044
1491
  - Calls to `react_component` should use a named argument of props. For example, change this:
1492
+
1045
1493
  ```ruby
1046
1494
  <%= react_component("ReduxSharedStoreApp", {}, prerender: false, trace: true) %>
1047
1495
  ```
1048
1496
 
1049
1497
  to
1498
+
1050
1499
  ```ruby
1051
1500
  <%= react_component("ReduxSharedStoreApp", props: {}, prerender: false, trace: true) %>
1052
1501
  ```
1502
+
1053
1503
  You'll get a deprecation message to change this.
1054
- - Renamed `ReactOnRails.configure_rspec_to_compile_assets` to `ReactOnRails::TestHelper.configure_rspec_to_compile_assets`. The code has also been optimized to check for whether or not the compiled webpack bundles are up to date or not and will not run if not necessary. If you are using non-standard directories for your generated webpack assets (`app/assets/javascripts/generated` and `app/assets/stylesheets/generated`) or have additional directories you wish the helper to check, you need to update your ReactOnRails configuration accordingly. See [documentation](https://www.shakacode.com/react-on-rails/docs/guides/rspec_configuration) for how to do this. [#253](https://github.com/shakacode/react_on_rails/pull/253).
1055
- - You have to call `ReactOnRails.register` to register react components. This was deprecated in v2. [#273](https://github.com/shakacode/react_on_rails/pull/273).
1504
+
1505
+ - Renamed `ReactOnRails.configure_rspec_to_compile_assets` to `ReactOnRails::TestHelper.configure_rspec_to_compile_assets`. The code has also been optimized to check for whether or not the compiled webpack bundles are up to date or not and will not run if not necessary. If you are using non-standard directories for your generated webpack assets (`app/assets/javascripts/generated` and `app/assets/stylesheets/generated`) or have additional directories you wish the helper to check, you need to update your ReactOnRails configuration accordingly. See [documentation](https://www.shakacode.com/react-on-rails/docs/guides/rspec_configuration) for how to do this. [#253](https://github.com/shakacode/react_on_rails/pull/253).
1506
+ - You have to call `ReactOnRails.register` to register React components. This was deprecated in v2. [#273](https://github.com/shakacode/react_on_rails/pull/273).
1056
1507
 
1057
1508
  ##### Migration Steps v2 to v3
1509
+
1058
1510
  - See [these changes of spec/dummy/spec/rails_helper.rb](https://github.com/shakacode/react_on_rails/blob/master/spec/dummy/spec/rails_helper.rb#L36..38) for an example. Add this line to your `rails_helper.rb`:
1511
+
1059
1512
  ```ruby
1060
1513
  RSpec.configure do |config|
1061
1514
  # Ensure that if we are running js tests, we are using latest webpack assets
1062
1515
  ReactOnRails::TestHelper.configure_rspec_to_compile_assets(config)
1063
1516
  ```
1517
+
1064
1518
  - Change view helper calls to react_component to use the named param of `props`. See forum post [Using Regexp to update to ReactOnRails v3](http://forum.shakacode.com/t/using-regexp-to-update-to-reactonrails-v3/481).
1065
1519
 
1066
1520
  ## [2.3.0] - 2016-02-01
1521
+
1067
1522
  ##### Added
1523
+
1068
1524
  - Added polyfills for `setInterval` and `setTimeout` in case other libraries expect these to exist.
1069
1525
  - Added much improved debugging for errors in the server JavaScript webpack file.
1070
1526
  - See [#244](https://github.com/shakacode/react_on_rails/pull/244/) for these improvements.
1071
1527
 
1072
1528
  ## [2.2.0] - 2016-01-29
1529
+
1073
1530
  ##### Added
1531
+
1074
1532
  - New JavaScript API for debugging TurboLinks issues. Be sure to see [turbolinks docs](https://www.shakacode.com/react-on-rails/docs/rails/turbolinks). `ReactOnRails.setOptions({ traceTurbolinks: true });`. Removed the file `debug_turbolinks` added in 2.1.1. See [#243](https://github.com/shakacode/react_on_rails/pull/243).
1075
1533
 
1076
1534
  ## [2.1.1] - 2016-01-28
1077
1535
 
1078
1536
  ##### Fixed
1537
+
1079
1538
  - Fixed regression where apps that were not using Turbolinks would not render components on page load.
1080
1539
 
1081
1540
  ##### Added
1541
+
1082
1542
  - `ReactOnRails.render` returns a virtualDomElement Reference to your React component's backing instance. See [#234](https://github.com/shakacode/react_on_rails/pull/234).
1083
1543
  - `debug_turbolinks` helper for debugging turbolinks issues. See [turbolinks](https://www.shakacode.com/react-on-rails/docs/rails/turbolinks).
1084
1544
  - Enhanced regression testing for non-turbolinks apps. Runs all tests for dummy app with turbolinks both disabled and enabled.
1085
1545
 
1086
1546
  ## [2.1.0] - 2016-01-26
1547
+
1087
1548
  ##### Added
1549
+
1088
1550
  - Added EnsureAssetsCompiled feature so that you do not accidentally run tests without properly compiling the JavaScript bundles. Add a line to your `rails_helper.rb` file to check that the latest Webpack bundles have been generated prior to running tests that may depend on your client-side code. See [docs](https://www.shakacode.com/react-on-rails/docs/guides/rspec_configuration) for more detailed instructions. [#222](https://github.com/shakacode/react_on_rails/pull/222)
1089
1551
  - Added [migration guide](https://www.shakacode.com/react-on-rails/docs/additional-details/migrating-from-react-rails) for migrating from React-Rails. [#219](https://github.com/shakacode/react_on_rails/pull/219)
1090
1552
  - Added [React on Rails Doctrine](https://www.shakacode.com/react-on-rails/docs/misc/doctrine) to docs. Discusses the project's motivations, conventions, and principles. [#220](https://github.com/shakacode/react_on_rails/pull/220)
1091
1553
  - Added ability to skip `display:none` style in the generated content tag for a component. Some developers may want to disable inline styles for security reasons. See generated config [initializer file](lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb#L27) for example on setting `skip_display_none`. [#218](https://github.com/shakacode/react_on_rails/pull/218)
1092
1554
 
1093
1555
  ##### Changed
1556
+
1094
1557
  - Changed message when running the dev (a.k.a. "express" server). [#227](https://github.com/shakacode/react_on_rails/commit/543ae70254d0c7b477e2c92af86f40746e58a431)
1095
1558
 
1096
1559
  ##### Fixed
1560
+
1097
1561
  - Fixed handling of Turbolinks. Code was checking that Turbolinks was installed when it was not yet because some setups load Turbolinks after the bundles. The changes to the code will check if Turbolinks is installed after the page loaded event fires. Code was also added to allow easy debugging of Turbolinks, which should be useful when v5 of Turbolinks is released shortly. Details of how to configure Turbolinks with troubleshooting were added to `docs` directory. [#221](https://github.com/shakacode/react_on_rails/pull/221)
1098
1562
  - Fixed issue with already initialized constant warning appearing when starting a Rails server [#226](https://github.com/shakacode/react_on_rails/pull/226)
1099
1563
  - Fixed to make backwards compatible with Ruby v2.0 and updated all Ruby and Node dependencies.
@@ -1101,21 +1565,27 @@ RSpec.configure do |config|
1101
1565
  ---
1102
1566
 
1103
1567
  ## [2.0.2]
1568
+
1104
1569
  - Added better messages after generator runs. [#210](https://github.com/shakacode/react_on_rails/pull/210)
1105
1570
 
1106
1571
  ## [2.0.1]
1572
+
1107
1573
  - Fixed bug with version matching between gem and npm package.
1108
1574
 
1109
1575
  ## [2.0.0]
1576
+
1110
1577
  - Move JavaScript part of react_on_rails to npm package 'react-on-rails'.
1111
1578
  - Converted JavaScript code to ES6! with tests!
1112
1579
  - No global namespace pollution. ReactOnRails is the only global added.
1113
1580
  - New API. Instead of placing React components on the global namespace, you instead call ReactOnRails.register, passing an object where keys are the names of your components:
1581
+
1114
1582
  ```
1115
1583
  import ReactOnRails from 'react-on-rails';
1116
1584
  ReactOnRails.register({name: component});
1117
1585
  ```
1586
+
1118
1587
  Best done with Object destructing:
1588
+
1119
1589
  ```
1120
1590
  import ReactOnRails from 'react-on-rails';
1121
1591
  ReactOnRails.register(
@@ -1125,26 +1595,35 @@ Best done with Object destructing:
1125
1595
  }
1126
1596
  );
1127
1597
  ```
1128
- Previously, you used
1129
- ```
1130
- window.Component1 = Component1;
1131
- window.Component2 = Component2;
1132
- ```
1133
- This would pollute the global namespace. See details in the README.md for more information.
1598
+
1599
+ Previously, you used
1600
+
1601
+ ```
1602
+ window.Component1 = Component1;
1603
+ window.Component2 = Component2;
1604
+ ```
1605
+
1606
+ This would pollute the global namespace. See details in the README.md for more information.
1607
+
1134
1608
  - Your jade template for the WebpackDevServer setup should use the new API:
1609
+
1135
1610
  ```
1136
1611
  ReactOnRails.render(componentName, props, domNodeId);
1137
1612
  ```
1138
- such as:
1613
+
1614
+ such as:
1615
+
1139
1616
  ```
1140
1617
  ReactOnRails.render("HelloWorldApp", {name: "Stranger"}, 'app');
1141
1618
  ```
1619
+
1142
1620
  - All npm dependency libraries updated. Most notable is going to Babel 6.
1143
- - Dropped support for react 0.13.
1621
+ - Dropped support for React 0.13.
1144
1622
  - JS Linter uses ShakaCode JavaScript style: https://github.com/shakacode/style-guide-javascript
1145
- - Generators account these differences.
1623
+ - Generators account for these differences.
1146
1624
 
1147
1625
  ##### Migration Steps v1 to v2
1626
+
1148
1627
  [Example of upgrading](https://github.com/shakacode/react-webpack-rails-tutorial/commit/5b1b8698e8daf0f0b94e987740bc85ee237ef608)
1149
1628
 
1150
1629
  1. Update the `react_on_rails` gem.
@@ -1160,7 +1639,9 @@ Best done with Object destructing:
1160
1639
  ---
1161
1640
 
1162
1641
  ## [1.2.2]
1642
+
1163
1643
  ##### Fixed
1644
+
1164
1645
  - Missing Lodash from generated package.json [#175](https://github.com/shakacode/react_on_rails/pull/175)
1165
1646
  - Rails 3.2 could not run generators [#182](https://github.com/shakacode/react_on_rails/pull/182)
1166
1647
  - Better placement of jquery_ujs dependency [#171](https://github.com/shakacode/react_on_rails/pull/171)
@@ -1168,31 +1649,41 @@ Best done with Object destructing:
1168
1649
  - Lots of better docs.
1169
1650
 
1170
1651
  ## [1.2.0]
1652
+
1171
1653
  ##### Added
1654
+
1172
1655
  - Support `--skip-bootstrap` or `-b` option for generator.
1173
1656
  - Create examples tasks to test generated example apps.
1174
1657
 
1175
1658
  ##### Fixed
1659
+
1176
1660
  - Fix non-server rendering configuration issues.
1177
1661
  - Fix application.js incorrect overwritten issue.
1178
1662
  - Fix Gemfile dependencies.
1179
1663
  - Fix several generator issues.
1180
1664
 
1181
1665
  ##### Removed
1666
+
1182
1667
  - Removed templates/client folder.
1183
1668
 
1184
1669
  ---
1185
1670
 
1186
1671
  ## [1.1.1] - 2015-11-28
1672
+
1187
1673
  ##### Added
1674
+
1188
1675
  - Support for React Router.
1189
1676
  - Error and redirect handling.
1190
1677
  - Turbolinks support.
1191
1678
 
1192
1679
  ##### Fixed
1680
+
1193
1681
  - Fix several generator-related issues.
1194
1682
 
1195
- [Unreleased]: https://github.com/shakacode/react_on_rails/compare/14.1.1...master
1683
+ [Unreleased]: https://github.com/shakacode/react_on_rails/compare/16.1.0...master
1684
+ [16.1.0]: https://github.com/shakacode/react_on_rails/compare/16.0.0...16.1.0
1685
+ [16.0.0]: https://github.com/shakacode/react_on_rails/compare/14.2.0...16.0.0
1686
+ [14.2.0]: https://github.com/shakacode/react_on_rails/compare/14.1.1...14.2.0
1196
1687
  [14.1.1]: https://github.com/shakacode/react_on_rails/compare/14.1.0...14.1.1
1197
1688
  [14.1.0]: https://github.com/shakacode/react_on_rails/compare/14.0.5...14.1.0
1198
1689
  [14.0.5]: https://github.com/shakacode/react_on_rails/compare/14.0.4...14.0.5