Skip to content

Latest commit

 

History

History
126 lines (95 loc) · 3.55 KB

File metadata and controls

126 lines (95 loc) · 3.55 KB

PyPI Package Publishing Checklist

This document lists all files created for professional PyPI package publishing.

✅ Required Files Created

Core Files

  • LICENSE - MIT License
  • README.md - Project overview with badges
  • setup.py - Package setup configuration
  • pyproject.toml - Modern Python packaging configuration
  • MANIFEST.in - Files to include in distribution

Documentation

  • CHANGELOG.md - Version history following Keep a Changelog
  • CONTRIBUTING.md - Contribution guidelines
  • CODE_OF_CONDUCT.md - Community guidelines
  • SECURITY.md - Security policy and vulnerability reporting
  • AUTHORS.md - Contributors list
  • PUBLISHING.md - Detailed publishing instructions

Code Quality

  • .editorconfig - Editor configuration
  • .gitattributes - Git attributes for line endings
  • .pre-commit-config.yaml - Pre-commit hooks for code quality

CI/CD (GitHub Actions)

  • .github/workflows/test.yml - Automated testing
  • .github/workflows/publish.yml - Automated PyPI publishing

GitHub Templates

  • .github/ISSUE_TEMPLATE/bug_report.md - Bug report template
  • .github/ISSUE_TEMPLATE/feature_request.md - Feature request template
  • .github/pull_request_template.md - Pull request template

Next Steps Before Publishing

1. Configure GitHub Repository Settings

Secrets to Add:

  • Go to Repository Settings → Secrets and Variables → Actions
  • Add PYPI_API_TOKEN with your PyPI API token

Branch Protection:

  • Protect main branch
  • Require pull request reviews
  • Require status checks to pass

2. Pre-Publishing Checklist

  • Install pre-commit hooks: pre-commit install
  • Run all tests: pytest
  • Check code formatting: black --check .
  • Check linting: ruff check .
  • Check types: mypy src/
  • Update version in 3 files:
    • setup.py (line 8)
    • pyproject.toml (line 7)
    • src/vortex_sdk/__init__.py (line 21)
  • Update CHANGELOG.md with changes
  • Test build: python -m build
  • Test on TestPyPI first

3. First Release Process

# 1. Clean old builds
rm -rf build/ dist/ *.egg-info

# 2. Build package
python -m build

# 3. Check package
twine check dist/*

# 4. Upload to TestPyPI
twine upload --repository testpypi dist/*

# 5. Test installation
pip install --index-url https://test.pypi.org/simple/ \
  --extra-index-url https://pypi.org/simple/ \
  vortex-sdk-python

# 6. If everything works, upload to PyPI
twine upload dist/*

# 7. Create git tag
git tag -a v0.1.0 -m "Release version 0.1.0"
git push origin v0.1.0

# 8. Create GitHub Release
# Go to GitHub → Releases → Create a new release

4. Post-Publishing

Maintenance

For Each New Release

  1. Update version numbers (3 files)
  2. Update CHANGELOG.md
  3. Create PR with changes
  4. After merge, create and push git tag
  5. GitHub Actions will auto-publish to PyPI

Regular Tasks

  • Monitor GitHub Issues and PRs
  • Keep dependencies updated
  • Review and merge Dependabot PRs
  • Update documentation as needed
  • Respond to security advisories

Resources