Skip to content

Narrow Functions loose-codec deprecation exceptions - #349

Open
andystaples wants to merge 2 commits into
mainfrom
andystaples-review-functions-loose-codec-deprecation
Open

andystaples wants to merge 2 commits into
mainfrom
andystaples-review-functions-loose-codec-deprecation

Conversation

@andystaples

Copy link
Copy Markdown
Contributor

Summary

Azure Functions' default loose codec still needs both deprecation exceptions: activity inputs can be decoded without a destination type, and typed loose decoding continues to use the legacy object hook for custom objects. Strict typing is opt-in and does not preserve all loose-mode behavior.

  • Match each pytest exception against the complete upstream advisory and its originating module, so unrelated deprecations continue to fail.
  • Document the input-typing and replay limitations and add compatibility coverage for loose and strict modes, including externalized activity payloads.

Relates to #325.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings November 10, 2026 17:45

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

No active review issues remain for the targeted warning-filter, compatibility-test, and documentation updates.

No open issues 🎉

What changed in this PR

This PR narrows the Azure Functions codec deprecation exceptions while preserving legacy compatibility, addressing the warning-filter scope and compatibility concerns in #325. It changes test configuration, coverage, and documentation without changing provider runtime behavior.

Changes:

  • Match both permitted advisories by their complete message and exact originating module.
  • Add regression coverage for warning filters and loose/strict decoding, including externalized activity payloads.
  • Document destination-type limitations and replay risks when switching typing modes.
File Description
tests/​azure-functions-durable/​test_codec_warning_filters.py Verifies known advisories remain visible while unrelated deprecations fail.
tests/​azure-functions-durable/​test_codec_compatibility.py Covers loose/strict codec behavior for orchestration and activity inputs.
pyproject.toml Restricts the two deprecation exceptions to complete messages and the exact codec module.
azure-functions-durable/​README.md Explains legacy compatibility, typing limitations, and replay precautions.

Review effort: Balanced

@berndverst Bernd Verst (berndverst) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The warning exceptions now match the complete upstream advisories and their exact module while keeping both compatibility warnings visible. The loose/strict and externalized-activity coverage matches the current Functions library and worker behavior, and unrelated deprecations still fail the strict gate. I found no runtime, API, replay, or production-performance regressions.

Please resolve the README conflict with current main before merging, preserving both the HTTP retry documentation and the new JSON typing/compatibility section. The code changes otherwise look good to me.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

@berndverst Bernd Verst (berndverst) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The update preserves both README sections and the intervening main changes. The warning exceptions remain narrowly scoped, both compatibility advisories stay visible, and the codec coverage passes on the merged head. I found no introduced correctness, compatibility, replay, or production-performance issues. Looks good to me.

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