Metadata-Version: 2.4
Name: lumi-dataset-hub
Version: 0.2.3
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Summary: High-performance dataset caching and streaming client bindings for Python
License: MIT
Requires-Python: >=3.8
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM

# lumi-dataset-hub

High-performance dataset caching and streaming client bindings for Python.

---

## Release Automation & Publishing

This package uses automated GitHub Workflows to compile and release multi-platform binary wheels to PyPI. The pipeline is secured using **OIDC Trusted Publishing**, meaning no passwords or static API tokens are stored on GitHub.

### How to Release a New Version

1. **Increment Version**: Update the version number in `pyproject.toml` (e.g., `version = "0.2.1"`) and `Cargo.toml`.
2. **Commit and Tag**:
   ```bash
   git add pyproject.toml Cargo.toml
   git commit -m "bump: version 0.2.1"
   git tag v0.2.1
   ```
3. **Push to GitHub**:
   ```bash
   git push origin main
   git push origin v0.2.1
   ```
4. **Pipeline Execution**: 
   - Pushing the tag automatically triggers the `Release Python Bindings` workflow.
   - The workflow compiles wheels for Linux (manylinux x86_64, aarch64), macOS (x86_64, aarch64), and Windows (x86_64), and builds the source distribution (`sdist`).
   - After a successful build, the job requests a federated OIDC token from PyPI's trusted publisher interface and deploys all distributions seamlessly.

### PyPI Trusted Publisher Configuration Reference

For administrators setting up publishing credentials, the following mappings are configured under PyPI Account Settings:
* **Provider**: GitHub
* **Owner**: Organization or Username (e.g., `rd-lumi`)
* **Repository**: `dataset-caching`
* **Workflow Name**: `release.yml`
* **Environment Name**: `pypi`
* **PyPI Project**: `lumi-dataset-hub`


