Skip to content

Conversation

@devinslick
Copy link
Owner

No description provided.

Copilot AI review requested due to automatic review settings November 22, 2025 19:03
@codecov-commenter
Copy link

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment on lines 1 to 23
# 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.
Copy link

Copilot AI Nov 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.md includes a community URL update (line 21)
  • docs/release/v2.0.5_release_notes.md does 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).

Suggested change
# 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.)

Copilot uses AI. Check for mistakes.
Comment on lines 3 to 17
## 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.
Copy link

Copilot AI Nov 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
- **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.
Copy link

Copilot AI Nov 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[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.

Suggested change
- 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.

Copilot uses AI. Check for mistakes.
@devinslick devinslick merged commit fb7853e into main Nov 22, 2025
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants