Files
deltaglider-beshu-tech/PYPI_RELEASE.md
Simone Scarduzio 7fbf84ed6c Initial commit: DeltaGlider - S3-compatible storage with 99.9% compression
- 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
2025-09-22 22:21:48 +02:00

2.5 KiB

Publishing DeltaGlider to PyPI

Prerequisites

  1. Create PyPI account at https://pypi.org
  2. Create API token at https://pypi.org/manage/account/token/
  3. 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)
  1. Upload to TestPyPI:
python -m twine upload --repository testpypi dist/*
  1. 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:

  1. Go to https://github.com/beshu-tech/deltaglider/releases
  2. Click "Create a new release"
  3. Select the tag v0.1.0
  4. Add release notes from CHANGELOG
  5. Attach the wheel and source distribution from dist/
  6. Publish release

Version Bumping

For next release:

  1. Update version in pyproject.toml
  2. Update CHANGELOG
  3. Commit changes
  4. 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

  1. Hacker News: Post with compelling title focusing on the 99.9% compression
  2. Reddit: r/Python, r/devops, r/aws
  3. Twitter/X: Tag AWS, Python, and DevOps influencers
  4. Dev.to / Medium: Write technical article about the architecture
  5. PyPI Description: Ensure it's compelling and includes the case study link