uv venv test-env && source test-env/bin/activate # Create new uv environment and activate
pip install -e . # Install local library in editable mode (simulates PyPI install)
hstream run your_test_script.py # Test the library manually with a scriptWe use automatic versioning and deployment with hatch-vcs and GitHub Actions.
Push to main → Tests pass → Auto-create tag → Build with version → Publish to PyPI → Create GitHub release
Every push to the main branch will:
- Run all tests
- Automatically create a new git tag (patch version bump: v0.1.58 → v0.1.59)
- Build the package with the version from the tag
- Publish to PyPI automatically
- Create a GitHub release with changelog
Before the auto-versioning works, you need to create an initial tag:
# Switch to main branch and create initial tag
git checkout main
git tag v0.1.58 # Use the next version number
git push origin v0.1.58After that, every push to main will auto-increment the patch version.
The default is to bump the patch version (0.1.X), but you can control the version bump with commit messages:
- Patch bump (default):
git commit -m "fix: bug fix" - Minor bump:
git commit -m "feat: new feature" - Major bump:
git commit -m "feat!: breaking change"
Click to see the old manual deployment process (no longer used)
- increment version in
setup.py rm -rf build/ hstream.egg-info/ dist/pip install twine buildpython -m buildtwine upload dist/*
kill -9 $(lsof -t -i:8000) (or whatever port they we're using)
uv run pre-commit run --all-files