This guide explains how to release a new version of BinPackage to PyPI.
- Write access to the GitHub repository
- PyPI account with maintainer access to
islenskapackage ghCLI tool installed and authenticated- Python 3.9+ with
buildandtwinepackages
Edit pyproject.toml and update the version:
version = "1.1.0" # Update thisgit add pyproject.toml
git commit -m "Bump version to 1.1.0 for release"
git tag -a 1.1.0 -m "Release version 1.1.0
[Brief description of changes]
"
git push origin main
git push origin 1.1.0Pushing the tag triggers the wheel building workflow on GitHub Actions.
Monitor the build progress:
gh run list --workflow=wheels.yml --limit 3Or visit: https://github.com/mideind/BinPackage/actions/workflows/wheels.yml
Builds typically take 10-15 minutes.
Once the build completes successfully, use the automated release script:
# Get the run ID from step 3
RUN_ID=18731185158 # Example - use actual ID
# Run the release script
./release-to-pypi.sh $RUN_IDThe script will:
- Download wheel artifacts from all platforms
- Build the source distribution (
.tar.gz) - Collect everything into
dist-release/ - Verify all distributions with
twine check
python -m twine upload --repository testpypi dist-release/*Then verify at: https://test.pypi.org/project/islenska/
python -m twine upload dist-release/*You'll be prompted for your PyPI credentials (or use API token).
- Check PyPI page: https://pypi.org/project/islenska/
- Test installation:
pip install islenska==1.1.0 - Verify abi3 wheels are available for multiple Python versions
For version 1.1.0, expect approximately 9 wheels:
Linux (x86_64):
islenska-1.1.0-cp39-abi3-manylinux_2_17_x86_64.whlislenska-1.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.whlislenska-1.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.whl
macOS (x86_64 + arm64):
islenska-1.1.0-cp39-abi3-macosx_10_9_x86_64.whlislenska-1.1.0-cp39-abi3-macosx_11_0_arm64.whl- PyPy wheels for both architectures
Windows (AMD64):
islenska-1.1.0-cp39-abi3-win_amd64.whl- PyPy wheels
Source:
islenska-1.1.0.tar.gz
Check the GitHub Actions logs for errors. Common issues:
- C++ compilation errors
- Missing dependencies in CI
- Test failures
- Ensure you have PyPI credentials configured
- Use API token instead of password (more secure)
- Check network connectivity
- Verify the run ID corresponds to the correct tag
- Re-run the workflow if needed:
gh workflow run wheels.yml --ref 1.1.0
- Announce the release (if applicable)
- Update documentation with new features
- Monitor PyPI download stats
- Watch for user-reported issues
Follow semantic versioning (semver):
- Major (2.0.0): Breaking API changes
- Minor (1.1.0): New features, backward compatible
- Patch (1.0.5): Bug fixes only