fix: add missing provider dependencies to capability packages#94
Conversation
PR Review: Fix Missing Provider DependenciesSummaryThis PR correctly addresses a critical packaging issue where capability packages failed to install their provider dependencies when distributed via PyPI. The fix is sound and follows the correct approach for Python packaging. ✅ Code Quality & Best PracticesExcellent:
Observations:
🐛 Potential IssuesNone identified. The changes are straightforward and correct. ⚡ Performance ConsiderationsNo performance concerns. These are declarative dependency specifications that only affect installation time, not runtime performance. 🔒 Security ConcernsNo security issues identified.
🧪 Test CoverageRecommendations:
The current test plan mentions manual verification, but automating this would prevent regression. 📝 Additional ObservationsMinor version inconsistency noticed:
This isn't caused by this PR, but worth noting for future releases. Documentation:
✨ VerdictLGTM - Approve with minor suggestions This PR correctly fixes a critical bug that would prevent users from installing the package from PyPI. The implementation is clean, consistent, and follows Python packaging best practices. The only enhancement I'd suggest is adding automated testing to prevent this type of regression in the future. Great catch on identifying the root cause! 🎯 |
Pull Request ReviewThis PR successfully addresses the critical packaging issue where capability packages failed to install their provider dependencies from PyPI. The fix is well-executed and follows the correct approach for Python packaging. ✅ Strengths1. Root Cause Analysis
2. Comprehensive Fix
3. Version Management
4. Code Quality
📝 Observations1. Dual Dependency Declaration Pattern 2. Provider Package Dependencies 3. License Consistency Note ✅ Security, Performance & Best Practices
🧪 Test CoverageThe PR includes a test plan checklist. After merging and publishing to PyPI, recommend verifying the fix in a fresh environment. 🎯 ConclusionLGTM ✅ This is a well-crafted fix that directly addresses the reported issue. The changes are correct, complete, consistently applied, properly versioned, and low-risk. No blocking issues found. Ready to merge once CI passes. Minor suggestion for future: Consider adding a CI job that tests installation from built wheels (simulating PyPI installation) to catch this type of issue earlier in development. |
Problem
Website CI fails with
ModuleNotFoundError: No module named 'celeste_elevenlabs'when installing from PyPI.Root Cause
Capability packages (e.g.,
celeste-speech-generation) had[tool.uv.sources]for workspace development but nodependenciessection for PyPI distribution. When published, the provider packages weren't installed.Fix
Added
dependenciessection to all capabilitypyproject.tomlfiles:speech-generation: celeste-ai, celeste-elevenlabs, celeste-google, celeste-gradium, celeste-openaitext-generation: celeste-ai, celeste-anthropic, celeste-cohere, celeste-google, celeste-mistral, celeste-openai, celeste-xaiimage-generation: celeste-ai, celeste-bfl, celeste-byteplus, celeste-google, celeste-openaivideo-generation: celeste-ai, celeste-byteplus, celeste-google, celeste-openai (already had pillow)Test Plan
uv pip install celeste-ai[all]from PyPI installs all provider packages