-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Open
Labels
P1High priority, add to the next sprintHigh priority, add to the next sprint
Description
As part of the move to Python 3.10, we plan to:
- testing with 3.10 on CI
- dropping 3.9 from pyproject
- adopting X|Y typing syntax (PEP604) while maintaining compatibility with previous syntax
What this means for the ecosystem 👇
Haystack (#9854)
- testing with 3.10 on CI (chore!: drop Python 3.9 support due to EOL #10244 ✅)
- dropping 3.9 from pyproject (chore!: drop Python 3.9 support due to EOL #10244 ✅, to be released in 2.22.0)
- adopting X|Y typing syntax (PEP604): (refactor: support PEP604 typing syntax (
X|YandX|None) #10255 ✅, to be released in 2.22.0)
Haystack Core integrations
- testing with 3.10 on CI (test: use Python 3.10 in tests instead of 3.9 haystack-core-integrations#2616 and test: use Python 3.10 in tests instead of 3.9 - pt. 2 haystack-core-integrations#2620 ✅)
- dropping 3.9 from pyproject: TODO after 2.22.0 release
- adopting X|Y typing syntax: TODO after 2.22.0 release
Notes:
The last two tasks can be done together. Since the X|Y typing syntax will only be supported starting from 2.22.0, this implies for each integration we should:
- open an update PR
- merge it
- release a new major version that pins
haystack-ai>=2.22.0
Haystack Experimental
- test with 3.10: (chore: test with python 3.10 in the CI haystack-experimental#415 ✅)
- dropping 3.9 from pyproject: TODO after 2.22.0 release
- adopting X|Y typing syntax: TODO after 2.22.0 release
Notes:
- After completing the first step, it is possible that tests against Haystack main may fail. This could happen because some components overridden in Experimental might rely on the new typing syntax introduced in Haystack. If this happens, I would keep these failures until 2.22.0 release.
- The second and the third step can be done together. I propose not pinning a specific version of Haystack in Experimental. While more precise, this could worsen cyclic dependency (Haystack depends on Experimental, which depends on Haystack), leading to fragile/confusing dependency resolution, as we have seen in the past.
Metadata
Metadata
Assignees
Labels
P1High priority, add to the next sprintHigh priority, add to the next sprint