GitHub
10/26/2026, 4:36 PMSingerSDKPythonEOLWarning: Python 3.10 reached its end of life on 2026-10. The pytest_configure hook that #3643 added to the templates filters only the text "Python 3.10 will reach its end of life on 2026-10", and warn_python_eol() changes to the "reached" text on the end-of-life date. The templates set filterwarnings = ["error", …], so the warning that the filter no longer matches becomes an error.
• pyproject.toml (tap and target templates): add "once:Python 3.* its end of life:FutureWarning" to filterwarnings. It matches the "will reach" and the "reached" texts for every Python version, so Python 3.11 does not fail in the same way when its warning starts, 180 days before its end of life in 2027-10.
• tests/conftest.py (tap and target templates): remove the file, which contained only the old hook.
On Python 3.10, the standard tests of a target rendered from main (target-per_record, with a valid SAMPLE_CONFIG) fail 17 of 17 with the end-of-life warning, and pass 17 of 17 on Python 3.12. With this change, they pass 17 of 17 on Python 3.10 too. The E2E workflow does not catch this, because it runs only tox -e typing on a rendered project, not its tests.
The mapper template has no tests, so the warning cannot fail there, and this change leaves it as it is.
---
🤖 Generated with Claude Code
Summary by Sourcery
Ensure generated tap and target projects tolerate Python end-of-life warnings across Python version transitions.
Bug Fixes:
• Prevent Python end-of-life warnings from causing rendered tap and target project tests to fail.
Enhancements:
• Apply a version-agnostic warning filter to tap and target templates and remove obsolete warning-handling hooks.
meltano/sdkGitHub
10/26/2026, 4:36 PMGitHub
10/27/2026, 2:28 PM