v2.0.5
·
15 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Release v2.0.5
Overview
This release focuses on code quality, stability, and developer experience. We have implemented Phase 1 of our Strict Typing Enforcement Plan, ensuring the core library is fully type-safe. Additionally, we have significantly improved test coverage and updated documentation.
Key Changes
🛡️ Strict Typing (Phase 1)
- Full Type Safety: The
fmd_apicore library (client.py,device.py,models.py) now passes strictmypychecks. - Improved Signatures: Public methods now have precise return types and generic type hints (e.g.,
List[Dict[str, Any]]), improving IDE autocompletion and static analysis for consumers. - Configuration: Updated
pyproject.tomlto enforce strict typing rules (disallowing untyped definitions and implicit optionals).
🧪 Test Coverage Improvements
- Coverage Boost: Increased overall test coverage to 97%.
- Edge Case Handling: Added comprehensive tests for
Locationparsing, including scenarios with missing dates or invalid inputs. - Deprecation Verification: Added specific tests to ensure deprecated methods in
Device(liketake_front_photo,fetch_pictures) continue to function correctly while emitting appropriate warnings. - Command Sanitization: Verified that
Device.lock()correctly sanitizes and truncates messages.
📚 Documentation
- Roadmap: Added
docs/strict_typing_enforcement_plan.mdoutlining the roadmap for maintaining type safety. - Community Updates: Updated the community instance URL in
README.mdto point to the new server location (https://server.fmd-foss.org/).
Upgrade Guide
This release is fully backward compatible with v2.0.4. No code changes are required for consumers, though you may notice improved type checking results if you use mypy in your own projects.