react_on_rails 12.0.1 → 12.0.5.beta.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +1 -1
  3. data/.eslintrc +0 -1
  4. data/.github/workflows/lint-js-and-ruby.yml +53 -0
  5. data/.github/workflows/main.yml +178 -0
  6. data/.github/workflows/package-js-tests.yml +35 -0
  7. data/.github/workflows/rspec-package-specs.yml +45 -0
  8. data/.rubocop.yml +15 -44
  9. data/.travis.yml +3 -1
  10. data/CHANGELOG.md +20 -1
  11. data/CONTRIBUTING.md +1 -1
  12. data/Gemfile +1 -33
  13. data/Gemfile.development_dependencies +50 -0
  14. data/NEWS.md +5 -0
  15. data/README.md +26 -20
  16. data/SUMMARY.md +1 -1
  17. data/docs/additional-reading/recommended-project-structure.md +69 -0
  18. data/docs/basics/client-vs-server-rendering.md +2 -0
  19. data/docs/basics/hmr-and-hot-reloading-with-the-webpack-dev-server.md +64 -9
  20. data/docs/basics/installation-into-an-existing-rails-app.md +11 -4
  21. data/docs/basics/react-server-rendering.md +8 -5
  22. data/docs/basics/upgrading-react-on-rails.md +37 -14
  23. data/docs/basics/webpack-configuration.md +12 -18
  24. data/docs/misc/doctrine.md +0 -1
  25. data/docs/outdated/code-splitting.md +2 -2
  26. data/docs/tutorial.md +19 -21
  27. data/lib/generators/react_on_rails/base_generator.rb +8 -1
  28. data/lib/generators/react_on_rails/templates/dev_tests/spec/rails_helper.rb +4 -1
  29. data/lib/generators/react_on_rails/templates/dev_tests/spec/simplecov_helper.rb +1 -1
  30. data/lib/react_on_rails/configuration.rb +2 -0
  31. data/lib/react_on_rails/git_utils.rb +3 -3
  32. data/lib/react_on_rails/helper.rb +10 -9
  33. data/lib/react_on_rails/locales/base.rb +3 -3
  34. data/lib/react_on_rails/locales/to_js.rb +0 -4
  35. data/lib/react_on_rails/locales/to_json.rb +0 -4
  36. data/lib/react_on_rails/prerender_error.rb +1 -1
  37. data/lib/react_on_rails/server_rendering_pool/ruby_embedded_java_script.rb +6 -6
  38. data/lib/react_on_rails/test_helper.rb +2 -0
  39. data/lib/react_on_rails/test_helper/webpack_assets_compiler.rb +1 -1
  40. data/lib/react_on_rails/utils.rb +8 -2
  41. data/lib/react_on_rails/version.rb +1 -1
  42. data/lib/react_on_rails/webpacker_utils.rb +4 -4
  43. data/lib/tasks/assets.rake +6 -6
  44. data/package.json +1 -1
  45. data/rakelib/docker.rake +0 -5
  46. data/rakelib/lint.rake +3 -9
  47. data/rakelib/release.rake +9 -11
  48. data/rakelib/run_rspec.rake +10 -11
  49. data/rakelib/task_helpers.rb +2 -3
  50. data/react_on_rails.gemspec +3 -17
  51. metadata +16 -194
  52. data/docs/additional-reading/webpack-dev-server.md +0 -15
  53. data/docs/basics/recommended-project-structure.md +0 -77
  54. data/ruby-lint.yml +0 -25
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 83e519532dfba4ffcb23379c8d757d4d299aaa11247c718e310e257e3bca3291
4
- data.tar.gz: d328b53abce54b4deb4481addaaef242b6b531c493aa3154784fa8f87f55e7c0
3
+ metadata.gz: 7c3761565aa14795caa2b5c486de9016269ff3d39230c11c0d7bd582a507daa4
4
+ data.tar.gz: 21ef8af0d15a75a828852ca179e0b6a9e7ba930036db6ecde58de0e09b5637e5
5
5
  SHA512:
