Skip to content

Releases: jonpspri/databeak

Release 0.1.2

07 Oct 13:19
6acbe4d

Choose a tag to compare

Test Coverage Improvements

This release focuses on improved test coverage and release infrastructure.

Coverage Increases

  • Overall coverage: 88.61% → 89.05%
  • _version.py: 71.43% → 100%
  • exceptions.py: 83.67% → 100%
  • data_session.py: 81.25% → 100%

Added (26 new tests)

Release Infrastructure

  • Added tests/packaging/test_packaged_version.sh script to validate version consistency between pyproject.toml and installed package before deployment
  • Updated .github/workflows/publish.yml to run packaging validation tests before PyPI publication
  • Added .claude/commands/release-prep.md slash command for streamlined release management workflow

Test Coverage

  • All exception class constructors and serialization (to_dict() method)
  • Data session error paths (validation methods, stats generation)
  • Version string format validation

Changed

  • Version Handling: Simplified _version.py by removing PackageNotFoundError fallback logic (package metadata always available in deployment environments)

Fixed

  • Version Validation: Packaging test now validates three-part semver format (MAJOR.MINOR.PATCH) with regex pattern matching

Full Changelog: v0.1.1...v0.1.2

DataBeak v0.1.1 - Version Reporting Fix

06 Oct 14:10
392c901

Choose a tag to compare

Fixed

  • Version Reporting: Fixed _version.py to correctly report package version (0.1.1) instead of fallback "0.0.0" - now uses importlib.metadata.version("databeak") instead of __name__
  • Server Info: get_server_info and health_check MCP tools now correctly return actual package version

Changed

  • Version Management: Converted from dynamic versioning (via git tags) to static version in pyproject.toml for more reliable version control
  • Test Implementation: Updated version tests to read from pyproject.toml using tomllib parser instead of importlib.metadata for more direct source of truth

Added

  • Unit Tests: Added test_get_server_info_returns_actual_version unit test to validate version reporting
  • Integration Tests: Added 5 new integration tests in test_system_server_integration.py to verify version propagation through the full MCP client stack

Technical Details

Problem

The _version.py module was using __name__ (which equals "databeak._version") instead of the package name "databeak" when calling importlib.metadata.version(). This caused it to fall back to "0.0.0" since there's no package with that module name.

Solution

Changed to use the correct package name and converted to static versioning in pyproject.toml for better reliability.

Verification

Before fix:

$ uv run python -c "from databeak._version import __version__; print(__version__)"
0.0.0

After fix:

$ uv run python -c "from databeak._version import __version__; print(__version__)"
0.1.1

Quality Metrics

  • 33/33 tests pass (28 unit + 5 integration)
  • Zero ruff violations - Perfect linting compliance
  • 100% MyPy compliance - Complete type safety
  • All pre-commit hooks pass

Full Changelog: v0.1.0...v0.1.1

DataBeak v0.1.0 - Code Quality and Architecture Refinement

06 Oct 13:25
0ae754d

Choose a tag to compare

Fixed

  • Type Safety: Resolved 10 mypy type checking errors including missing type parameters, circular imports, and unused type ignore comments
  • Test Suite: Fixed 35 failing tests by correcting fixture names, adding dict-to-object conversion for FilterCondition, and handling None values in validators
  • Circular Import: Moved CellValue type alias to models/__init__.py to eliminate circular dependency between typed_dicts.py and data_models.py
  • Filter Operations: Added dict-to-FilterCondition conversion with == to = operator normalization for backward compatibility

Changed

  • Type Annotations: Added generic TypeVar T to apply_violation_limits for improved type safety
  • Pandera Integration: Fixed pandera.errors import path in validation_server.py
  • MyPy Configuration: Excluded examples/ directory from type checking to prevent false positives
  • Type Aliases: Migrated FilterValue to modern type statement syntax (PEP 695)
  • Pydantic Validators: Simplified validation logic in pydantic_validators.py, removed duplicate type hints, and streamlined field validator implementations

Removed

  • Dead Code: Removed unused session_service.py and statistics_service.py modules with dependency injection abstractions (0% actual usage)
  • Unused Models: Removed DataSchema and DataQualityRule Pydantic models (61 lines) that were only tested but never used in production code
  • Deprecated Enum: Removed OperationType enum that was marked for cleanup and had no active usage
  • Misleading Documentation: Removed docs/docker-deployment.md that referenced deleted Docker files
  • Example Code: Removed examples/dependency_injection_demo.py that referenced deleted modules
  • Try-Except Wrappers: Removed 58 unnecessary try-except wrapper blocks from MCP tool functions (TRY301 violations) - FastMCP handles exception transformation automatically
  • Transformation Service: Removed unused transformation_service.py module (676 lines, zero production usage)
  • Dead TypedDicts: Removed 22 unused TypedDict classes (343 lines, 88.7% reduction in typed_dicts.py)

Quality Metrics

  • Zero ruff violations - Perfect linting compliance
  • 100% MyPy compliance - Complete type safety
  • 880+ unit tests + 43 integration tests - 88%+ coverage
  • Perfect MCP documentation - All tools fully documented

Full Changelog: v0.0.4...v0.1.0

v0.0.4

30 Sep 14:32

Choose a tag to compare

