VersionControl:PRs/magenta/436

From PickiPedia: A knowledge base of bluegrass, old time psychedelic jams, and other public domain music
Revision as of 16:06, 9 November 2026 by DrivingThatTrain (talk | contribs) (cryptograss/magenta#436, as GitHub has it)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
magenta#436: To-do: an item naming several PRs is done when all have merged
State 🟢 open
Worked on by re, magent, justin
Moods #docs-tests-qa
Deploy redeploy maybelle.
Branch magent/todo-every-pr → main, by magent-cryptograss
Opened · last pushed 2026-11-08 17:17:12 · 2026-11-08 17:28:49
re found this in #docs-tests-qa (8 Nov, 17:14Z). The rabbithole to-do item "BETA: merge the rest, in this order: #29, #31, #32, #33; then redeploy pickipedia" was ticked when #27, the PR in its link, merged. Four PRs were still open.

**The fix.** `todo.pulls_named(item)` reads the task's words for every PR it names: full GitHub links, `repo#N`, and a bare `#N`, which counts as the linked repository. An item is shown done (`with_merges`), and the bot ticks it on the page (`todo_ticks.ticked`), once its linked PR has merged **and none of the others it names is still open**. A merged or closed PR, or a number that isn't a PR, doesn't hold it (re's review: task text cites old numbers too). `still_open` asks GitHub and keeps the answer for 10 minutes while a PR is open, and for a day once it's closed or doesn't exist. If GitHub can't be reached, the item stays as written. The page bot reads the task the way YAML does, so an unquoted ` #` ends it in both places.

The note is deliberately not read, because notes cite old PRs for context ("#254 retired it"). If the note were read, those items would never tick.

**Tested:** new tests cover an item naming several PRs; re's three real items from #magenta-interface (#104 an issue, #177 closed unmerged, #35–#38 closed), which all still tick; `still_open` with its cache; stray strings (`issue-#12`, `|`) naming nothing; the page bot leaving a waiting item alone while ticking a single one that shares its link; and an unquoted task. Full `conversations.tests` on SQLite: 1,791 tests, OK.

**Not covered:** the "then redeploy pickipedia" half. A merge can't say whether a deploy happened. Put a deploy in its own item without a PR link, and it stays open until a person ticks it.

Deploy: redeploy maybelle.
Worked on by: re, magent, justin, in #docs-tests-qa