6
- metadata.gz: e183bc2eaed29538422fbe0984177f9e64dcb7501d96f971e1a1887aae596e9fe2519d78d44c6517af07abe2db44632ba38879e070966641b1faac5e6e984e08
7
- data.tar.gz: 6ab4afd6786b2539428dffcbad518dd0e3cd1111a61d0b81891a715d665e5c7e6d4053d3e344d770808422abb720c07259bd537f6bfe1b5a59f0e0127e96b2ac
6
+ metadata.gz: 3c2c6a6cd0c2e584cfda8bb0ed3be9ad42c5ae14b196d436c3e99813a61df2278ba10940bfaad1968ea868daeb14b844f04ff440bd6424e3ae9bd3cdaf8119ee
7
+ data.tar.gz: 0bcfac754d871893719d1604d6e42022c55048e608e6e345d0b9ce5948af3a16a5af8e18d36c4b7232dcd064f931905476981553582203f92d1df4bc189f3be2
@@ -2,7 +2,7 @@ version: 2
2
2
 
3
3
  aliases:
4
4
  - &docker-image
5
- - image: circleci/ruby:2.6-node-browsers
5
+ - image: circleci/ruby:2.7-node-browsers
6
6
 
7
7
  # Print critical data and executables versions.
8
8
  - &print-system-info
data/.eslintrc CHANGED
@@ -1,4 +1,3 @@
1
- ---
2
1
  extends:
3
2
  - eslint-config-shakacode
4
3
  - prettier
