Skip to content

Upgrade Python support - #1296

Merged
Gallaecio merged 4 commits into
masterfrom
ci
Jan 7, 2026
Merged

Gallaecio merged 4 commits into
masterfrom
ci

Conversation

@Gallaecio

Copy link
Copy Markdown
Contributor

No description provided.

@codecov

codecov Bot commented Jan 7, 2026 •

Copy link
Copy Markdown

Codecov Report

βœ… All modified and coverable lines are covered by tests.
βœ… Project coverage is 0.00%. Comparing base (b7bb1a5) to head (2d96583).
⚠️ Report is 1 commits behind head on master.

❗ There is a different number of reports uploaded between BASE (b7bb1a5) and HEAD (2d96583). Click for more details.

HEAD has 7 uploads less than BASE
Flag BASE (b7bb1a5) HEAD (2d96583)
8 1
Additional details and impacted files
@@            Coverage Diff             @@
##           master   #1296       +/-   ##
==========================================
- Coverage   96.60%   0.00%   -96.61%     
==========================================
  Files         235     235               
  Lines        2886    2886               
==========================================
- Hits         2788       0     -2788     
- Misses         98    2886     +2788     

β˜” View full report in Codecov by Sentry.
πŸ“’ Have feedback on the report? Share it here.

πŸš€ New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Gallaecio

Copy link
Copy Markdown
Contributor Author

This solves all CI issues besides those addressed by #1294.

@Gallaecio
Gallaecio marked this pull request as ready for review January 7, 2026 23:18
@Gallaecio
Gallaecio merged commit cbe2979 into master Jan 7, 2026
9 of 15 checks passed
serhii73 added a commit that referenced this pull request Sep 9, 2026
* Run the test matrix nightly and turn warnings into errors

CI only ran on push and pull request, so breakage that arrives without a
commit -- a dependency release, a tz database update, the calendar rolling
over -- stayed invisible until someone happened to push. Master saw CI on
41 distinct days in the last 13 months, twice going more than two months
without a run, which is how #1286 reached a downstream packager first.

A new Nightly workflow calls the existing Build matrix daily at 04:17 UTC
and files one tracking issue per outage, since GitHub's own notification
goes to a single person. The schedule lives in its own workflow because
GitHub disables a workflow that has a schedule after 60 days without
repository activity, and a disabled workflow answers none of its triggers:
keeping the cron out of main.yml means an inactivity disable can never take
pull request runs down with it.

pytest.ini turns warnings into errors. The suite emits none today on 3.10
through 3.14, with and without the calendars and langdetect extras, against
both current dependencies and the min pins, so the exemption list starts
empty. The exception is the tzlocal 0.2 pin in the min environments, whose
invalid string escapes become an import-time SyntaxError under an error
filter whenever the installer does not byte-compile, so tox ignores that
one message for those two environments.

The matrix gains a plain 3.10 leg: 3.10 is a supported interpreter that was
only ever tested against the oldest permitted dependency versions, since
the Python bump in #1296 consumed the bare 3.10 row.

CIFuzz uploads SARIF with github/codeql-action/upload-sarif@v4. v2 has been
emitting a failure-level annotation on every run, and v3 emits one of its
own, so v4 is what actually clears it.

Fixes #1374

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* Address review findings on the nightly and warnings setup

Scope the Nightly token to contents: read at the workflow level, which the
called matrix inherits; the report job asks for issues: write itself
(CodeQL actions/missing-workflow-permissions).

Exempt three environmental warnings from the error filter: tzlocal's two
UserWarnings on a host with no or stale time zone configuration, which CI
never sees because it always sets TZ but which fail most of the suite for
a contributor in a bare container or in nixpkgs' sandbox, and pytest's
PytestCacheWarning in a read-only checkout, which turned a green run into
exit 1.

Drop the DeprecationWarning category from the tzlocal 0.2 escape filter,
since CPython 3.12+ emits it as a SyntaxWarning, and carry it through
PYTEST_ADDOPTS instead of a copied command line so min and min-all keep
following [testenv] commands. Ignore pytest-codspeed's measurement-hook
RuntimeWarnings in the benchmark env, so a runner glitch cannot turn
CodSpeed red.

Upload coverage only on push and pull_request, so a dispatched Nightly
does not re-upload master's report. Gate the report job on master and on
failure or cancelled, key the tracking issue on a dedicated
nightly-failure label so retitling it does not defeat the dedupe, and let
a transient listing failure fall through to filing rather than aborting.

Lint W605 with ruff: pip's byte-compilation absorbs an invalid-escape
warning before pytest can see it, so the linter is the only leg that can.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.

2 participants