forked from bead-project/bead
-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Goal
Make bead installable via pipx install bead by publishing to PyPI.
Current Status
✅ Good News:
- Package name "bead" is available on PyPI
- Modern packaging setup with pyproject.toml using flit_core
- CLI entry point configured
- Basic metadata present (name, version, description, author, license)
Required Steps
1. Complete Project Metadata in pyproject.toml
- Add
readme = "README.md" - Add
homepageorrepositoryURL - Add
keywordsfor discoverability - Add
classifiers(Python versions, development status, topic) - Add
project.urlsfor documentation, bug tracker
2. Prepare Documentation
- Clean up README.md (remove inactive CI badges)
- Add installation instructions for
pipx install bead - Add quick start guide
- Consider adding CHANGELOG.md
3. Build Configuration
- Verify MANIFEST.in includes all necessary files
- Consider removing
testsfrom packages in pyproject.toml - Evaluate if
tracelog.pyshould be in distribution
4. Create PyPI Account & API Token
- Register at https://pypi.org
- Create API token for uploads
- Store token securely (GitHub secrets for CI)
5. Test on TestPyPI First
# Build the package
pip install build
python -m build
# Upload to TestPyPI
pip install twine
twine upload --repository testpypi dist/*
# Test installation
pipx install --index-url https://test.pypi.org/simple/ bead6. Upload to Production PyPI
# Upload to PyPI
twine upload dist/*
# Verify installation
pipx install bead7. Post-Upload Tasks
- Set up GitHub Actions for automated releases
- Add PyPI badge to README
- Implement semantic versioning
- Configure pre-commit hooks for version bumping
Considerations
⚠️ Unusual dependency:pip>=25.1.1- verify if intentional⚠️ Consider iftestsdirectory should be in package distribution- ℹ️ .bumpversion.cfg exists - use for version management
Quick Reference
# One-time setup
pip install build twine
# For each release
python -m build
twine check dist/*
twine upload dist/*Benefits
- Easy installation:
pipx install bead - Automatic dependency management
- Version pinning support
- Wide distribution and discoverability
Metadata
Metadata
Assignees
Labels
No labels