@@ -0,0 +1,53 @@
1
+ name: Lint JS and Ruby
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ build:
7
+ strategy:
8
+ matrix:
9
+ ruby: [2.7]
10
+ node: [14]
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v2
14
+ - name: Setup Ruby
15
+ uses: ruby/setup-ruby@v1
16
+ with:
17
+ ruby-version: ${{ matrix.ruby }}
18
+ - name: Setup Node
19
+ uses: actions/setup-node@v2-beta
20
+ with:
21
+ node-version: ${{ matrix.node }}
22
+ - name: Print system information
23
+ run: |
24
+ echo "Linux release: "; cat /etc/issue
25
+ echo "Current user: "; whoami
26
+ echo "Current directory: "; pwd
27
+ echo "Ruby version: "; ruby -v
28
+ echo "Node version: "; node -v
29
+ echo "Yarn version: "; yarn --version
30
+ echo "Bundler version: "; bundle --version
31
+ - name: Save root node_modules to cache
32
+ uses: actions/cache@v2
33
+ with:
34
+ path: node_modules
35
+ key: v4-package-node-modules-cache-${{ hashFiles('yarn.lock') }}
36
+ - name: Save root ruby gems to cache
37
+ uses: actions/cache@v2
38
+ with:
39
+ path: vendor/bundle
40
+ key: v4-package-app-gem-cache-${{ hashFiles('react_on_rails.gemspec') }}
41
+ - name: Install Node modules with Yarn for renderer package
42
+ run: |
43
+ yarn install --no-progress --no-emoji
44
+ yarn run eslint -v
45
+ sudo yarn global add yalc
46
+ - name: Install Ruby Gems for package
47
+ run: bundle check --path=vendor/bundle || bundle install --path=vendor/bundle --jobs=4 --retry=3
48
+ - name: Linting of Ruby
49
+ run: bundle exec rubocop
50
+ - name: Linting of JS
51
+ run: yarn start lint
52
+ - name: Check formatting
53
+ run: yarn start format.listDifferent
@@ -0,0 +1,178 @@
1
+ name: Main test
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ build-dummy-app-webpack-test-bundles:
7
+ strategy:
8
+ matrix:
9
+ ruby: [2.7]
10
+ node: [14]
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v2
14
+ - name: Setup Ruby
15
+ uses: ruby/setup-ruby@v1
16
+ with:
17
+ ruby-version: ${{ matrix.ruby }}
18
+ - name: Setup Node
19
+ uses: actions/setup-node@v2-beta
20
+ with:
21
+ node-version: ${{ matrix.node }}
22
+ - name: Print system information
23
+ run: |
24
+ echo "Linux release: "; cat /etc/issue
25
+ echo "Current user: "; whoami
26
+ echo "Current directory: "; pwd
27
+ echo "Ruby version: "; ruby -v
28
+ echo "Node version: "; node -v
29
+ echo "Yarn version: "; yarn --version
30
+ echo "Bundler version: "; bundle --version
31
+ - name: Save root node_modules to cache
32
+ uses: actions/cache@v2
33
+ with:
34
+ path: node_modules
35
+ key: v4-package-node-modules-cache-${{ hashFiles('yarn.lock') }}
36
+ - name: Install Node modules with Yarn for renderer package
37
+ run: |
38
+ yarn install --no-progress --no-emoji
39
+ yarn run eslint -v
40
+ sudo yarn global add yalc
41
+ - name: yalc publish for react-on-rails
42
+ run: yalc publish
43
+ - name: Save spec/dummy/node_modules to cache
44
+ uses: actions/cache@v2
45
+ with:
46
+ path: spec/dummy/node_modules
47
+ key: v4-dummy-app-node-modules-cache-${{ hashFiles('spec/dummy/yarn.lock') }}
48
+ - name: yalc add react-on-rails
49
+ run: cd spec/dummy && yalc add react-on-rails
50
+ - name: Install Node modules with Yarn for dummy app
51
+ run: cd spec/dummy && yarn install --no-progress --no-emoji
52
+ - name: Save dummy app ruby gems to cache
53
+ uses: actions/cache@v2
54
+ with:
55
+ path: spec/dummy/vendor/bundle
56
+ key: v4-dummy-app-gem-cache-${{ hashFiles('spec/dummy/Gemfile.lock') }}
57
+ - name: Install Ruby Gems for dummy app
58
+ run: cd spec/dummy && bundle check --path=vendor/bundle || bundle install --path=vendor/bundle --jobs=4 --retry=3
59
+ - name: Build test bundles for dummy app
60
+ run: cd spec/dummy && yarn run build:test
61
+ - id: get-sha
62
+ run: echo "::set-output name=sha::$(git rev-parse HEAD)"
63
+ - name: Save test webpack bundles to cache (for build number checksum used by rspec job)
64
+ uses: actions/cache@v2
65
+ with:
66
+ path: spec/dummy/public/webpack
67
+ key: v4-dummy-app-webpack-bundle-${{ steps.get-sha.outputs.sha }}
68
+
69
+ main:
70
+ needs: build-dummy-app-webpack-test-bundles
71
+ strategy:
72
+ matrix:
73
+ ruby: [2.7]
74
+ node: [14]
75
+ rake_task: ['run_rspec:all_dummy', 'run_rspec:all_but_examples', 'run_rspec:examples']
76
+ runs-on: ubuntu-latest
77
+ steps:
78
+ - uses: actions/checkout@v2
79
+ - name: Setup Ruby
80
+ uses: ruby/setup-ruby@v1
81
+ with:
82
+ ruby-version: ${{ matrix.ruby }}
83
+ - name: Setup Node
84
+ uses: actions/setup-node@v2-beta
85
+ with:
86
+ node-version: ${{ matrix.node }}
87
+ - name: Print system information
88
+ run: |
89
+ echo "Linux release: "; cat /etc/issue
90
+ echo "Current user: "; whoami
91
+ echo "Current directory: "; pwd
92
+ echo "Ruby version: "; ruby -v
93
+ echo "Node version: "; node -v
94
+ echo "Yarn version: "; yarn --version
95
+ echo "Bundler version: "; bundle --version
96
+ - name: Save root node_modules to cache
97
+ uses: actions/cache@v2
98
+ with:
99
+ path: node_modules
100
+ key: v4-package-node-modules-cache-${{ hashFiles('yarn.lock') }}
101
+ - name: Save root ruby gems to cache
102
+ uses: actions/cache@v2
103
+ with:
104
+ path: vendor/bundle
105
+ key: v4-package-app-gem-cache-${{ hashFiles('react_on_rails.gemspec') }}
106
+ - name: Save dummy app ruby gems to cache
107
+ uses: actions/cache@v2
108
+ with:
109
+ path: spec/dummy/vendor/bundle
110
+ key: v4-dummy-app-gem-cache-${{ hashFiles('spec/dummy/Gemfile.lock') }}
111
+ - name: Save spec/dummy/node_modules to cache
112
+ uses: actions/cache@v2
113
+ with:
114
+ path: spec/dummy/node_modules
115
+ key: v4-dummy-app-node-modules-cache-${{ hashFiles('spec/dummy/yarn.lock') }}
116
+ - id: get-sha
117
+ run: echo "::set-output name=sha::$(git rev-parse HEAD)"
118
+ - name: Save test webpack bundles to cache (for build number checksum used by rspec job)
119
+ uses: actions/cache@v2
120
+ with:
121
+ path: spec/dummy/public/webpack
122
+ key: v4-dummy-app-webpack-bundle-${{ steps.get-sha.outputs.sha }}
123
+
124
+ - name: Install Node modules with Yarn for renderer package
125
+ run: |
126
+ yarn install --no-progress --no-emoji
127
+ yarn run eslint -v
128
+ sudo yarn global add yalc
129
+ - name: yalc publish for react-on-rails
130
+ run: yalc publish
131
+ - name: yalc add react-on-rails
132
+ run: cd spec/dummy && yalc add react-on-rails
133
+ - name: Install Ruby Gems for package
134
+ run: bundle check --path=vendor/bundle || bundle install --path=vendor/bundle --jobs=4 --retry=3
135
+ - name: Install Ruby Gems for dummy app
136
+ run: cd spec/dummy && bundle check --path=vendor/bundle || bundle install --path=vendor/bundle --jobs=4 --retry=3
137
+ - name: Ensure minimum required Chrome version
138
+ run: |
139
+ echo -e "Already installed $(google-chrome --version)\n"
140
+ MINIMUM_REQUIRED_CHROME_VERSION=75
141
+ INSTALLED_CHROME_MAJOR_VERSION="$(google-chrome --version | tr ' .' '\t' | cut -f3)"
142
+ if [[ $INSTALLED_CHROME_MAJOR_VERSION < $MINIMUM_REQUIRED_CHROME_VERSION ]]; then
143
+ wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
144
+ sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
145
+ sudo apt-get update
146
+ sudo apt-get install google-chrome-stable
147
+ echo -e "\nInstalled $(google-chrome --version)"
148
+ fi
149
+ - name: Touch webpack bundles
150
+ run: touch spec/dummy/public/webpack/test/*
151
+ - name: Install yalc globally
152
+ run: sudo yarn global add yalc
153
+ - name: Increase the amount of inotify watchers
154
+ run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
155
+ - name: Prep for CI
156
+ run: bundle exec rake prepare_for_ci
157
+ - name: Main CI
158
+ run: bundle exec rake ${{ matrix.rake_task }}
159
+ - name: Store test results
160
+ uses: actions/upload-artifact@v2
161
+ with:
162
+ name: main-rspec
163
+ path: ~/rspec
164
+ - name: Store artifacts
165
+ uses: actions/upload-artifact@v2
166
+ with:
167
+ name: dummy-app-capybara
168
+ path: spec/dummy/tmp/capybara
169
+ - name: Store artifacts
170
+ uses: actions/upload-artifact@v2
171
+ with:
172
+ name: dummy-app-test-log
173
+ path: spec/dummy/log/test.log
174
+ - name: Store artifacts
175
+ uses: actions/upload-artifact@v2
176
+ with:
177
+ name: dummy-app-yarn-log
178
+ path: spec/dummy/yarn-error.log
@@ -0,0 +1,35 @@
1
+ name: JS unit tests for Renderer package
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ build:
7
+ strategy:
8
+ matrix:
9
+ node: [12, 14]
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v2
13
+ - name: Setup Node
14
+ uses: actions/setup-node@v2-beta
15
+ with:
16
+ node-version: ${{ matrix.node }}
17
+ - name: Print system information
18
+ run: |
19
+ echo "Linux release: "; cat /etc/issue
20
+ echo "Current user: "; whoami
21
+ echo "Current directory: "; pwd
22
+ echo "Node version: "; node -v
23
+ echo "Yarn version: "; yarn --version
24
+ - name: Save root node_modules to cache
25
+ uses: actions/cache@v2
26
+ with:
27
+ path: node_modules
28
+ key: v4-package-node-modules-cache-${{ hashFiles('yarn.lock') }}
29
+ - name: Install Node modules with Yarn for renderer package
30
+ run: |
31
+ yarn install --no-progress --no-emoji
32
+ yarn run eslint -v
33
+ sudo yarn global add yalc
34
+ - name: Run JS unit tests for Renderer package
35
+ run: yarn test
@@ -0,0 +1,45 @@
1
+ name: Rspec test for gem
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ build:
7
+ strategy:
8
+ matrix:
9
+ ruby: [2.7]
10
+ node: [14]
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v2
14
+ - name: Setup Ruby
15
+ uses: ruby/setup-ruby@v1
16
+ with:
17
+ ruby-version: ${{ matrix.ruby }}
18
+ - name: Print system information
19
+ run: |
20
+ echo "Linux release: "; cat /etc/issue
21
+ echo "Current user: "; whoami
22
+ echo "Current directory: "; pwd
23
+ echo "Ruby version: "; ruby -v
24
+ echo "Node version: "; node -v
25
+ echo "Yarn version: "; yarn --version
26
+ echo "Bundler version: "; bundle --version
27
+ - name: Save root ruby gems to cache
28
+ uses: actions/cache@v2
29
+ with:
30
+ path: vendor/bundle
31
+ key: v4-package-app-gem-cache-${{ hashFiles('react_on_rails.gemspec') }}
32
+ - name: Install Ruby Gems for package
33
+ run: bundle check --path=vendor/bundle || bundle install --path=vendor/bundle --jobs=4 --retry=3
34
+ - name: Run rspec tests
35
+ run: bundle exec rspec spec/react_on_rails
36
+ - name: Store test results
37
+ uses: actions/upload-artifact@v2
38
+ with:
39
+ name: main-rspec
40
+ path: ~/rspec
41
+ - name: Store artifacts
42
+ uses: actions/upload-artifact@v2
43
+ with:
44
+ name: main-test-log
45
+ path: log/test.log
@@ -1,7 +1,9 @@
1
1
  # This is the configuration used to check the rubocop source code.
2
2
  # Check out: https://github.com/bbatsov/rubocop
3
+ require: rubocop-performance
3
4
 
4
5
  AllCops:
6
+ NewCops: enable
5
7
  DisplayCopNames: true
6
8
  TargetRubyVersion: 2.5
7
9
 
@@ -13,34 +15,25 @@ AllCops:
13
15
  - '**/*.rake'
