fix(deps): widen workflow anyio pin to >=4.9,<4.14 - #146
Merged
Conversation
- prefect 2.20.25 verified working on anyio 4.6.2 through 4.13.0 - anyio 4.14.0 made TaskGroup.create_task abstract, which is what breaks prefect's GatherTaskGroup subclass - the >=4.9 floor overlaps mcp>=2, so the workflow and mcp extras can now share one resolution - lock moves anyio 4.6.2.post1 -> 4.13.0, prefect stays 2.20.25
Contributor
Release previewMerging this PR would release v2.0.1 (current: Changelog preview (truncated)## v2.0.1 (2026-08-28)
### Bug Fixes
- **deps**: Widen workflow anyio pin to >=4.9,<4.14
([`21c4043`](https://github.com/OpenSemanticLab/osw-python/commit/21c4043a168379de43a7fe8ccabd1c266fe1a656))
### Documentation
- Add citation and authorship section to CONTRIBUTING.md
([`a3a8119`](https://github.com/OpenSemanticLab/osw-python/commit/a3a8119cd047cee741812b11e3f1f26c3f91c639))
Preview via python-semantic-release and conventional commits. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Widens the
workflowextra's anyio constraint from>=4.4.0,<4.7to>=4.9,<4.14.Closes #139
Changes
pyproject.toml:workflowextra now pinsanyio>=4.9,<4.14; the explanatory comment records the actual break point instead of the previous conservative guessuv.lock:anyio 4.6.2.post1 -> 4.13.0;prefectstays at2.20.25Rationale
The old
<4.7cap was seven minor releases tighter than necessary. Bisectingprefect==2.20.25against every anyio minor (py3.12, exercising prefect's owngather()):GatherTaskGroup.__abstractmethods__[]['create_task']TypeError: Can't instantiate abstract class GatherTaskGroupanyio 4.14.0 added
create_task()to theTaskGroupABC and changedstart_soon()to return aTaskHandle(agronholm/anyio#1098). That promotedcreate_taskinto the abstract set, breaking prefect's external subclass. Not reverted in 4.14.1 or 4.14.2, and prefect 2.20.25 is the final 2.x release, so no backport is coming - hence the cap stays, just at the correct value.The
>=4.9floor is what matters for #139:mcp 2.1.1requiresanyio>=4.9(its stricter>=4.10clause is gated onpython_version >= '3.14', and this project isrequires-python = ">=3.10,<3.14", so it never applies).>=4.9,<4.14therefore satisfies theworkflowandmcpextras simultaneously:No prefect 3.x migration and no source changes are needed.
Verification
uv lockanduv syncsucceedtest_notify_teams,test_tags_str_to_list,test_deploy_serve.test_deploy_runneris skipped by a pre-existing unconditional"Not deployable in test environment"markerFollow-up
Not in this PR, since these live on
feat/mcp-server. Once this lands, five of the six workarounds from #133 can be reverted:[tool.uv] conflicts(mcp vs workflow, mcp vs dev)mcpexcluded from theallextradevlistingprefect/anyiodirectly instead ofosw[workflow], which requires keeping two copies of the pins in sync by handtestgroup, split out only becausedevconflicted with themcpextraimportorskipguards in the MCP testsThe sixth (
tyexclude forsrc/osw/mcp) is already undone on that branch. Reverting these puts the MCP module back under type checking and unit testing in the defaultuv syncenvironment.