You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix Shakapacker version requirement from 8.2.0 to 8.0.0 for basic compatibility
This change separates basic React on Rails functionality from feature-specific
requirements to eliminate unnecessary breaking changes.
## Problem
React on Rails 16 artificially required Shakapacker >= 8.2.0 for ALL functionality,
causing the `:clean` task error when using Shakapacker 8.0.0. The 8.2.0 requirement
is only needed for async script loading, not basic compatibility.
## Solution
1. **Reduced basic compatibility requirement** from 8.2.0 to 8.0.0 in `using_shakapacker_const?`
2. **Added feature-specific methods**:
- `supports_async_loading?` - checks Shakapacker >= 8.2.0 for async script loading
- `supports_auto_registration?` - checks Shakapacker >= 7.0.0 + nested_entries support
3. **Updated configuration logic** to use feature-specific detection
4. **Updated system checker** to use proper feature detection methods
## Impact
- ✅ Fixes Docker build failure: `Don't know how to build task ':clean'`
- ✅ Allows React on Rails 16 to work with Shakapacker 8.0.0 for basic functionality
- ✅ Shows helpful warnings instead of fatal errors for missing features
- ✅ Maintains backward compatibility while enabling gradual upgrades
## Testing
- All existing tests pass
- Added comprehensive test coverage for new methods
- Verified assets:precompile works with Shakapacker 8.0.0
- Confirmed proper `shakapacker:clean` task invocation
Fixes the artificial breaking change that forced unnecessary Shakapacker upgrades.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
0 commit comments