14
16
 
15
17
  Exclude:
16
- - 'vendor/**/*'
17
- - 'spec/fixtures/**/*'
18
- - 'node_modules/**/.*'
19
- - 'node_modules/**/*'
18
+ <% `git status --ignored --porcelain`.lines.grep(/^!! /).each do |path| %>
19
+ - <%= path.sub(/^!! /, '') %>
20
+ <% end %>
21
+ - '**/*.js'
22
+ - '**/node_modules/**/*'
23
+ - '**/public/**/*'
24
+ - '**/tmp/**/*'
20
25
  - 'coverage/**/*'
21
- - 'db/**/*'
22
- - 'db/schema.rb'
23
- - 'db/seeds.rb'
24
- - 'client/node_modules/**/*.*'
25
- - 'client/node_modules/**/.*'
26
- - 'bin/**/*'
27
- - !ruby/regexp /old_and_unused\.rb$/
28
- - 'spec/react_on_rails/dummy-for-generators/**/*'
29
- - 'spec/dummy/Procfile.*'
30
- - 'spec/dummy/bin/**/*'
31
- - 'spec/dummy/node_modules/**/*'
32
- - 'spec/dummy/node_modules/**/.*'
33
- - 'gen-examples/examples/**/.*'
34
26
  - 'gen-examples/examples/**/*'
