GitHub user kunwp1 edited a discussion: Separating R Support into Optional Plugin
We're moving R language support to a separate optional plugin due to licensing requirements. **We chose a standalone library approach over patch files** for better maintainability and user experience. ## The Problem - Texera used `rpy2` for R support - `rpy2` is licensed under **GPLv2** - Apache projects cannot include GPL dependencies, so we decided to remove the R dependencies from the Texera main repo and manage them separately. - **Solution needed:** Separate R support while maintaining functionality ## Two Options Evaluated <img width="3772" height="1876" alt="image" src="https://github.com/user-attachments/assets/10fb6b72-0459-4729-8591-f56a052fb58e" /> ### Option 1: Patch Files ❌ Create a separate repo with patch files that users apply to main Texera. **Why we rejected this:** - High maintenance burden (patches break with every change) - Not professional (uncommon approach) - Patch conflicts are inevitable ### Option 2: Standalone Plugin ✅ **CHOSEN** Create a pip-installable Python package in a separate repository. ```bash # Installation pip install git+https://github.com/Texera/texera-r-plugin.git ``` **Why we chose this:** - Standard Python packaging - Easy installation (one command) - Low maintenance (independent versioning) - Clean license separation (Apache-2.0 vs GPLv2) ## Key Points ### Performance **No degradation.** The plugin runs in-process, same as before: ``` Scala → Python Process → rpy2 → R ``` ### Backwards Compatibility **Existing R workflows work without modification.** Only change: users must install the plugin. ### Migration **For R users:** ```bash pip install git+https://github.com/Texera/texera-r-plugin.git ``` **For non-R users:** No action needed. Plugin is optional. GitHub link: https://github.com/apache/texera/discussions/4155 ---- This is an automatically sent email for [email protected]. To unsubscribe, please send an email to: [email protected]
