- Update version in
mqttd/__init__.py - Update version in
setup.py(auto-reads from init.py) - Update version in
pyproject.toml - Verify
README.mdis complete and accurate - Ensure
LICENSEfile exists - Check
MANIFEST.inincludes necessary files - Test package builds successfully
- Verify no sensitive data in package
- ✅
setup.py- Updated with proper PyPI metadata - ✅
pyproject.toml- Modern Python packaging configuration - ✅
MANIFEST.in- Package file inclusion rules - ✅
mqttd/__init__.py- Version defined here
- ✅
README.md- Comprehensive documentation - ✅
PUBLISH.md- Detailed publishing instructions - ✅
QUICK_PUBLISH.md- Quick reference guide - ✅
PYPI_CHECKLIST.md- This checklist
- ✅
build_and_publish.sh- Helper script for building and publishing
- Current:
0.2.0 - Location:
mqttd/__init__.py→__version__ = "0.2.0"
- Required: None (Redis is optional)
- Optional:
redis>=5.0.0(for Redis pub/sub mode)aioquic>=0.9.20(for QUIC support)
- Minimum: Python 3.7+
- Recommended: Python 3.13+ (for no-GIL support)
# Clean
rm -rf build/ dist/ *.egg-info
# Build
python -m build
# Check
ls -lh dist/
# Test on TestPyPI
python -m twine upload --repository testpypi dist/*
# Publish to PyPI
python -m twine upload dist/*- Verify package appears on PyPI: https://pypi.org/project/mqttd/
- Test installation:
pip install mqttd - Update GitHub repository with release tag
- Announce release (if applicable)
- Package name:
mqttd - PyPI URL: https://pypi.org/project/mqttd/
- GitHub URL: https://github.com/arusatech/mqttd