- NEW:
Repository.safe_fetch_remote()- Safely fetch changes from remote repositories without modifying working directory- Read-only operation with comprehensive error handling
- Support for dry-run preview and remote validation
- Configurable remote names and pruning options
- NEW:
Repository.warm_cache()- Pre-populate repository cache for improved performance- Configurable method selection with intelligent parameter handling
- Performance metrics and cache entry tracking
- Significant performance improvements (1.5-10x speedup demonstrated)
- NEW:
ProjectDirectory.bulk_fetch_and_warm()- Efficiently process multiple repositories- Parallel processing support when joblib is available
- Error isolation (failures in one repo don't affect others)
- Comprehensive summary statistics and progress tracking
- NEW:
CacheEntryclass with metadata tracking (timestamps, age calculation) - ENHANCED: Thread-safe cache operations with proper locking mechanisms
- ENHANCED: Cache key consistency improvements using
||delimiter format - ENHANCED: Cache timestamp and metadata access methods (
get_cache_info(),list_cached_keys())
- NEW: Comprehensive remote operations documentation (
docs/source/remote_operations.rst) - NEW: Cache warming and remote fetch example (
examples/remote_fetch_and_cache_warming.py) - NEW: Cache timestamp usage example (
examples/cache_timestamps.py) - NEW: Release analytics example (
examples/release_analytics.py)
- NEW: 38 comprehensive tests for remote operations and cache warming
- NEW: Thread safety tests for cache operations
- NEW: Edge case and error handling test coverage
- IMPROVED: Overall test coverage and reliability
- FIXED: Various minor bugs and future warnings
- All new features are fully backward compatible
- No breaking changes to existing APIs
- Existing cache backends work seamlessly with new features
- Significant caching bugfixes and updates
- Added a DiskCache that persists across runs
- Added release analytics
- Updated coverage file parsing to use coverage.py API instead of direct file parsing
- Added coverage>=5.0.0 as a core dependency
- Added a basic MCP server
- Added methods to
Repositoryfor getting files in repo, getting content of a file, and getting diffs of a revision
- Docs CI bugfix
- Support for default branch setting instead of assuming master, will infer if not passed
- Better handling of ignore repos in project directory setup
- Added a branch exists helper in repository
- Docs corrections
- Imrpoved test suite
- Many bugfixes
- Updates for pandas v2
- Fully transitioned to ignore_globs and include_globs style syntax
- Parallelized cumulative blame support with joblib threading backend
- Added threading parallelism to many project directory functions.
- Added a chaching module for optional redis or memory backed caching of certain resultsets
- Added ignore_globs option alongside all methods with ignore_dir and extensions, will be the only method for filtering files in v2.0.0
- _repo_name changed to repo_name in project directories (old method left with deprecation warning)
- repo_name property added to repositories
- Support for estimating time spent developing on projects.
- bugfix in ignore_dir option for root level directories
- file details function
- Stable API
- Punchcard dataframe added
- Plotting helpers added to library under utilities module
- Added github.com profile object
- Added file owner utility
- Added lifelines example
- Added rev to file change history table
- Added file-wise blame using by='file' parameter
- Bus Factor returns a dataframe
- Now supporting python 2.7+ and 3.3+
- Added file change rates table with risk metrics
- Added basic functionality with coverage files
- Added limited time window based dataset functionality
- Expanded docs
- Added cumulative blame and revision history
- Added approximate bus factor analysis
- Added blame
- Initial release, basic interface to commit history and descriptors