From 2e95ede9c3f61219fae840dc9c33c100f179006c Mon Sep 17 00:00:00 2001 From: Vincent Lannurien Date: Mon, 17 Aug 2026 19:55:07 +0200 Subject: [PATCH] Track multiple submission cycles per conference Co-Authored-By: Claude Opus 5 --- README.md | 59 ++++- site/content/cloud-edge/calendar/_index.md | 239 ++++++++++++++---- .../cloud-edge/digests/IPDPS-2027/index.md | 13 + .../cloud-edge/digests/OSDI-2027/index.md | 13 + .../venues/conferences/ATC/_index.md | 2 - .../venues/conferences/CCGrid/_index.md | 4 +- .../venues/conferences/EuroSys/_index.md | 31 ++- .../venues/conferences/IPDPS/_index.md | 30 +-- .../venues/conferences/Middleware/_index.md | 25 +- .../venues/conferences/MobiSys/_index.md | 2 + .../venues/conferences/NSDI/_index.md | 23 +- .../venues/conferences/OSDI/_index.md | 24 +- .../venues/conferences/SC/_index.md | 2 - .../venues/conferences/SEC/_index.md | 9 +- .../venues/conferences/SoCC/_index.md | 25 +- .../cloud-edge/venues/conferences/_index.md | 16 +- site/data/cloud-edge/deadlines.yaml | 95 ++++--- src/publish_assistant/generate_content.py | 201 +++++++++++---- 18 files changed, 595 insertions(+), 218 deletions(-) create mode 100644 site/content/cloud-edge/digests/IPDPS-2027/index.md create mode 100644 site/content/cloud-edge/digests/OSDI-2027/index.md diff --git a/README.md b/README.md index 026153e..1ad3f20 100644 --- a/README.md +++ b/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: ""` 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 diff --git a/site/content/cloud-edge/calendar/_index.md b/site/content/cloud-edge/calendar/_index.md index 9d4954b..90895c3 100644 --- a/site/content/cloud-edge/calendar/_index.md +++ b/site/content/cloud-edge/calendar/_index.md @@ -1,33 +1,41 @@ --- title: Submission Deadlines layout: calendar -generated: '2026-08-17T17:33:54Z' +generated: '2026-08-17T17:53:37Z' draft: false events: - title: OSDI — abstract deadline - start: '2025-12-04' + start: '2026-12-01' url: /cloud-edge/venues/conferences/osdi/ color: '#f4a261' allDay: true extendedProps: - location: Seattle, WA, USA - cfp_url: https://www.usenix.org/conference/osdi26/call-for-papers + location: Baltimore, MD, USA + cfp_url: https://www.usenix.org/conference/osdi27/call-for-papers - title: OSDI — paper deadline - start: '2025-12-11' + start: '2026-12-08' url: /cloud-edge/venues/conferences/osdi/ color: '#e63946' allDay: true extendedProps: - location: Seattle, WA, USA - cfp_url: https://www.usenix.org/conference/osdi26/call-for-papers + location: Baltimore, MD, USA + cfp_url: https://www.usenix.org/conference/osdi27/call-for-papers +- title: OSDI — notification + start: '2027-03-16' + url: /cloud-edge/venues/conferences/osdi/ + color: '#2a9d8f' + allDay: true + extendedProps: + location: Baltimore, MD, USA + cfp_url: https://www.usenix.org/conference/osdi27/call-for-papers - title: OSDI - start: '2026-07-13' + start: '2027-07-07' url: /cloud-edge/venues/conferences/osdi/ color: '#457b9d' allDay: true - end: '2026-07-16' + end: '2027-07-10' extendedProps: - location: Seattle, WA, USA + location: Baltimore, MD, USA - title: SOSP — abstract deadline start: '2026-03-26' url: /cloud-edge/venues/conferences/sosp/ @@ -60,7 +68,34 @@ events: end: '2026-10-03' extendedProps: location: Prague, Czechia -- title: NSDI — abstract deadline +- title: NSDI Spring — abstract deadline + start: '2026-04-16' + url: /cloud-edge/venues/conferences/nsdi/ + color: '#f4a261' + allDay: true + extendedProps: + location: Providence, RI, USA + cfp_url: https://www.usenix.org/conference/nsdi27/call-for-papers + cycle: Spring +- title: NSDI Spring — paper deadline + start: '2026-04-23' + url: /cloud-edge/venues/conferences/nsdi/ + color: '#e63946' + allDay: true + extendedProps: + location: Providence, RI, USA + cfp_url: https://www.usenix.org/conference/nsdi27/call-for-papers + cycle: Spring +- title: NSDI Spring — notification + start: '2026-07-23' + url: /cloud-edge/venues/conferences/nsdi/ + color: '#2a9d8f' + allDay: true + extendedProps: + location: Providence, RI, USA + cfp_url: https://www.usenix.org/conference/nsdi27/call-for-papers + cycle: Spring +- title: NSDI Fall — abstract deadline start: '2026-09-10' url: /cloud-edge/venues/conferences/nsdi/ color: '#f4a261' @@ -68,7 +103,8 @@ events: extendedProps: location: Providence, RI, USA cfp_url: https://www.usenix.org/conference/nsdi27/call-for-papers -- title: NSDI — paper deadline + cycle: Fall +- title: NSDI Fall — paper deadline start: '2026-09-17' url: /cloud-edge/venues/conferences/nsdi/ color: '#e63946' @@ -76,7 +112,8 @@ events: extendedProps: location: Providence, RI, USA cfp_url: https://www.usenix.org/conference/nsdi27/call-for-papers -- title: NSDI — notification + cycle: Fall +- title: NSDI Fall — notification start: '2026-12-08' url: /cloud-edge/venues/conferences/nsdi/ color: '#2a9d8f' @@ -84,6 +121,7 @@ events: extendedProps: location: Providence, RI, USA cfp_url: https://www.usenix.org/conference/nsdi27/call-for-papers + cycle: Fall - title: NSDI start: '2027-05-11' url: /cloud-edge/venues/conferences/nsdi/ @@ -92,7 +130,7 @@ events: end: '2027-05-14' extendedProps: location: Providence, RI, USA -- title: EuroSys — abstract deadline +- title: EuroSys Spring — abstract deadline start: '2026-05-07' url: /cloud-edge/venues/conferences/eurosys/ color: '#f4a261' @@ -100,7 +138,8 @@ events: extendedProps: location: Rabat, Morocco cfp_url: https://2027.eurosys.org/cfp.html -- title: EuroSys — paper deadline + cycle: Spring +- title: EuroSys Spring — paper deadline start: '2026-05-14' url: /cloud-edge/venues/conferences/eurosys/ color: '#e63946' @@ -108,7 +147,8 @@ events: extendedProps: location: Rabat, Morocco cfp_url: https://2027.eurosys.org/cfp.html -- title: EuroSys — notification + cycle: Spring +- title: EuroSys Spring — notification start: '2026-08-21' url: /cloud-edge/venues/conferences/eurosys/ color: '#2a9d8f' @@ -116,6 +156,34 @@ events: extendedProps: location: Rabat, Morocco cfp_url: https://2027.eurosys.org/cfp.html + cycle: Spring +- title: EuroSys Fall — abstract deadline + start: '2026-09-17' + url: /cloud-edge/venues/conferences/eurosys/ + color: '#f4a261' + allDay: true + extendedProps: + location: Rabat, Morocco + cfp_url: https://2027.eurosys.org/cfp.html + cycle: Fall +- title: EuroSys Fall — paper deadline + start: '2026-09-24' + url: /cloud-edge/venues/conferences/eurosys/ + color: '#e63946' + allDay: true + extendedProps: + location: Rabat, Morocco + cfp_url: https://2027.eurosys.org/cfp.html + cycle: Fall +- title: EuroSys Fall — notification + start: '2027-01-29' + url: /cloud-edge/venues/conferences/eurosys/ + color: '#2a9d8f' + allDay: true + extendedProps: + location: Rabat, Morocco + cfp_url: https://2027.eurosys.org/cfp.html + cycle: Fall - title: EuroSys start: '2027-04-19' url: /cloud-edge/venues/conferences/eurosys/ @@ -148,7 +216,34 @@ events: end: '2026-11-19' extendedProps: location: Hong Kong -- title: SoCC — abstract deadline +- title: SoCC Round 1 — abstract deadline + start: '2026-02-06' + url: /cloud-edge/venues/conferences/socc/ + color: '#f4a261' + allDay: true + extendedProps: + location: Singapore + cfp_url: https://acmsocc.org/2026/papers.html + cycle: Round 1 +- title: SoCC Round 1 — paper deadline + start: '2026-02-13' + url: /cloud-edge/venues/conferences/socc/ + color: '#e63946' + allDay: true + extendedProps: + location: Singapore + cfp_url: https://acmsocc.org/2026/papers.html + cycle: Round 1 +- title: SoCC Round 1 — notification + start: '2026-04-29' + url: /cloud-edge/venues/conferences/socc/ + color: '#2a9d8f' + allDay: true + extendedProps: + location: Singapore + cfp_url: https://acmsocc.org/2026/papers.html + cycle: Round 1 +- title: SoCC Round 2 — abstract deadline start: '2026-07-07' url: /cloud-edge/venues/conferences/socc/ color: '#f4a261' @@ -156,7 +251,8 @@ events: extendedProps: location: Singapore cfp_url: https://acmsocc.org/2026/papers.html -- title: SoCC — paper deadline + cycle: Round 2 +- title: SoCC Round 2 — paper deadline start: '2026-07-14' url: /cloud-edge/venues/conferences/socc/ color: '#e63946' @@ -164,7 +260,8 @@ events: extendedProps: location: Singapore cfp_url: https://acmsocc.org/2026/papers.html -- title: SoCC — notification + cycle: Round 2 +- title: SoCC Round 2 — notification start: '2026-09-26' url: /cloud-edge/venues/conferences/socc/ color: '#2a9d8f' @@ -172,6 +269,7 @@ events: extendedProps: location: Singapore cfp_url: https://acmsocc.org/2026/papers.html + cycle: Round 2 - title: SoCC start: '2026-11-18' url: /cloud-edge/venues/conferences/socc/ @@ -180,7 +278,34 @@ events: end: '2026-11-21' extendedProps: location: Singapore -- title: Middleware — abstract deadline +- title: Middleware Winter — abstract deadline + start: '2025-12-09' + url: /cloud-edge/venues/conferences/middleware/ + color: '#f4a261' + allDay: true + extendedProps: + location: Tarragona, Spain + cfp_url: https://middleware-conf.github.io/2026/calls/call-for-research-papers/ + cycle: Winter +- title: Middleware Winter — paper deadline + start: '2025-12-12' + url: /cloud-edge/venues/conferences/middleware/ + color: '#e63946' + allDay: true + extendedProps: + location: Tarragona, Spain + cfp_url: https://middleware-conf.github.io/2026/calls/call-for-research-papers/ + cycle: Winter +- title: Middleware Winter — notification + start: '2026-03-06' + url: /cloud-edge/venues/conferences/middleware/ + color: '#2a9d8f' + allDay: true + extendedProps: + location: Tarragona, Spain + cfp_url: https://middleware-conf.github.io/2026/calls/call-for-research-papers/ + cycle: Winter +- title: Middleware Summer — abstract deadline start: '2026-05-29' url: /cloud-edge/venues/conferences/middleware/ color: '#f4a261' @@ -188,7 +313,8 @@ events: extendedProps: location: Tarragona, Spain cfp_url: https://middleware-conf.github.io/2026/calls/call-for-research-papers/ -- title: Middleware — paper deadline + cycle: Summer +- title: Middleware Summer — paper deadline start: '2026-06-05' url: /cloud-edge/venues/conferences/middleware/ color: '#e63946' @@ -196,7 +322,8 @@ events: extendedProps: location: Tarragona, Spain cfp_url: https://middleware-conf.github.io/2026/calls/call-for-research-papers/ -- title: Middleware — notification + cycle: Summer +- title: Middleware Summer — notification start: '2026-08-28' url: /cloud-edge/venues/conferences/middleware/ color: '#2a9d8f' @@ -204,6 +331,7 @@ events: extendedProps: location: Tarragona, Spain cfp_url: https://middleware-conf.github.io/2026/calls/call-for-research-papers/ + cycle: Summer - title: Middleware start: '2026-12-14' url: /cloud-edge/venues/conferences/middleware/ @@ -213,37 +341,37 @@ events: extendedProps: location: Tarragona, Spain - title: IPDPS — abstract deadline - start: '2025-10-02' + start: '2026-10-01' url: /cloud-edge/venues/conferences/ipdps/ color: '#f4a261' allDay: true extendedProps: - location: New Orleans, USA - cfp_url: https://www.ipdps.org/ipdps2026/2026-call-for-papers.html + location: Seattle, WA, USA + cfp_url: https://www.ipdps.org/ipdps2027/2027-call-for-papers.html - title: IPDPS — paper deadline - start: '2025-10-09' + start: '2026-10-08' url: /cloud-edge/venues/conferences/ipdps/ color: '#e63946' allDay: true extendedProps: - location: New Orleans, USA - cfp_url: https://www.ipdps.org/ipdps2026/2026-call-for-papers.html + location: Seattle, WA, USA + cfp_url: https://www.ipdps.org/ipdps2027/2027-call-for-papers.html - title: IPDPS — notification - start: '2026-02-02' + start: '2027-02-02' url: /cloud-edge/venues/conferences/ipdps/ color: '#2a9d8f' allDay: true extendedProps: - location: New Orleans, USA - cfp_url: https://www.ipdps.org/ipdps2026/2026-call-for-papers.html + location: Seattle, WA, USA + cfp_url: https://www.ipdps.org/ipdps2027/2027-call-for-papers.html - title: IPDPS - start: '2026-05-25' + start: '2027-06-01' url: /cloud-edge/venues/conferences/ipdps/ color: '#457b9d' allDay: true - end: '2026-05-30' + end: '2027-06-06' extendedProps: - location: New Orleans, USA + location: Seattle, WA, USA - title: SC — abstract deadline start: '2026-04-01' url: /cloud-edge/venues/conferences/sc/ @@ -314,6 +442,7 @@ events: color: '#f4a261' allDay: true extendedProps: + location: Cambridge, UK cfp_url: https://www.sigmobile.org/mobisys/2026/ - title: MobiSys — paper deadline start: '2025-12-05' @@ -321,6 +450,7 @@ events: color: '#e63946' allDay: true extendedProps: + location: Cambridge, UK cfp_url: https://www.sigmobile.org/mobisys/2026/ - title: MobiSys — notification start: '2026-03-02' @@ -328,6 +458,7 @@ events: color: '#2a9d8f' allDay: true extendedProps: + location: Cambridge, UK cfp_url: https://www.sigmobile.org/mobisys/2026/ - title: MobiSys start: '2026-06-22' @@ -335,15 +466,17 @@ events: color: '#457b9d' allDay: true end: '2026-06-25' + extendedProps: + location: Cambridge, UK - title: SEC — abstract deadline - start: '2026-04-24' + start: '2026-05-08' url: /cloud-edge/venues/conferences/sec/ color: '#f4a261' allDay: true extendedProps: cfp_url: https://acm-ieee-sec.org/2026/ - title: SEC — paper deadline - start: '2026-05-01' + start: '2026-05-08' url: /cloud-edge/venues/conferences/sec/ color: '#e63946' allDay: true @@ -390,21 +523,25 @@ events: ## Conference Deadlines -| Venue | Name | Abstract | Paper deadline | Notification | Event dates | Location | ICORE | -|---|---|---|---|---|---|---|---| -| [IPDPS](/cloud-edge/venues/conferences/ipdps/) | IEEE International Parallel and Distributed Processing Symposium | Oct 2, 2025 | Oct 9, 2025 | Feb 2, 2026 | May 25, 2026 - May 29, 2026 | New Orleans, USA | A | -| [MobiSys](/cloud-edge/venues/conferences/mobisys/) | ACM International Conference on Mobile Systems, Applications, and Services | Nov 28, 2025 | Dec 5, 2025 | Mar 2, 2026 | Jun 22-24, 2026 | | A | -| [OSDI](/cloud-edge/venues/conferences/osdi/) | USENIX Symposium on Operating Systems Design and Implementation | Dec 4, 2025 | Dec 11, 2025 | | Jul 13-15, 2026 | Seattle, WA, USA | A* | -| [CCGrid](/cloud-edge/venues/conferences/ccgrid/) | IEEE/ACM International Symposium on Cluster, Cloud and Internet Computing | | Dec 21, 2025 | Feb 10, 2026 | May 18-21, 2026 | Sydney, Australia | B | -| [HPDC](/cloud-edge/venues/conferences/hpdc/) | IEEE International Symposium on High Performance Distributed Computing | Jan 29, 2026 | Feb 5, 2026 | Mar 31, 2026 | Jul 13, 2026 - Jul 16, 2026 | Cleveland, OH, USA | A | -| [SOSP](/cloud-edge/venues/conferences/sosp/) | ACM Symposium on Operating Systems Principles | Mar 26, 2026 | Apr 1, 2026 | Jul 3, 2026 | Sep 29, 2026 - Oct 2, 2026 | Prague, Czechia | A* | -| [SC](/cloud-edge/venues/conferences/sc/) | International Conference for High Performance Computing, Networking, Storage and Analysis | Apr 1, 2026 | Apr 8, 2026 | Jul 1, 2026 | Nov 15-20, 2026 | Chicago, IL, USA | A | -| [SEC](/cloud-edge/venues/conferences/sec/) | IEEE/ACM Symposium on Edge Computing | Apr 24, 2026 | May 1, 2026 | Jul 29, 2026 | Oct 13-16, 2026 | | unranked | -| [EuroSys](/cloud-edge/venues/conferences/eurosys/) | European Conference on Computer Systems | May 7, 2026 | May 14, 2026 | Aug 21, 2026 | Apr 19-23, 2027 | Rabat, Morocco | A | -| [Middleware](/cloud-edge/venues/conferences/middleware/) | ACM/IFIP/USENIX Middleware Conference | May 29, 2026 | Jun 5, 2026 | Aug 28, 2026 | Dec 14-18, 2026 | Tarragona, Spain | A | -| [ATC](/cloud-edge/venues/conferences/atc/) | ACM SIGOPS Annual Technical Conference | | Jun 10, 2026 | Sep 18, 2026 | Nov 16-18, 2026 | Hong Kong | C | -| [SoCC](/cloud-edge/venues/conferences/socc/) | ACM Symposium on Cloud Computing | Jul 7, 2026 | Jul 14, 2026 | Sep 26, 2026 | Nov 18-20, 2026 | Singapore | — | -| [NSDI](/cloud-edge/venues/conferences/nsdi/) | USENIX Symposium on Networked Systems Design and Implementation | Sep 10, 2026 | Sep 17, 2026 | Dec 8, 2026 | May 11-13, 2027 | Providence, RI, USA | National: USA | +| Venue | Name | Cycle | Abstract | Paper deadline | Notification | Event dates | Location | ICORE | +|---|---|---|---|---|---|---|---|---| +| [MobiSys](/cloud-edge/venues/conferences/mobisys/) | ACM International Conference on Mobile Systems, Applications, and Services | — | Nov 28, 2025 | Dec 5, 2025 | Mar 2, 2026 | Jun 22-24, 2026 | Cambridge, UK | A | +| [Middleware](/cloud-edge/venues/conferences/middleware/) | ACM/IFIP/USENIX Middleware Conference | Winter | Dec 9, 2025 | Dec 12, 2025 | Mar 6, 2026 | Dec 14-18, 2026 | Tarragona, Spain | A | +| [CCGrid](/cloud-edge/venues/conferences/ccgrid/) | IEEE/ACM International Symposium on Cluster, Cloud and Internet Computing | — | | Dec 21, 2025 | Feb 10, 2026 | May 18-21, 2026 | Sydney, Australia | B | +| [HPDC](/cloud-edge/venues/conferences/hpdc/) | IEEE International Symposium on High Performance Distributed Computing | — | Jan 29, 2026 | Feb 5, 2026 | Mar 31, 2026 | Jul 13, 2026 - Jul 16, 2026 | Cleveland, OH, USA | A | +| [SoCC](/cloud-edge/venues/conferences/socc/) | ACM Symposium on Cloud Computing | Round 1 | Feb 6, 2026 | Feb 13, 2026 | Apr 29, 2026 | Nov 18-20, 2026 | Singapore | — | +| [SOSP](/cloud-edge/venues/conferences/sosp/) | ACM Symposium on Operating Systems Principles | — | Mar 26, 2026 | Apr 1, 2026 | Jul 3, 2026 | Sep 29, 2026 - Oct 2, 2026 | Prague, Czechia | A* | +| [SC](/cloud-edge/venues/conferences/sc/) | International Conference for High Performance Computing, Networking, Storage and Analysis | — | Apr 1, 2026 | Apr 8, 2026 | Jul 1, 2026 | Nov 15-20, 2026 | Chicago, IL, USA | A | +| [NSDI](/cloud-edge/venues/conferences/nsdi/) | USENIX Symposium on Networked Systems Design and Implementation | Spring | Apr 16, 2026 | Apr 23, 2026 | Jul 23, 2026 | May 11-13, 2027 | Providence, RI, USA | National: USA | +| [SEC](/cloud-edge/venues/conferences/sec/) | IEEE/ACM Symposium on Edge Computing | — | | May 8, 2026 | Jul 29, 2026 | Oct 13-16, 2026 | | unranked | +| [EuroSys](/cloud-edge/venues/conferences/eurosys/) | European Conference on Computer Systems | Spring | May 7, 2026 | May 14, 2026 | Aug 21, 2026 | Apr 19-23, 2027 | Rabat, Morocco | A | +| [Middleware](/cloud-edge/venues/conferences/middleware/) | ACM/IFIP/USENIX Middleware Conference | Summer | May 29, 2026 | Jun 5, 2026 | Aug 28, 2026 | Dec 14-18, 2026 | Tarragona, Spain | A | +| [ATC](/cloud-edge/venues/conferences/atc/) | ACM SIGOPS Annual Technical Conference | — | | Jun 10, 2026 | Sep 18, 2026 | Nov 16-18, 2026 | Hong Kong | C | +| [SoCC](/cloud-edge/venues/conferences/socc/) | ACM Symposium on Cloud Computing | Round 2 | Jul 7, 2026 | Jul 14, 2026 | Sep 26, 2026 | Nov 18-20, 2026 | Singapore | — | +| [NSDI](/cloud-edge/venues/conferences/nsdi/) | USENIX Symposium on Networked Systems Design and Implementation | Fall | Sep 10, 2026 | Sep 17, 2026 | Dec 8, 2026 | May 11-13, 2027 | Providence, RI, USA | National: USA | +| [EuroSys](/cloud-edge/venues/conferences/eurosys/) | European Conference on Computer Systems | Fall | Sep 17, 2026 | Sep 24, 2026 | Jan 29, 2027 | Apr 19-23, 2027 | Rabat, Morocco | A | +| [IPDPS](/cloud-edge/venues/conferences/ipdps/) | IEEE International Parallel and Distributed Processing Symposium | — | Oct 1, 2026 | Oct 8, 2026 | Feb 2, 2027 | Jun 1-5, 2027 | Seattle, WA, USA | A | +| [OSDI](/cloud-edge/venues/conferences/osdi/) | USENIX Symposium on Operating Systems Design and Implementation | — | Dec 1, 2026 | Dec 8, 2026 | Mar 16, 2027 | Jul 7-9, 2027 | Baltimore, MD, USA | A* | > Deadlines sourced from conference websites, [WikiCFP](http://www.wikicfp.com/), and journal special issue CFPs. diff --git a/site/content/cloud-edge/digests/IPDPS-2027/index.md b/site/content/cloud-edge/digests/IPDPS-2027/index.md new file mode 100644 index 0000000..aa7704c --- /dev/null +++ b/site/content/cloud-edge/digests/IPDPS-2027/index.md @@ -0,0 +1,13 @@ +--- +title: IPDPS 2027 Digest +venue: IPDPS +year: 2027 +date: '2027-01-01' +tags: [] +paper_count: 0 +draft: false +build: + list: never +--- + +No papers selected yet. diff --git a/site/content/cloud-edge/digests/OSDI-2027/index.md b/site/content/cloud-edge/digests/OSDI-2027/index.md new file mode 100644 index 0000000..f7b1415 --- /dev/null +++ b/site/content/cloud-edge/digests/OSDI-2027/index.md @@ -0,0 +1,13 @@ +--- +title: OSDI 2027 Digest +venue: OSDI +year: 2027 +date: '2027-01-01' +tags: [] +paper_count: 0 +draft: false +build: + list: never +--- + +No papers selected yet. diff --git a/site/content/cloud-edge/venues/conferences/ATC/_index.md b/site/content/cloud-edge/venues/conferences/ATC/_index.md index 35b4cdf..47549a2 100644 --- a/site/content/cloud-edge/venues/conferences/ATC/_index.md +++ b/site/content/cloud-edge/venues/conferences/ATC/_index.md @@ -9,7 +9,6 @@ type: conference icore_rank: C dblp_key: conf/usenix draft: false -deadline_source: wikicfp:192652 homepage: https://sigops.org/s/conferences/atc/2026/ next_deadline: Jun 10, 2026 next_event: Nov 16-18, 2026 @@ -38,7 +37,6 @@ cfp_url: https://sigops.org/s/conferences/atc/2026/cfp.html | **Event dates** | Nov 16-18, 2026 | | **Location** | Hong Kong | | **CFP** | [https://sigops.org/s/conferences/atc/2026/cfp.html](https://sigops.org/s/conferences/atc/2026/cfp.html) | -| **Source** | `wikicfp:192652` | ## Previous Editions diff --git a/site/content/cloud-edge/venues/conferences/CCGrid/_index.md b/site/content/cloud-edge/venues/conferences/CCGrid/_index.md index c369f13..be0ffd6 100644 --- a/site/content/cloud-edge/venues/conferences/CCGrid/_index.md +++ b/site/content/cloud-edge/venues/conferences/CCGrid/_index.md @@ -14,7 +14,7 @@ draft: false next_deadline: Dec 21, 2025 next_event: May 18-21, 2026 notification: Feb 10, 2026 -camera_ready: Mar 22, 2026 +camera_ready: Mar 15, 2026 location: Sydney, Australia cfp_url: https://ccgrid2026.org/cfp.html --- @@ -34,7 +34,7 @@ cfp_url: https://ccgrid2026.org/cfp.html |---|---| | **Paper deadline** | Dec 21, 2025 | | **Notification** | Feb 10, 2026 | -| **Camera-ready** | Mar 22, 2026 | +| **Camera-ready** | Mar 15, 2026 | | **Event dates** | May 18-21, 2026 | | **Location** | Sydney, Australia | | **CFP** | [https://ccgrid2026.org/cfp.html](https://ccgrid2026.org/cfp.html) | diff --git a/site/content/cloud-edge/venues/conferences/EuroSys/_index.md b/site/content/cloud-edge/venues/conferences/EuroSys/_index.md index d5c5091..f0f365a 100644 --- a/site/content/cloud-edge/venues/conferences/EuroSys/_index.md +++ b/site/content/cloud-edge/venues/conferences/EuroSys/_index.md @@ -9,14 +9,26 @@ type: conference icore_rank: A dblp_key: conf/eurosys draft: false -deadline_source: wikicfp:186524 homepage: https://2027.eurosys.org/ -next_deadline: May 14, 2026 +next_deadline: Sep 24, 2026 next_event: Apr 19-23, 2027 -abstract_deadline: May 7, 2026 -notification: Aug 21, 2026 +abstract_deadline: Sep 17, 2026 +notification: Jan 29, 2027 location: Rabat, Morocco cfp_url: https://2027.eurosys.org/cfp.html +camera_ready: Mar 5, 2027 +cycles: +- name: Spring + 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 +next_cycle: Fall --- *European Conference on Computer Systems* @@ -28,17 +40,18 @@ cfp_url: https://2027.eurosys.org/cfp.html | **Website** | [https://2027.eurosys.org/](https://2027.eurosys.org/) | | **Latest digest** | [EuroSys 2025](/cloud-edge/digests/eurosys-2025/) — 13 papers | -## Upcoming Deadline +## Submission Cycles + +| Cycle | Abstract | Paper deadline | Notification | Camera-ready | +|---|---|---|---|---| +| Spring | May 7, 2026 | May 14, 2026 | Aug 21, 2026 | Sep 25, 2026 | +| **Fall** (next) | Sep 17, 2026 | Sep 24, 2026 | Jan 29, 2027 | Mar 5, 2027 | | | | |---|---| -| **Abstract deadline** | May 7, 2026 | -| **Paper deadline** | May 14, 2026 | -| **Notification** | Aug 21, 2026 | | **Event dates** | Apr 19-23, 2027 | | **Location** | Rabat, Morocco | | **CFP** | [https://2027.eurosys.org/cfp.html](https://2027.eurosys.org/cfp.html) | -| **Source** | `wikicfp:186524` | ## Previous Editions diff --git a/site/content/cloud-edge/venues/conferences/IPDPS/_index.md b/site/content/cloud-edge/venues/conferences/IPDPS/_index.md index 0ccb71d..10f0841 100644 --- a/site/content/cloud-edge/venues/conferences/IPDPS/_index.md +++ b/site/content/cloud-edge/venues/conferences/IPDPS/_index.md @@ -9,15 +9,14 @@ type: conference icore_rank: A dblp_key: conf/ipps draft: false -deadline_source: wikicfp:189093 homepage: https://www.ipdps.org/ -next_deadline: Oct 9, 2025 -next_event: May 25, 2026 - May 29, 2026 -abstract_deadline: Oct 2, 2025 -notification: Feb 2, 2026 -camera_ready: Feb 20, 2026 -location: New Orleans, USA -cfp_url: https://www.ipdps.org/ipdps2026/2026-call-for-papers.html +next_deadline: Oct 8, 2026 +next_event: Jun 1-5, 2027 +abstract_deadline: Oct 1, 2026 +notification: Feb 2, 2027 +camera_ready: Feb 20, 2027 +location: Seattle, WA, USA +cfp_url: https://www.ipdps.org/ipdps2027/2027-call-for-papers.html --- *IEEE International Parallel and Distributed Processing Symposium* @@ -33,14 +32,13 @@ cfp_url: https://www.ipdps.org/ipdps2026/2026-call-for-papers.html | | | |---|---| -| **Abstract deadline** | Oct 2, 2025 | -| **Paper deadline** | Oct 9, 2025 | -| **Notification** | Feb 2, 2026 | -| **Camera-ready** | Feb 20, 2026 | -| **Event dates** | May 25, 2026 - May 29, 2026 | -| **Location** | New Orleans, USA | -| **CFP** | [https://www.ipdps.org/ipdps2026/2026-call-for-papers.html](https://www.ipdps.org/ipdps2026/2026-call-for-papers.html) | -| **Source** | `wikicfp:189093` | +| **Abstract deadline** | Oct 1, 2026 | +| **Paper deadline** | Oct 8, 2026 | +| **Notification** | Feb 2, 2027 | +| **Camera-ready** | Feb 20, 2027 | +| **Event dates** | Jun 1-5, 2027 | +| **Location** | Seattle, WA, USA | +| **CFP** | [https://www.ipdps.org/ipdps2027/2027-call-for-papers.html](https://www.ipdps.org/ipdps2027/2027-call-for-papers.html) | ## Previous Editions diff --git a/site/content/cloud-edge/venues/conferences/Middleware/_index.md b/site/content/cloud-edge/venues/conferences/Middleware/_index.md index c95b464..ec14448 100644 --- a/site/content/cloud-edge/venues/conferences/Middleware/_index.md +++ b/site/content/cloud-edge/venues/conferences/Middleware/_index.md @@ -8,7 +8,6 @@ type: conference icore_rank: A dblp_key: conf/middleware draft: false -deadline_source: wikicfp:190153 homepage: https://middleware-conf.github.io/2026/ next_deadline: Jun 5, 2026 next_event: Dec 14-18, 2026 @@ -17,6 +16,18 @@ notification: Aug 28, 2026 camera_ready: Oct 16, 2026 location: Tarragona, Spain cfp_url: https://middleware-conf.github.io/2026/calls/call-for-research-papers/ +cycles: +- name: Winter + abstract_deadline: Dec 9, 2025 + submission_deadline: Dec 12, 2025 + notification: Mar 6, 2026 + camera_ready: Apr 24, 2026 +- name: Summer + abstract_deadline: May 29, 2026 + submission_deadline: Jun 5, 2026 + notification: Aug 28, 2026 + camera_ready: Oct 16, 2026 +next_cycle: Summer --- *ACM/IFIP/USENIX Middleware Conference* @@ -28,18 +39,18 @@ cfp_url: https://middleware-conf.github.io/2026/calls/call-for-research-papers/ | **Website** | [https://middleware-conf.github.io/2026/](https://middleware-conf.github.io/2026/) | | **Latest digest** | [Middleware 2025](/cloud-edge/digests/middleware-2025/) — 12 papers | -## Upcoming Deadline +## Submission Cycles + +| Cycle | Abstract | Paper deadline | Notification | Camera-ready | +|---|---|---|---|---| +| Winter | Dec 9, 2025 | Dec 12, 2025 | Mar 6, 2026 | Apr 24, 2026 | +| **Summer** (next) | May 29, 2026 | Jun 5, 2026 | Aug 28, 2026 | Oct 16, 2026 | | | | |---|---| -| **Abstract deadline** | May 29, 2026 | -| **Paper deadline** | Jun 5, 2026 | -| **Notification** | Aug 28, 2026 | -| **Camera-ready** | Oct 16, 2026 | | **Event dates** | Dec 14-18, 2026 | | **Location** | Tarragona, Spain | | **CFP** | [https://middleware-conf.github.io/2026/calls/call-for-research-papers/](https://middleware-conf.github.io/2026/calls/call-for-research-papers/) | -| **Source** | `wikicfp:190153` | ## Previous Editions diff --git a/site/content/cloud-edge/venues/conferences/MobiSys/_index.md b/site/content/cloud-edge/venues/conferences/MobiSys/_index.md index bb4c822..0a676a3 100644 --- a/site/content/cloud-edge/venues/conferences/MobiSys/_index.md +++ b/site/content/cloud-edge/venues/conferences/MobiSys/_index.md @@ -16,6 +16,7 @@ next_event: Jun 22-24, 2026 notification: Mar 2, 2026 camera_ready: Apr 13, 2026 cfp_url: https://www.sigmobile.org/mobisys/2026/ +location: Cambridge, UK --- *ACM International Conference on Mobile Systems, Applications, and Services* @@ -36,6 +37,7 @@ cfp_url: https://www.sigmobile.org/mobisys/2026/ | **Notification** | Mar 2, 2026 | | **Camera-ready** | Apr 13, 2026 | | **Event dates** | Jun 22-24, 2026 | +| **Location** | Cambridge, UK | | **CFP** | [https://www.sigmobile.org/mobisys/2026/](https://www.sigmobile.org/mobisys/2026/) | ## Previous Editions diff --git a/site/content/cloud-edge/venues/conferences/NSDI/_index.md b/site/content/cloud-edge/venues/conferences/NSDI/_index.md index 6fcffe3..8dba484 100644 --- a/site/content/cloud-edge/venues/conferences/NSDI/_index.md +++ b/site/content/cloud-edge/venues/conferences/NSDI/_index.md @@ -16,6 +16,19 @@ next_event: May 11-13, 2027 notification: Dec 8, 2026 location: Providence, RI, USA cfp_url: https://www.usenix.org/conference/nsdi27/call-for-papers +camera_ready: Mar 4, 2027 +cycles: +- name: Spring + abstract_deadline: Apr 16, 2026 + submission_deadline: Apr 23, 2026 + notification: Jul 23, 2026 + camera_ready: Oct 20, 2026 +- name: Fall + abstract_deadline: Sep 10, 2026 + submission_deadline: Sep 17, 2026 + notification: Dec 8, 2026 + camera_ready: Mar 4, 2027 +next_cycle: Fall --- *USENIX Symposium on Networked Systems Design and Implementation* @@ -27,13 +40,15 @@ cfp_url: https://www.usenix.org/conference/nsdi27/call-for-papers | **Website** | [https://www.usenix.org/conference/nsdi27](https://www.usenix.org/conference/nsdi27) | | **Latest digest** | [NSDI 2025](/cloud-edge/digests/nsdi-2025/) — 13 papers | -## Upcoming Deadline +## Submission Cycles + +| Cycle | Abstract | Paper deadline | Notification | Camera-ready | +|---|---|---|---|---| +| Spring | Apr 16, 2026 | Apr 23, 2026 | Jul 23, 2026 | Oct 20, 2026 | +| **Fall** (next) | Sep 10, 2026 | Sep 17, 2026 | Dec 8, 2026 | Mar 4, 2027 | | | | |---|---| -| **Abstract deadline** | Sep 10, 2026 | -| **Paper deadline** | Sep 17, 2026 | -| **Notification** | Dec 8, 2026 | | **Event dates** | May 11-13, 2027 | | **Location** | Providence, RI, USA | | **CFP** | [https://www.usenix.org/conference/nsdi27/call-for-papers](https://www.usenix.org/conference/nsdi27/call-for-papers) | diff --git a/site/content/cloud-edge/venues/conferences/OSDI/_index.md b/site/content/cloud-edge/venues/conferences/OSDI/_index.md index 6d0ba7d..98f5847 100644 --- a/site/content/cloud-edge/venues/conferences/OSDI/_index.md +++ b/site/content/cloud-edge/venues/conferences/OSDI/_index.md @@ -10,11 +10,13 @@ icore_rank: A* dblp_key: conf/osdi draft: false homepage: https://www.usenix.org/conference/osdi26 -next_deadline: Dec 11, 2025 -abstract_deadline: Dec 4, 2025 -next_event: Jul 13-15, 2026 -location: Seattle, WA, USA -cfp_url: https://www.usenix.org/conference/osdi26/call-for-papers +next_deadline: Dec 8, 2026 +abstract_deadline: Dec 1, 2026 +next_event: Jul 7-9, 2027 +location: Baltimore, MD, USA +cfp_url: https://www.usenix.org/conference/osdi27/call-for-papers +notification: Mar 16, 2027 +camera_ready: Jun 3, 2027 --- *USENIX Symposium on Operating Systems Design and Implementation* @@ -30,11 +32,13 @@ cfp_url: https://www.usenix.org/conference/osdi26/call-for-papers | | | |---|---| -| **Abstract deadline** | Dec 4, 2025 | -| **Paper deadline** | Dec 11, 2025 | -| **Event dates** | Jul 13-15, 2026 | -| **Location** | Seattle, WA, USA | -| **CFP** | [https://www.usenix.org/conference/osdi26/call-for-papers](https://www.usenix.org/conference/osdi26/call-for-papers) | +| **Abstract deadline** | Dec 1, 2026 | +| **Paper deadline** | Dec 8, 2026 | +| **Notification** | Mar 16, 2027 | +| **Camera-ready** | Jun 3, 2027 | +| **Event dates** | Jul 7-9, 2027 | +| **Location** | Baltimore, MD, USA | +| **CFP** | [https://www.usenix.org/conference/osdi27/call-for-papers](https://www.usenix.org/conference/osdi27/call-for-papers) | ## Previous Editions diff --git a/site/content/cloud-edge/venues/conferences/SC/_index.md b/site/content/cloud-edge/venues/conferences/SC/_index.md index 3824bf5..f9d54da 100644 --- a/site/content/cloud-edge/venues/conferences/SC/_index.md +++ b/site/content/cloud-edge/venues/conferences/SC/_index.md @@ -10,7 +10,6 @@ type: conference icore_rank: A dblp_key: conf/sc draft: false -deadline_source: wikicfp:194274 homepage: https://sc24.supercomputing.org/ next_deadline: Apr 8, 2026 abstract_deadline: Apr 1, 2026 @@ -41,7 +40,6 @@ cfp_url: https://sc26.supercomputing.org/program/papers/ | **Event dates** | Nov 15-20, 2026 | | **Location** | Chicago, IL, USA | | **CFP** | [https://sc26.supercomputing.org/program/papers/](https://sc26.supercomputing.org/program/papers/) | -| **Source** | `wikicfp:194274` | ## Previous Editions diff --git a/site/content/cloud-edge/venues/conferences/SEC/_index.md b/site/content/cloud-edge/venues/conferences/SEC/_index.md index 0dc9d36..58a8bdd 100644 --- a/site/content/cloud-edge/venues/conferences/SEC/_index.md +++ b/site/content/cloud-edge/venues/conferences/SEC/_index.md @@ -8,10 +8,9 @@ type: conference icore_rank: unranked dblp_key: conf/ieeesec draft: false -deadline_source: wikicfp:189776 homepage: https://acm-ieee-sec.org/2026/ -next_deadline: May 1, 2026 -abstract_deadline: Apr 24, 2026 +next_deadline: May 8, 2026 +abstract_deadline: May 8, 2026 next_event: Oct 13-16, 2026 notification: Jul 29, 2026 camera_ready: Sep 4, 2026 @@ -31,13 +30,11 @@ cfp_url: https://acm-ieee-sec.org/2026/ | | | |---|---| -| **Abstract deadline** | Apr 24, 2026 | -| **Paper deadline** | May 1, 2026 | +| **Paper deadline** | May 8, 2026 | | **Notification** | Jul 29, 2026 | | **Camera-ready** | Sep 4, 2026 | | **Event dates** | Oct 13-16, 2026 | | **CFP** | [https://acm-ieee-sec.org/2026/](https://acm-ieee-sec.org/2026/) | -| **Source** | `wikicfp:189776` | ## Previous Editions diff --git a/site/content/cloud-edge/venues/conferences/SoCC/_index.md b/site/content/cloud-edge/venues/conferences/SoCC/_index.md index 890939a..18fa570 100644 --- a/site/content/cloud-edge/venues/conferences/SoCC/_index.md +++ b/site/content/cloud-edge/venues/conferences/SoCC/_index.md @@ -8,7 +8,6 @@ type: conference icore_rank: '' dblp_key: conf/cloud draft: false -deadline_source: wikicfp:191071 homepage: https://acmsocc.org/2026/ next_deadline: Jul 14, 2026 next_event: Nov 18-20, 2026 @@ -17,6 +16,18 @@ notification: Sep 26, 2026 camera_ready: Oct 17, 2026 location: Singapore cfp_url: https://acmsocc.org/2026/papers.html +cycles: +- name: Round 1 + abstract_deadline: Feb 6, 2026 + submission_deadline: Feb 13, 2026 + notification: Apr 29, 2026 + camera_ready: Oct 17, 2026 +- name: Round 2 + abstract_deadline: Jul 7, 2026 + submission_deadline: Jul 14, 2026 + notification: Sep 26, 2026 + camera_ready: Oct 17, 2026 +next_cycle: Round 2 --- *ACM Symposium on Cloud Computing* @@ -28,18 +39,18 @@ cfp_url: https://acmsocc.org/2026/papers.html | **Website** | [https://acmsocc.org/2026/](https://acmsocc.org/2026/) | | **Latest digest** | [SoCC 2025](/cloud-edge/digests/socc-2025/) — 13 papers | -## Upcoming Deadline +## Submission Cycles + +| Cycle | Abstract | Paper deadline | Notification | Camera-ready | +|---|---|---|---|---| +| Round 1 | Feb 6, 2026 | Feb 13, 2026 | Apr 29, 2026 | Oct 17, 2026 | +| **Round 2** (next) | Jul 7, 2026 | Jul 14, 2026 | Sep 26, 2026 | Oct 17, 2026 | | | | |---|---| -| **Abstract deadline** | Jul 7, 2026 | -| **Paper deadline** | Jul 14, 2026 | -| **Notification** | Sep 26, 2026 | -| **Camera-ready** | Oct 17, 2026 | | **Event dates** | Nov 18-20, 2026 | | **Location** | Singapore | | **CFP** | [https://acmsocc.org/2026/papers.html](https://acmsocc.org/2026/papers.html) | -| **Source** | `wikicfp:191071` | ## Previous Editions diff --git a/site/content/cloud-edge/venues/conferences/_index.md b/site/content/cloud-edge/venues/conferences/_index.md index 381bbe9..f209a7c 100644 --- a/site/content/cloud-edge/venues/conferences/_index.md +++ b/site/content/cloud-edge/venues/conferences/_index.md @@ -6,16 +6,16 @@ draft: false | Conference | Full name | ICORE | Domains | Abstract | Paper deadline | Notification | Event | Location | Digests | |---|---|---|---|---|---|---|---|---|---| -| [OSDI](/cloud-edge/venues/conferences/osdi/) | USENIX Symposium on Operating Systems Design and Implementation | **A*** | `edge-and-cloud`, `operating-systems`, `distributed-systems` | Dec 4, 2025 | Dec 11, 2025 | | Jul 13-15, 2026 | Seattle, WA, USA | 2 | +| [OSDI](/cloud-edge/venues/conferences/osdi/) | USENIX Symposium on Operating Systems Design and Implementation | **A*** | `edge-and-cloud`, `operating-systems`, `distributed-systems` | Dec 1, 2026 | Dec 8, 2026 | Mar 16, 2027 | Jul 7-9, 2027 | Baltimore, MD, USA | 2 | | [SOSP](/cloud-edge/venues/conferences/sosp/) | ACM Symposium on Operating Systems Principles | **A*** | `edge-and-cloud`, `operating-systems`, `distributed-systems` | Mar 26, 2026 | Apr 1, 2026 | Jul 3, 2026 | Sep 29, 2026 - Oct 2, 2026 | Prague, Czechia | 2 | -| [EuroSys](/cloud-edge/venues/conferences/eurosys/) | European Conference on Computer Systems | **A** | `edge-and-cloud`, `operating-systems`, `distributed-systems` | May 7, 2026 | May 14, 2026 | Aug 21, 2026 | Apr 19-23, 2027 | Rabat, Morocco | 2 | +| [EuroSys](/cloud-edge/venues/conferences/eurosys/) | European Conference on Computer Systems | **A** | `edge-and-cloud`, `operating-systems`, `distributed-systems` | Sep 17, 2026 | Sep 24, 2026 (Fall) | Jan 29, 2027 | Apr 19-23, 2027 | Rabat, Morocco | 2 | | [HPDC](/cloud-edge/venues/conferences/hpdc/) | IEEE International Symposium on High Performance Distributed Computing | **A** | `edge-and-cloud`, `hpc`, `distributed-systems` | Jan 29, 2026 | Feb 5, 2026 | Mar 31, 2026 | Jul 13, 2026 - Jul 16, 2026 | Cleveland, OH, USA | 2 | -| [IPDPS](/cloud-edge/venues/conferences/ipdps/) | IEEE International Parallel and Distributed Processing Symposium | **A** | `edge-and-cloud`, `parallel-computing`, `distributed-systems` | Oct 2, 2025 | Oct 9, 2025 | Feb 2, 2026 | May 25, 2026 - May 29, 2026 | New Orleans, USA | 2 | -| [Middleware](/cloud-edge/venues/conferences/middleware/) | ACM/IFIP/USENIX Middleware Conference | **A** | `edge-and-cloud`, `distributed-systems` | May 29, 2026 | Jun 5, 2026 | Aug 28, 2026 | Dec 14-18, 2026 | Tarragona, Spain | 2 | -| [MobiSys](/cloud-edge/venues/conferences/mobisys/) | ACM International Conference on Mobile Systems, Applications, and Services | **A** | `edge-and-cloud`, `mobile-computing`, `edge-computing` | Nov 28, 2025 | Dec 5, 2025 | Mar 2, 2026 | Jun 22-24, 2026 | | 2 | +| [IPDPS](/cloud-edge/venues/conferences/ipdps/) | IEEE International Parallel and Distributed Processing Symposium | **A** | `edge-and-cloud`, `parallel-computing`, `distributed-systems` | Oct 1, 2026 | Oct 8, 2026 | Feb 2, 2027 | Jun 1-5, 2027 | Seattle, WA, USA | 2 | +| [Middleware](/cloud-edge/venues/conferences/middleware/) | ACM/IFIP/USENIX Middleware Conference | **A** | `edge-and-cloud`, `distributed-systems` | May 29, 2026 | Jun 5, 2026 (Summer) | Aug 28, 2026 | Dec 14-18, 2026 | Tarragona, Spain | 2 | +| [MobiSys](/cloud-edge/venues/conferences/mobisys/) | ACM International Conference on Mobile Systems, Applications, and Services | **A** | `edge-and-cloud`, `mobile-computing`, `edge-computing` | Nov 28, 2025 | Dec 5, 2025 | Mar 2, 2026 | Jun 22-24, 2026 | Cambridge, UK | 2 | | [SC](/cloud-edge/venues/conferences/sc/) | International Conference for High Performance Computing, Networking, Storage and Analysis | **A** | `edge-and-cloud`, `hpc`, `distributed-systems` | Apr 1, 2026 | Apr 8, 2026 | Jul 1, 2026 | Nov 15-20, 2026 | Chicago, IL, USA | 2 | | [CCGrid](/cloud-edge/venues/conferences/ccgrid/) | IEEE/ACM International Symposium on Cluster, Cloud and Internet Computing | **B** | `edge-and-cloud`, `cloud-computing`, `hpc`, `distributed-systems` | | Dec 21, 2025 | Feb 10, 2026 | May 18-21, 2026 | Sydney, Australia | 1 | | [ATC](/cloud-edge/venues/conferences/atc/) | ACM SIGOPS Annual Technical Conference | **C** | `edge-and-cloud`, `operating-systems`, `distributed-systems` | | Jun 10, 2026 | Sep 18, 2026 | Nov 16-18, 2026 | Hong Kong | 2 | -| [NSDI](/cloud-edge/venues/conferences/nsdi/) | USENIX Symposium on Networked Systems Design and Implementation | **National: USA** | `edge-and-cloud`, `networking`, `distributed-systems` | Sep 10, 2026 | Sep 17, 2026 | Dec 8, 2026 | May 11-13, 2027 | Providence, RI, USA | 2 | -| [SEC](/cloud-edge/venues/conferences/sec/) | IEEE/ACM Symposium on Edge Computing | **unranked** | `edge-and-cloud`, `edge-computing` | Apr 24, 2026 | May 1, 2026 | Jul 29, 2026 | Oct 13-16, 2026 | | 2 | -| [SoCC](/cloud-edge/venues/conferences/socc/) | ACM Symposium on Cloud Computing | **—** | `edge-and-cloud`, `cloud-computing` | Jul 7, 2026 | Jul 14, 2026 | Sep 26, 2026 | Nov 18-20, 2026 | Singapore | 2 | +| [NSDI](/cloud-edge/venues/conferences/nsdi/) | USENIX Symposium on Networked Systems Design and Implementation | **National: USA** | `edge-and-cloud`, `networking`, `distributed-systems` | Sep 10, 2026 | Sep 17, 2026 (Fall) | Dec 8, 2026 | May 11-13, 2027 | Providence, RI, USA | 2 | +| [SEC](/cloud-edge/venues/conferences/sec/) | IEEE/ACM Symposium on Edge Computing | **unranked** | `edge-and-cloud`, `edge-computing` | | May 8, 2026 | Jul 29, 2026 | Oct 13-16, 2026 | | 2 | +| [SoCC](/cloud-edge/venues/conferences/socc/) | ACM Symposium on Cloud Computing | **—** | `edge-and-cloud`, `cloud-computing` | Jul 7, 2026 | Jul 14, 2026 (Round 2) | Sep 26, 2026 | Nov 18-20, 2026 | Singapore | 2 | diff --git a/site/data/cloud-edge/deadlines.yaml b/site/data/cloud-edge/deadlines.yaml index ac8b12b..d7b23a1 100644 --- a/site/data/cloud-edge/deadlines.yaml +++ b/site/data/cloud-edge/deadlines.yaml @@ -4,28 +4,50 @@ deadlines: source: manual event_dates: Apr 19-23, 2027 location: Rabat, Morocco - abstract_deadline: May 7, 2026 - submission_deadline: May 14, 2026 - notification: Aug 21, 2026 cfp_url: https://2027.eurosys.org/cfp.html + cycles: + - name: Spring + 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 SoCC: source: manual event_dates: Nov 18-20, 2026 location: Singapore - abstract_deadline: Jul 7, 2026 - submission_deadline: Jul 14, 2026 - notification: Sep 26, 2026 - camera_ready: Oct 17, 2026 cfp_url: https://acmsocc.org/2026/papers.html + cycles: + - name: Round 1 + abstract_deadline: Feb 6, 2026 + submission_deadline: Feb 13, 2026 + notification: Apr 29, 2026 + camera_ready: Oct 17, 2026 + - name: Round 2 + abstract_deadline: Jul 7, 2026 + submission_deadline: Jul 14, 2026 + notification: Sep 26, 2026 + camera_ready: Oct 17, 2026 Middleware: source: manual event_dates: Dec 14-18, 2026 location: Tarragona, Spain - abstract_deadline: May 29, 2026 - submission_deadline: Jun 5, 2026 - notification: Aug 28, 2026 - camera_ready: Oct 16, 2026 cfp_url: https://middleware-conf.github.io/2026/calls/call-for-research-papers/ + cycles: + - name: Winter + abstract_deadline: Dec 9, 2025 + submission_deadline: Dec 12, 2025 + notification: Mar 6, 2026 + camera_ready: Apr 24, 2026 + - name: Summer + abstract_deadline: May 29, 2026 + submission_deadline: Jun 5, 2026 + notification: Aug 28, 2026 + camera_ready: Oct 16, 2026 ATC: source: manual event_dates: Nov 16-18, 2026 @@ -36,19 +58,29 @@ deadlines: cfp_url: https://sigops.org/s/conferences/atc/2026/cfp.html OSDI: source: manual - event_dates: Jul 13-15, 2026 - location: Seattle, WA, USA - abstract_deadline: Dec 4, 2025 - submission_deadline: Dec 11, 2025 - cfp_url: https://www.usenix.org/conference/osdi26/call-for-papers + event_dates: Jul 7-9, 2027 + location: Baltimore, MD, USA + abstract_deadline: Dec 1, 2026 + submission_deadline: Dec 8, 2026 + notification: Mar 16, 2027 + camera_ready: Jun 3, 2027 + cfp_url: https://www.usenix.org/conference/osdi27/call-for-papers NSDI: source: manual event_dates: May 11-13, 2027 location: Providence, RI, USA - abstract_deadline: Sep 10, 2026 - submission_deadline: Sep 17, 2026 - notification: Dec 8, 2026 cfp_url: https://www.usenix.org/conference/nsdi27/call-for-papers + cycles: + - name: Spring + abstract_deadline: Apr 16, 2026 + submission_deadline: Apr 23, 2026 + notification: Jul 23, 2026 + camera_ready: Oct 20, 2026 + - name: Fall + abstract_deadline: Sep 10, 2026 + submission_deadline: Sep 17, 2026 + notification: Dec 8, 2026 + camera_ready: Mar 4, 2027 SC: source: manual event_dates: Nov 15-20, 2026 @@ -66,11 +98,12 @@ deadlines: notification: Mar 2, 2026 camera_ready: Apr 13, 2026 cfp_url: https://www.sigmobile.org/mobisys/2026/ + location: Cambridge, UK SEC: source: manual event_dates: Oct 13-16, 2026 - abstract_deadline: Apr 24, 2026 - submission_deadline: May 1, 2026 + abstract_deadline: May 8, 2026 + submission_deadline: May 8, 2026 notification: Jul 29, 2026 camera_ready: Sep 4, 2026 cfp_url: https://acm-ieee-sec.org/2026/ @@ -80,7 +113,7 @@ deadlines: location: Sydney, Australia submission_deadline: Dec 21, 2025 notification: Feb 10, 2026 - camera_ready: Mar 22, 2026 + camera_ready: Mar 15, 2026 cfp_url: https://ccgrid2026.org/cfp.html SOSP: wikicfp_event_id: '191399' @@ -94,16 +127,14 @@ deadlines: cfp_url: https://sigops.org/s/conferences/sosp/2026/cfp.html wikicfp_title: SOSP IPDPS: - wikicfp_event_id: '189093' - source: wikicfp - event_dates: May 25, 2026 - May 29, 2026 - location: New Orleans, USA - abstract_deadline: Oct 2, 2025 - submission_deadline: Oct 9, 2025 - notification: Feb 2, 2026 - camera_ready: Feb 20, 2026 - cfp_url: https://www.ipdps.org/ipdps2026/2026-call-for-papers.html - wikicfp_title: 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 diff --git a/src/publish_assistant/generate_content.py b/src/publish_assistant/generate_content.py index ac148a7..2730d1d 100644 --- a/src/publish_assistant/generate_content.py +++ b/src/publish_assistant/generate_content.py @@ -35,7 +35,9 @@ PRESERVED_VENUE_FIELDS = {"notes", "deadline_source"} # Fields removed from existing front matter on every regeneration: # - "url" reserved by Hugo (overrides page URL) # - "papers" moved from front matter to rendered markdown body -_STRIP_FROM_EXISTING = {"url", "papers"} +# - "cycles" / "next_cycle" rebuilt from deadlines.yaml every run, so a venue +# dropping back to a single round does not keep a stale cycle list +_STRIP_FROM_EXISTING = {"url", "papers", "cycles", "next_cycle"} # --------------------------------------------------------------------------- @@ -118,13 +120,37 @@ def scimago_lookup(data: dict[str, dict], full_name: str, issn: str) -> dict: return {} +# Fields describing one submission cycle. Everything else on a deadline entry +# (event_dates, location, cfp_url, source) describes the event itself. +CYCLE_FIELDS = ("name", "abstract_deadline", "submission_deadline", "notification", + "camera_ready") + + +def _normalise_cycles(entry: dict) -> None: + """Fold a flat, single-cycle entry into a one-element `cycles` list, in place. + + Venues with a single submission round stay flat in YAML; consumers below only + ever see `cycles`. `cfp_url` stays at the top level — it describes the call, + not one round — but a cycle may override it where a venue publishes separate + calls per round. + """ + if entry.get("cycles"): + return + cycle = {k: entry.pop(k) for k in CYCLE_FIELDS if k in entry} + entry["cycles"] = [cycle] if cycle else [] + + def load_deadlines(path: str) -> dict[str, dict]: p = Path(path) if not p.exists(): return {} with open(p) as f: data = yaml.safe_load(f) or {} - return data.get("deadlines", {}) + deadlines = data.get("deadlines") or {} + for entry in deadlines.values(): + if entry: + _normalise_cycles(entry) + return deadlines def load_venue_digests(papers_dir: Path) -> dict[str, list[dict]]: @@ -182,17 +208,40 @@ def _conf_body(fm: dict, digests: list[dict] | None = None, base_path: str = "") count = latest.get("paper_count", 0) suffix = f"— {count} papers" if count else "*(digest pending)*" lines.append(f"| **Latest digest** | [{title} {year}]({base_path}/digests/{slug}/) {suffix} |") - lines += [ - "\n## Upcoming Deadline\n", - "| | |", "|---|---|", - ] - if abstract_dl and abstract_dl != dl: - lines.append(f"| **Abstract deadline** | {abstract_dl} |") - lines.append(f"| **Paper deadline** | {dl} |") - if notification: - lines.append(f"| **Notification** | {notification} |") - if camera_ready: - lines.append(f"| **Camera-ready** | {camera_ready} |") + cycles = fm.get("cycles") or [] + if len(cycles) > 1: + lines += [ + "\n## Submission Cycles\n", + "| Cycle | Abstract | Paper deadline | Notification | Camera-ready |", + "|---|---|---|---|---|", + ] + next_name = fm.get("next_cycle") + marked = False + for cycle in cycles: + name = cycle.get("name") or "—" + if not marked and name == next_name: + name = f"**{name}** (next)" + marked = True + paper = cycle.get("submission_deadline") or cycle.get("abstract_deadline") or "TBD" + abstract = cycle.get("abstract_deadline") or "" + abs_cell = abstract if (abstract and abstract != paper) else "" + lines.append( + f"| {name} | {abs_cell} | {paper} | {cycle.get('notification') or ''} " + f"| {cycle.get('camera_ready') or ''} |" + ) + lines += ["\n| | |", "|---|---|"] + else: + lines += [ + "\n## Upcoming Deadline\n", + "| | |", "|---|---|", + ] + if abstract_dl and abstract_dl != dl: + lines.append(f"| **Abstract deadline** | {abstract_dl} |") + lines.append(f"| **Paper deadline** | {dl} |") + if notification: + lines.append(f"| **Notification** | {notification} |") + if camera_ready: + lines.append(f"| **Camera-ready** | {camera_ready} |") lines.append(f"| **Event dates** | {event} |") if location: lines.append(f"| **Location** | {location} |") @@ -320,6 +369,30 @@ def _parse_date(s: str, month_only: bool = False) -> str | None: return None +def _cycle_deadline(cycle: dict) -> str: + """The date a cycle is judged by: its paper deadline, else its abstract deadline.""" + return cycle.get("submission_deadline") or cycle.get("abstract_deadline") or "" + + +def _next_cycle(entry: dict, today: str | None = None) -> dict: + """The cycle a reader should act on. + + The earliest cycle whose paper deadline has not passed; if every cycle has + elapsed, the last one, so a page shows the most recent round rather than + going blank. Cycles with unparseable dates sort last. + """ + cycles = entry.get("cycles") or [] + if not cycles: + return {} + today = today or datetime.now().strftime("%Y-%m-%d") + ordered = sorted(cycles, key=lambda c: _parse_date(_cycle_deadline(c)) or "9999-12-31") + for cycle in ordered: + iso = _parse_date(_cycle_deadline(cycle)) + if iso and iso >= today: + return cycle + return ordered[-1] + + def _parse_date_range(s: str) -> tuple[str | None, str | None]: """Return (start_iso, end_iso_exclusive) from a date-range string. @@ -374,9 +447,14 @@ def _conferences_section_body(venues: dict, icore: dict, deadlines: dict, acronym = conf.get("acronym", "") rank = icore.get(acronym.upper(), "—") or "—" dl = deadlines.get(acronym, {}) - abstract = dl.get("abstract_deadline") or "" - paper = dl.get("submission_deadline") or dl.get("abstract_deadline") or "TBD" - notif = dl.get("notification") or "" + # The venue index lists venues, not cycles: show the next open round and + # name it, so a passed round never reads as "you missed this conference". + nxt = _next_cycle(dl) + abstract = nxt.get("abstract_deadline") or "" + paper = nxt.get("submission_deadline") or nxt.get("abstract_deadline") or "TBD" + if len(dl.get("cycles") or []) > 1 and nxt.get("name"): + paper = f"{paper} ({nxt['name']})" + notif = nxt.get("notification") or "" event = dl.get("event_dates") or "—" location = dl.get("location") or "" domains = ", ".join(f"`{d}`" for d in conf.get("domain", [])) @@ -432,25 +510,30 @@ def _calendar_events(venues: dict, deadlines: dict, base_path: str = "") -> list dl = deadlines.get(acronym, {}) url = f"{base_path}/venues/conferences/{acronym.lower()}/" location = dl.get("location") or "" - cfp_url = dl.get("cfp_url") or "" - for field, label, color in [ - ("abstract_deadline", "abstract deadline", "#f4a261"), - ("submission_deadline", "paper deadline", "#e63946"), - ("notification", "notification", "#2a9d8f"), - ]: - iso = _parse_date(dl.get(field) or "") - if iso: - ev: dict = {"title": f"{acronym} — {label}", "start": iso, - "url": url, "color": color, "allDay": True} - props: dict = {} - if location: - props["location"] = location - if cfp_url: - props["cfp_url"] = cfp_url - if props: - ev["extendedProps"] = props - events.append(ev) + for cycle in dl.get("cycles") or []: + cycle_name = cycle.get("name") or "" + prefix = f"{acronym} {cycle_name}".strip() + cfp_url = cycle.get("cfp_url") or dl.get("cfp_url") or "" + for field, label, color in [ + ("abstract_deadline", "abstract deadline", "#f4a261"), + ("submission_deadline", "paper deadline", "#e63946"), + ("notification", "notification", "#2a9d8f"), + ]: + iso = _parse_date(cycle.get(field) or "") + if iso: + ev: dict = {"title": f"{prefix} — {label}", "start": iso, + "url": url, "color": color, "allDay": True} + props: dict = {} + if location: + props["location"] = location + if cfp_url: + props["cfp_url"] = cfp_url + if cycle_name: + props["cycle"] = cycle_name + if props: + ev["extendedProps"] = props + events.append(ev) start, end = _parse_date_range(dl.get("event_dates") or "") if start: @@ -503,26 +586,28 @@ def _calendar_body(venues: dict, icore: dict, deadlines: dict, base_path: str = acronym = conf.get("acronym", "") rank = icore.get(acronym.upper(), "—") or "—" dl_data = deadlines.get(acronym, {}) - abstract = dl_data.get("abstract_deadline") or "" - paper = dl_data.get("submission_deadline") or dl_data.get("abstract_deadline") or "TBD" - notif = dl_data.get("notification") or "" event = dl_data.get("event_dates") or "—" location = dl_data.get("location") or "" - conf_rows.append((acronym, conf.get("full_name", ""), abstract, paper, - notif, event, location, rank)) + # One row per submission cycle — a venue's later rounds are the point. + for cycle in dl_data.get("cycles") or [{}]: + abstract = cycle.get("abstract_deadline") or "" + paper = cycle.get("submission_deadline") or cycle.get("abstract_deadline") or "TBD" + notif = cycle.get("notification") or "" + conf_rows.append((acronym, conf.get("full_name", ""), cycle.get("name") or "—", + abstract, paper, notif, event, location, rank)) - conf_rows.sort(key=lambda r: (parse_deadline(r[3]), r[0])) + conf_rows.sort(key=lambda r: (parse_deadline(r[4]), r[0])) lines += [ "\n## Conference Deadlines\n", - "| Venue | Name | Abstract | Paper deadline | Notification | Event dates | Location | ICORE |", - "|---|---|---|---|---|---|---|---|", + "| Venue | Name | Cycle | Abstract | Paper deadline | Notification | Event dates | Location | ICORE |", + "|---|---|---|---|---|---|---|---|---|", ] - for acronym, full_name, abstract, paper, notif, event, location, rank in conf_rows: + for acronym, full_name, cycle_name, abstract, paper, notif, event, location, rank in conf_rows: abs_cell = abstract if (abstract and abstract != paper) else "" link = f"[{acronym}]({base_path}/venues/conferences/{acronym.lower()}/)" lines.append( - f"| {link} | {full_name} | {abs_cell} | {paper} | {notif} " + f"| {link} | {full_name} | {cycle_name} | {abs_cell} | {paper} | {notif} " f"| {event} | {location} | {rank} |" ) @@ -617,16 +702,24 @@ def gen_conferences(venues: dict, icore: dict, deadlines: dict, root: Path, "draft": False, } dl = deadlines.get(acronym, {}) - if dl.get("submission_deadline"): - new_fm["next_deadline"] = dl["submission_deadline"] - elif dl.get("abstract_deadline"): - new_fm["next_deadline"] = dl["abstract_deadline"] - if dl.get("abstract_deadline") and dl.get("submission_deadline"): - new_fm["abstract_deadline"] = dl["abstract_deadline"] - if dl.get("notification"): - new_fm["notification"] = dl["notification"] - if dl.get("camera_ready"): - new_fm["camera_ready"] = dl["camera_ready"] + cycles = dl.get("cycles") or [] + nxt = _next_cycle(dl) + if nxt.get("submission_deadline"): + new_fm["next_deadline"] = nxt["submission_deadline"] + elif nxt.get("abstract_deadline"): + new_fm["next_deadline"] = nxt["abstract_deadline"] + if nxt.get("abstract_deadline") and nxt.get("submission_deadline"): + new_fm["abstract_deadline"] = nxt["abstract_deadline"] + if nxt.get("notification"): + new_fm["notification"] = nxt["notification"] + if nxt.get("camera_ready"): + new_fm["camera_ready"] = nxt["camera_ready"] + # Only multi-cycle venues carry the full list; single-cycle pages keep + # the flat front matter they have always had. + if len(cycles) > 1: + new_fm["cycles"] = cycles + if nxt.get("name"): + new_fm["next_cycle"] = nxt["name"] if dl.get("event_dates"): new_fm["next_event"] = dl["event_dates"] if dl.get("location"):