mirror of
https://github.com/beshu-tech/deltaglider.git
synced 2026-03-18 07:23:42 +01:00
- Drop-in replacement for AWS S3 CLI (cp, ls, rm, sync commands) - Binary delta compression using xdelta3 - Hexagonal architecture with clean separation of concerns - Achieves 99.9% compression for versioned files - Full test suite with 100% passing tests - Python 3.11+ support
2.5 KiB
2.5 KiB
Publishing DeltaGlider to PyPI
Prerequisites
- Create PyPI account at https://pypi.org
- Create API token at https://pypi.org/manage/account/token/
- Install build tools:
pip install build twine
Build the Package
# Clean previous builds
rm -rf dist/ build/ *.egg-info/
# Build source distribution and wheel
python -m build
# This creates:
# - dist/deltaglider-0.1.0.tar.gz (source distribution)
# - dist/deltaglider-0.1.0-py3-none-any.whl (wheel)
Test with TestPyPI (Optional but Recommended)
- Upload to TestPyPI:
python -m twine upload --repository testpypi dist/*
- Test installation:
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ deltaglider
Upload to PyPI
# Upload to PyPI
python -m twine upload dist/*
# You'll be prompted for:
# - username: __token__
# - password: <your-pypi-api-token>
Verify Installation
# Install from PyPI
pip install deltaglider
# Test it works
deltaglider --help
GitHub Release
After PyPI release, create a GitHub release:
git tag -a v0.1.0 -m "Release version 0.1.0"
git push origin v0.1.0
Then create a release on GitHub:
- Go to https://github.com/beshu-tech/deltaglider/releases
- Click "Create a new release"
- Select the tag v0.1.0
- Add release notes from CHANGELOG
- Attach the wheel and source distribution from dist/
- Publish release
Version Bumping
For next release:
- Update version in
pyproject.toml - Update CHANGELOG
- Commit changes
- Follow steps above
Automated Release (GitHub Actions)
Consider adding .github/workflows/publish.yml:
name: Publish to PyPI
on:
release:
types: [published]
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install dependencies
run: |
pip install build twine
- name: Build package
run: python -m build
- name: Publish to PyPI
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
run: |
twine upload dist/*
Marketing After Release
- Hacker News: Post with compelling title focusing on the 99.9% compression
- Reddit: r/Python, r/devops, r/aws
- Twitter/X: Tag AWS, Python, and DevOps influencers
- Dev.to / Medium: Write technical article about the architecture
- PyPI Description: Ensure it's compelling and includes the case study link