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]

Reply via email to