Repository navigation
fix(ci): repair failing lint/test jobs and switch to Python 3.14 - #97
Merged
Merged
Conversation
- Newer Streamlit resolves relative AppTest.from_file() paths against the calling test file, so the verify/unsubscribe page tests looked for tests/immermatch/pages/*.py. Anchor PAGE_FILE to the repo root, matching tests/test_app_ui.py. - ruff 0.17 formats Python code blocks inside Markdown; apply it to the model snippets in AGENTS.md (whitespace-only). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bump the Python used by CI, the daily digest workflow, .python-version and the devcontainer image. The supported floor (requires-python >=3.10, ruff target py310) is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues were identified for the test-path fixes and Python environment alignment changes.
No open issues 🎉
What changed in this PR
This PR repairs CI failures caused by dependency behavior changes and aligns development and automation environments on Python 3.14, while retaining Python 3.10 as the supported minimum.
Changes:
- Anchor Streamlit page-test paths to the repository root.
- Apply whitespace-only formatting to Python snippets in
AGENTS.md. - Switch CI, daily digest automation, and local development configuration to Python 3.14.
| File | Description |
|---|---|
tests/test_pages_verify.py |
Use an absolute path for the verification page test. |
tests/test_pages_unsubscribe.py |
Use an absolute path for the unsubscribe page test. |
AGENTS.md |
Reformat Python snippets without changing behavior. |
.python-version |
Select Python 3.14 for local development. |
.github/workflows/daily-digest.yml |
Run daily digest automation on Python 3.14. |
.github/workflows/ci.yml |
Run all Python CI jobs on Python 3.14. |
.devcontainer/devcontainer.json |
Use the Python 3.14 development container image. |
Review effort: Balanced
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.
Summary
mainhas been failing the CIlintandtestjobs since911ea34because newer dependency versions changed behavior. Neither failure came from a code change in this repo.test: newer Streamlit resolves relativeAppTest.from_file()paths against the calling test file. As a result,tests/test_pages_unsubscribe.pyandtests/test_pages_verify.pylooked fortests/immermatch/pages/*.py(13 failures). This anchorsPAGE_FILEto the repo root, the same waytests/test_app_ui.pyalready does.lint: ruff 0.17 now formats Python code blocks inside Markdown. This applies that formatting to the model snippets inAGENTS.md(whitespace only)..python-versionand the devcontainer image from 3.13 to 3.14. The supported floor (requires-python >=3.10, ruffpy310) is unchanged.Test plan
make checkon Python 3.14.4: 403 passed, ruff and mypy cleanruff check,ruff format --check,mypy immermatch/ daily_task.py,pytest --cov-fail-under=60(68.6%)🤖 Generated with Claude Code