Repository navigation
chore: combine annotated-logger dependency updates - #182
Merged
sophiagavrila merged 2 commits intoNov 5, 2026
Merged
Conversation
Supersedes Dependabot #181, #180 and #178. Requirements regenerated with hatch-pip-compile (uv resolver, Python 3.12) rather than edited in place; this also adds tzdata, a new hard dependency of python-dateutil 3.0.0 that #181 omitted. filelock 4.0.12 -> 4.2.1 and virtualenv 21.14.5 -> 21.15.1 resolve all 23 open Dependabot alerts on requirements/requirements-dev.txt. ruff 0.17 stabilised pragma-aware E501 line length, which made the E501 code in example/logging_config.py an unused noqa (RUF100). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 00a74825-4394-4247-84c6-515ed83c2da2
sophiagavrila
temporarily deployed
to
testpypi
November 4, 2026 17:27 — with
GitHub Actions
Inactive
Coverage reportClick to see where and how coverage changed
This report was generated by python-coverage-comment-action |
||||||||||||||||||||||||||||||
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Two moderate active issues remain: the checked-in pre-commit hook fails on the changed lint configuration, and the development lockfile cannot be installed on the supported Python 3.10 target.
2 open issues
What changed in this PR
This pull request consolidates Dependabot dependency updates, refreshes Python lockfiles and pinned GitHub Actions, and removes an obsolete Ruff E501 suppression.
Changes:
- Updates development dependencies, including
filelock,virtualenv,python-dateutil, and the transitivetzdatapin. - Refreshes
certifiin the lockfiles. - Updates coverage-comment and PyPI publishing action SHAs.
- Removes the unused
E501code from an examplenoqadirective.
This pull request requires changes.
| File | Summary |
|---|---|
requirements/requirements-dev.txt |
Refreshes development dependency pins and adds tzdata. Moderate issue (2 votes): filelock==4.2.1 requires Python 3.11+, so the lockfile cannot be installed on the repository’s supported Python 3.10 target. |
requirements.txt |
Updates the default environment’s certifi lockfile pin. |
example/logging_config.py |
Removes the obsolete Ruff E501 suppression. Moderate issue (3 votes): the checked-in ruff-pre-commit v0.14.0 hook still reports E501; retain the suppression or update the hook. |
.github/workflows/pytest.yaml |
Updates the coverage-comment action SHA. |
.github/workflows/publish-to-pypi.yaml |
Updates the PyPI publishing action SHA for the PyPI and TestPyPI jobs. |
.github/workflows/coverage.yaml |
Updates the coverage-comment action SHA. |
Review effort: Lite (auto)
Bump ruff-pre-commit v0.14.0 -> v0.17.3 to match the pinned ruff. v0.14.0 still flags E501 on example/logging_config.py:114 once the now-unused noqa code is removed. Document that the dev lockfile needs Python >= 3.11: every patched filelock release (>= 4.2.1) dropped 3.10. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 00a74825-4394-4247-84c6-515ed83c2da2
sophiagavrila
temporarily deployed
to
testpypi
November 4, 2026 17:39 — with
GitHub Actions
Inactive
brandonganem
approved these changes
Nov 5, 2026
brandonganem
left a comment
There was a problem hiding this comment.
Matrix review
No issues found.
Reviewed d8ba5e9 with claude-opus-5.5, gpt-6.1-sol, gemini-4-argon and gpt-6.1-terra. Linked issues were read at review time.
sophiagavrila
deleted the
sophiagavrila/oncall-annotated-logger-20261104
branch
November 5, 2026 16:52
This branch was previously deployed
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.

