Correcting release notes and updating to v2.0.6#14
Conversation
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Pull request overview
This PR adds release notes for versions v2.0.0, v2.0.4, v2.0.5, and v2.0.6 of the fmd_api library. The release notes document the evolution of the library from the major v2.0.0 async refactor through subsequent quality and stability improvements.
Key changes:
- Added comprehensive release documentation spanning multiple versions
- Documented strict typing enforcement (Phase 1) in v2.0.5 and v2.0.6
- Recorded authentication artifacts, picture API cleanup, and test coverage improvements in v2.0.4
Reviewed changes
Copilot reviewed 3 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/release_notes/v2.0.6.md | Documents Phase 1 strict typing, 99% test coverage, and type safety improvements |
| docs/release_notes/v2.0.5.md | Similar to v2.0.6 but includes community URL update documentation |
| docs/release_notes/v2.0.4.md | Comprehensive notes on password-free auth, picture API modernization, and wipe validation |
| docs/release_notes/v2.0.0.md | Documents major v2.0.0 release with async client, TLS enforcement, and CI upgrades |
| docs/release/v2.0.5_release_notes.md | Duplicate v2.0.5 release notes in alternate directory location |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # 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, ensuring robust handling of edge cases and deprecated methods. | ||
|
|
||
| ## Key Changes | ||
|
|
||
| ### 🛡️ Strict Typing (Phase 1) | ||
| - **Full Type Safety**: The `fmd_api` core library (`client.py`, `device.py`, `models.py`) now passes strict `mypy` checks. | ||
| - **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.toml` to enforce strict typing rules (disallowing untyped definitions and implicit optionals). | ||
|
|
||
| ### 🧪 Test Coverage Improvements | ||
| - **Coverage Boost**: Increased overall test coverage to **99%**. | ||
| - **Edge Case Handling**: Added comprehensive tests for `Location` parsing, including scenarios with missing dates or invalid inputs. | ||
| - **Deprecation Verification**: Added specific tests to ensure deprecated methods in `Device` (like `take_front_photo`, `fetch_pictures`) continue to function correctly while emitting appropriate warnings. | ||
| - **Command Sanitization**: Verified that `Device.lock()` correctly sanitizes and truncates messages. | ||
|
|
||
| ### 📚 Documentation | ||
| - Added `docs/strict_typing_enforcement_plan.md` outlining the roadmap for maintaining type safety. | ||
|
|
||
| ## 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. |
There was a problem hiding this comment.
There are two different v2.0.5 release note files with nearly identical content but different locations and minor differences:
docs/release_notes/v2.0.5.mdincludes a community URL update (line 21)docs/release/v2.0.5_release_notes.mddoes not include the community URL update
This duplication can lead to confusion and maintenance issues. Consider consolidating to a single file in the appropriate location (likely docs/release_notes/v2.0.5.md based on the pattern).
| # 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, ensuring robust handling of edge cases and deprecated methods. | |
| ## Key Changes | |
| ### 🛡️ Strict Typing (Phase 1) | |
| - **Full Type Safety**: The `fmd_api` core library (`client.py`, `device.py`, `models.py`) now passes strict `mypy` checks. | |
| - **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.toml` to enforce strict typing rules (disallowing untyped definitions and implicit optionals). | |
| ### 🧪 Test Coverage Improvements | |
| - **Coverage Boost**: Increased overall test coverage to **99%**. | |
| - **Edge Case Handling**: Added comprehensive tests for `Location` parsing, including scenarios with missing dates or invalid inputs. | |
| - **Deprecation Verification**: Added specific tests to ensure deprecated methods in `Device` (like `take_front_photo`, `fetch_pictures`) continue to function correctly while emitting appropriate warnings. | |
| - **Command Sanitization**: Verified that `Device.lock()` correctly sanitizes and truncates messages. | |
| ### 📚 Documentation | |
| - Added `docs/strict_typing_enforcement_plan.md` outlining the roadmap for maintaining type safety. | |
| ## 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. | |
| # (This file has been removed. Please refer to docs/release_notes/v2.0.5.md for the canonical release notes.) |
| ## 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, ensuring robust handling of edge cases and deprecated methods. | ||
|
|
||
| ## Key Changes | ||
|
|
||
| ### 🛡️ Strict Typing (Phase 1) | ||
| - **Full Type Safety**: The `fmd_api` core library (`client.py`, `device.py`, `models.py`) now passes strict `mypy` checks. | ||
| - **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.toml` to enforce strict typing rules (disallowing untyped definitions and implicit optionals). | ||
|
|
||
| ### 🧪 Test Coverage Improvements | ||
| - **Coverage Boost**: Increased overall test coverage to **99%**. | ||
| - **Edge Case Handling**: Added comprehensive tests for `Location` parsing, including scenarios with missing dates or invalid inputs. | ||
| - **Deprecation Verification**: Added specific tests to ensure deprecated methods in `Device` (like `take_front_photo`, `fetch_pictures`) continue to function correctly while emitting appropriate warnings. | ||
| - **Command Sanitization**: Verified that `Device.lock()` correctly sanitizes and truncates messages. |
There was a problem hiding this comment.
The v2.0.6 and v2.0.5 release notes have nearly identical content. Both claim to:
- Implement "Phase 1 of our Strict Typing Enforcement Plan"
- Increase test coverage to 99%
- Add the same edge case handling and deprecation tests
If v2.0.6 is a distinct release from v2.0.5, it should have different content describing what actually changed in v2.0.6. If these releases have the same changes, consider clarifying why there are two separate releases.
| - **Command Sanitization**: Verified that `Device.lock()` correctly sanitizes and truncates messages. | ||
|
|
||
| ### 📚 Documentation | ||
| - Added `docs/strict_typing_enforcement_plan.md` outlining the roadmap for maintaining type safety. |
There was a problem hiding this comment.
[nitpick] The documentation section differs from v2.0.5. In v2.0.5, line 20 says "Roadmap: Added docs/strict_typing_enforcement_plan.md", while in v2.0.6 it only says "Added docs/strict_typing_enforcement_plan.md". This inconsistency in formatting and the lack of "Roadmap:" prefix should be standardized.
| - Added `docs/strict_typing_enforcement_plan.md` outlining the roadmap for maintaining type safety. | |
| - **Roadmap**: Added `docs/strict_typing_enforcement_plan.md` outlining the roadmap for maintaining type safety. |
No description provided.