27
+ - 'node_modules/**/*'
28
+ - 'spec/dummy/bin/*'
29
+ - 'spec/fixtures/**/*'
30
+ - 'spec/react_on_rails/dummy-for-generators/**/*'
31
+ - 'tmp/**/*'
32
+ - 'vendor/**/*'
35
33
 
36
34
  Naming/FileName:
37
35
  Exclude:
38
36
  - 'Gemfile'
39
- - 'spec/dummy/Gemfile'
40
-
41
- # Turn off until we require 2.3 ruby
42
- Style/SafeNavigation:
43
- Enabled: false
44
37
 
45
38
  Layout/LineLength:
46
39
  Max: 120
@@ -97,25 +90,3 @@ Naming/RescuedExceptionsVariableName:
97
90
  Style/GlobalVars:
98
91
  Exclude:
99
92
  - 'spec/dummy/config/environments/development.rb'
100
-
101
- Style/FrozenStringLiteralComment:
102
- EnforcedStyle: always
103
-
104
- Layout/EmptyLinesAroundAttributeAccessor:
105
- Enabled: true
106
-
107
- Layout/SpaceAroundMethodCallOperator:
108
- Enabled: true
109
-
110
- Lint/RaiseException:
111
- Enabled: true
112
-
113
- Lint/StructNewOverride:
114
- Enabled: true
115
-
116
- Style/ExponentialNotation:
117
- Enabled: true
118
-
119
- Style/SlicingWithRange:
120
- Enabled: true
121
-
@@ -39,13 +39,15 @@ install:
39
39
  - node -v
