* fix(ci): count open issues reliably and add a Hacktoberfest countdown
The tracker's "Open issues" line was showing the pull-request total (e.g.
621) instead of the issue total (107). GitHub's `/search/issues`
`is:issue` / `is:pr` qualifiers are unreliable on this large, high-churn
repo -- some runs return the PR pool for *both* queries, so the two lines
printed the same number.
Count without the flaky qualifiers instead:
- open PRs = the `Link: rel="last"` page number of `/repos/{repo}/pulls`
(deterministic, page-numbered pagination);
- open issues = the repo endpoint's `open_issues_count` (issues + PRs)
minus the open-PR total -- self-checking and stable.
Also add the requested Hacktoberfest countdown to the stats block:
- days until 2026-10-01;
- issues to close per day to clear the backlog;
- PRs to merge or close per day to clear the backlog.
Per-day figures round up (finishing a day early beats a day late) and
degrade to a clear message once Hacktoberfest starts, so the block never
divides by zero on the final day.
* chore: re-trigger keeper after marking PR checklist
Dealing with the onslaught of Hacktoberfest
Each year, October brings a swarm of new contributors participating in Hacktoberfest. This event has its pros and cons, but it presents a monumental workload for the few active maintainers of this repo. The maintainer workload is further impacted by a new version of CPython being released in the first week of each October.
To help make our algorithms more valuable to visitors, our CONTRIBUTING.md file outlines several strict requirements, such as tests, type hints, descriptive names, functions, and/or classes. Maintainers reviewing pull requests should try to encourage improvements to meet these goals, but when the workload becomes overwhelming (esp. in October), pull requests that do not meet these goals should be closed.
Below are a few gh scripts that should close pull requests that do not match the definition of an acceptable algorithm as defined in CONTRIBUTING.md. I tend to run these scripts in the following order.
- close_pull_requests_with_require_descriptive_names.sh
- close_pull_requests_with_require_tests.sh
- close_pull_requests_with_require_type_hints.sh
- close_pull_requests_with_failing_tests.sh
- close_pull_requests_with_awaiting_changes.sh
- find_git_conflicts.sh
Run on 14 Oct 2025: 107 of 541 (19.77%) pull requests closed.
| Script run | Open pull requests | Pull requests closed |
|---|---|---|
| None | 541 | 0 |
| require_descriptive_names | 515 | 26 |
| require_tests | 498 | 17 |
| require_type_hints | 496 | 2 |
| failing_tests | 438 | 58 |
| awaiting_changes | 434 | 4 |
| git_conflicts | [ broken ] | 0 |