Track multiple submission cycles per conference
All checks were successful
Build and deploy static pages / build-and-push (push) Successful in 13s
All checks were successful
Build and deploy static pages / build-and-push (push) Successful in 13s
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
59
README.md
59
README.md
@@ -142,14 +142,16 @@ WikiCFP is the primary deadline source but has several quirks that required work
|
||||
|
||||
**Direct ID lookup**: Add `wikicfp_id: "<event_id>"` to a venue entry in `venues.yaml` to skip the search and fetch that page directly. This avoids wrong matches on common acronyms. Verified IDs for the cloud-edge topic:
|
||||
|
||||
| Venue | WikiCFP event ID |
|
||||
| --- | --- |
|
||||
| SOSP | 191399 |
|
||||
| EuroSys | 186524 |
|
||||
| SoCC | 191071 |
|
||||
| Middleware | 190153 |
|
||||
| IPDPS | 189093 |
|
||||
| HPDC | 191029 |
|
||||
| Venue | WikiCFP event ID | |
|
||||
| --- | --- | --- |
|
||||
| SOSP | 191399 | |
|
||||
| EuroSys | 186524 | superseded — `source: manual` (two cycles) |
|
||||
| SoCC | 191071 | superseded — `source: manual` (two cycles) |
|
||||
| Middleware | 190153 | superseded — `source: manual` (two cycles) |
|
||||
| IPDPS | 189093 | superseded — `source: manual` (2027 edition) |
|
||||
| HPDC | 191029 | |
|
||||
|
||||
A venue whose `deadlines.yaml` entry says `source: manual` is skipped by the fetcher regardless of its `wikicfp_id`; the ID is kept so the lookup still works if the entry is ever handed back to WikiCFP.
|
||||
|
||||
**Skipping search**: Set `wikicfp_id: false` to skip WikiCFP entirely for a venue (e.g., ATC, SC, SEC — where the search returns wrong events). Deadlines for these must be filled manually.
|
||||
|
||||
@@ -167,6 +169,47 @@ ATC:
|
||||
cfp_url: https://sigops.org/s/conferences/atc/2026/cfp.html
|
||||
```
|
||||
|
||||
### Multiple Submission Cycles
|
||||
|
||||
Many systems conferences run more than one submission round per year, all feeding the same event. Recording only one round makes the site claim a conference has been missed when a later round is still open. Give such a venue a `cycles` list instead of top-level deadline fields:
|
||||
|
||||
```yaml
|
||||
EuroSys:
|
||||
source: manual
|
||||
event_dates: Apr 19-23, 2027 # event fields stay at the top level
|
||||
location: Rabat, Morocco
|
||||
cfp_url: https://2027.eurosys.org/cfp.html
|
||||
cycles:
|
||||
- name: Spring # free text, verbatim from the CFP
|
||||
abstract_deadline: May 7, 2026
|
||||
submission_deadline: May 14, 2026
|
||||
notification: Aug 21, 2026
|
||||
camera_ready: Sep 25, 2026
|
||||
- name: Fall
|
||||
abstract_deadline: Sep 17, 2026
|
||||
submission_deadline: Sep 24, 2026
|
||||
notification: Jan 29, 2027
|
||||
camera_ready: Mar 5, 2027
|
||||
```
|
||||
|
||||
Cycle fields are `name`, `abstract_deadline`, `submission_deadline`, `notification`, `camera_ready`, plus an optional per-cycle `cfp_url` where a venue publishes a separate call per round. Everything else (`source`, `event_dates`, `location`, `cfp_url`) describes the event and stays at the top level.
|
||||
|
||||
**Single-round venues need no change.** `load_deadlines()` folds a flat entry into a one-element `cycles` list on read, so the two shapes are interchangeable and only genuinely multi-round venues need the extra nesting.
|
||||
|
||||
What the generator does with cycles:
|
||||
|
||||
| Output | Behaviour |
|
||||
| --- | --- |
|
||||
| Venue page | Multi-cycle venues get a **Submission Cycles** table with every round; the next open one is bolded and marked `(next)`. Single-cycle venues keep the **Upcoming Deadline** block unchanged. |
|
||||
| Venue index | One row per venue, showing the next open cycle with its name appended to the paper deadline. |
|
||||
| Calendar table | One row per cycle, with a `Cycle` column, sorted by paper deadline. |
|
||||
| Calendar grid | One event set per cycle; titles read `EuroSys Fall — paper deadline`. Elapsed cycles are kept — the grid is time-indexed, so past rounds only show when you navigate back to their month. |
|
||||
| Front matter | `next_deadline` / `abstract_deadline` / `notification` / `camera_ready` reflect the **next** cycle. Multi-cycle venues additionally carry `cycles` and `next_cycle`. |
|
||||
|
||||
"Next" means the earliest cycle whose paper deadline has not passed; if every round has elapsed, the last one, so a page shows the most recent round rather than going blank.
|
||||
|
||||
**WikiCFP cannot express this.** It lists one deadline set per event, so a multi-round venue fetched from WikiCFP will silently record whichever round WikiCFP happens to hold. Research such venues from the CFP itself and mark them `source: manual` — otherwise the next fetcher run overwrites the extra rounds. SoCC, Middleware and IPDPS were converted this way even though they still carry `wikicfp_id` in `venues.yaml`.
|
||||
|
||||
---
|
||||
|
||||
## `venues.yaml` Schema
|
||||
|
||||
Reference in New Issue
Block a user