Release v0.17.7 - ๐งช Test Coverage & Quality Improvements
Date: 2025-09-24T12:09:19.425912
Author: Claude AI
Commit: 90a9f83c
๐ Release Notes
Release Notes - v0.17.7
๐ฏ Test Coverage & Quality Improvements
This release represents a significant investment in code quality and test infrastructure, adding comprehensive test coverage for critical physics modules and improving overall test coverage from 40.2% to 45.55%.
๐ Major Achievements
Test Coverage Enhancements
- 132 new physics module tests added with 100% pass rate
- Test coverage improved from 40.2% to 45.55% for production code
- Zero test failures - All 1,641 tests passing
- Coverage configuration added to exclude non-production code
New Comprehensive Test Suites
Atmosphere Module (test_atmosphere.py)
- 20 tests for atmospheric calculations
- CIPM air density validation
- ICAO standard atmosphere compliance
- Temperature, pressure, and humidity effects
BC Validation Module (test_bc_validation.py)
- 30 tests for ballistic coefficient validation
- Segment validation and monotonicity checks
- BC range estimation
- Source analysis (manufacturer vs doppler data)
Stability Calculator (test_stability_calculator.py)
- 25 tests for gyroscopic stability
- Miller and Greenhill formula validation
- Dynamic stability assessment
- Auto-enable precession/nutation logic
Transonic Drag Module (test_transonic_drag.py)
- 32 tests for transonic drag modeling
- Prandtl-Glauert corrections
- Wave drag calculations
- Critical Mach number detection
Custom Drag Module (test_custom_drag.py)
- 25 tests for custom drag functions
- CDF library management
- BC calculation from drag curves
- Drag function interpolation
๐ง Technical Improvements
Code Quality
- Fixed all API mismatches between tests and implementations
- Removed 6 obsolete tests for non-existent APIs
- Standardized function signatures across physics modules
- Improved Mock object attributes in tests
Coverage Configuration
[tool.coverage.run]
omit = [
"*/attic/*", # Legacy code
"*/tests/*", # Test files
"*/scripts/*", # Utility scripts
"*/ballistics/data/analyze_*.py", # Analysis scripts
"*/ballistics/data/bc_clustering*.py", # Research code
"*/ballistics/core.py" # Deprecated module
]
๐ Metrics
Test Statistics - Total Tests: 1,641 (up from 1,509) - Pass Rate: 100% - Test Runtime: ~52 seconds - Coverage: 45.55% of production code
Coverage Breakdown | Module Category | Coverage | |----------------|----------| | Core Physics | 80-100% | | API Endpoints | 75-90% | | ML Models | 40-60% | | Data Processing | 25-45% |
๐ Deployment
- Deployed to Google Cloud Functions
- Function URL: https://ballistics-api-ryt276vblq-uc.a.run.app
- Rust-only mode enabled (15-20x faster)
- Warm-keeping configured (5-minute intervals)
๐ Bug Fixes
While no production bugs were fixed, numerous test issues were resolved: - Fixed keyword vs positional argument mismatches - Corrected dataclass field names - Fixed return value unpacking errors - Updated Mock object attributes - Converted lists to numpy arrays where required
Dependencies
- Rust Module: ballistics_rust v0.17.7
- Python: 3.12+
- All other dependencies unchanged
๐ซ Tickets Resolved
- TEST-001
- COVERAGE-001
- QUALITY-001
๐ Changes
Other
- 90a9f83 docs: Add comprehensive release notes for v0.17.7
- 9f2a437 chore: Bump version to 0.17.7 and improve test coverage
- 96676d1 chore: Bump version to 0.17.6
- 6b1faca fix: BC data corrections and API improvements
- 4614486 chore: Bump version to 0.17.5
- 3398d7d chore: Bump version to 0.17.4
- e428962 chore: Bump version to 0.17.3 and refine bullet drawings
- ebea56c fix: Move length measurement line closer to bullet to avoid overlap with stats box
- e354e0e fix: Clean BC errors from all production databases
- 68c4183 fix: Correct 240 bullets with caliber values incorrectly stored as BC G1
- e136d67 fix: Decode HTML entities in bullet names for proper display
- 60f4031 feat: Add intelligent boat tail detection for HPBT and other boat tail bullets
- e9166a8 fix: Ensure consistent ID generation by converting whole number grains to int
- fbf5a20 debug: Add comprehensive database testing to debug endpoint
- 8936699 fix: Ensure database path is checked at runtime, not just import time
- ce30dbe debug: Add endpoint to check database availability in GCF
- 27d42ec debug: Add logging to identify database path issues in GCF
- 30551fd fix: Ensure bullets_unified.db is deployed for drawing endpoint
- 491bd04 chore: Bump version to 0.17.2 and update bullets_unified.db
- ceaa9f1 fix: Improved bullet matching for boattail characteristics in drawing IDs
- a9fcd6d feat: Add bullet drawing IDs to search endpoints (v0.17.0)
- c70a273 feat: Enhanced visual aesthetics for bullet and cartridge drawings
- 3e28280 fix: Include bullets_unified.db in deployment
- 96aba02 feat: Add bullet and cartridge drawing endpoints
- df14f4c chore: Bump version to 0.16.6
- d7cd6ed chore: Bump version to 0.16.5
- 7734642 feat: Integrate ogive-enhanced transonic model as primary
- c1800cc fix: Correct distance values in transonic corrections output
- 8764bd4 fix: Remove broken Documentation link from release notes
- 3c990d0 fix: Properly extract text from HTML for release previews
- 6cb4893 fix: Improve preview text extraction for release notes
- 2001311 fix: Properly render Markdown in release notes
- ecebaf6 docs: Add v0.16.4 release notes and update releases site