40
40
  - travis_retry npm i -g yarn
41
41
  - travis_retry yarn global add yalc
42
+ - travis_retry yalc add react-on-rails
42
43
  - travis_retry yarn
43
44
  - travis_retry bundle install
44
45
  - travis_retry yarn run build
45
46
  - travis_retry yalc publish
46
- - cd spec/dummy/client
47
+ - cd spec/dummy
47
48
  - travis_retry yalc add react-on-rails
48
49
  - travis_retry yarn
50
+ - cd ../..
49
51
  - bundle exec rake prepare_for_ci
50
52
 
51
53
  before_script:
@@ -16,6 +16,22 @@ Please follow the recommendations outlined at [keepachangelog.com](http://keepac
16
16
  Changes since last non-beta release.
17
17
 
18
18
  *Please add entries here for your pull requests that are not yet released.*
19
+ ### [12.0.4] - 2020-11-14
20
+ #### Fixed
21
+ - 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 1338Fix Generator to use Exact NPM Version](https://github.com/shakacode/react_on_rails/pull/1338) by by [justin808](https://github.com/justin808).
22
+
23
+ ### [12.0.3] - 2020-09-20
24
+ #### Fixed
25
+ - Async script loading optimizes page load speed. With this fix, a bundle
26
+ can be loaded "async" and a handler function can determine when to hydrate.
27
+ 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).
28
+ [PR 1327](https://github.com/shakacode/react_on_rails/pull/1327) by [justin808](https://github.com/justin808).
29
+ Loadable-Components is supported by [React on Rails Pro](https://www.shakacode.com/react-on-rails-pro).
30
+
31
+ ### [12.0.2] - 2020-07-09
32
+ #### Fixed
33
+ - Remove dependency upon Redux for Typescript types. [PR 1323](https://github.com/shakacode/react_on_rails/pull/1306) by [justin808](https://github.com/justin808).
34
+
19
35
  ### [12.0.1] - 2020-07-09
20
36
  #### Fixed
21
37
  - Changed invocation of webpacker:clean to use a very large number of versions so it does not acidentally delete the server-bundle.js. [PR 1306](https://github.com/shakacode/react_on_rails/pull/1306) by By [justin808](https://github.com/justin808).
@@ -930,7 +946,10 @@ Best done with Object destructing:
930
946
  ##### Fixed
931
947
  - Fix several generator related issues.
932
948
 
933
- [Unreleased]: https://github.com/shakacode/react_on_rails/compare/12.0.1...master
949
+ [Unreleased]: https://github.com/shakacode/react_on_rails/compare/12.0.4...master
950
+ [12.0.4]: https://github.com/shakacode/react_on_rails/compare/12.0.3...12.0.4
951
+ [12.0.3]: https://github.com/shakacode/react_on_rails/compare/12.0.2...12.0.3
952
+ [12.0.2]: https://github.com/shakacode/react_on_rails/compare/12.0.1...12.0.2
934
953
  [12.0.1]: https://github.com/shakacode/react_on_rails/compare/12.0.0...12.0.1
935
954
  [12.0.0]: https://github.com/shakacode/react_on_rails/compare/11.3.0...12.0.0
936
955
  [11.3.0]: https://github.com/shakacode/react_on_rails/compare/11.2.2...11.3.0