Note
Combined on-call dependency patching PR for Week 2 of the vuln-mgmt-eng on-call rotation, tracked by github/vuln-mgmt-eng#12120.
What this PR does
Consolidates the three open Dependabot PRs into one change, closes all 23 open Dependabot alerts on
requirements/requirements-dev.txt, and fixes the singleruff0.17 lint finding that kept #181 red.tzdata),certifibumped in both lockfilescoverage.yaml,pytest.yaml,publish-to-pypi.yaml)requirements-vendored.txt, novendor/, no committed archives)noqacode removed inexample/logging_config.py;ruff-pre-commithookv0.14.0->v0.17.3to matchCONTRIBUTING.md: one sentence stating thedevenv needs Python >= 3.11How the requirements were produced
Both lockfiles are generated by
hatch-pip-compile(type = "pip-compile",pip-compile-resolver = "uv"). They were regenerated with the tool, on Python 3.12 to match the existing file headers, rather than edited in place:The targets are the highest version proposed for each package across #181 and #180. The regenerated files match the Dependabot diffs exactly, with one addition:
python-dateutil3.0.0 declares an unconditionaltzdatadependency, which #181's in-place edit left out. The resolver addstzdata==2026.6.Python packages
certifidistlibfilelocknodeenvplatformdirspluggypytestpytest-mockpython-dateutilfreezegun)python-discoveryrufftzdatapython-dateutil3.0.0virtualenvGitHub Actions pins
py-cov-action/python-coverage-comment-action54b4ecb(v4.4)e5fb221(v4.5)coverage.yaml,pytest.yamlpypa/gh-action-pypi-publishdc37677(v1.14.2)7245906(v1.14.3)publish-to-pypi.yaml(TestPyPI and PyPI jobs)Both SHAs were checked against the upstream tags (
v4.5->e5fb221, annotated tagv1.14.3->7245906).Superseded Dependabot PRs
[pip] (deps): Bump the dev-dependencies group across 1 directory with 12 updatesruff(RUF100), fixed here. Lockfile also corrected fortzdata.filelock4.2.1;virtualenvtaken at #181's higher 21.15.1).[actions] (deps): Bump the dev-dependencies group across 1 directory with 2 updatesThese are not closed manually; they should auto-close once this merges.
Security findings accounted for
From github/vuln-mgmt#273354 (Security Finding Summary):
virtualenv==21.15.1virtualenv==21.15.1filelock==4.2.123 of 23 open alerts are addressed. All are on
requirements/requirements-dev.txt; none affect the published package. No GitHub advisories currently listfilelock4.2.1,virtualenv21.15.1, or any other new pin in this PR as affected.Important
Every patched
filelockrelease (>= 4.2.1) requires Python >= 3.11; the newest release installable on 3.10 is 4.1.0, which is still vulnerable. The dev lockfile is generated for Python 3.12 (see its header) and CI installs the latest3.x, so CI is unaffected. A contributor building thedevenvironment on Python 3.10 would fail to installfilelock==4.2.1. The published package still declaresrequires-python = ">=3.10"and does not depend onfilelock. This becomes visible in CI if the pytest matrix is bound to real interpreter versions (#156). Reproduced locally:hatch env create devon CPython 3.10.19 fails resolvingfilelock==4.2.1. A Python-version-specific lock would put a vulnerablefilelock==4.1.0pin back in the file and leave the alerts open, soCONTRIBUTING.mdnow states thedevenv needs 3.11+.Lint repair (not a dependency change)
ruff0.17.0 stabilised pragma-aware line length:E501now ignores trailing pragma comments when measuring a line (changelog, astral-sh/ruff#27313).example/logging_config.py:114is 76 characters without its# noqa, soE501no longer fires and theE501code in thatnoqabecame unused:The fix drops
E501from thatnoqa, keepingERA001. Verified across versions: ruff 0.14.0 and 0.16.10 pass on the original line, and only 0.17.3 reports RUF100. With the edit, 0.17.3 passes. The pinned project linter is 0.17.3..pre-commit-config.yamlpinnedruff-pre-commitatv0.14.0, which still flagsE501on that line once the code is removed (pre-commit run ruff --all-filesfailed locally). The hook is bumped tov0.17.3to match the pinnedruff. Theruffhook id remains available as a legacy alias in v0.17.3, so the hook list is unchanged.Release
Per
CONTRIBUTING.md("Release a Version"), a release is cut by pushing a signed tag, and the published version comes fromannotated_logger/__init__.py(VERSION = "1.3.5").No package release is needed for this PR. The published wheel's dependencies come from
[project] dependenciesinpyproject.toml, which is not touched.requirements.txtandrequirements/requirements-dev.txtare hatch lockfiles for local and CI environments and are not shipped. Thepypa/gh-action-pypi-publishbump only takes effect at the next tag push.VERSIONis unchanged.Validation
Validation
Run locally on CPython 3.12.4 in the
devhatch environment (hatch 1.18.2, the version CI installs), built from the regenerated lockfile. Installed versions were confirmed:filelock 4.2.1,virtualenv 21.15.1,python-dateutil 3.0.0,tzdata 2026.6,ruff 0.17.3,pytest 9.2.0.hatch run dev:ruff check .hatch run dev:ruff format --check .hatch run dev:pyrighthatch run dev:pytest(random order)hatch run dev:pytest -p no:randomlydefaultanddevenvspre-commit run ruff --all-files/ruff-format/check-yaml(hookv0.17.3)hatch env create devon CPython 3.10.19filelock==4.2.1(expected, see Security findings note)Remote CI (pytest matrix, pyright, ruff, CodeQL, TestPyPI build) is the final gate.
Deployment monitoring
Deployment monitoring
Not applicable.
annotated-loggeris a library published to PyPI. It has noconfig/moda/directory and no Kubernetes namespace, so there is no staging or production rollout to baseline. Consumers only pick up changes when a new version is released and they re-resolve their own lockfiles, and this PR does not cut a release.No Splunk baseline was captured, and none is claimed.
Isolation / not touched
Isolation / not touched
This PR changes only
requirements.txt,requirements/requirements-dev.txt, three workflow files (action SHA pins only), onenoqacomment inexample/logging_config.py, theruff-pre-commitrevin.pre-commit-config.yaml, and one sentence inCONTRIBUTING.md.It does not modify:
annotated_logger/(no behavior change)pyproject.toml, including[project] dependencies,requires-python, hatch env config, and ruff configVERSION, release configuration, or tagstest/, or coverage thresholds (still 100%)README.mdor other documentationpytest.yamlmatrix (tracked separately in Pytest matrix runs a single interpreter; binding it exposes a macOS/3.11 hatch env failure #156).pre-commit-config.yamlhooks (pyright, pre-commit-hooks, check-jsonschema)DockerfileNot folded in (human or bot authored, out of scope): #171, #170, #169 (Shubham-Padkonde), #163 (github-security-bot, SHA pinning), #144 (draft). #163 edits the same workflow files and may need a rebase after this merges.