Added

  • Relaxed JSON Schema Validation: Custom jsonschema validator that accepts integers as strings or floats, handling LLM-generated parameters that don't strictly conform to integer types (PR #115)
  • Integration Testing Framework: Comprehensive integration testing with pytest configuration, isolated test environment, and coverage reporting (PR #110)
  • ReadTheDocs Configuration: Official documentation site with MkDocs integration and automated deployment (PR #108)
  • Type Safety Enhancements: MCP-specific type definitions including NonNegativeIntString and PositiveIntString with regex validation (PR #111)

Changed

  • Header Type Architecture: Refactored HeaderConfig to use Abstract Base Class with Pydantic discriminated union pattern for cleaner polymorphic behavior (PR #113)
  • FastMCP Dependency: Updated to use released fastmcp version instead of development branch (PR #114)
  • Testing Configuration: Enhanced pytest configuration with integration test markers, coverage settings, and proper test isolation
  • Project Structure: Streamlined documentation and removed unmaintained agent files and Docker infrastructure (PR #116)

Removed

  • Docker Support: Removed Dockerfile and docker-compose.yml as Docker deployment is not officially supported
  • Agent Documentation: Removed specialized agent documentation files that are no longer actively maintained

DataBeak v0.0.3 - Import Architecture Fixes

24 Sep 21:06
f9aed39

Choose a tag to compare

🔧 Major Fixes and Improvements

DataBeak v0.0.3 resolves critical import architecture issues and improves development workflow reliability.

🚨 Critical Fixes

  • Circular Import Resolution: Fixed blocking circular import between session.py and session_service.py using lazy imports and TYPE_CHECKING blocks
  • Import Architecture Overhaul: Converted all relative imports to absolute imports, eliminating 15 TID252 ruff violations that were breaking the build pipeline

⚙️ Configuration Improvements

  • MyPy Integration: Added mypy_path="src" configuration enabling type checking from project root and proper pre-commit hook integration
  • Pre-commit Pipeline: All 26 quality gates now pass successfully, ensuring code quality standards

📚 Documentation Updates

  • Command Standardization: Updated all documentation to use consistent uv run --directory src mypy . syntax across README, CONTRIBUTING, docs/, and agent files
  • Agent Streamlining: Simplified test-coverage-analyzer agent description to focus on actionable guidance rather than current state information

✅ Quality Validation

  • Zero ruff violations across all files
  • Zero mypy errors from project root
  • Complete pre-commit pipeline success (26/26 hooks passing)
  • Package imports successfully without circular dependency errors

🔄 Breaking Changes

None - this is a maintenance release focused on fixing development workflow issues.


Full Changelog: v0.0.2...v0.0.3

Installation: pip install databeak==0.0.3 or uv add databeak==0.0.3

v0.0.2 - Production Quality Excellence

19 Sep 14:18

Choose a tag to compare

🌟 DataBeak v0.0.2 - Production Quality Excellence

This release represents a major milestone in DataBeak's development, achieving exceptional code quality standards and production-ready architecture.

🎯 Major Achievements

  • Zero ruff violations - Perfect linting compliance (from ~400+ violations to 0)
  • 100% mypy compliance - Complete type safety across 37 source files
  • 1100+ unit tests - Comprehensive test coverage with perfect pass rate
  • Production-ready quality - Exceptional standards throughout the codebase

✨ Key Improvements

Code Quality & Architecture

  • API Design Excellence: Eliminated boolean traps with keyword-only parameters
  • Architecture Simplification: Removed CorrelatedLogger complexity, simplified logging
  • Context-Based Logging: MCP-integrated logging for better traceability
  • Enhanced Type Safety: Comprehensive type annotations with minimal Any usage
  • Security Improvements: Eliminated silent exception handling patterns

Development Experience

  • Better Error Handling: Consistent exception message patterns
  • Improved Test Quality: Proper pytest patterns with specific match parameters
  • Parameter Clarity: Functions require explicit parameter names for clarity
  • Documentation Alignment: All docs reflect current architecture and standards

Technical Enhancements

  • Data Validation: Added proper validation constraints (negative value prevention)
  • Server Composition: Enhanced modular FastMCP server architecture
  • Code Consistency: Fixed variable shadowing throughout codebase
  • Import Organization: Cleaned up unused imports and dependencies

🛠️ Categories Completely Eliminated

  • G004: Logging f-strings → Standard % formatting + Context logging
  • FBT: Boolean trap patterns → Keyword-only parameters
  • EM101/EM102: Exception message formatting → Variable extraction
  • PT011/PT012/PT017: pytest style issues → Proper testing patterns
  • A001/A002: Variable shadowing → Clear naming
  • ARG: Unused arguments → Clean interfaces
  • S110: Security issues → Proper exception handling
  • N818: Exception naming → Consistent conventions

📚 Documentation Updates

  • Updated all documentation to reflect current server composition architecture
  • Added comprehensive code quality guidelines
  • Corrected outdated directory references throughout
  • Enhanced testing approach documentation

🚀 What This Means

DataBeak v0.0.2 delivers:

  • Production-ready codebase with exceptional quality standards
  • Enhanced AI integration through improved MCP patterns
  • Better developer experience with clear APIs and comprehensive docs
  • Solid foundation for future architectural improvements

This release transforms DataBeak from functional to exceptional, setting new standards for MCP server development.


Full Changelog: v0.0.1...v0.0.2