Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
730af50
Add --scratch flag to create demos in gitignored directory
justin808 Oct 5, 2025
a716bf9
Add demo metadata JSON file generation
justin808 Oct 5, 2025
7fd66d4
shakapacker main
justin808 Oct 5, 2025
c182be0
Add --force flag to Rails generators for non-interactive demo creation
justin808 Oct 5, 2025
9a2be42
Add automatic Playwright browser installation with --skip-playwright …
justin808 Oct 5, 2025
459827e
Change demo metadata format from JSON to YAML
justin808 Oct 5, 2025
f4344c5
Add --typescript flag for unified TypeScript setup
justin808 Oct 5, 2025
27caad6
Remove --force flag from shakapacker:install command
justin808 Oct 5, 2025
c762de2
Let React on Rails handle TypeScript setup
justin808 Oct 5, 2025
f461df0
Add --skip flag to react_on_rails:install to prevent interactive prompts
justin808 Oct 5, 2025
7e05fbf
Add automated testing and improve completion message
justin808 Oct 5, 2025
eb77a55
Remove conflicting files before React on Rails installation
justin808 Oct 5, 2025
589bf46
Fix: Don't delete shakapacker.yml - let React on Rails overwrite it
justin808 Oct 5, 2025
0a4f9de
Remove automated testing - requires complex background process manage…
justin808 Oct 5, 2025
01b6bfa
Use THOR_MERGE=always to prevent interactive prompts
justin808 Oct 5, 2025
735892a
Fix: Install Playwright browsers after npm install completes
justin808 Oct 5, 2025
4070abd
Add comprehensive E2E testing with Playwright
justin808 Oct 5, 2025
7809482
Fix: Remove non-existent cypress-playwright-on-rails gem dependency
justin808 Oct 5, 2025
19e990b
Fix: Add Playwright to package.json in demo_common generator
justin808 Oct 5, 2025
0339ac5
Fix: Create .gitignore if it doesn't exist in demo_common generator
justin808 Oct 5, 2025
259c11e
Add cypress-on-rails gem integration for Playwright
justin808 Oct 5, 2025
2a901e0
Let cypress-on-rails handle Playwright installation
justin808 Oct 5, 2025
ffd18c7
Fix: Use --force flag instead of THOR_MERGE environment variable
justin808 Oct 5, 2025
879ae30
Use -f instead of --force for Rails generator
justin808 Oct 5, 2025
2df1d3b
Fix code review issues: process management, YAML generation, and clarity
justin808 Oct 5, 2025
39b3d3a
Add --typescript and --skip-playwright flags to reconstruct_command
justin808 Oct 5, 2025
a8d8fcf
Update default versions to match .new-demo-versions
justin808 Oct 5, 2025
0506503
Fix e2e.rake to use File::NULL for cross-platform compatibility
justin808 Oct 5, 2025
3cf5491
Add prerelease flags to demo metadata and test coverage
justin808 Oct 5, 2025
613d1ac
Add prerelease flags to reconstruct_command and test coverage
justin808 Oct 5, 2025
ecea074
Refactor e2e.rake and add demo_name validation
justin808 Oct 5, 2025
967b38d
Fix critical process group management in E2eTestRunner
justin808 Oct 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ vendor/bundle/
/demos/*/public/packs-test
/demos/*/yarn-error.log

# Scratch demos (experimental/temporary demos)
/demos-scratch/

# Testing
/demos/*/coverage/
/demos/*/test/reports/
Expand Down
6 changes: 3 additions & 3 deletions .new-demo-versions
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
RAILS_VERSION="8.0.3"

# Shakapacker version (use ~> for compatibility range, or specific version)
SHAKAPACKER_VERSION="~> 8.0"
SHAKAPACKER_VERSION="github:shakacode/shakapacker"

# React on Rails version (use ~> for compatibility range, or specific version)
REACT_ON_RAILS_VERSION="~> 16.0"
REACT_ON_RAILS_VERSION="~> 16.1"

# ═══════════════════════════════════════════════════════════════════════
# Version Management Workflows
Expand All @@ -32,4 +32,4 @@ REACT_ON_RAILS_VERSION="~> 16.0"
# Updating existing demos to new versions:
# ./scripts/update-all-demos.sh --react-on-rails-version '~> 16.1'
#
# For detailed workflows, see: docs/VERSION_MANAGEMENT.md
# For detailed workflows, see: docs/VERSION_MANAGEMENT.md
4 changes: 2 additions & 2 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# RuboCop configuration for React on Rails Demos monorepo

plugins:
require:
- rubocop-performance

AllCops:
NewCops: enable
SuggestExtensions: false
TargetRubyVersion: 3.0
TargetRubyVersion: 3.1
Exclude:
- 'node_modules/**/*'
- 'demos/**/node_modules/**/*'
Expand Down
23 changes: 22 additions & 1 deletion bin/new-demo
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@ options = {
react_on_rails_args: [],
dry_run: false,
shakapacker_prerelease: false,
react_on_rails_prerelease: false
react_on_rails_prerelease: false,
scratch: false,
skip_playwright: false,
typescript: false
}

parser = OptionParser.new do |opts|
Expand Down Expand Up @@ -66,6 +69,18 @@ parser = OptionParser.new do |opts|
options[:react_on_rails_prerelease] = true
end

opts.on('--scratch', 'Create demo in gitignored /demos-scratch directory for experimentation') do
options[:scratch] = true
end

opts.on('--skip-playwright', 'Skip Playwright browser installation') do
options[:skip_playwright] = true
end

opts.on('--typescript', 'Enable TypeScript for both Shakapacker and React on Rails') do
options[:typescript] = true
end

opts.on('-h', '--help', 'Show this help message') do
puts opts
puts ''
Expand All @@ -87,6 +102,12 @@ parser = OptionParser.new do |opts|
puts ' bin/new-demo my-demo --react-on-rails-args="--redux,--node"'
puts ' bin/new-demo my-demo --rails-args="--skip-test" --react-on-rails-args="--redux"'
puts ''
puts ' # Enable TypeScript'
puts ' bin/new-demo my-demo --typescript'
puts ''
puts ' # Create experimental demo in gitignored directory'
puts ' bin/new-demo my-demo --scratch'
puts ''
puts 'After creation, run E2E tests with:'
puts ' cd demos/my-demo && npx playwright test'
exit
Expand Down
4 changes: 2 additions & 2 deletions lib/demo_scripts/config.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
module DemoScripts
# Configuration loader for demo versions
class Config
DEFAULT_SHAKAPACKER_VERSION = '~> 8.0'
DEFAULT_REACT_ON_RAILS_VERSION = '~> 16.0'
DEFAULT_SHAKAPACKER_VERSION = 'github:shakacode/shakapacker'
DEFAULT_REACT_ON_RAILS_VERSION = '~> 16.1'
DEFAULT_RAILS_VERSION = '8.0.3'

attr_reader :shakapacker_version, :react_on_rails_version, :rails_version
Expand Down
Loading