GitHub user guan404ming created a discussion: Merging qumat-qdp into qumat

## Current Situation

* **qumat:** Pure Python package (`hatchling` build)
* **qumat-qdp:** Rust extension package (`maturin` build)
* **Installation:** Users install via `pip install qumat[qdp]` for full 
functionality.
* **Maintenance:** Two separate packages, two separate release processes.

---

## Option A: Merge into Single Package

| Pros | Cons |
| :--- | :--- |
| **Simple install:** just `pip install qumat`. | All users must download Rust 
extension (even if unused). |
| **Version Sync:** Always in sync; no compatibility issues. | Must build 
wheels for every platform (Linux/macOS/Windows × x86/arm). |
| **Unified Workflow:** Single repo, single release process. | CI/CD becomes 
more complex (`maturin` + multi-platform builds). |
| **Better UX:** More intuitive import paths. | Pure Python users forced to 
wait for compile or download large files. |
| | Unsupported platforms cannot install (no fallback). |

---

## Option B: Keep Two Packages (Current)

| Pros | Cons |
| :--- | :--- |
| **Lightweight:** Pure Python users get a fast, small install. | 
**Discovery:** Users need to know to use `pip install qumat[qdp]`. |
| **Flexibility:** Can release independently with separate versions. | 
**Overhead:** Must manage version compatibility manually. |
| **Robustness:** Graceful fallback when a platform is unsupported. | 
**Maintenance:** Two distinct packages to maintain. |
| **Efficiency:** Small wheel size for the Python-only part. | |
| **Modular CI:** CI/CD pipelines can be separated. | |

---

GitHub link: https://github.com/apache/mahout/discussions/876

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]

Reply via email to