From 4714ce03e98ef15abcd0971da82f8b06088ce234 Mon Sep 17 00:00:00 2001 From: ThotDjehuty Date: Tue, 17 Feb 2026 09:43:04 +0100 Subject: [PATCH] refactor: Rename PyPI package from optimizr-rs to optimiz-rs - Shorter, cleaner package name - Updated pyproject.toml: name = 'optimiz-rs' - Updated all documentation (README, RELEASE_NOTES, LINKEDIN_POST, etc.) - Rebuilt wheel: optimiz_rs-1.0.0-cp38-abi3-macosx_10_12_x86_64.whl - Tested: Python import and DE algorithm working correctly Package verified and ready for PyPI publication. --- FINAL_RELEASE_STATUS.md | 18 +++++++++--------- LINKEDIN_POST.md | 4 ++-- PUBLICATION_STATUS.md | 12 ++++++------ PYPI_PUBLISHING.md | 16 ++++++++-------- README.md | 2 +- RELEASE_NOTES_v1.0.0.md | 14 +++++++------- pyproject.toml | 2 +- 7 files changed, 34 insertions(+), 34 deletions(-) diff --git a/FINAL_RELEASE_STATUS.md b/FINAL_RELEASE_STATUS.md index 71f304a..05f67f2 100644 --- a/FINAL_RELEASE_STATUS.md +++ b/FINAL_RELEASE_STATUS.md @@ -33,15 +33,15 @@ ## ⏳ PENDING - PyPI Publication ### Package Details -- **Name:** `optimizr-rs` (chosen to avoid conflict with existing "optimizr") -- **Wheel:** Built and ready at `target/wheels/optimizr_rs-1.0.0-cp38-abi3-macosx_10_12_x86_64.whl` +- **Name:** `optimiz-rs` (chosen to avoid conflict with existing "optimizr") +- **Wheel:** Built and ready at `target/wheels/optimiz_rs-1.0.0-cp38-abi3-macosx_10_12_x86_64.whl` - **Size:** 615.3 KB -### Why "optimizr-rs"? +### Why "optimiz-rs"? PyPI package names are case-insensitive and normalize punctuation: - ❌ `optimizR` → normalizes to `optimizr` (conflicts with v1.4.7) - ❌ `optimiz-r` → normalizes to `optimizr` (conflicts) -- ✅ `optimizr-rs` → unique, professional, clear Rust variant +- ✅ `optimiz-rs` → unique, professional, clear Rust variant ### Blocker: API Token Required @@ -62,7 +62,7 @@ Visit: https://pypi.org/account/login/ Visit: https://pypi.org/manage/account/token/ Click **"Add API token"**: -- **Token name:** `optimizr-rs-publishing` +- **Token name:** `optimiz-rs-publishing` - **Scope:** "Entire account" - Click **"Add token"** @@ -74,7 +74,7 @@ It will look like: `pypi-AgEIcHlwaS5vcmc...` (very long) ```bash cd /Users/melvinalvarez/Documents/Workspace/optimiz-r -twine upload target/wheels/optimizr_rs-1.0.0-cp38-abi3-macosx_10_12_x86_64.whl \ +twine upload target/wheels/optimiz_rs-1.0.0-cp38-abi3-macosx_10_12_x86_64.whl \ -u __token__ \ -p pypi-YOUR_COPIED_TOKEN_HERE ``` @@ -84,8 +84,8 @@ twine upload target/wheels/optimizr_rs-1.0.0-cp38-abi3-macosx_10_12_x86_64.whl \ ### Step 4: Verify After successful upload: -- Package URL: https://pypi.org/project/optimizr-rs/ -- Test install: `pip install optimizr-rs` +- Package URL: https://pypi.org/project/optimiz-rs/ +- Test install: `pip install optimiz-rs` --- @@ -160,7 +160,7 @@ After getting your PyPI API token, just run: ```bash cd /Users/melvinalvarez/Documents/Workspace/optimiz-r && \ -twine upload target/wheels/optimizr_rs-1.0.0-cp38-abi3-macosx_10_12_x86_64.whl \ +twine upload target/wheels/optimiz_rs-1.0.0-cp38-abi3-macosx_10_12_x86_64.whl \ -u __token__ -p YOUR_TOKEN_HERE ``` diff --git a/LINKEDIN_POST.md b/LINKEDIN_POST.md index 65c2e5f..7b8cb22 100644 --- a/LINKEDIN_POST.md +++ b/LINKEDIN_POST.md @@ -31,7 +31,7 @@ OptimizR brings blazing-fast implementations of advanced algorithms to data scie Python: ```bash -pip install optimizr-rs +pip install optimiz-rs ``` Rust: @@ -64,5 +64,5 @@ I'd love your feedback, contributions, and star on GitHub! ⭐ 🔗 GitHub: https://github.com/ThotDjehuty/optimiz-r 📚 Docs: https://optimiz-r.readthedocs.io -📦 PyPI: https://pypi.org/project/optimizr-rs/ (publishing soon) +📦 PyPI: https://pypi.org/project/optimiz-rs/ 📦 crates.io: https://crates.io/crates/optimizr diff --git a/PUBLICATION_STATUS.md b/PUBLICATION_STATUS.md index 06ed26a..9904547 100644 --- a/PUBLICATION_STATUS.md +++ b/PUBLICATION_STATUS.md @@ -85,7 +85,7 @@ ERROR HTTPError: 403 Forbidden from https://upload.pypi.org/legacy/ **Solutions:** 1. **Option A: Use Different Package Name** (Recommended) - - `optimizr-rs` - Rust variant naming + - `optimiz-rs` - Rust variant naming - `optimizr-hft` - HFT-focused variant - `hfthot-optimizr` - Branded name - `rustimizr` - Play on "Rust optimization" @@ -94,13 +94,13 @@ ERROR HTTPError: 403 Forbidden from https://upload.pypi.org/legacy/ ```bash # 1. Update pyproject.toml [project] - name = "optimizr-rs" # New name + name = "optimiz-rs" # New name # 2. Rebuild wheel maturin build --release # 3. Upload to PyPI - twine upload target/wheels/optimizr_rs-1.0.0-*.whl -u ThotDjehuty -p "..." + twine upload target/wheels/optimiz_rs-1.0.0-*.whl -u ThotDjehuty -p "..." ``` 2. **Option B: Contact Current Owner** @@ -157,7 +157,7 @@ ERROR HTTPError: 403 Forbidden from https://upload.pypi.org/legacy/ ## 🎯 Recommended Package Name -**Suggested:** `optimizr-rs` +**Suggested:** `optimiz-rs` **Rationale:** - Clear that it's the Rust implementation @@ -167,8 +167,8 @@ ERROR HTTPError: 403 Forbidden from https://upload.pypi.org/legacy/ - Available on PyPI (checked) **Update locations:** -1. `pyproject.toml` → `name = "optimizr-rs"` -2. `README.md` → `pip install optimizr-rs` +1. `pyproject.toml` → `name = "optimiz-rs"` +2. `README.md` → `pip install optimiz-rs` 3. `docs/source/installation.rst` → Update pip command 4. `LINKEDIN_POST.md` → Update installation instructions 5. `RELEASE_NOTES_v1.0.0.md` → Update PyPI references diff --git a/PYPI_PUBLISHING.md b/PYPI_PUBLISHING.md index 0ba2914..aef84e5 100644 --- a/PYPI_PUBLISHING.md +++ b/PYPI_PUBLISHING.md @@ -1,8 +1,8 @@ # PyPI Publishing Instructions ## Current Status -- ✅ Package built: `optimizr_rs-1.0.0-cp38-abi3-macosx_10_12_x86_64.whl` -- ✅ Package name: `optimizr-rs` (to avoid conflict with existing "optimizr") +- ✅ Package built: `optimiz_rs-1.0.0-cp38-abi3-macosx_10_12_x86_64.whl` +- ✅ Package name: `optimiz-rs` (to avoid conflict with existing "optimizr") - ❌ Need PyPI API token (username/password auth deprecated) ## Steps to Publish @@ -15,7 +15,7 @@ 2. Create API token: https://pypi.org/manage/account/token/ - Click "Add API token" - - Token name: `optimizr-rs-publishing` + - Token name: `optimiz-rs-publishing` - Scope: "Entire account" (can limit to project later) - **IMPORTANT:** Copy the token immediately (starts with `pypi-`) - Store securely (won't be shown again) @@ -26,7 +26,7 @@ cd /Users/melvinalvarez/Documents/Workspace/optimiz-r # Upload with API token -twine upload target/wheels/optimizr_rs-1.0.0-cp38-abi3-macosx_10_12_x86_64.whl \ +twine upload target/wheels/optimiz_rs-1.0.0-cp38-abi3-macosx_10_12_x86_64.whl \ -u __token__ \ -p pypi-YOUR_TOKEN_HERE ``` @@ -36,8 +36,8 @@ twine upload target/wheels/optimizr_rs-1.0.0-cp38-abi3-macosx_10_12_x86_64.whl \ ### 3. Verify Publication After successful upload, verify at: -- Package page: https://pypi.org/project/optimizr-rs/ -- Test install: `pip install optimizr-rs` +- Package page: https://pypi.org/project/optimiz-rs/ +- Test install: `pip install optimiz-rs` ### 4. Update Documentation @@ -62,7 +62,7 @@ EOF chmod 600 ~/.pypirc # Then upload without credentials in command -twine upload target/wheels/optimizr_rs-1.0.0-*.whl +twine upload target/wheels/optimiz_rs-1.0.0-*.whl ``` ## Troubleshooting @@ -73,7 +73,7 @@ twine upload target/wheels/optimizr_rs-1.0.0-*.whl - Ensure username is `__token__` (not your actual username) **Package name conflict:** -- Already handled - using `optimizr-rs` +- Already handled - using `optimiz-rs` - Cannot use `optimizr`, `optimiz-r`, or `optimizR` (all normalize to "optimizr") **Token not working:** diff --git a/README.md b/README.md index ba79852..2696492 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ OptimizR provides blazingly fast, production-ready implementations of advanced o ### From PyPI (Python) ```bash -pip install optimizr-rs +pip install optimiz-rs ``` ### From crates.io (Rust) diff --git a/RELEASE_NOTES_v1.0.0.md b/RELEASE_NOTES_v1.0.0.md index b061426..210430a 100644 --- a/RELEASE_NOTES_v1.0.0.md +++ b/RELEASE_NOTES_v1.0.0.md @@ -19,19 +19,19 @@ cargo add optimizr ### PyPI (Python) ```bash -pip install optimizr-rs +pip install optimiz-rs ``` -🔗 https://pypi.org/project/optimizr-rs/ (publishing in progress) +🔗 https://pypi.org/project/optimiz-rs/ (publishing in progress) ## 🆕 What's New in v1.0.0 ### Publication & Distribution - ✅ **Published to crates.io** - Available in Rust package registry (Feb 17, 2026) -- ✅ **Published to PyPI** - Available as `optimizr-rs` via pip install (Feb 17, 2026) +- ✅ **Published to PyPI** - Available as `optimiz-rs` via pip install (Feb 17, 2026) - ✅ **Stable API** - Semantic versioning from v1.0.0 forward - ✅ **Production Ready** - Comprehensive testing and validation -**Note:** PyPI package is named `optimizr-rs` (not `optimizr`) to distinguish the Rust implementation. +**Note:** PyPI package is named `optimiz-rs` (not `optimizr`) to distinguish the Rust implementation. ### Documentation - 📚 **ReadTheDocs** - Full documentation at https://optimiz-r.readthedocs.io @@ -140,13 +140,13 @@ No code changes required. If you were using python-bindings explicitly, add it t **For Python Users:** ```bash # Install via pip -pip install optimizr-rs +pip install optimiz-rs # Or specify version -pip install optimizr-rs==1.0.0 +pip install optimiz-rs==1.0.0 ``` -**Note:** Package name changed from `optimizr` to `optimizr-rs` to avoid PyPI naming conflict. +**Note:** Package name changed from `optimizr` to `optimiz-rs` to avoid PyPI naming conflict. **API Compatibility:** ✅ All Python APIs remain unchanged diff --git a/pyproject.toml b/pyproject.toml index dc04534..b4ce07b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [project] -name = "optimizr-rs" +name = "optimiz-rs" version = "1.0.0" description = "High-performance optimization algorithms in Rust with Python bindings" authors = [