Noticed while merging #161, which added pytest.ini. That pull request arrived with no checks at all — not pending, not skipped, simply absent — and it was correct behaviour.
The gap
.github/workflows/lint.yml triggers on:
paths:
- "**.py"
- "requirements.txt"
- "constraints.txt"
- ".github/dependabot.yml"
- ".github/workflows/lint.yml"
docs-cli-check.yml triggers on **.md, **.py and itself.
Two configuration files match neither list:
| File |
What it controls |
Runs it |
ruff.toml |
line length, and which lint rules are ignored |
the ruff job |
pytest.ini |
which warnings are suppressed during the suite |
the no-chrome job |
So a pull request that changes only ruff.toml does not run ruff, and one that changes only pytest.ini does not run the tests. The configuration that decides what CI enforces is invisible to CI.
Why this is worth fixing rather than shrugging at
Both files have a plausible bad edit that would sail through with a green tick and no output at all:
Neither would be caught by review alone, because a reviewer looking at a one-line config diff with all checks green has no reason to suspect anything ran differently.
There is a live example already open: #79 asks for a one-line correction to a comment in ruff.toml. Whoever fixes it will get no CI run on their pull request.
The work
Add the two filenames to the paths lists in lint.yml — push and pull_request both, they are separate lists — so that changing either file runs the job it configures.
Worth thinking about for a moment rather than pasting: docs-cli-check.yml does not need them, and adding filters where they are not needed is its own kind of noise. Say in the pull request why you did or did not touch the second workflow.
Done when
- A pull request touching only
ruff.toml runs the ruff job
- A pull request touching only
pytest.ini runs no-chrome
- Demonstrate it. Push a trivial change to one of them on your branch — a comment will do — and link the run that fired. This issue is about CI triggering, so an assertion that it now triggers is worth nothing without the run behind it.
pytest tests/ -q still green
Small, and no Windows machine needed. #79 and #93 are reserved for first-time contributors; this one is not, so it is fair game for anyone.
Noticed while merging #161, which added
pytest.ini. That pull request arrived with no checks at all — not pending, not skipped, simply absent — and it was correct behaviour.The gap
.github/workflows/lint.ymltriggers on:docs-cli-check.ymltriggers on**.md,**.pyand itself.Two configuration files match neither list:
ruff.tomlruffjobpytest.inino-chromejobSo a pull request that changes only
ruff.tomldoes not runruff, and one that changes onlypytest.inidoes not run the tests. The configuration that decides what CI enforces is invisible to CI.Why this is worth fixing rather than shrugging at
Both files have a plausible bad edit that would sail through with a green tick and no output at all:
ignorelist inruff.tomlsilently stops the linter checking it.pytest.ini's filter from the exactBasicAuthmessage toignore::DeprecationWarningwould hide every future deprecation in every dependency — which is precisely what silence the aiohttp BasicAuth deprecation warning in the test run (the call itself has to stay) #151 was written to avoid, and the comment there says so.Neither would be caught by review alone, because a reviewer looking at a one-line config diff with all checks green has no reason to suspect anything ran differently.
There is a live example already open: #79 asks for a one-line correction to a comment in
ruff.toml. Whoever fixes it will get no CI run on their pull request.The work
Add the two filenames to the
pathslists inlint.yml—pushandpull_requestboth, they are separate lists — so that changing either file runs the job it configures.Worth thinking about for a moment rather than pasting:
docs-cli-check.ymldoes not need them, and adding filters where they are not needed is its own kind of noise. Say in the pull request why you did or did not touch the second workflow.Done when
ruff.tomlruns theruffjobpytest.inirunsno-chromepytest tests/ -qstill greenSmall, and no Windows machine needed.
#79and#93are reserved for first-time contributors; this one is not, so it is fair game for anyone.