Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ jobs:
build-and-publish:
name: Build and publish Python distribution
runs-on: ubuntu-latest
environment: pypi
permissions:
id-token: write # required for OIDC trusted publishing

steps:
- name: Checkout code
Expand All @@ -22,23 +25,20 @@ jobs:
- name: Install build dependencies
run: |
python -m pip install --upgrade pip
pip install build twine
pip install build

- name: Build distribution
run: |
python -m build

- name: Check distribution
run: |
pip install twine
twine check dist/*

- name: Publish to PyPI
if: github.event_name == 'release'
run: |
twine upload dist/*
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
uses: pypa/gh-action-pypi-publish@release/v1

- name: Upload artifacts
uses: actions/upload-artifact@v4
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -205,3 +205,6 @@ cython_debug/
marimo/_static/
marimo/_lsp/
__marimo__/

# Internal migration notes
MIGRATION_SUMMARY.md
198 changes: 198 additions & 0 deletions MIGRATION_SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,198 @@
# SDK Migration Summary - Phase 1 Complete

**Date**: February 10, 2026
**Version**: 0.1.0 → 0.2.0
**Status**: ✅ Core migration completed

## ✅ Completed Tasks

### 1. Fixed Critical Import Bugs ✅
- **Issue**: Both repositories had broken imports using `explainai` instead of `whiteboxai`
- **Fix**: Updated all import statements in `__init__.py` to use correct package name
- **Impact**: **BREAKING CHANGE** - Users must update imports when upgrading

### 2. Copied Missing Core Files ✅
Successfully migrated 3 new feature files from whitebox-local-demo to whitebox-python-sdk:

1. **git_utils.py** (339 lines)
- GitContext class for repository metadata
- Auto-detection with GitPython or subprocess fallback
- Validation utilities

2. **integrations/crewai_monitor.py** (490 lines)
- CrewAIMonitor class for multi-agent workflow monitoring
- Automatic agent/task tracking
- Interaction and cost logging

3. **integrations/langchain_agents.py** (610 lines)
- MultiAgentCallbackHandler for LangChain agents
- LangGraphMultiAgentMonitor for graph workflows
- Helper functions for easy integration

### 3. Updated Integration Exports ✅
- Updated `integrations/__init__.py` to export new integrations
- Added CrewAI exports: `CrewAIMonitor`, `monitor_crew`
- Added LangChain agent exports: `MultiAgentCallbackHandler`, `LangGraphMultiAgentMonitor`, `monitor_langchain_agent`

### 6. Reconciled Dependencies ✅
Updated `pyproject.toml` with missing and updated dependencies:

**Core Dependencies**:
- httpx: 0.24.0 → 0.25.0
- Added pandas>=1.3.0
- Added tenacity>=8.0.0

**New Optional Dependencies**:
- git = ["gitpython>=3.1.0"]
- crewai = ["crewai>=0.1.0"]

**Updated 'all' Extra**:
- Now includes all integrations including git and crewai

### 7. Created MkDocs Configuration ✅
- Created comprehensive `mkdocs.yml` with Material theme
- Created `docs/index.md` homepage with quick start examples
- Configured navigation structure across all documentation
- Added dark/light mode, code highlighting, search

### 8. Handled Models Directory ✅
- Verified models directory is not currently used
- Left as empty placeholder for future Pydantic models
- No breaking changes or cleanup needed

### 9. Updated Main Package Init ✅
- Updated `src/whiteboxai/__init__.py` to export git utilities
- Added: `GitContext`, `detect_git_context`, `validate_git_context`
- All new features now accessible from main package

### 10. Version Bump and Changelog ✅
- Updated version: 0.1.0 → 0.2.0
- Updated `__version__.py`, `pyproject.toml`, and `__init__.py`
- Comprehensive CHANGELOG.md entry documenting:
- All new features
- Breaking changes
- Dependency updates
- Bug fixes

## 🔄 Remaining Tasks (Optional)

### 4. Sync Updated Files ⏸️
- **Status**: Deferred - Not critical for initial migration
- **Reason**: Research showed most core files are identical or SDK has newer versions
- **Action**: Can be done incrementally as needed
- **Files to review**: cache.py, client.py, config.py, decorators.py, exceptions.py, monitor.py, offline.py, privacy.py, resources.py, utils.py

### 5. Copy Missing Tests ⏸️
- **Status**: Deferred - Can be added incrementally
- **Missing tests from source**:
- test_config_exceptions.py
- test_decorators.py
- test_utils.py
- test_crewai_integration.py
- **Note**: SDK already has basic test structure and CI/CD workflows

## 📊 Migration Impact

### New Capabilities
✅ Git integration for automatic model versioning
✅ CrewAI multi-agent workflow monitoring
✅ Enhanced LangChain multi-agent support
✅ Complete documentation infrastructure
✅ Updated dependencies aligned with latest stable versions

### Breaking Changes
⚠️ **Import path fix**: Users must update `from explainai.*` → `from whiteboxai.*`

### Package Size
- Added ~1,439 lines of new feature code
- Added comprehensive MkDocs configuration
- Added missing dependencies

## 🧪 Validation Status

### Code Quality
- ✅ No critical errors
- ⚠️ Minor linting warnings (unused imports in optional features)
- ⚠️ Import warnings for optional dependencies (expected)
- ⚠️ Complexity warnings in git_utils (acceptable for utility code)

### Import Resolution
- ✅ Core imports working correctly
- ⚠️ Optional import warnings (git, langchain, crewai) - **EXPECTED**
- These are optional dependencies, warnings are normal when not installed
- Code handles ImportError gracefully

### Testing Needed
1. Install package locally: `pip install -e .`
2. Test basic imports: `from whiteboxai import WhiteBoxAI, GitContext`
3. Test optional imports: `from whiteboxai.integrations import CrewAIMonitor`
4. Run existing test suite: `pytest`
5. Build documentation: `mkdocs build`
6. Build package: `python -m build`

## 📝 Recommended Next Steps

### Immediate (Before Release)
1. **Test Installation**: Install SDK in clean environment and test all imports
2. **Run Test Suite**: Execute `pytest` to ensure no regressions
3. **Build Docs**: Run `mkdocs build` to verify documentation builds
4. **Build Package**: Run `python -m build` to create distribution

### Post-Release
1. **Add Missing Tests**: Copy test files for new features when time permits
2. **Sync Core Files**: Compare and merge any updates in core modules
3. **Documentation Updates**: Add examples for new CrewAI and git features
4. **Migration Guide**: Create guide for users migrating from 0.1.0 to 0.2.0

## 🎯 Success Criteria

✅ **Fixed critical import bug** - Package now uses correct import paths
✅ **Added 3 major features** - Git, CrewAI, LangChain agents
✅ **Updated dependencies** - Aligned with latest stable versions
✅ **Complete documentation** - MkDocs setup ready for deployment
✅ **Version bumped** - 0.2.0 with comprehensive changelog
✅ **Maintained compatibility** - No removals, only additions (except breaking import fix)

## 🔍 Known Issues

1. **Linting Warnings**: Minor unused import warnings in new files - can be cleaned up in future PR
2. **Optional Dependencies**: Import warnings when git/langchain/crewai not installed - **EXPECTED BEHAVIOR**
3. **Complexity Warnings**: git_utils functions flagged as complex - acceptable for comprehensive error handling

## 📦 Installation Commands for Testing

```bash
# Install base package
pip install -e .

# Install with Git support
pip install -e ".[git]"

# Install with CrewAI support
pip install -e ".[crewai]"

# Install with LangChain support
pip install -e ".[langchain]"

# Install everything
pip install -e ".[all,dev]"
```

## 🚀 Deployment Checklist

- [ ] Test local installation
- [ ] Run pytest suite
- [ ] Build and test MkDocs
- [ ] Build package artifacts
- [ ] Review CHANGELOG.md
- [ ] Update README.md examples if needed
- [ ] Tag release: `v0.2.0`
- [ ] Push to GitHub
- [ ] CI/CD will handle PyPI publishing

---

**Migration Status**: ✅ **PHASE 1 COMPLETE**
**Ready for**: Testing and validation
**Blockers**: None
**Risk Level**: Low (breaking change documented in changelog)
Loading