-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
Summary
The project currently uses:
python3 -m maturin publish
This command is being deprecated. We need to migrate to a modern publishing workflow using:
uv build
uv publish
This will future-proof our release process and align the project with modern Python packaging standards.
Motivation
maturin publishis being deprecateduvprovides a fast, modern, standards-compliant packaging workflow- Cleaner CI/CD integration
- Reduced technical debt
- Long-term maintainability
Goals
- Remove all usage of
maturin publish - Adopt
uv buildfor generating artifacts - Adopt
uv publishfor PyPI releases - Update CI workflows accordingly
- Update documentation
- Ensure Rust + PyO3 integration continues working properly
Proposed Workflow
Local Development
Continue supporting:
python3 -m maturin develop
Optional future improvement (if compatible):
uv develop
Build Artifacts
Generate distribution files using:
uv build
This should produce:
- Source distribution (sdist)
- Wheels (including compiled Rust extension)
Publish to PyPI
Replace:
python3 -m maturin publish
With:
uv publish
Authentication should use:
UV_PUBLISH_TOKEN
Backed by repository secret:
PYPI_API_TOKEN
CI Changes Required
Update .github/workflows/ release pipeline.
Example steps:
- Install uv
- Run uv build
- Run uv publish
with UV_PUBLISH_TOKEN from secrets
Publishing should only run on:
- Tagged releases
- Or explicit release workflow trigger
Required Updates
1. Validate pyproject.toml
- Confirm build backend compatibility
- Ensure metadata is correct
- Remove deprecated publish configuration
- Confirm versioning strategy
2. Validate Rust Extension Build
-
Ensure
uv buildcompiles the PyO3 extension correctly -
Verify wheels contain compiled binaries
-
Test installation from built wheel:
pip install dist/<wheel-file>
3. Documentation
Update:
- README
- Contributing guide
- Release documentation
Replace all references to:
maturin publish
With:
uv build
uv publish
Acceptance Criteria
uv buildsuccessfully produces wheels and sdistuv publishsuccessfully uploads to PyPI- Installed package works correctly
- CI pipeline passes
- No remaining references to
maturin publish - Documentation updated
Priority
High — required to prevent breakage from deprecated publishing workflow
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels