Release gate: nothing runs pytest -m release, and it fails today on 21 of the 23 catalogues #11
Labels
No labels
bug
documentation
enhancement
security
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Postulo/postulo-helloworld#11
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-helloworld at
19f0bcc29, comparing its workflows and catalogue tests with those of postulo-apprise and postulo-paperless, and running the catalogue check against the snapshot.The README says
uv run pytest -m release"holds the twenty-four European Union catalogues complete before a release". The marker is deselected by default and no workflow selects it, so the gate runs only if somebody remembers to. It has already drifted: 21 of the 23 European Union catalogues are incomplete, and CI is green.pyproject.toml:58-64(addopts = "--strict-markers -m 'not release'");.forgejo/workflows/ci.yml:14-17(on: push: branches: [main]andpull_request, no tags) and.forgejo/workflows/ci.yml:67-68(uv run pytest); there is norelease.yml;tests/test_catalogues.py:61-65(test_every_european_union_language_stays_complete);tests/test_catalogues.py:15-17(pytest.importorskip);README.md:55-56.ci.ymlrunsuv run pytest, which deselects the release test. No other workflow exists, andci.ymldoes not run on a tag. postulo-apprise, postulo-paperless, postulo-imap and postulo-dav each have arelease.ymltriggered bytags: ["v*"]that runsuv run pytest -m release; this repository was not given one.messages_toolshows every European Union language exceptfr-frandpt-ptwith three untranslated entries: "File name", "A name, not a path: …" and "Give the name of a file on its own, not a path: %(name)s is not one." These are the strings the file-name field brought in (#1).pyproject.tomlalready saysversion = "0.3.0".tests/test_catalogues.py:15still opens withpytest.importorskip("postulo.core.messages_tool", …), the pattern postulo/postulo-apprise#1 and postulo/postulo-paperless#2 replaced because a core without the tool turned the release tests into a skip. Here that cannot pass unnoticed as the repository stands:tests/test_surface.py:27importspostulo.plugins.testingat module level, which is newer than the catalogue tool, so such a core fails collection. It is still the wrong shape to hand to people who copy the file, and a copy that drops the surface test inherits a gate that skips..forgejo/workflows/release.ymlas in postulo-paperless (triggertags: ["v*"], runuv run pytest -m release). Replace theimportorskipwith the paperless shape (postulo-paperless/tests/test_catalogues.py:58-71): import in atry, and in thetoolfixture callpytest.failunder thereleasemarker andpytest.skipotherwise. Fill the three entries in the 21 catalogues. If the reference plugin is deliberately never tagged, say so in the README instead of promising the gate.Done when
uv run pytest -m releasepasses:tests/test_catalogues.py::test_every_european_union_language_stays_completefails today for 21 language codes..forgejo/workflows/release.ymlruns that command on av*tag.messages_toolset toNone, thetoolfixture intests/test_catalogues.pyfails a test carrying thereleasemarker and skips one without it.