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.
This commit is contained in:
ThotDjehuty
2026-02-17 09:43:04 +01:00
parent 2fa97c2eaa
commit 4714ce03e9
7 changed files with 34 additions and 34 deletions
+9 -9
View File
@@ -33,15 +33,15 @@
## ⏳ PENDING - PyPI Publication ## ⏳ PENDING - PyPI Publication
### Package Details ### Package Details
- **Name:** `optimizr-rs` (chosen to avoid conflict with existing "optimizr") - **Name:** `optimiz-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` - **Wheel:** Built and ready at `target/wheels/optimiz_rs-1.0.0-cp38-abi3-macosx_10_12_x86_64.whl`
- **Size:** 615.3 KB - **Size:** 615.3 KB
### Why "optimizr-rs"? ### Why "optimiz-rs"?
PyPI package names are case-insensitive and normalize punctuation: PyPI package names are case-insensitive and normalize punctuation:
-`optimizR` → normalizes to `optimizr` (conflicts with v1.4.7) -`optimizR` → normalizes to `optimizr` (conflicts with v1.4.7)
-`optimiz-r` → normalizes to `optimizr` (conflicts) -`optimiz-r` → normalizes to `optimizr` (conflicts)
-`optimizr-rs` → unique, professional, clear Rust variant -`optimiz-rs` → unique, professional, clear Rust variant
### Blocker: API Token Required ### Blocker: API Token Required
@@ -62,7 +62,7 @@ Visit: https://pypi.org/account/login/
Visit: https://pypi.org/manage/account/token/ Visit: https://pypi.org/manage/account/token/
Click **"Add API token"**: Click **"Add API token"**:
- **Token name:** `optimizr-rs-publishing` - **Token name:** `optimiz-rs-publishing`
- **Scope:** "Entire account" - **Scope:** "Entire account"
- Click **"Add token"** - Click **"Add token"**
@@ -74,7 +74,7 @@ It will look like: `pypi-AgEIcHlwaS5vcmc...` (very long)
```bash ```bash
cd /Users/melvinalvarez/Documents/Workspace/optimiz-r 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__ \ -u __token__ \
-p pypi-YOUR_COPIED_TOKEN_HERE -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 ### Step 4: Verify
After successful upload: After successful upload:
- Package URL: https://pypi.org/project/optimizr-rs/ - Package URL: https://pypi.org/project/optimiz-rs/
- Test install: `pip install optimizr-rs` - Test install: `pip install optimiz-rs`
--- ---
@@ -160,7 +160,7 @@ After getting your PyPI API token, just run:
```bash ```bash
cd /Users/melvinalvarez/Documents/Workspace/optimiz-r && \ 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 -u __token__ -p YOUR_TOKEN_HERE
``` ```
+2 -2
View File
@@ -31,7 +31,7 @@ OptimizR brings blazing-fast implementations of advanced algorithms to data scie
Python: Python:
```bash ```bash
pip install optimizr-rs pip install optimiz-rs
``` ```
Rust: Rust:
@@ -64,5 +64,5 @@ I'd love your feedback, contributions, and star on GitHub! ⭐
🔗 GitHub: https://github.com/ThotDjehuty/optimiz-r 🔗 GitHub: https://github.com/ThotDjehuty/optimiz-r
📚 Docs: https://optimiz-r.readthedocs.io 📚 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 📦 crates.io: https://crates.io/crates/optimizr
+6 -6
View File
@@ -85,7 +85,7 @@ ERROR HTTPError: 403 Forbidden from https://upload.pypi.org/legacy/
**Solutions:** **Solutions:**
1. **Option A: Use Different Package Name** (Recommended) 1. **Option A: Use Different Package Name** (Recommended)
- `optimizr-rs` - Rust variant naming - `optimiz-rs` - Rust variant naming
- `optimizr-hft` - HFT-focused variant - `optimizr-hft` - HFT-focused variant
- `hfthot-optimizr` - Branded name - `hfthot-optimizr` - Branded name
- `rustimizr` - Play on "Rust optimization" - `rustimizr` - Play on "Rust optimization"
@@ -94,13 +94,13 @@ ERROR HTTPError: 403 Forbidden from https://upload.pypi.org/legacy/
```bash ```bash
# 1. Update pyproject.toml # 1. Update pyproject.toml
[project] [project]
name = "optimizr-rs" # New name name = "optimiz-rs" # New name
# 2. Rebuild wheel # 2. Rebuild wheel
maturin build --release maturin build --release
# 3. Upload to PyPI # 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** 2. **Option B: Contact Current Owner**
@@ -157,7 +157,7 @@ ERROR HTTPError: 403 Forbidden from https://upload.pypi.org/legacy/
## 🎯 Recommended Package Name ## 🎯 Recommended Package Name
**Suggested:** `optimizr-rs` **Suggested:** `optimiz-rs`
**Rationale:** **Rationale:**
- Clear that it's the Rust implementation - 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) - Available on PyPI (checked)
**Update locations:** **Update locations:**
1. `pyproject.toml` → `name = "optimizr-rs"` 1. `pyproject.toml` → `name = "optimiz-rs"`
2. `README.md` → `pip install optimizr-rs` 2. `README.md` → `pip install optimiz-rs`
3. `docs/source/installation.rst` → Update pip command 3. `docs/source/installation.rst` → Update pip command
4. `LINKEDIN_POST.md` → Update installation instructions 4. `LINKEDIN_POST.md` → Update installation instructions
5. `RELEASE_NOTES_v1.0.0.md` → Update PyPI references 5. `RELEASE_NOTES_v1.0.0.md` → Update PyPI references
+8 -8
View File
@@ -1,8 +1,8 @@
# PyPI Publishing Instructions # PyPI Publishing Instructions
## Current Status ## Current Status
- ✅ Package built: `optimizr_rs-1.0.0-cp38-abi3-macosx_10_12_x86_64.whl` - ✅ Package built: `optimiz_rs-1.0.0-cp38-abi3-macosx_10_12_x86_64.whl`
- ✅ Package name: `optimizr-rs` (to avoid conflict with existing "optimizr") - ✅ Package name: `optimiz-rs` (to avoid conflict with existing "optimizr")
- ❌ Need PyPI API token (username/password auth deprecated) - ❌ Need PyPI API token (username/password auth deprecated)
## Steps to Publish ## Steps to Publish
@@ -15,7 +15,7 @@
2. Create API token: https://pypi.org/manage/account/token/ 2. Create API token: https://pypi.org/manage/account/token/
- Click "Add API token" - Click "Add API token"
- Token name: `optimizr-rs-publishing` - Token name: `optimiz-rs-publishing`
- Scope: "Entire account" (can limit to project later) - Scope: "Entire account" (can limit to project later)
- **IMPORTANT:** Copy the token immediately (starts with `pypi-`) - **IMPORTANT:** Copy the token immediately (starts with `pypi-`)
- Store securely (won't be shown again) - Store securely (won't be shown again)
@@ -26,7 +26,7 @@
cd /Users/melvinalvarez/Documents/Workspace/optimiz-r cd /Users/melvinalvarez/Documents/Workspace/optimiz-r
# Upload with API token # 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__ \ -u __token__ \
-p pypi-YOUR_TOKEN_HERE -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 ### 3. Verify Publication
After successful upload, verify at: After successful upload, verify at:
- Package page: https://pypi.org/project/optimizr-rs/ - Package page: https://pypi.org/project/optimiz-rs/
- Test install: `pip install optimizr-rs` - Test install: `pip install optimiz-rs`
### 4. Update Documentation ### 4. Update Documentation
@@ -62,7 +62,7 @@ EOF
chmod 600 ~/.pypirc chmod 600 ~/.pypirc
# Then upload without credentials in command # 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 ## Troubleshooting
@@ -73,7 +73,7 @@ twine upload target/wheels/optimizr_rs-1.0.0-*.whl
- Ensure username is `__token__` (not your actual username) - Ensure username is `__token__` (not your actual username)
**Package name conflict:** **Package name conflict:**
- Already handled - using `optimizr-rs` - Already handled - using `optimiz-rs`
- Cannot use `optimizr`, `optimiz-r`, or `optimizR` (all normalize to "optimizr") - Cannot use `optimizr`, `optimiz-r`, or `optimizR` (all normalize to "optimizr")
**Token not working:** **Token not working:**
+1 -1
View File
@@ -52,7 +52,7 @@ OptimizR provides blazingly fast, production-ready implementations of advanced o
### From PyPI (Python) ### From PyPI (Python)
```bash ```bash
pip install optimizr-rs pip install optimiz-rs
``` ```
### From crates.io (Rust) ### From crates.io (Rust)
+7 -7
View File
@@ -19,19 +19,19 @@ cargo add optimizr
### PyPI (Python) ### PyPI (Python)
```bash ```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 ## 🆕 What's New in v1.0.0
### Publication & Distribution ### Publication & Distribution
-**Published to crates.io** - Available in Rust package registry (Feb 17, 2026) -**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 -**Stable API** - Semantic versioning from v1.0.0 forward
-**Production Ready** - Comprehensive testing and validation -**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 ### Documentation
- 📚 **ReadTheDocs** - Full documentation at https://optimiz-r.readthedocs.io - 📚 **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:** **For Python Users:**
```bash ```bash
# Install via pip # Install via pip
pip install optimizr-rs pip install optimiz-rs
# Or specify version # 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:** **API Compatibility:**
✅ All Python APIs remain unchanged ✅ All Python APIs remain unchanged
+1 -1
View File
@@ -3,7 +3,7 @@ requires = ["maturin>=1.0,<2.0"]
build-backend = "maturin" build-backend = "maturin"
[project] [project]
name = "optimizr-rs" name = "optimiz-rs"
version = "1.0.0" version = "1.0.0"
description = "High-performance optimization algorithms in Rust with Python bindings" description = "High-performance optimization algorithms in Rust with Python bindings"
authors = [ authors = [