Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
678 commits
Select commit Hold shift + click to select a range
91d61d0
Bump async from 2.6.3 to 2.6.4 (#263)
dependabot[bot] Apr 15, 2022
aa8daeb
Bump async from 2.6.3 to 2.6.4 in /spec/dummy (#262)
dependabot[bot] Apr 15, 2022
e554019
Bump async from 2.6.3 to 2.6.4 in /spec/loadable (#261)
dependabot[bot] Apr 15, 2022
8e05fdc
Fix Intermittent crash: request protocol undefined does not match ins…
justin808 Apr 15, 2022
26bcc45
Update CHANGELOG.md
justin808 Apr 15, 2022
ed7080f
remove spec/loadable (#239)
Judahmeek Apr 15, 2022
92f75fc
Finish removing spec/loadable example
justin808 Apr 15, 2022
4d1b3e8
Release 3.0.0-rc.2
justin808 Apr 15, 2022
4a07525
Make PrepareNodeRenderBundles call match #254 (#264)
Judahmeek Apr 15, 2022
9166013
Release 3.0.0-rc.3
justin808 Apr 15, 2022
96409e7
Update installation.md (#266)
frullah May 31, 2022
841a35c
Bump cross-fetch from 3.1.4 to 3.1.5 in /spec/dummy (#265)
dependabot[bot] May 31, 2022
67e8ae7
Fix prettier formatting
justin808 May 31, 2022
990d737
Replace use of utc_timestamp with Utils.bundle_hash (#269)
Judahmeek Jun 29, 2022
ac1984c
Add RAILS_ENV to bundle cache key (#270)
justin808 Jun 29, 2022
0d861d9
Release 3.0.0-rc.4
justin808 Jun 29, 2022
55a24f4
Update release instructions
justin808 Jun 29, 2022
e97a695
Make asset paths in PrepareNodeRenderBundles relative too (#273)
alexeyr-ci1 Jul 7, 2022
81bb62c
Bump jsdom from 16.4.0 to 16.5.0 (#267)
dependabot[bot] Jul 7, 2022
1109f34
Update CHANGELOG.md
justin808 Jul 7, 2022
c662fd1
Doc change
justin808 Jul 7, 2022
2d93f7a
Release 3.0.0
justin808 Jul 7, 2022
8cc66b0
Require RoR error in RoRP error (#277)
alexeyr-ci1 Jul 12, 2022
48dfe47
Update CHANGELOG.md
justin808 Jul 12, 2022
e1dc02f
Release 3.0.1
justin808 Jul 12, 2022
28734ed
Do not raise on missing assets (#280)
Romex91 Jul 22, 2022
a551266
Bump terser from 5.10.0 to 5.14.2 in /spec/dummy (#279)
dependabot[bot] Jul 30, 2022
02e4a75
Bump moment from 2.29.1 to 2.29.4 in /spec/dummy (#276)
dependabot[bot] Jul 30, 2022
6035b56
Move polyfill option to node renderer configuration (#281)
Judahmeek Aug 4, 2022
6f3d124
Release 3.1.0
justin808 Aug 4, 2022
11c78b9
Update CHANGELOG.md
justin808 Aug 4, 2022
8cb0ea1
remove the dash from the procfile process name (#285)
Judahmeek Aug 30, 2022
9210cbb
fix: #284 (#286)
vaukalak Sep 10, 2022
2959f6f
Updates for React 18 (#287)
vaukalak Sep 14, 2022
94684d6
reverted ruby to 2.7.5 (#289)
vaukalak Sep 15, 2022
a7f30bf
Update README.md
justin808 Sep 19, 2022
98a595e
Update CHANGELOG.md
justin808 Sep 19, 2022
0914039
Update code-splitting-loadable-components.md
justin808 Sep 20, 2022
27586a6
fixed hydration inconsistencies in the react helmet example (#290)
vaukalak Sep 20, 2022
67065c6
Issue #291 Create react18 GraphQL example. (#292)
vaukalak Oct 14, 2022
2831955
Upgraded Rubocop to latest version and fixed the failures (#296)
alkesh26 Oct 19, 2022
9d412b2
Bump minimatch from 3.0.4 to 3.1.2 (#299)
dependabot[bot] Nov 12, 2022
a8edfcf
Bump minimatch from 3.0.4 to 3.1.2 in /spec/dummy (#298)
dependabot[bot] Nov 12, 2022
52973f5
Resolve Dependabot Alerts (#295)
Judahmeek Nov 15, 2022
90b9fc7
Bump express from 4.17.1 to 4.18.2 in /spec/dummy (#308)
dependabot[bot] Dec 31, 2022
1f017ba
ControlPlane deployment (#311)
vaukalak Jan 16, 2023
3021a41
Bump express from 4.17.1 to 4.17.3 (#307)
dependabot[bot] Jan 26, 2023
38d130a
Bump json5 from 1.0.1 to 1.0.2 (#310)
dependabot[bot] Jan 26, 2023
df8dd9c
Bump cookiejar from 2.1.2 to 2.1.4 (#313)
dependabot[bot] Feb 1, 2023
ba6566e
update chengelog (#314)
Judahmeek Feb 15, 2023
d7f52e2
Update js-configuration.md
justin808 Feb 17, 2023
dd03349
Allow setTimeout calls without console errors (#316)
Romex91 Feb 23, 2023
edc391e
Update js-configuration.md
justin808 Feb 23, 2023
e81acfa
Bump minimist from 1.2.5 to 1.2.7 in /spec/dummy (#301)
dependabot[bot] Feb 23, 2023
8da3951
Bump qs from 6.5.2 to 6.5.3 (#303)
dependabot[bot] Feb 23, 2023
d60fc4f
Bump decode-uri-component from 0.2.0 to 0.2.2 (#304)
dependabot[bot] Feb 23, 2023
83a1fd7
Bump decode-uri-component from 0.2.0 to 0.2.2 in /spec/dummy (#305)
dependabot[bot] Feb 23, 2023
9e677f1
Bump http-cache-semantics from 4.1.0 to 4.1.1 (#315)
dependabot[bot] Feb 23, 2023
b183b82
Update README.md and CHANGELOG.md (#319)
justin808 Feb 24, 2023
f6850d2
Feature/tailwind styling (#312)
vaukalak Mar 10, 2023
547abf0
Bump webpack from 5.67.0 to 5.76.0 in /spec/dummy (#323)
dependabot[bot] Mar 14, 2023
33d73b1
Update serverWebpackConfig.js (#322)
Judahmeek Mar 16, 2023
c4fde88
Add troubleshooting guide of crash by restarts (#321)
frullah Mar 16, 2023
ca1d0f2
Bump vm2 from 3.9.11 to 3.9.15 (#324)
dependabot[bot] Apr 8, 2023
1ca36f4
Bump vm2 from 3.9.15 to 3.9.16 (#325)
dependabot[bot] Apr 13, 2023
90939e4
Bump vm2 from 3.9.16 to 3.9.17 (#326)
dependabot[bot] Apr 21, 2023
1a89745
Bump vm2 from 3.9.17 to 3.9.18 (#327)
dependabot[bot] May 16, 2023
d473272
bundle exec rubocop (#332)
Judahmeek Jun 6, 2023
6028de2
enhance npmignore (#330)
Judahmeek Jun 6, 2023
8635a58
properly output request body (#329)
Judahmeek Jun 6, 2023
bd8e2b9
change default of throw_js_errors (#328)
Judahmeek Jun 6, 2023
e0f89f9
Bump semver from 5.7.1 to 7.5.2
dependabot[bot] Jun 23, 2023
bdd14d2
refactor file name & structure
Judahmeek Jun 10, 2023
1c734d1
update dependencies
Judahmeek Jun 10, 2023
7ea2f57
add auto_load_bundle support
Judahmeek Jun 10, 2023
84fe30e
fix package caching
Judahmeek Jun 29, 2023
bb9aab5
lock bundler version to 2.3.3
Judahmeek Jun 29, 2023
65882c8
Bump minimist from 1.2.5 to 1.2.8 in /spec/dummy (#336)
dependabot[bot] Jul 8, 2023
84f32c9
Bump tough-cookie from 4.0.0 to 4.1.3 in /spec/dummy (#335)
dependabot[bot] Jul 8, 2023
2dbe6e7
Bump semver from 5.7.1 to 5.7.2 in /spec/dummy (#337)
dependabot[bot] Jul 11, 2023
5be79e6
Removal of the request_digest on the URL(#338)
Judahmeek Jul 17, 2023
c24d331
Update expected apiResponse (#343)
Judahmeek Jul 31, 2023
0593f6f
Bump word-wrap from 1.2.3 to 1.2.5 (#344)
dependabot[bot] Aug 1, 2023
41e5334
Bump word-wrap from 1.2.3 to 1.2.5 in /spec/dummy (#345)
dependabot[bot] Aug 1, 2023
2434a34
Change dependency globs default to empty array (#342)
Judahmeek Aug 1, 2023
b11b7c1
Bump graphql from 16.6.0 to 16.8.1 in /spec/dummy (#349)
dependabot[bot] Sep 24, 2023
55fbd0c
Bump postcss from 8.4.21 to 8.4.31 in /spec/dummy (#351)
dependabot[bot] Oct 5, 2023
0ebc1a4
Revert "Removal of the request_digest on the URL(#338)" (#352)
Judahmeek Oct 18, 2023
7e19ff1
Use allow instead of stub for test (#355)
ahangarha Oct 18, 2023
e7d88b4
Update docs for installation and configuration (#359)
justin808 Oct 19, 2023
3d450de
Bump @babel/traverse from 7.8.4 to 7.23.2 (#353)
dependabot[bot] Oct 20, 2023
0832c6d
Bump @babel/traverse from 7.16.10 to 7.23.2 in /spec/dummy (#354)
dependabot[bot] Oct 20, 2023
f7cae31
Multiple fixes and follow-ups to ReactOnRails PRs (#358)
Judahmeek Oct 20, 2023
2e7706c
Bump browserify-sign from 4.2.1 to 4.2.2 in /spec/dummy (#360)
dependabot[bot] Oct 28, 2023
c7fb8a9
Create additionalContext option (#357)
Judahmeek Nov 3, 2023
436e1fe
Upgrade react-router to v6 & use Data-Router APIs (#347)
Judahmeek Nov 3, 2023
c14a471
Bump follow-redirects from 1.14.5 to 1.15.4 in /spec/dummy (#364)
dependabot[bot] Jan 9, 2024
fa45345
Bump Ruby to v3 and minor ruby dependencies upgrade (#365)
ahangarha Jan 18, 2024
e60ef9e
Minor fixes (#367)
ahangarha Jan 19, 2024
c93ec2d
Bump Rails to 7.1 and Puma to v6 (#368)
ahangarha Feb 9, 2024
3ecd924
Add ssr-computation example and add support for TS to the dummy app (…
AbanoubGhadban Feb 13, 2024
74c85ea
Fix CI failure (#375)
ahangarha Mar 17, 2024
80c9f31
Bump ip from 1.1.8 to 1.1.9 (#371)
dependabot[bot] Mar 17, 2024
6fa1300
Link to Loadable Components code-splitting Guide (#377)
Judahmeek Mar 17, 2024
5f65d6c
Update the contribution guide for running and testing dummy app (#366)
ahangarha Mar 17, 2024
24b48db
Fix js vulnerabilities (#378)
ahangarha Mar 17, 2024
dbad690
Bump express from 4.17.3 to 4.19.2 (#382)
dependabot[bot] Mar 28, 2024
b4de62e
WIP - Fix js vulnerabilities (#384)
ahangarha Apr 5, 2024
cfdc9de
Documentation updates to support adding them to Shakacode's website (…
rameziophobia Apr 5, 2024
0064caf
Updates to support running bundle with different versions
justin808 Apr 5, 2024
2ae7012
Fix package.json
justin808 Apr 7, 2024
315deaa
Release 4.0.0-rc.0
justin808 Apr 7, 2024
2aed12e
Update updating.md
justin808 Apr 7, 2024
073115b
Release 4.0.0-rc.1
justin808 Apr 7, 2024
8f31574
Update CONTRIBUTING.md
justin808 Apr 7, 2024
10e421a
Add execute permission on `spec/dummy/bin/dev` (#387)
alexeyr-ci Apr 12, 2024
a496d3f
Convert node-renderer package to TypeScript (#386)
alexeyr-ci Apr 17, 2024
b794377
Finish the TypeScript conversion (#389)
alexeyr-ci Apr 17, 2024
459194d
Upgrade Jest, Yalc, concurrently (#393)
alexeyr-ci Apr 20, 2024
bf95a10
Report unused ESLint disable directives (#395)
alexeyr-ci Apr 20, 2024
8cec6e1
Make `cache_data` visible to `integration_spec` (#397)
alexeyr-ci Apr 23, 2024
f41ddac
Make default bundle paths in node-renderer and Rails consistent (#399)
alexeyr-ci Apr 27, 2024
efe6a3a
Fix log messages in `handleRenderRequest` (#400)
alexeyr-ci Apr 27, 2024
5c79fa2
Update CHANGELOG.md
justin808 Jun 7, 2024
3f3ef85
Update CHANGELOG.md (#405)
justin808 Jun 8, 2024
eb29b61
CH22466[sc-website] - Update Node, YARN, Gatsby, React and other depe…
rameziophobia Jun 11, 2024
611e978
Create troubleshooting.md
justin808 Jun 27, 2024
6b983ad
[FIX] Rspec failing in CI (#413)
rameziophobia Jul 2, 2024
b843655
Bump ws from 6.2.2 to 6.2.3 (#409)
dependabot[bot] Jul 4, 2024
8ca43fa
Bump braces from 3.0.2 to 3.0.3 (#406)
dependabot[bot] Jul 4, 2024
596db8a
Bump semver from 7.0.0 to 7.6.2 (#417)
dependabot[bot] Jul 4, 2024
ad4c59b
Upgrade Shakapacker to 8.0.0, Upgrade ROR to 14.0.4 (#415)
rameziophobia Jul 5, 2024
753481b
RORP - Update Typescript declarations (#419)
rameziophobia Jul 11, 2024
5e0c250
Update Gemfile.lock
justin808 Jul 11, 2024
56a9c19
Release 4.0.0-rc.2
justin808 Jul 11, 2024
3157205
[WIP] Create a profiling guide to profile server-side rendering js co…
AbanoubGhadban Jul 16, 2024
78a9c47
Add rspec tests for profile_server_rendering_js_code config (#421)
AbanoubGhadban Jul 16, 2024
2e9f234
Update Gemfile.lock
justin808 Jul 25, 2024
5c37c07
Release 4.0.0-rc.3
justin808 Jul 25, 2024
045c475
Update version of release-it
justin808 Jul 25, 2024
b5847e2
Rename the prerelease script to prepublishOnly
justin808 Jul 25, 2024
ebbfb70
Release 4.0.0-rc.4, update scripts
justin808 Jul 25, 2024
ca96161
Release 4.0.0-rc.5
justin808 Jul 25, 2024
7749aa5
Clear dist directory on build
justin808 Jul 25, 2024
d646a1b
Convert the server in `worker` from Express to Fastify (#398)
alexeyr-ci Aug 14, 2024
3247c77
Update home-pro.md (#402)
justin808 Aug 21, 2024
64b38d1
Bump fast-xml-parser from 4.4.0 to 4.4.1 (#424)
dependabot[bot] Aug 21, 2024
a817f41
Update Loadable Components (#391)
Judahmeek Aug 23, 2024
c15cae3
Bump elliptic from 6.5.5 to 6.5.7 in /spec/dummy (#427)
dependabot[bot] Aug 23, 2024
9c5771c
Freeze lockfiles in CI and in Docker (#445)
alexeyr-ci Oct 30, 2024
e8c2931
Add support for replaying console logs happen on async server operati…
AbanoubGhadban Nov 1, 2024
0407243
Update server bundle used for testing (#448)
AbanoubGhadban Nov 1, 2024
e245e6d
Added streaming server rendering support (#407)
AbanoubGhadban Nov 1, 2024
dfffa17
Add support for console replay while streaming server rendered react …
AbanoubGhadban Nov 1, 2024
0193784
Add support for handling errors happen during streaming server render…
AbanoubGhadban Nov 1, 2024
4f0891e
Resolve some Dependabot issues (#450)
alexeyr-ci Nov 5, 2024
62cc50f
Add Capybara screenshots for selenium_chrome_headless_with_logging (#…
alexeyr-ci Nov 10, 2024
f566a3f
Add frozen option for release script
justin808 Nov 12, 2024
7ad5615
Release 4.0.0-rc.6
justin808 Nov 12, 2024
91a7b6a
Update CHANGELOG.md
justin808 Nov 12, 2024
58d9e5c
Remove unused functions (#449)
alexeyr-ci Nov 17, 2024
cf04f60
Fix CI in master (#455)
alexeyr-ci Nov 18, 2024
1716b17
Switch from Net::HTTP to HTTPX for communication with Node renderer (…
alexeyr-ci Nov 18, 2024
faf5ec8
Support HTTP/2 (#392)
alexeyr-ci Nov 18, 2024
11be240
Release 4.0.0-rc.7
justin808 Nov 19, 2024
ca88740
Remove file size limit for assets and bundles (#459)
alexeyr-ci Nov 19, 2024
0e86d84
Update Gemfile.lock
justin808 Nov 19, 2024
dfcfe91
update top Gemfile.lock during release
justin808 Nov 19, 2024
dfb2e22
Release 4.0.0-rc.8
justin808 Nov 19, 2024
5667776
Fix typos in selenium_logger.rb (#462)
alexeyr-ci Nov 25, 2024
daf4db5
Convert error reporting and tracing integrations to plugins (#471)
alexeyr-ci Nov 27, 2024
bc9bb32
Fix incorrect versions in changelog (#477)
alexeyr-ci Nov 29, 2024
9454472
Default to Fastify 5 (#476)
alexeyr-ci Dec 2, 2024
5b1f333
Add missing values in `envValuesUsed` (#478)
alexeyr-ci Dec 4, 2024
7b6613f
Update dependencies (#464)
alexeyr-ci Dec 4, 2024
bd53f41
Update Puma and rails-html-sanitizer (#480)
alexeyr-ci Dec 4, 2024
36c8166
Switch from Winston to Pino for logging (#479)
alexeyr-ci Dec 5, 2024
3c7bb01
Release 4.0.0-rc.9
justin808 Dec 6, 2024
189c672
Omit `hostname` and `pid` in HTTP logs as well (#485)
alexeyr-ci Dec 8, 2024
b655b7b
Enable Fastify interop in integrations (#482)
alexeyr-ci Dec 8, 2024
a17c05f
Specify Honeybadger environment (#486)
alexeyr-ci Dec 9, 2024
602fc7d
Update CHANGELOG.md
justin808 Dec 13, 2024
04701ce
Add 4.0 release notes (#468)
alexeyr-ci Dec 13, 2024
d9a9d3d
Enable using the package as a Git dependency (#490)
alexeyr-ci Dec 23, 2024
8eaf7e6
Update CONTRIBUTING.md
justin808 Jan 6, 2025
b24745e
Bump to ROR 14.1.0 (#492)
justin808 Jan 6, 2025
5457ffd
Release 4.0.0-rc.10
justin808 Jan 6, 2025
25270b4
Update READMEs and CONTRIBUTING (#441)
alexeyr-ci Jan 10, 2025
69dfae1
Change default Fastify log level to 'error' (#493)
alexeyr-ci Jan 10, 2025
4b0ca37
Refactor asset handling in ReactOnRailsPro to support HTTP URLs (#495)
AbanoubGhadban Jan 12, 2025
c235b45
Remove stream package from the dummy app (#498)
AbanoubGhadban Jan 16, 2025
f68dcb1
Update CHANGELOG.md
justin808 Jan 17, 2025
b6d8e30
Update CHANGELOG.md
justin808 Jan 17, 2025
ea5fd93
Fix queueMicrotask (#505)
alexeyr-ci Jan 22, 2025
b824b2c
Update ReactOnRails to 14.1.1 (#501)
Judahmeek Jan 22, 2025
5876693
Properly report failing Jest tests in CI (#504)
alexeyr-ci Jan 22, 2025
d387b2b
Rename `includeTimerPolyfills` to `stubTimers` (#506)
alexeyr-ci Jan 22, 2025
bcf7f1e
Upgrade Redux and related dependencies of the dummy app (#507)
alexeyr-ci Jan 23, 2025
7608ee0
Update 4.0 release notes (#508)
alexeyr-ci Jan 23, 2025
eb5a888
Set `bodyLimit` to 100 MB by default to fix error 413 (#511)
Romex91 Jan 29, 2025
8b5acea
Specify exact httpx version until the bug there is fixed (#496)
alexeyr-ci Feb 9, 2025
3e84b12
Update documentation (#514)
alexeyr-ci Feb 9, 2025
35e78c2
Make bundle hash environment aware (#512)
Judahmeek Feb 10, 2025
499d067
Release 4.0.0-rc.11
justin808 Feb 10, 2025
74d9bad
Update CHANGELOG.md
justin808 Feb 11, 2025
14115d1
Upgrade HTTPX (#518)
alexeyr-ci Feb 24, 2025
6a53d45
Fix Dependabot alerts and upgrade to the latest Fastify version (#516)
alexeyr-ci Feb 25, 2025
695644c
Release 4.0.0-rc.12
justin808 Mar 5, 2025
26cfefc
Add support for RSC (#422)
AbanoubGhadban Mar 10, 2025
b79bc37
Update Gemfile.lock for MacOS
justin808 Mar 10, 2025
9eac7d5
Release 4.0.0-rc.13
justin808 Mar 10, 2025
d582b5f
Update react-server-components-rendering-flow.md
justin808 Mar 11, 2025
4371887
Revert httpx back to 1.3 for now (#523)
alexeyr-ci2 Mar 14, 2025
805053a
Fix race condition while creating VMs (#527)
AbanoubGhadban Apr 7, 2025
5a73cd9
Upgrade typescript-eslint (#528)
alexeyr-ci2 Apr 10, 2025
3d23969
Upgrade ESLint (#529)
alexeyr-ci2 Apr 10, 2025
739a6b1
Enable ESLint on dummy apps (#530)
alexeyr-ci2 Apr 27, 2025
e5dd58d
Fix Dependabot alerts (#531)
alexeyr-ci2 Apr 29, 2025
7c5033f
Use RSC payload to render server components on server (#515)
AbanoubGhadban Jun 22, 2025
03c7a7c
Release 4.0.0-rc.14
justin808 Jun 25, 2025
dfbb715
Move RSC docs to a subfolder and add minor fixes (#537)
alexeyr-ci2 Jul 16, 2025
90e6102
Support for Ruby 3.4 (#541)
alexeyr-ci2 Jul 24, 2025
c30956c
Fix problem of not caching components when RSC is on (#539)
AbanoubGhadban Jul 28, 2025
2efc503
Enable rerun failed tests (#544)
Judahmeek Jul 30, 2025
f90820e
Fix the bug of uploading bundles with each request (#545)
AbanoubGhadban Aug 11, 2025
4d844a4
Upgrade to HTTPx 1.5 (#546)
AbanoubGhadban Aug 11, 2025
c549f3c
Update changelog (#547)
alexeyr-ci2 Aug 12, 2025
e4c026a
Create v4-react-server-components.md
justin808 Aug 21, 2025
e834023
Feature/cache streamed components (#548)
ihabadham Aug 22, 2025
dbf1e1c
Release 4.0.0
justin808 Aug 27, 2025
cee9e99
update to use ror 15.0.0 (#554)
ihabadham Aug 28, 2025
fa0caf9
update docs to use rorp v4.0.0 instead of 4.0.0.rc.x (#555)
ihabadham Aug 28, 2025
1896f25
Update v4 release notes (#551)
AbanoubGhadban Aug 29, 2025
ddc7600
Add cached_stream_react_component helper (#549)
ihabadham Sep 8, 2025
9751da5
update CHANGELOG.md (#556)
ihabadham Sep 9, 2025
0f7230c
Add license information to gemspec file (#560)
AbanoubGhadban Sep 24, 2025
c809553
Make the dummy use private server bundle path and migrate to react on…
AbanoubGhadban Sep 25, 2025
a347b97
Merge remote-tracking branch 'pro-origin/master' into merge-pro-subtr…
AbanoubGhadban Sep 26, 2025
e1f4917
Phase 2: Merge react_on_rails_pro repository via git subtree with com…
AbanoubGhadban Sep 25, 2025
7e10adc
Fix CI configurations for monorepo structure
AbanoubGhadban Sep 25, 2025
8b3967f
Update pro package to use local react-on-rails dependency
AbanoubGhadban Sep 25, 2025
b2fff92
Update all dependencies to use local packages in monorepo
AbanoubGhadban Sep 25, 2025
d230458
Update JS dependencies to use yalc for local React on Rails package
AbanoubGhadban Sep 25, 2025
a847488
Remove unnecessary build-core-package job and workspace sharing
AbanoubGhadban Sep 25, 2025
ca3b781
Fix GitHub Actions formatting error by excluding pro directory
AbanoubGhadban Sep 25, 2025
35ceff0
Update Gemfile and package.json for local development setup at execjs…
AbanoubGhadban Sep 25, 2025
e2e2b45
Refactor preinstall script in execjs-compatible-dummy package.json
AbanoubGhadban Sep 25, 2025
e853b5d
Update Knip configuration to exclude pro directory
AbanoubGhadban Sep 26, 2025
3d7eb90
Update Phase 2 completion status in merger plan documents
AbanoubGhadban Sep 26, 2025
93cbce6
Add critical lessons learned and corrections to Phase 2 plan
AbanoubGhadban Sep 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
376 changes: 376 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,376 @@
version: 2

# Monorepo CircleCI config for React on Rails Pro package
# Updated to work from root directory with pro package in react_on_rails_pro/

aliases:
# Print critical data and executables versions.
- &print-system-info
name: Print system information
command: |
echo "Linux release: "; cat /etc/issue
echo "Current user: "; whoami
echo "Current directory: "; pwd
echo "Ruby version: "; ruby -v
echo "Node version: "; node -v
echo "Yarn version: "; yarn --version
echo "Bundler version: "; bundle --version
- &lint-js
name: Linting of JS (Pro package only)
working_directory: react_on_rails_pro
command: yarn run nps eslint

- &lint-ruby
name: Linting of Ruby (Pro package only)
working_directory: react_on_rails_pro
command: bundle exec rubocop

- &format
name: Check formatting (Pro package only)
working_directory: react_on_rails_pro
command: yarn run nps format.listDifferent

- &typescript-check
name: Check TypeScript (Pro package only)
working_directory: react_on_rails_pro
command: yarn run nps check-typescript

# Install/update Node modules for renderer package unless existing set of modules is satisfying Yarn.
- &install-package-node-modules
name: Install Node modules with Yarn for pro renderer package
working_directory: react_on_rails_pro
command: |
sudo yarn global add yalc
yarn install --frozen-lockfile --no-progress --no-emoji

# Install/update Node modules for dummy app unless existing set of modules is satisfying Yarn.
- &install-dummy-app-node-modules
name: Install Node modules with Yarn for pro dummy app
working_directory: react_on_rails_pro
command: |
cd spec/dummy
yarn install --frozen-lockfile --no-progress --no-emoji

# Install ruby gems unless existing set of gems is satisfying bundler.
- &install-dummy-app-ruby-gems
name: Install Ruby Gems for pro dummy app
working_directory: react_on_rails_pro
command: |
gem install bundler -v "2.5.4"
echo "Bundler version: "; bundle --version
bundle config set --local path 'vendor/bundle'
bundle config set --local disable_checksum_validation true
cd spec/dummy && bundle lock --add-platform 'x86_64-linux' && bundle _2.5.4_ check || bundle _2.5.4_ install --jobs=4 --retry=3

- &generate-dummy-app-packs
name: Generate file-system based entrypoints (Pro)
working_directory: react_on_rails_pro
command: |
cd spec/dummy
bundle exec rake react_on_rails:generate_packs

# Install ruby gems unless existing set of gems is satisfying bundler.
- &install-package-ruby-gems
name: Install Ruby Gems for pro package
working_directory: react_on_rails_pro
command: |
gem install bundler -v "2.5.4"
echo "Bundler version: "; bundle --version
bundle config set --local path 'vendor/bundle'
bundle config set --local disable_checksum_validation true
bundle _2.5.4_ check || bundle _2.5.4_ install --jobs=4 --retry=3

# Restore node_modules dir from cache using yarn.lock checksum as a key.
- &restore-package-node-modules-cache
name: Restore cached node_modules directory (Pro)
keys:
- v4-pro-package-node-modules-cache-{{ checksum "react_on_rails_pro/yarn.lock" }}

# Restore spec/dummy/node_modules dir from cache using yarn.lock checksum as a key.
- &restore-dummy-app-node-modules-cache
name: Restore cached spec/dummy/node_modules directory (Pro)
keys:
- v4-pro-dummy-app-node-modules-cache-{{ checksum "react_on_rails_pro/spec/dummy/yarn.lock" }}

# Restore vendor/bundle dir from cache using Gemfile.lock checksum as a key.
- &restore-dummy-app-gem-cache
name: Restore cached Ruby Gems for pro dummy app
keys:
- v4-pro-dummy-app-gem-cache-{{ checksum "react_on_rails_pro/spec/dummy/Gemfile.lock" }}

# Restore vendor/bundle dir from cache using react_on_rails_pro.gemspec checksum as a key.
- &restore-package-gem-cache
name: Restore cached Ruby Gems for pro package
keys:
- v4-pro-package-app-gem-cache-{{ checksum "react_on_rails_pro/react_on_rails_pro.gemspec" }}

# Restore webpack bundles for dummy app from cache
- &restore-dummy-app-webpack-bundle-cache
name: Restore cached webpack bundles for pro dummy app
key: v4-pro-dummy-app-webpack-bundle-{{ .Revision }}

# NOTE: Sometimes CI generated docker images are not updated in time to keep up with the minimum required
# by chromedriver versions of Chrome. Just bump here Chrome version if chromedriver raises errors
- &install-latest-chrome
name: Ensure minimum required Chrome version
command: |
echo -e "Installed $(google-chrome --version)\n"
MINIMUM_REQUIRED_CHROME_VERSION=75
INSTALLED_CHROME_MAJOR_VERSION="$(google-chrome --version | tr ' .' '\t' | cut -f3)"
if [[ $INSTALLED_CHROME_MAJOR_VERSION < $MINIMUM_REQUIRED_CHROME_VERSION ]]; then
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
sudo apt-get update
sudo apt-get install google-chrome-stable
echo -e "\nInstalled $(google-chrome --version)"
fi

jobs:
# Lint all
lint-js-and-ruby:
docker:
- image: &docker_image cimg/ruby:3.3.7-browsers
steps:
- checkout
- run: *print-system-info
- restore_cache: *restore-package-node-modules-cache
- restore_cache: *restore-package-gem-cache
- restore_cache: *restore-dummy-app-node-modules-cache
- run: *install-package-ruby-gems
- run: *install-package-node-modules
- run: *install-dummy-app-ruby-gems
- run: *install-dummy-app-node-modules
- run:
name: Install Node modules with Yarn for ExecJS dummy app (Pro)
working_directory: react_on_rails_pro
command: |
cd spec/execjs-compatible-dummy
yarn install --frozen-lockfile --no-progress --no-emoji
- run: *generate-dummy-app-packs
- run: *lint-ruby
- run: *lint-js
- run: *format
- run: *typescript-check

# Install Node modules for Renderer package with Yarn and save them to cache.
install-package-node-packages:
docker:
- image: *docker_image
steps:
- checkout
- run: *print-system-info
- restore_cache: *restore-package-node-modules-cache
- run: *install-package-node-modules
- save_cache:
name: Save pro root node_modules to cache
key: v4-pro-package-node-modules-cache-{{ checksum "react_on_rails_pro/yarn.lock" }}
paths:
- react_on_rails_pro/node_modules

# Install Node modules for dummy app with Yarn and save them to cache.
install-dummy-app-node-packages:
docker:
- image: *docker_image
steps:
- checkout
- run: *print-system-info
- restore_cache: *restore-dummy-app-node-modules-cache
- run: *install-package-node-modules
- run: *install-dummy-app-node-modules
- save_cache:
name: Save pro spec/dummy/node_modules to cache
key: v4-pro-dummy-app-node-modules-cache-{{ checksum "react_on_rails_pro/spec/dummy/yarn.lock" }}
paths:
- react_on_rails_pro/spec/dummy/node_modules

# Install Ruby gems for package with Bundler and save them to cache.
install-package-ruby-gems:
docker:
- image: *docker_image
steps:
- checkout
- run: *print-system-info
- restore_cache: *restore-package-gem-cache
- run: *install-package-ruby-gems
- save_cache:
name: Save pro package ruby gems to cache
key: v4-pro-package-app-gem-cache-{{ checksum "react_on_rails_pro/react_on_rails_pro.gemspec" }}
paths:
- react_on_rails_pro/vendor/bundle

# Install Ruby gems for dummy app with Bundler and save them to cache.
install-dummy-app-ruby-gems:
docker:
- image: *docker_image
steps:
- checkout
- run: *print-system-info
- restore_cache: *restore-dummy-app-gem-cache
- run: *install-dummy-app-ruby-gems
- save_cache:
name: Save pro dummy app ruby gems to cache
key: v4-pro-dummy-app-gem-cache-{{ checksum "react_on_rails_pro/spec/dummy/Gemfile.lock" }}
paths:
- react_on_rails_pro/spec/dummy/vendor/bundle

# Build client and server bundles for dummy app with Webpack and save them to cache.
# NOTE: keeping around this cache in case we have multiple rspec suites in the future to tests
# different node renderers.
build-dummy-app-webpack-test-bundles:
docker:
- image: *docker_image
steps:
- checkout
- run: *print-system-info
- restore_cache: *restore-package-node-modules-cache
- restore_cache: *restore-dummy-app-node-modules-cache
- restore_cache: *restore-dummy-app-gem-cache
- run: *install-package-node-modules
- run: *install-dummy-app-node-modules
- run: *install-dummy-app-ruby-gems
- run: *generate-dummy-app-packs
- run:
name: Build test bundles for pro dummy app
working_directory: react_on_rails_pro
command: cd spec/dummy && yarn run build:test
- save_cache:
name: Save test webpack bundles to cache (for build number checksum used by rspec job)
key: v4-pro-dummy-app-webpack-bundle-{{ .Revision }}
paths:
- react_on_rails_pro/spec/dummy/public/webpack/test
- react_on_rails_pro/spec/dummy/ssr-generated

# Run JS unit tests for Renderer package.
package-js-tests:
docker:
- image: *docker_image
steps:
- checkout
- run: *print-system-info
- restore_cache: *restore-package-node-modules-cache
- run: rm -rf react_on_rails_pro/spec/dummy/public/webpack
- run: rm -rf react_on_rails_pro/spec/dummy/ssr-generated
- restore_cache: *restore-dummy-app-webpack-bundle-cache
- run: *install-package-node-modules
# https://circleci.com/docs/collect-test-data/#jest
- run:
name: Run JS unit tests for Pro Renderer package
working_directory: react_on_rails_pro
command: yarn run nps test.ci
environment:
JEST_JUNIT_OUTPUT_DIR: ./jest
JEST_JUNIT_ADD_FILE_ATTRIBUTE: "true"
- store_test_results:
path: ./jest

rspec-package-specs:
docker:
- image: *docker_image
steps:
- checkout
- run: *print-system-info
- restore_cache: *restore-package-gem-cache
- run: *install-package-ruby-gems
- run:
name: Run rspec tests (Pro package)
working_directory: react_on_rails_pro
command: |
bundle exec rspec spec/react_on_rails_pro
- store_test_results:
path: ~/rspec
- store_artifacts:
path: react_on_rails_pro/log/test.log

# Start Renderer and run RSpec test suite for dummy app.
# NOTES:
# Seems that we cannot use symlinks (yarn link) with caches for the main renderer package
# react-on-rails-pro-node-renderer. Consequently, we just reinstall the top level, renderer, node packages
# as well as the
rspec-dummy-app-node-renderer:
docker:
- image: *docker_image
steps:
- checkout
- run: *print-system-info
- restore_cache: *restore-package-gem-cache
- restore_cache: *restore-package-node-modules-cache
- restore_cache: *restore-dummy-app-node-modules-cache
- restore_cache: *restore-dummy-app-gem-cache
- run: rm -rf react_on_rails_pro/spec/dummy/public/webpack
- run: rm -rf react_on_rails_pro/spec/dummy/ssr-generated
- restore_cache: *restore-dummy-app-webpack-bundle-cache
- run: *install-dummy-app-ruby-gems
- run: *install-package-node-modules
- run: *install-latest-chrome
- run: *install-dummy-app-node-modules
- run:
name: Generate file-system based entrypoints (Pro)
working_directory: react_on_rails_pro
command: cd spec/dummy && bundle exec rake react_on_rails:generate_packs
- run:
name: Run Pro Node renderer in a background
working_directory: react_on_rails_pro
command: cd spec/dummy && yarn run node-renderer
background: true
- run:
name: run rails server in background (Pro dummy app)
working_directory: react_on_rails_pro
command: cd spec/dummy && RAILS_ENV=test rails server
background: true
- run:
name: wait for rails server to start
command: |
while ! curl -s http://localhost:3000 > /dev/null; do sleep 1; done
- run:
name: Run rspec tests (Pro dummy app)
working_directory: react_on_rails_pro/spec/dummy
command: |
circleci tests glob "spec/**/*_spec.rb" |
circleci tests run --command="xargs bundle exec rspec \
--profile 10 \
--format progress \
--format RspecJunitFormatter \
--out ~/rspec/rspec.xml \
--format documentation" \
--verbose \
--split-by=timings
- store_test_results:
path: ~/rspec
- store_artifacts:
path: react_on_rails_pro/spec/dummy/tmp/screenshots
- store_artifacts:
path: react_on_rails_pro/spec/dummy/log/test.log
- store_artifacts:
path: react_on_rails_pro/spec/dummy/yarn-error.log

workflows:
version: 2
build-and-test:
jobs:
- install-package-node-packages
- install-package-ruby-gems
- install-dummy-app-node-packages:
requires:
- install-package-node-packages
- install-dummy-app-ruby-gems
- lint-js-and-ruby:
requires:
- install-package-node-packages
- install-package-ruby-gems
- install-dummy-app-node-packages
- build-dummy-app-webpack-test-bundles:
requires:
- install-package-node-packages
- install-dummy-app-node-packages
- install-dummy-app-ruby-gems
- package-js-tests:
requires:
- install-package-node-packages
- build-dummy-app-webpack-test-bundles
- rspec-package-specs:
requires:
- install-package-ruby-gems
- rspec-dummy-app-node-renderer:
requires:
- install-package-ruby-gems
- build-dummy-app-webpack-test-bundles
2 changes: 2 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
node_modules/
package.json
# Exclude pro package (has its own formatting)
react_on_rails_pro/
tmp/
coverage/
**/app/assets/webpack/
Expand Down
1 change: 1 addition & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ AllCops:
- 'coverage/**/*'
- 'gen-examples/examples/**/*'
- 'node_modules/**/*'
- 'react_on_rails_pro/**/*' # Exclude pro package (has its own linting)
- 'spec/dummy/bin/*'
- 'spec/fixtures/**/*'
- 'spec/react_on_rails/dummy-for-generators/**/*'
Expand Down
Loading
Loading