v0.17.7

๐Ÿ“… September 24, 2025 ๐Ÿ‘ค Development Team ๐Ÿ”– 90a9f83c
๐ŸŽซ Tickets: TEST-001 COVERAGE-001 QUALITY-001

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

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