Dependencies workflow: the lock upgrade is checked on one Python with part of CI, and its pull request runs no CI #585
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
performance
security
tier
1
tier
2
tier
3
tier/4
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Postulo/postulo#585
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found on 2026-09-29 in a read-only review of postulo at
95348908d, comparing.forgejo/workflows/dependencies.ymlwith the test job in.forgejo/workflows/ci.yml.Related to #233.
Checked again on 2026-10-01 against
mainat0a5cad587: still present. TheCONTRIBUTING.mdpassage is now atCONTRIBUTING.md:289-293.The monthly lock upgrade says it runs "the same checks the test job runs, minus the browser" and opens its pull request saying "the suite passed against the result". It runs a subset, on Python 3.14 only, and the pull request it opens never gets a CI run of its own, because it is pushed and opened with the workflow's automatic token. A lock that breaks a check it skipped looks green until it reaches
main..forgejo/workflows/dependencies.yml:68-82(uv sync --locked --python 3.14 --no-group e2e, thenruff check,makemigrations --check,messages.py compile,pytest -n 2);dependencies.yml:84-132(push and pull request withTOKEN: ${{ secrets.GITHUB_TOKEN }});.forgejo/workflows/ci.yml:41-140(the test job it claims to mirror);.pre-commit-config.yaml:44-46(ruff-pre-commitatrev: v0.16.6);CONTRIBUTING.md:287-291.ruff format --check(ci.yml:93), althoughuv lock --upgrademoves ruff itself (ruff>=0.16in the dev group);messages.py extract --checkandmessages.py check(ci.yml:104-105);fetch_esco(ci.yml:114), sotests/test_esco.pyand the other ESCO tests skip;collectstatic(ci.yml:134-140);psycopgfrom thepostgresextra is never installed), the security audit and the browser suite.The branch is then pushed and the pull request opened with the automatic token. Forgejo, like Gitea, ignores events whose doer is the Actions user (to avoid cycles), so neither the push to
dependencies/YYYY-MMnor thepull_requestevent starts ci.yml, and the pull request shows no statuses at all.maingoes red on the next push. A new ruff in the lock also leaves the pre-commit hook pinned at v0.16.6, so contributors' hooks format differently from CI.--extra postgresand the ESCO download; or, simpler, push the branch and open the pull request with a bot account's token (a repository secret) so ci.yml runs on it as on any other pull request, and say in the body that CI on the pull request is the check. Have the job fail, or bump.pre-commit-config.yamlin the same commit, when the locked ruff version differs from the hook'srev. Correct the comment atdependencies.yml:73-74and the pull-request body to say what was run.Done when
tests/test_tooling.pyor similar) fails when the locked ruff and the pre-commitrevdisagree.Landed on main with a green Forgejo CI run. Its entry in the CHANGELOG's Unreleased section ends in (#585).