Surface stale deadlines instead of showing them as upcoming
All checks were successful
Build and deploy static pages / build-and-push (push) Successful in 14s

The calendar's deadline table rendered every recorded submission cycle, so
elapsed rounds sorted to the top and read as the next thing due — 13 of its 17
rows were already in the past. Underneath that, the fetcher preserves
`source: manual` entries forever without ever checking whether they still
describe a future deadline, and 11 of 13 cloud-edge venues are manual.

Preserving them is correct: WikiCFP cannot express multi-cycle venues and does
not carry most systems conferences at all, so re-fetching would replace
researched rounds with worse data or nothing. What was missing is a signal.

- Extract the cycle helpers into cycles.py so the fetcher and the generator
  share one definition of which round a reader should act on. cycles_of()
  reads an entry without folding flat fields into a cycles list, which would
  otherwise rewrite every single-round entry the fetcher writes back.
- The calendar table lists open cycles only; a venue whose every round has
  elapsed moves to an "Awaiting the next call" table instead of vanishing.
- pa-fetch-deadlines records those venues under a new stale: key and probes
  the year-bumped CFP URL to say which ones already have a next edition
  online. A candidate must return 200, mention the target year, and be newer
  than any year the entry records — venues.yaml still points SC at sc24.
- README: Task 7 and a matching agent prompt for keeping deadlines current,
  since nothing in this repo refreshes them on its own.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-17 22:25:24 +02:00
parent 827c432dc0
commit 5b06f484f5
6 changed files with 431 additions and 122 deletions

View File

@@ -1,4 +1,4 @@
generated: '2026-08-17T16:18:08Z'
generated: '2026-08-17T20:21:42Z'
deadlines:
EuroSys:
source: manual
@@ -115,6 +115,15 @@ deadlines:
notification: Feb 10, 2026
camera_ready: Mar 15, 2026
cfp_url: https://ccgrid2026.org/cfp.html
IPDPS:
source: manual
event_dates: Jun 1-5, 2027
location: Seattle, WA, USA
abstract_deadline: Oct 1, 2026
submission_deadline: Oct 8, 2026
notification: Feb 2, 2027
camera_ready: Feb 20, 2027
cfp_url: https://www.ipdps.org/ipdps2027/2027-call-for-papers.html
SOSP:
wikicfp_event_id: '191399'
source: wikicfp
@@ -126,15 +135,6 @@ deadlines:
camera_ready: Aug 28, 2026
cfp_url: https://sigops.org/s/conferences/sosp/2026/cfp.html
wikicfp_title: SOSP
IPDPS:
source: manual
event_dates: Jun 1-5, 2027
location: Seattle, WA, USA
abstract_deadline: Oct 1, 2026
submission_deadline: Oct 8, 2026
notification: Feb 2, 2027
camera_ready: Feb 20, 2027
cfp_url: https://www.ipdps.org/ipdps2027/2027-call-for-papers.html
HPDC:
wikicfp_event_id: '191029'
source: wikicfp
@@ -147,3 +147,40 @@ deadlines:
cfp_url: https://hpdc.sci.utah.edu/2026/calls-cfp.html
wikicfp_title: HPDC
missing: []
stale:
- acronym: ATC
last_deadline: Jun 10, 2026
source: manual
cfp_url: https://sigops.org/s/conferences/atc/2026/cfp.html
- acronym: CCGrid
last_deadline: Dec 21, 2025
source: manual
cfp_url: https://ccgrid2026.org/cfp.html
- acronym: HPDC
last_deadline: Feb 5, 2026
source: wikicfp
cfp_url: https://hpdc.sci.utah.edu/2026/calls-cfp.html
- acronym: Middleware
last_deadline: Jun 5, 2026
source: manual
cfp_url: https://middleware-conf.github.io/2026/calls/call-for-research-papers/
- acronym: MobiSys
last_deadline: Dec 5, 2025
source: manual
cfp_url: https://www.sigmobile.org/mobisys/2026/
- acronym: SC
last_deadline: Apr 8, 2026
source: manual
cfp_url: https://sc26.supercomputing.org/program/papers/
- acronym: SEC
last_deadline: May 8, 2026
source: manual
cfp_url: https://acm-ieee-sec.org/2026/
- acronym: SOSP
last_deadline: Apr 1, 2026
source: wikicfp
cfp_url: https://sigops.org/s/conferences/sosp/2026/cfp.html
- acronym: SoCC
last_deadline: Jul 14, 2026
source: manual
cfp_url: https://acmsocc.org/2026/papers.html