From d822cdaa6a43ba84e019fa4521df510a20df171e Mon Sep 17 00:00:00 2001 From: Vincent Lannurien Date: Mon, 17 Aug 2026 18:10:49 +0200 Subject: [PATCH] multi-topic, publish from gh-pages branch --- .gitea/workflows/gh-pages.yaml | 52 ++ README.md | 460 +++++++++++------- build.sh | 65 ++- site/assets/js/calendar.js | 1 + site/content/_index.md | 5 + site/content/cloud-edge/_index.md | 5 + .../{ => cloud-edge}/calendar/_index.md | 126 ++--- .../digests/ATC-2024/index.md | 0 .../digests/ATC-2025/index.md | 0 .../digests/ATC-2026/index.md | 0 .../digests/CCGrid-2024/index.md | 0 .../digests/CCGrid-2026/index.md | 0 .../digests/EuroSys-2024/index.md | 0 .../digests/EuroSys-2025/index.md | 0 .../digests/EuroSys-2027/index.md | 0 .../digests/FGCS-2024/index.md | 0 .../digests/FGCS-2025/index.md | 0 .../digests/FGCS-2026/index.md | 0 .../digests/HPDC-2024/index.md | 0 .../digests/HPDC-2025/index.md | 0 .../digests/HPDC-2026/index.md | 0 .../{ => cloud-edge}/digests/IC-2024/index.md | 0 .../{ => cloud-edge}/digests/IC-2025/index.md | 0 .../{ => cloud-edge}/digests/IC-2026/index.md | 0 .../digests/IPDPS-2024/index.md | 0 .../digests/IPDPS-2025/index.md | 0 .../digests/IPDPS-2026/index.md | 0 .../digests/JPDC-2024/index.md | 0 .../digests/JPDC-2025/index.md | 0 .../digests/JPDC-2026/index.md | 0 .../digests/Middleware-2024/index.md | 0 .../digests/Middleware-2025/index.md | 0 .../digests/Middleware-2026/index.md | 0 .../digests/MobiSys-2024/index.md | 0 .../digests/MobiSys-2025/index.md | 0 .../digests/MobiSys-2026/index.md | 0 .../digests/NSDI-2024/index.md | 0 .../digests/NSDI-2025/index.md | 0 .../digests/NSDI-2027/index.md | 0 .../digests/OSDI-2024/index.md | 0 .../digests/OSDI-2025/index.md | 0 .../digests/OSDI-2026/index.md | 0 .../{ => cloud-edge}/digests/SC-2024/index.md | 0 .../{ => cloud-edge}/digests/SC-2025/index.md | 0 .../{ => cloud-edge}/digests/SC-2026/index.md | 0 .../digests/SEC-2024/index.md | 0 .../digests/SEC-2025/index.md | 0 .../digests/SEC-2026/index.md | 0 .../digests/SOSP-2024/index.md | 0 .../digests/SOSP-2025/index.md | 0 .../digests/SOSP-2026/index.md | 0 .../digests/SoCC-2024/index.md | 0 .../digests/SoCC-2025/index.md | 0 .../digests/SoCC-2026/index.md | 0 .../{ => cloud-edge}/digests/TC-2024/index.md | 0 .../{ => cloud-edge}/digests/TC-2025/index.md | 0 .../{ => cloud-edge}/digests/TC-2026/index.md | 0 .../digests/TCC-2024/index.md | 0 .../digests/TCC-2025/index.md | 0 .../digests/TCC-2026/index.md | 0 .../digests/TOCS-2024/index.md | 0 .../digests/TOCS-2025/index.md | 0 .../digests/TOCS-2026/index.md | 0 .../digests/TPDS-2024/index.md | 0 .../digests/TPDS-2025/index.md | 0 .../digests/TPDS-2026/index.md | 0 .../{ => cloud-edge}/digests/_index.md | 0 site/content/cloud-edge/venues/_index.md | 9 + .../venues/conferences/ATC/_index.md | 20 +- .../venues/conferences/CCGrid/_index.md | 12 +- .../venues/conferences/EuroSys/_index.md | 20 +- .../venues/conferences/HPDC/_index.md | 20 +- .../venues/conferences/IPDPS/_index.md | 20 +- .../venues/conferences/Middleware/_index.md | 20 +- .../venues/conferences/MobiSys/_index.md | 20 +- .../venues/conferences/NSDI/_index.md | 20 +- .../venues/conferences/OSDI/_index.md | 20 +- .../venues/conferences/SC/_index.md | 19 +- .../venues/conferences/SEC/_index.md | 19 +- .../venues/conferences/SOSP/_index.md | 20 +- .../venues/conferences/SoCC/_index.md | 20 +- .../cloud-edge/venues/conferences/_index.md | 21 + .../venues/journals/FGCS/_index.md | 19 +- .../venues/journals/IC/_index.md | 19 +- .../venues/journals/JPDC/_index.md | 19 +- .../venues/journals/TC/_index.md | 19 +- .../venues/journals/TCC/_index.md | 19 +- .../venues/journals/TOCS/_index.md | 19 +- .../venues/journals/TPDS/_index.md | 19 +- .../cloud-edge/venues/journals/_index.md | 15 + site/content/venues/_index.md | 9 - site/content/venues/conferences/_index.md | 21 - site/content/venues/journals/_index.md | 15 - site/data/{ => cloud-edge}/best_papers.yaml | 0 site/data/{ => cloud-edge}/deadlines.yaml | 0 site/data/{ => cloud-edge}/papers/.gitkeep | 0 .../papers/ATC-2024-candidates.yaml | 0 .../papers/ATC-2024-digest.yaml | 0 .../papers/ATC-2025-candidates.yaml | 0 .../papers/ATC-2025-digest.yaml | 0 .../papers/CCGrid-2024-candidates.yaml | 0 .../papers/CCGrid-2024-digest.yaml | 0 .../papers/EuroSys-2024-candidates.yaml | 0 .../papers/EuroSys-2024-digest.yaml | 0 .../papers/EuroSys-2025-candidates.yaml | 0 .../papers/EuroSys-2025-digest.yaml | 0 .../papers/FGCS-2024-candidates.yaml | 0 .../papers/FGCS-2024-digest.yaml | 0 .../papers/FGCS-2025-candidates.yaml | 0 .../papers/FGCS-2025-digest.yaml | 0 .../papers/HPDC-2024-candidates.yaml | 0 .../papers/HPDC-2024-digest.yaml | 0 .../papers/HPDC-2025-candidates.yaml | 0 .../papers/HPDC-2025-digest.yaml | 0 .../papers/IC-2024-candidates.yaml | 0 .../papers/IC-2024-digest.yaml | 0 .../papers/IC-2025-candidates.yaml | 0 .../papers/IC-2025-digest.yaml | 0 .../papers/IPDPS-2024-candidates.yaml | 0 .../papers/IPDPS-2024-digest.yaml | 0 .../papers/IPDPS-2025-candidates.yaml | 0 .../papers/IPDPS-2025-digest.yaml | 0 .../papers/JPDC-2024-candidates.yaml | 0 .../papers/JPDC-2024-digest.yaml | 0 .../papers/JPDC-2025-candidates.yaml | 0 .../papers/JPDC-2025-digest.yaml | 0 .../papers/Middleware-2024-candidates.yaml | 0 .../papers/Middleware-2024-digest.yaml | 0 .../papers/Middleware-2025-candidates.yaml | 0 .../papers/Middleware-2025-digest.yaml | 0 .../papers/MobiSys-2024-candidates.yaml | 0 .../papers/MobiSys-2024-digest.yaml | 0 .../papers/MobiSys-2025-candidates.yaml | 0 .../papers/MobiSys-2025-digest.yaml | 0 .../papers/NSDI-2024-candidates.yaml | 0 .../papers/NSDI-2024-digest.yaml | 0 .../papers/NSDI-2025-candidates.yaml | 0 .../papers/NSDI-2025-digest.yaml | 0 .../papers/OSDI-2024-candidates.yaml | 0 .../papers/OSDI-2024-digest.yaml | 0 .../papers/OSDI-2025-candidates.yaml | 0 .../papers/OSDI-2025-digest.yaml | 0 .../papers/SC-2024-candidates.yaml | 0 .../papers/SC-2024-digest.yaml | 0 .../papers/SC-2025-candidates.yaml | 0 .../papers/SC-2025-digest.yaml | 0 .../papers/SEC-2024-candidates.yaml | 0 .../papers/SEC-2024-digest.yaml | 0 .../papers/SEC-2025-candidates.yaml | 0 .../papers/SEC-2025-digest.yaml | 0 .../papers/SOSP-2024-candidates.yaml | 0 .../papers/SOSP-2024-digest.yaml | 0 .../papers/SOSP-2025-candidates.yaml | 0 .../papers/SOSP-2025-digest.yaml | 0 .../papers/SoCC-2024-candidates.yaml | 0 .../papers/SoCC-2024-digest.yaml | 0 .../papers/SoCC-2025-candidates.yaml | 0 .../papers/SoCC-2025-digest.yaml | 0 .../papers/TC-2024-candidates.yaml | 0 .../papers/TC-2024-digest.yaml | 0 .../papers/TC-2025-candidates.yaml | 0 .../papers/TC-2025-digest.yaml | 0 .../papers/TCC-2024-candidates.yaml | 0 .../papers/TCC-2024-digest.yaml | 0 .../papers/TCC-2025-candidates.yaml | 0 .../papers/TCC-2025-digest.yaml | 0 .../papers/TOCS-2024-candidates.yaml | 0 .../papers/TOCS-2024-digest.yaml | 0 .../papers/TOCS-2025-candidates.yaml | 0 .../papers/TOCS-2025-digest.yaml | 0 .../papers/TPDS-2024-candidates.yaml | 0 .../papers/TPDS-2024-digest.yaml | 0 .../papers/TPDS-2025-candidates.yaml | 0 .../papers/TPDS-2025-digest.yaml | 0 site/data/{ => cloud-edge}/venues.yaml | 0 site/data/topics.yaml | 4 + site/hugo.toml | 23 +- site/layouts/partials/extend_head.html | 17 + site/layouts/partials/header.html | 119 +++++ src/publish_assistant/fetch_deadlines.py | 4 +- src/publish_assistant/generate_content.py | 159 +++--- 181 files changed, 1076 insertions(+), 437 deletions(-) create mode 100644 .gitea/workflows/gh-pages.yaml create mode 100644 site/content/_index.md create mode 100644 site/content/cloud-edge/_index.md rename site/content/{ => cloud-edge}/calendar/_index.md (69%) rename site/content/{ => cloud-edge}/digests/ATC-2024/index.md (100%) rename site/content/{ => cloud-edge}/digests/ATC-2025/index.md (100%) rename site/content/{ => cloud-edge}/digests/ATC-2026/index.md (100%) rename site/content/{ => cloud-edge}/digests/CCGrid-2024/index.md (100%) rename site/content/{ => cloud-edge}/digests/CCGrid-2026/index.md (100%) rename site/content/{ => cloud-edge}/digests/EuroSys-2024/index.md (100%) rename site/content/{ => cloud-edge}/digests/EuroSys-2025/index.md (100%) rename site/content/{ => cloud-edge}/digests/EuroSys-2027/index.md (100%) rename site/content/{ => cloud-edge}/digests/FGCS-2024/index.md (100%) rename site/content/{ => cloud-edge}/digests/FGCS-2025/index.md (100%) rename site/content/{ => cloud-edge}/digests/FGCS-2026/index.md (100%) rename site/content/{ => cloud-edge}/digests/HPDC-2024/index.md (100%) rename site/content/{ => cloud-edge}/digests/HPDC-2025/index.md (100%) rename site/content/{ => cloud-edge}/digests/HPDC-2026/index.md (100%) rename site/content/{ => cloud-edge}/digests/IC-2024/index.md (100%) rename site/content/{ => cloud-edge}/digests/IC-2025/index.md (100%) rename site/content/{ => cloud-edge}/digests/IC-2026/index.md (100%) rename site/content/{ => cloud-edge}/digests/IPDPS-2024/index.md (100%) rename site/content/{ => cloud-edge}/digests/IPDPS-2025/index.md (100%) rename site/content/{ => cloud-edge}/digests/IPDPS-2026/index.md (100%) rename site/content/{ => cloud-edge}/digests/JPDC-2024/index.md (100%) rename site/content/{ => cloud-edge}/digests/JPDC-2025/index.md (100%) rename site/content/{ => cloud-edge}/digests/JPDC-2026/index.md (100%) rename site/content/{ => cloud-edge}/digests/Middleware-2024/index.md (100%) rename site/content/{ => cloud-edge}/digests/Middleware-2025/index.md (100%) rename site/content/{ => cloud-edge}/digests/Middleware-2026/index.md (100%) rename site/content/{ => cloud-edge}/digests/MobiSys-2024/index.md (100%) rename site/content/{ => cloud-edge}/digests/MobiSys-2025/index.md (100%) rename site/content/{ => cloud-edge}/digests/MobiSys-2026/index.md (100%) rename site/content/{ => cloud-edge}/digests/NSDI-2024/index.md (100%) rename site/content/{ => cloud-edge}/digests/NSDI-2025/index.md (100%) rename site/content/{ => cloud-edge}/digests/NSDI-2027/index.md (100%) rename site/content/{ => cloud-edge}/digests/OSDI-2024/index.md (100%) rename site/content/{ => cloud-edge}/digests/OSDI-2025/index.md (100%) rename site/content/{ => cloud-edge}/digests/OSDI-2026/index.md (100%) rename site/content/{ => cloud-edge}/digests/SC-2024/index.md (100%) rename site/content/{ => cloud-edge}/digests/SC-2025/index.md (100%) rename site/content/{ => cloud-edge}/digests/SC-2026/index.md (100%) rename site/content/{ => cloud-edge}/digests/SEC-2024/index.md (100%) rename site/content/{ => cloud-edge}/digests/SEC-2025/index.md (100%) rename site/content/{ => cloud-edge}/digests/SEC-2026/index.md (100%) rename site/content/{ => cloud-edge}/digests/SOSP-2024/index.md (100%) rename site/content/{ => cloud-edge}/digests/SOSP-2025/index.md (100%) rename site/content/{ => cloud-edge}/digests/SOSP-2026/index.md (100%) rename site/content/{ => cloud-edge}/digests/SoCC-2024/index.md (100%) rename site/content/{ => cloud-edge}/digests/SoCC-2025/index.md (100%) rename site/content/{ => cloud-edge}/digests/SoCC-2026/index.md (100%) rename site/content/{ => cloud-edge}/digests/TC-2024/index.md (100%) rename site/content/{ => cloud-edge}/digests/TC-2025/index.md (100%) rename site/content/{ => cloud-edge}/digests/TC-2026/index.md (100%) rename site/content/{ => cloud-edge}/digests/TCC-2024/index.md (100%) rename site/content/{ => cloud-edge}/digests/TCC-2025/index.md (100%) rename site/content/{ => cloud-edge}/digests/TCC-2026/index.md (100%) rename site/content/{ => cloud-edge}/digests/TOCS-2024/index.md (100%) rename site/content/{ => cloud-edge}/digests/TOCS-2025/index.md (100%) rename site/content/{ => cloud-edge}/digests/TOCS-2026/index.md (100%) rename site/content/{ => cloud-edge}/digests/TPDS-2024/index.md (100%) rename site/content/{ => cloud-edge}/digests/TPDS-2025/index.md (100%) rename site/content/{ => cloud-edge}/digests/TPDS-2026/index.md (100%) rename site/content/{ => cloud-edge}/digests/_index.md (100%) create mode 100644 site/content/cloud-edge/venues/_index.md rename site/content/{ => cloud-edge}/venues/conferences/ATC/_index.md (72%) rename site/content/{ => cloud-edge}/venues/conferences/CCGrid/_index.md (76%) rename site/content/{ => cloud-edge}/venues/conferences/EuroSys/_index.md (64%) rename site/content/{ => cloud-edge}/venues/conferences/HPDC/_index.md (71%) rename site/content/{ => cloud-edge}/venues/conferences/IPDPS/_index.md (72%) rename site/content/{ => cloud-edge}/venues/conferences/Middleware/_index.md (71%) rename site/content/{ => cloud-edge}/venues/conferences/MobiSys/_index.md (70%) rename site/content/{ => cloud-edge}/venues/conferences/NSDI/_index.md (68%) rename site/content/{ => cloud-edge}/venues/conferences/OSDI/_index.md (69%) rename site/content/{ => cloud-edge}/venues/conferences/SC/_index.md (77%) rename site/content/{ => cloud-edge}/venues/conferences/SEC/_index.md (73%) rename site/content/{ => cloud-edge}/venues/conferences/SOSP/_index.md (70%) rename site/content/{ => cloud-edge}/venues/conferences/SoCC/_index.md (70%) create mode 100644 site/content/cloud-edge/venues/conferences/_index.md rename site/content/{ => cloud-edge}/venues/journals/FGCS/_index.md (68%) rename site/content/{ => cloud-edge}/venues/journals/IC/_index.md (65%) rename site/content/{ => cloud-edge}/venues/journals/JPDC/_index.md (70%) rename site/content/{ => cloud-edge}/venues/journals/TC/_index.md (66%) rename site/content/{ => cloud-edge}/venues/journals/TCC/_index.md (64%) rename site/content/{ => cloud-edge}/venues/journals/TOCS/_index.md (65%) rename site/content/{ => cloud-edge}/venues/journals/TPDS/_index.md (67%) create mode 100644 site/content/cloud-edge/venues/journals/_index.md delete mode 100644 site/content/venues/_index.md delete mode 100644 site/content/venues/conferences/_index.md delete mode 100644 site/content/venues/journals/_index.md rename site/data/{ => cloud-edge}/best_papers.yaml (100%) rename site/data/{ => cloud-edge}/deadlines.yaml (100%) rename site/data/{ => cloud-edge}/papers/.gitkeep (100%) rename site/data/{ => cloud-edge}/papers/ATC-2024-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/ATC-2024-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/ATC-2025-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/ATC-2025-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/CCGrid-2024-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/CCGrid-2024-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/EuroSys-2024-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/EuroSys-2024-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/EuroSys-2025-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/EuroSys-2025-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/FGCS-2024-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/FGCS-2024-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/FGCS-2025-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/FGCS-2025-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/HPDC-2024-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/HPDC-2024-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/HPDC-2025-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/HPDC-2025-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/IC-2024-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/IC-2024-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/IC-2025-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/IC-2025-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/IPDPS-2024-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/IPDPS-2024-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/IPDPS-2025-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/IPDPS-2025-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/JPDC-2024-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/JPDC-2024-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/JPDC-2025-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/JPDC-2025-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/Middleware-2024-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/Middleware-2024-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/Middleware-2025-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/Middleware-2025-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/MobiSys-2024-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/MobiSys-2024-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/MobiSys-2025-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/MobiSys-2025-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/NSDI-2024-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/NSDI-2024-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/NSDI-2025-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/NSDI-2025-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/OSDI-2024-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/OSDI-2024-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/OSDI-2025-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/OSDI-2025-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/SC-2024-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/SC-2024-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/SC-2025-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/SC-2025-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/SEC-2024-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/SEC-2024-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/SEC-2025-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/SEC-2025-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/SOSP-2024-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/SOSP-2024-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/SOSP-2025-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/SOSP-2025-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/SoCC-2024-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/SoCC-2024-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/SoCC-2025-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/SoCC-2025-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/TC-2024-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/TC-2024-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/TC-2025-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/TC-2025-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/TCC-2024-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/TCC-2024-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/TCC-2025-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/TCC-2025-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/TOCS-2024-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/TOCS-2024-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/TOCS-2025-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/TOCS-2025-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/TPDS-2024-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/TPDS-2024-digest.yaml (100%) rename site/data/{ => cloud-edge}/papers/TPDS-2025-candidates.yaml (100%) rename site/data/{ => cloud-edge}/papers/TPDS-2025-digest.yaml (100%) rename site/data/{ => cloud-edge}/venues.yaml (100%) create mode 100644 site/data/topics.yaml create mode 100644 site/layouts/partials/header.html diff --git a/.gitea/workflows/gh-pages.yaml b/.gitea/workflows/gh-pages.yaml new file mode 100644 index 0000000..8fcce5a --- /dev/null +++ b/.gitea/workflows/gh-pages.yaml @@ -0,0 +1,52 @@ +name: Build and deploy static pages + +on: + push: + branches: [main] + workflow_dispatch: + +env: + HUGO_VERSION: "0.165.0" + # Public URL served by the gitea-pages proxy. Override with a repo variable + # (Settings → Actions → Variables → SITE_BASE_URL) if the site moves. + SITE_BASE_URL: ${{ vars.SITE_BASE_URL || format('https://pub.sqrt.fr/{0}/', github.repository) }} + +jobs: + build-and-push: + runs-on: ubuntu-latest + + permissions: + contents: write + + steps: + - uses: actions/checkout@v4 + with: + # site/themes/PaperMod is a submodule + submodules: recursive + + - name: Install Hugo + run: | + mkdir -p "$HOME/.local/bin" + curl -sSfL "https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.tar.gz" \ + | tar -xz -C "$HOME/.local/bin" hugo + echo "$HOME/.local/bin" >> "$GITHUB_PATH" + "$HOME/.local/bin/hugo" version + + - name: Install site JS dependencies + # site/assets/js/calendar.js imports @fullcalendar/* — Hugo's js.Build + # resolves those from site/node_modules at build time. + working-directory: site + run: npm ci + + - name: Build site + # Content under site/content/ is generated by ./build.sh and committed, + # so CI only renders it — no data fetching happens here. + run: hugo --source site --minify --gc --baseURL "$SITE_BASE_URL" + + - name: Deploy site + uses: peaceiris/actions-gh-pages@v4 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + force_orphan: true + publish_branch: gh-pages + publish_dir: ./site/public diff --git a/README.md b/README.md index f1a3c29..3cb4301 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,8 @@ Hugo-generated website that helps researchers: The site is domain-driven: a researcher picks a research area (e.g. "edge and cloud systems") and the assistant builds a curated, ranked, up-to-date snapshot of where to publish, when to submit, and what to read. The output is a static Hugo site that can be rebuilt on demand. +Multiple research topics live under the same Hugo instance as subsites (`/cloud-edge/`, `/embedded-ai/`, …). Each topic has its own venue list, deadlines, digests, and calendar. Layouts, theme, and JavaScript are shared. + Work is split between **automated scripts** (data fetching, Hugo content generation) and **agent tasks** (domain curation, paper selection, deadline gap-filling). The README below documents both halves so the site can be kept fresh over time. --- @@ -23,25 +25,30 @@ publish-assistant/ │ ├── hugo.toml │ ├── themes/PaperMod/ # PaperMod theme (git submodule) │ ├── layouts/ -│ │ ├── _default/calendar.html # FullCalendar layout override -│ │ └── partials/extend_head.html +│ │ ├── _default/calendar.html # FullCalendar layout +│ │ ├── _default/digests.html # Digest list layout +│ │ └── partials/ +│ │ ├── header.html # Section-aware nav override +│ │ └── extend_head.html # Calendar CSS injection │ ├── content/ # Generated — do not edit by hand -│ │ ├── venues/ -│ │ │ ├── _index.md # Venues overview (generated) -│ │ │ ├── conferences/ # One subdir per tracked conference -│ │ │ └── journals/ # One subdir per tracked journal -│ │ ├── calendar/ # Aggregated deadline view + FullCalendar -│ │ └── digests/ # Per-issue paper digests -│ └── data/ # Structured data — edit these -│ ├── venues.yaml # Master venue list ← primary edit target -│ ├── deadlines.yaml # Deadline cache; manual entries preserved -│ ├── best_papers.yaml # Best-paper awards (written by pa-fetch-best-papers) -│ ├── rankings/ -│ │ ├── icore.csv # ICORE rankings cache -│ │ └── scimago.csv # SCImago rankings cache (optional) -│ └── papers/ -│ ├── --candidates.yaml # Full paper list (pa-fetch-papers) -│ └── --digest.yaml # Curated selection (agent, Task 3) +│ │ ├── _index.md # Global landing page +│ │ └── / # One subdir per topic, e.g. cloud-edge/ +│ │ ├── _index.md # Topic home page +│ │ ├── venues/ # Venue pages (generated) +│ │ ├── calendar/ # Deadline calendar (generated) +│ │ └── digests/ # Paper digests (generated) +│ └── data/ +│ ├── topics.yaml # Topic registry (nav + build loop) +│ ├── rankings/ # Shared across all topics +│ │ ├── icore.csv # ICORE conference rankings +│ │ └── scimago.csv # SCImago journal rankings (optional) +│ └── / # One subdir per topic, e.g. cloud-edge/ +│ ├── venues.yaml # Master venue list ← primary edit target +│ ├── deadlines.yaml # Deadline cache; manual entries preserved +│ ├── best_papers.yaml # Best-paper awards +│ └── papers/ +│ ├── --candidates.yaml # Full paper list (pa-fetch-papers) +│ └── --digest.yaml # Curated selection (agent, Task 3) ├── src/publish_assistant/ # Python package │ ├── fetch_icore.py │ ├── fetch_scimago.py @@ -55,6 +62,8 @@ publish-assistant/ └── README.md ``` +**Topic isolation**: each topic owns its `site/data//` directory (venues, deadlines, papers) and generates into `site/content//`. The shared `site/data/rankings/` CSVs are reused by every topic. The nav bar automatically shows topic-relative Venues / Calendar / Digests links when inside a topic, and lists all topics from `topics.yaml` on the root page. + --- ## Setup @@ -71,22 +80,24 @@ uv run pa-fetch-papers --venue OSDI --year 2025 uv run pa-generate # Local dev server: -hugo server --source site +./build.sh --dev +# or, to process one topic without re-fetching: +./build.sh --skip-rankings --topic cloud-edge --dev ``` --- ## Data Sources -| Source | What it provides | Automatable? | Known issues | -| ---------------------------------------------------------------------------- | ---------------------------------------- | ------------ | --------------------------------------------------------------------------------------- | -| [ICORE](https://portal.core.edu.au/conf-ranks/) | Conference rankings (A*, A, B, C) | Yes | Pagination uses `javascript:jumpPage('N')` — handled in `fetch_icore.py` | -| [SCImago](https://www.scimagojr.com/) | Journal quartiles, SJR, H-index | Blocked | Anti-bot returns HTML; add data manually to `venues.yaml` under `scimago_quartile` etc. | -| [DBLP](https://dblp.org/) | Paper metadata by venue | Yes | Use `dblp_key` field in `venues.yaml` | -| [OpenAlex](https://openalex.org/) | Papers, open-access links | Yes | Fallback when DBLP is thin | -| [WikiCFP](http://wikicfp.com/) | Submission deadlines | Partially | See detailed notes below | -| [Conference websites](.) | Authoritative deadlines | Partially | See Task 2 | -| [jeffhuang.com/best_paper_awards/](https://jeffhuang.com/best_paper_awards/) | Best paper awards since 1996, ~32 venues | Yes | Manually maintained; run `pa-fetch-best-papers` annually | +| Source | What it provides | Automatable? | Known issues | +| --- | --- | --- | --- | +| [ICORE](https://portal.core.edu.au/conf-ranks/) | Conference rankings (A*, A, B, C) | Yes | Pagination uses `javascript:jumpPage('N')` — handled in `fetch_icore.py` | +| [SCImago](https://www.scimagojr.com/) | Journal quartiles, SJR, H-index | Blocked | Anti-bot returns HTML; add data manually to `venues.yaml` under `scimago_quartile` etc. | +| [DBLP](https://dblp.org/) | Paper metadata by venue | Yes | Use `dblp_key` field in `venues.yaml` | +| [OpenAlex](https://openalex.org/) | Papers, open-access links | Yes | Fallback when DBLP is thin | +| [WikiCFP](http://wikicfp.com/) | Submission deadlines | Partially | See detailed notes below | +| [Conference websites](.) | Authoritative deadlines | Partially | See Task 2 | +| [jeffhuang.com/best_paper_awards/](https://jeffhuang.com/best_paper_awards/) | Best paper awards since 1996, ~32 venues | Yes | Manually maintained; run `pa-fetch-best-papers` annually | --- @@ -96,22 +107,22 @@ WikiCFP is the primary deadline source but has several quirks that required work **HTML structure**: Detail pages use `` for row labels (not ``). The parser in `fetch_cfp_details()` specifically looks for `` + `` pairs. Do not revert to `find_all("td")` — it will find zero deadline rows. -**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 this domain: +**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 | +| SoCC | 191071 | +| Middleware | 190153 | +| IPDPS | 189093 | +| HPDC | 191029 | **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. -**Conferences not on WikiCFP** (for edge/cloud systems domain): OSDI, NSDI, USENIX ATC, SC, MobiSys, SEC. Use `wikicfp_id: false` for all of them. +**Conferences not on WikiCFP** (for systems/networking): OSDI, NSDI, USENIX ATC, SC, MobiSys, SEC. Use `wikicfp_id: false` for all of them. -**Manual deadline entries**: Add entries with `source: manual` to `site/data/deadlines.yaml`. The fetcher preserves all `source: manual` entries across runs. Format: +**Manual deadline entries**: Add entries with `source: manual` to `site/data//deadlines.yaml`. The fetcher preserves all `source: manual` entries across runs. Format: ```yaml ATC: source: manual @@ -131,7 +142,7 @@ ATC: conferences: - acronym: SOSP full_name: "ACM Symposium on Operating Systems Principles" - domain: [edge-and-cloud, operating-systems, distributed-systems] + domain: [, operating-systems, distributed-systems] url: "https://sigops.org/s/conferences/sosp/" dblp_key: "conf/sosp" wikicfp_id: "191399" # direct lookup; omit to use search; false to skip entirely @@ -139,7 +150,7 @@ conferences: journals: - acronym: TPDS full_name: "IEEE Transactions on Parallel and Distributed Systems" - domain: [edge-and-cloud, parallel-computing, distributed-systems] + domain: [, parallel-computing, distributed-systems] issn: "1045-9219" url: "https://www.computer.org/csdl/journal/td" dblp_key: "journals/tpds" @@ -153,14 +164,30 @@ journals: --- +## `topics.yaml` Schema + +```yaml +topics: + - slug: cloud-edge + title: "Edge and Cloud Systems" + description: "Conferences and journals for edge computing, cloud systems, and distributed systems." + - slug: embedded-ai + title: "Embedded AI" + description: "Conferences and journals for on-device ML, edge inference, and TinyML." +``` + +The `slug` must match the directory names under `site/data/` and `site/content/`. It also becomes the URL prefix (`/cloud-edge/`, `/embedded-ai/`). The `title` appears in the nav bar on the root page and on the topic's section home. + +--- + ## Scripts All scripts are installed as CLI entry points by `uv sync`. ### `pa-fetch-icore` -Downloads ICORE rankings. Handles the portal's JavaScript-based pagination. +Downloads ICORE rankings. Shared across all topics — run once per build. ```bash -uv run pa-fetch-icore # fetch all +uv run pa-fetch-icore # fetch all uv run pa-fetch-icore --query "distributed systems" ``` @@ -172,14 +199,16 @@ uv run pa-fetch-scimago --area 1705 # networks ``` ### `pa-fetch-deadlines` -Fetches submission deadlines from WikiCFP. Preserves `source: manual` entries. +Fetches submission deadlines from WikiCFP for a specific topic. Preserves `source: manual` entries. ```bash -uv run pa-fetch-deadlines +uv run pa-fetch-deadlines \ + --venues site/data/cloud-edge/venues.yaml \ + --output site/data/cloud-edge/deadlines.yaml ``` -After running: check `site/data/deadlines.yaml` for the `missing:` list, then do Task 2. +After running: check `deadlines.yaml` for the `missing:` list, then do Task 2. ### `pa-fetch-best-papers` -Scrapes [jeffhuang.com/best_paper_awards/](https://jeffhuang.com/best_paper_awards/) and writes `site/data/best_papers.yaml`. Run once per year (the source is updated annually). +Scrapes [jeffhuang.com/best_paper_awards/](https://jeffhuang.com/best_paper_awards/) and writes `best_papers.yaml`. Run once per year. ```bash uv run pa-fetch-best-papers ``` @@ -192,119 +221,246 @@ uv run pa-fetch-papers --venue TPDS --year 2024 --source openalex ``` ### `pa-generate` -Regenerates all Hugo content from data files. Safe to re-run at any time. +Regenerates all Hugo content for one topic from its data files. Safe to re-run at any time. ```bash +# Explicit (for a specific topic): +uv run pa-generate \ + --venues site/data/cloud-edge/venues.yaml \ + --deadlines site/data/cloud-edge/deadlines.yaml \ + --papers-dir site/data/cloud-edge/papers \ + --content site/content/cloud-edge \ + --base-path /cloud-edge + +# Defaults (cloud-edge): uv run pa-generate ``` +`--base-path` prefixes all internal links in generated markdown (e.g. `/cloud-edge/venues/…`). It must match the topic slug in the URL. + Preserved fields (never overwritten): `notes`, `deadline_source`. Stripped fields (removed on regen to avoid stale data): `url` (Hugo reserved), `papers`. ### `build.sh` -Full pipeline orchestrator. +Full pipeline orchestrator. Loops over all topics in `topics.yaml` by default. ```bash -./build.sh -./build.sh --skip-rankings # skip icore/scimago fetches -./build.sh --skip-deadlines # use cached deadlines.yaml -./build.sh --dev # hugo server instead of build +./build.sh # full build, all topics +./build.sh --topic cloud-edge # one topic only +./build.sh --skip-rankings # skip icore/scimago fetches (use cached CSVs) +./build.sh --skip-deadlines # use cached deadlines.yaml +./build.sh --dev # hugo server instead of build +./build.sh --topic cloud-edge --dev # dev server, one topic ``` --- ## Hugo Content Structure +### Multi-topic routing + +Hugo treats `site/content//` as a section. All pages inside it are served under `//`. The nav bar partial (`site/layouts/partials/header.html`) detects `.Section` at render time: +- **Inside a topic** (`cloud-edge`, `embedded-ai`, …): renders Venues / Calendar / Digests links relative to that section. +- **At the root** (`/`): renders one link per topic from `site/data/topics.yaml`. + +To add a topic: populate `site/data/topics.yaml` + `site/data//venues.yaml`, then run `./build.sh --topic `. The new section appears in the global nav automatically. + ### Venues -**`site/content/venues/_index.md`** — overview, links to conferences and journals. Generated. +**`site/content//venues/_index.md`** — overview, links to conferences and journals. Generated. -**`site/content/venues/conferences/_index.md`** — table of all conferences sorted by ICORE rank with deadlines. Generated. +**`site/content//venues/conferences/_index.md`** — table of all conferences sorted by ICORE rank with deadlines, domains, and digest count. Generated. -**`site/content/venues/journals/_index.md`** — table of all journals sorted by SCImago quartile. Generated. +**`site/content//venues/journals/_index.md`** — table of all journals sorted by SCImago quartile. Generated. -Each venue page body is **fully generated Markdown** — PaperMod renders body content, not front matter fields. The body includes a metadata table and a deadline section. +Each venue page body is **fully generated Markdown**. The body includes a metadata table (rank, domains, latest digest link), an upcoming deadline block, and previous-edition info blocks (paper count, topics, digest link). ### Calendar -**`site/content/calendar/_index.md`** — uses `layout: calendar`, which activates `site/layouts/_default/calendar.html`. The layout renders a FullCalendar (CDN) month grid above the deadline table. Events are embedded as a JSON-ready YAML list in the `events` front matter field. Colors: orange = abstract deadline, red = paper deadline, blue = conference dates. +**`site/content//calendar/_index.md`** — uses `layout: calendar`. Events are embedded as JSON-ready YAML in the `events:` front matter field by `pa-generate`. Colors: orange = abstract deadline, red = paper deadline, blue = conference dates. ### Digests -**`site/content/digests/-/index.md`** — uses `index.md` (not `_index.md`) to be a leaf page, not a section. Body contains the full paper list with TL;DR and why-notable for each paper. Papers data lives in `site/data/papers/--digest.yaml`; do not put it in front matter (it was stripped for causing empty pages with PaperMod). +**`site/content//digests/-/index.md`** — leaf page (`index.md`, not `_index.md`). Body contains the full paper list with TL;DR and why-notable for each paper. Papers data lives in `site/data//papers/--digest.yaml`. --- -## Agent Instructions +## Agent Prompts -Tasks requiring agent involvement (domain knowledge, judgment, web research). +Ready-to-use prompts. Paste directly into Claude Code (or any agent) as a starting point. --- -### Task 1 — Bootstrap a domain +### Bootstrap a new topic -**Trigger:** User asks to set up tracking for a new research domain. +``` +Bootstrap a new publish-assistant topic for "" (slug: ). -**Steps:** +Steps: +1. Research the top 10–15 conferences and 5–10 journals for this domain. Use + csrankings.org, the ICORE portal (portal.core.edu.au/conf-ranks/), and + SCImago (scimagojr.com) for rankings. +2. For each conference: record acronym, full name, ICORE rank, official + website URL for the upcoming edition, DBLP stream key (conf/), and + WikiCFP event ID if you can find it (set wikicfp_id: false for short or + ambiguous acronyms). +3. For each journal: record acronym, full name, ISSN, SCImago quartile + SJR + + H-index (add inline to venues.yaml — the CSV download is blocked), DBLP + stream key (journals/), submission model (rolling / special issues). +4. Create site/data//venues.yaml following the schema in the README. +5. Create site/data//papers/ (empty directory). +6. Add the topic to site/data/topics.yaml: + - slug: + title: "" + description: "" +7. Create site/content//_index.md: + --- + title: "" + description: "" + draft: false + --- +8. Run: ./build.sh --skip-rankings --topic + (Use --skip-rankings to reuse cached ICORE data if already fresh.) +9. For any conferences under deadlines.yaml missing:, do the manual deadline + task (Task 2 in the README). +10. Run: ./build.sh --skip-rankings --topic + Then: hugo --source site --minify + Confirm the site builds cleanly and //venues/ loads correctly. -1. Ask for the domain name and any seed venues. -2. Research: identify top 10–15 conferences and 5–10 journals. Use [csrankings.org](https://csrankings.org), [ICORE portal](https://portal.core.edu.au/conf-ranks/), and [SCImago](https://www.scimagojr.com/) for rankings. -3. For each conference: record acronym, full name, ICORE rank, official 2025/2026 website URL, DBLP stream key (`conf/`). -4. For each journal: record acronym, full name, ISSN, SCImago quartile + SJR (add inline to `venues.yaml` — CSV download is blocked), DBLP stream key (`journals/`), submission model (rolling / special issues). -5. Append all venues to `site/data/venues.yaml`. -6. For WikiCFP: add `wikicfp_id: ""` if you can find the event page (search at wikicfp.com). Set `wikicfp_id: false` for conferences where search returns wrong matches (short/common acronyms are risky). -7. Run `uv run pa-fetch-icore` and `uv run pa-fetch-deadlines`. -8. For conferences not found by the deadline fetcher, do Task 2 immediately. -9. Run `uv run pa-generate` and `hugo --source site` to validate. - -**One-shot checklist for agents:** -- [ ] `site/data/venues.yaml` populated with all venues -- [ ] `wikicfp_id` set or `wikicfp_id: false` on every conference -- [ ] SCImago data added inline to every journal entry -- [ ] `uv run pa-fetch-icore` succeeded (check `site/data/rankings/icore.csv`) -- [ ] `uv run pa-fetch-deadlines` ran (check `site/data/deadlines.yaml`) -- [ ] All conferences in `deadlines.yaml:missing` handled via Task 2 -- [ ] `uv run pa-generate` ran cleanly -- [ ] `hugo --source site --minify` built without errors +Checklist before finishing: +- [ ] site/data//venues.yaml has all venues with correct dblp_key +- [ ] wikicfp_id set or false on every conference +- [ ] SCImago data added inline for every journal +- [ ] site/data/topics.yaml updated +- [ ] site/content//_index.md created +- [ ] ./build.sh --skip-rankings --topic runs without errors +- [ ] hugo --source site --minify succeeds +``` --- +### Add a venue to an existing topic + +``` +Add to the publish-assistant topic "". + +1. Look up: + - Full name and ICORE rank (conferences) or SCImago quartile + SJR + H-index (journals) + - Official website URL for the upcoming edition + - DBLP stream key at dblp.org + - WikiCFP event ID, or note if this acronym is ambiguous (set wikicfp_id: false) +2. Append the entry to site/data//venues.yaml following the existing schema. +3. Run: uv run pa-fetch-deadlines \ + --venues site/data//venues.yaml \ + --output site/data//deadlines.yaml +4. If the conference appears under missing: in deadlines.yaml, find the deadline + on the official CFP page and add a source: manual entry. +5. Run: uv run pa-generate (defaults to cloud-edge) or with explicit --venues / + --content / --base-path flags for the target topic. +6. Confirm the new venue page appears at //venues/conferences// + (or journals/) with correct metadata. +``` + +--- + +### Build a digest for a venue + year + +``` +Build a paper digest for in the publish-assistant topic "". + +1. Run: uv run pa-fetch-papers --venue --year + This writes site/data//papers/--candidates.yaml. + +2. Run: uv run pa-fetch-best-papers + (Skip if site/data/best_papers.yaml already exists and is recent.) + +3. Read the candidates file. Select 8–15 papers that are: + - Methodologically novel (new algorithms, system designs, formal proofs) + - Attracting community attention (highly cited if issue is ≥1 year old; + well-known authors or top-venue co-publications if recent) + - Representative of the breadth of the issue (avoid over-indexing on one subtheme) + - Preferably open-access (arXiv, USENIX, ACM OpenTOC) + Flag any paper in best_papers.yaml (include it; it's a strong signal). + +4. For each selected paper write: + - tldr: one sentence, the core technical contribution + - why_notable: 1–2 sentences — novelty, impact, surprising result, or + influential technique; what would make a program committee member + recommend this paper to colleagues + +5. Write site/data//papers/--digest.yaml: + venue: + year: + date: "" + tags: [<3–5 topic tags>] + selected: + - dblp_key: "..." + title: "..." + tldr: "..." + why_notable: "..." + +6. Run: uv run pa-generate (or with explicit flags for the topic) +7. Confirm the digest page at //digests/-/ renders correctly. +``` + +--- + +### Annual cycle refresh for a topic + +``` +Refresh the publish-assistant topic "" for the new conference cycle. + +1. For each conference in site/data//venues.yaml: + a. Check whether the url field points to the upcoming edition (many venues + use year-specific URLs like osdi26, 2027.eurosys.org, mobisys/2026/). + Update any that point to past editions. + b. Verify wikicfp_id still points to the upcoming edition by visiting + http://wikicfp.com/cfp/servlet/event.showcfp?eventid=. + If it points to a past event, search WikiCFP for the new edition. + If the new event page doesn't exist yet, set wikicfp_id: false and add + a source: manual entry to deadlines.yaml; restore the ID once it appears. + +2. Run: uv run pa-fetch-deadlines \ + --venues site/data//venues.yaml \ + --output site/data//deadlines.yaml + +3. For each entry under missing: in deadlines.yaml, visit the conference CFP + page and add a source: manual entry to deadlines.yaml. + +4. Run: ./build.sh --skip-rankings --topic + Then confirm hugo --source site --minify succeeds and all venue pages show + correct upcoming deadlines. + +Checklist: +- [ ] All conference url fields updated to upcoming edition +- [ ] All wikicfp_id values verified (or set to false + manual entry) +- [ ] missing: list in deadlines.yaml is empty +- [ ] Build succeeds, no broken links +``` + +--- + +## Agent Tasks (Reference) + +### Task 1 — Bootstrap a topic +See the "Bootstrap a new topic" prompt above. The one-shot checklist is embedded in the prompt. + ### Task 2 — Fill in missing deadlines **Trigger:** `pa-fetch-deadlines` lists conferences under `missing:`, or a deadline looks wrong. -**Steps:** - -1. For each missing conference, visit the official website. Conferences typically have a "Call for Papers" page with an "Important Dates" section. -2. Also check [WikiCFP](http://wikicfp.com/cfp/servlet/tool.search?q=&year=f) manually — if you find the right event ID, add `wikicfp_id` to `venues.yaml` so future runs fetch it automatically. +1. For each missing conference, visit the official website's "Call for Papers" / "Important Dates" page. +2. Also check WikiCFP manually — if you find the right event ID, add `wikicfp_id` to `venues.yaml` so future runs fetch it automatically. 3. Extract: abstract deadline, paper deadline, notification, camera-ready, event dates, location. -4. Add a `source: manual` entry to `site/data/deadlines.yaml`. This entry survives future `pa-fetch-deadlines` runs. -5. Run `uv run pa-generate` to propagate. +4. Add a `source: manual` entry to `site/data//deadlines.yaml`. +5. Run `uv run pa-generate` (with explicit flags for the topic). -**Conferences reliably NOT on WikiCFP** (for systems/networking): -- USENIX family: OSDI, NSDI, USENIX ATC, USENIX Security — use usenix.org directly -- SC (Supercomputing) — use sc.supercomputing.org/program/papers/ -- MobiSys — use sigmobile.org/mobisys// -- SEC (Edge Computing) — use acm-ieee-sec.org// -- Short or common acronyms (ATC, SEC) collide with unrelated events — always use `wikicfp_id: false` and fetch manually +**Conferences reliably NOT on WikiCFP** (systems/networking): +- USENIX family: OSDI, NSDI, USENIX ATC, USENIX Security — use usenix.org +- SC — use sc``.supercomputing.org +- MobiSys — use sigmobile.org/mobisys/``/ +- SEC — use acm-ieee-sec.org/``/ +- Short/common acronyms (ATC, SEC) collide with unrelated events — always use `wikicfp_id: false` ---- - -### Task 3 — Build a digest for a conference issue - -**Trigger:** User asks to build a digest for a specific venue + year. - -**Steps:** - -1. Run `uv run pa-fetch-papers --venue --year ` to get the candidate pool (`site/data/papers/--candidates.yaml`). -2. Check `site/data/best_papers.yaml` (run `pa-fetch-best-papers` first if it doesn't exist). Papers with matching titles in the best-papers list should be included and flagged. -3. Select 8–15 papers that are: - - Methodologically novel (new algorithms, systems designs, formal proofs); - - Attracting community attention (highly cited if the issue is ≥ 1 year old; in top venues / co-authored by known researchers if recent); - - Representative of the breadth of the issue (avoid over-indexing on one subtheme); - - Preferably open-access (arXiv, USENIX, ACM OpenTOC). -4. For each selected paper, write: - - `tldr`: one sentence, the core technical contribution. - - `why_notable`: 1–2 sentences — novelty, impact, surprising result, or influential technique. -5. Write `site/data/papers/--digest.yaml` with a `selected:` list. -6. Run `uv run pa-generate` — the digest page is created at `site/content/digests/-/index.md`. +### Task 3 — Build a digest +See the "Build a digest for a venue + year" prompt above. **Digest YAML format:** ```yaml @@ -320,80 +476,34 @@ selected: why_notable: "Became one of the most-cited LLM systems papers of 2024; disaggregation is now standard in production inference stacks." ``` ---- - ### Task 4 — Refresh rankings -**Trigger:** ICORE releases a new round (every 2–3 years); SCImago releases new data (annually, each spring). - -**Steps:** - 1. Run `uv run pa-fetch-icore` for fresh ICORE data. -2. For SCImago: download the CSV manually from [scimagojr.com](https://www.scimagojr.com/journalrank.php) (CSV download button on the rankings page) and place it at `site/data/rankings/scimago.csv`. The automated fetch is blocked. -3. Check `site/data/venues.yaml` — for journals, compare `scimago_quartile` / `scimago_sjr` against the new CSV. Update inline values if changed. -4. Run `uv run pa-generate`. - ---- +2. For SCImago: download the CSV manually from [scimagojr.com](https://www.scimagojr.com/journalrank.php) and place at `site/data/rankings/scimago.csv`. The automated fetch is blocked. +3. For each journal in `venues.yaml`, compare `scimago_quartile` / `scimago_sjr` against new CSV. Update inline values if changed. +4. Run `./build.sh --skip-deadlines` (or per-topic with `--topic `). ### Task 5 — Add a new venue mid-cycle - -**Steps:** - -1. Look up ICORE rank (conferences) or SCImago quartile (journals). -2. Find the DBLP stream key at [dblp.org](https://dblp.org). -3. Add to `site/data/venues.yaml`. -4. For conferences: look up WikiCFP event ID or set `wikicfp_id: false`. -5. Run `uv run pa-fetch-deadlines` + `uv run pa-generate`. - ---- +See the "Add a venue to an existing topic" prompt above. ### Task 6 — Annual cycle refresh - -**Trigger:** A new conference cycle begins (roughly each autumn/spring depending on the venue). Signs: event URLs return 404s, WikiCFP fetches pull wrong editions, or deadlines are over a year old. - -**Steps:** - -1. **Update edition URLs** — for each conference in `venues.yaml`, check whether `url` points to the upcoming edition. Many venues use year-specific URLs (`osdi26`, `2027.eurosys.org`, `mobisys/2026/`). Update these to the new edition. Generic/stable URLs (e.g., `sigops.org/s/conferences/sosp/`) do not need changing. - -2. **Refresh WikiCFP IDs** — for each conference with a `wikicfp_id`, verify the ID still matches the upcoming edition by visiting `http://wikicfp.com/cfp/servlet/event.showcfp?eventid=`. If it points to a past event, search WikiCFP for the new edition and update the ID. If the new event page does not exist yet, set `wikicfp_id: false` temporarily and add a `source: manual` deadline entry; restore the ID once the page appears. - -3. Run `uv run pa-fetch-deadlines` and check the `missing:` list. Fill gaps via Task 2. - -4. Run `uv run pa-generate` and `hugo --source site --minify` to validate. - -**One-shot checklist for agents:** -- [ ] All conference `url` fields in `venues.yaml` point to the upcoming edition -- [ ] All `wikicfp_id` values verified against the upcoming edition (or set to `false` with a manual entry) -- [ ] `uv run pa-fetch-deadlines` ran cleanly; `missing:` list is empty -- [ ] `uv run pa-generate` + `hugo --source site --minify` succeed - ---- - -## What the Build Script Cannot Do - -| Task | Why automation fails | Agent task | -| ----------------------------------- | ---------------------------- | ---------- | -| Initial venue curation | Requires domain knowledge | Task 1 | -| Fetching missing deadlines | No standard CFP structure | Task 2 | -| Selecting notable papers | Requires reading + judgment | Task 3 | -| Writing `why_notable` | Requires synthesis | Task 3 | -| Detecting meaningful rank changes | Requires domain context | Task 4 | -| Evaluating new venues for inclusion | Requires community awareness | Task 5 | +See the "Annual cycle refresh for a topic" prompt above. --- ## Known Gotchas (for agents picking this up) +- **`--base-path` must match the topic slug**: `pa-generate --base-path /cloud-edge` prefixes all internal links in generated markdown. If you run `pa-generate` without this flag (old default was `/cloud-edge`), all links on the new topic would resolve to `/cloud-edge/...` instead. Always pass explicit `--base-path /` when generating for a non-default topic, or use `build.sh --topic ` which sets it automatically. - **Hugo `url` field**: reserved by Hugo to override the page URL. `venues.yaml` uses `url:` but `generate_content.py` maps it to `homepage:` in front matter. Never write `url:` in Hugo front matter via the generator. -- **PaperMod renders body, not front matter**: all visible content must be in the Markdown body (after the second `---`). Front matter is used only for metadata and Hugo taxonomy. If a page looks empty, check that `_conf_body()` / `_journal_body()` etc. are being called. +- **PaperMod renders body, not front matter**: all visible content must be in the Markdown body. Front matter is used only for metadata and Hugo taxonomy. If a page looks empty, check that `_conf_body()` / `_journal_body()` etc. are being called. - **`_index.md` vs `index.md`**: section pages use `_index.md` (list template), leaf pages use `index.md` (single template). Digest pages are `index.md` — using `_index.md` makes them section pages and breaks pagination. +- **Rankings CSVs are in `site/data/rankings/`**: Hugo's data loader is configured to ignore `data/rankings/*.csv` via `ignoreFiles` in `hugo.toml`. If you move these files or add new CSVs, update `ignoreFiles` accordingly — Hugo cannot parse arbitrary CSV as a data map and will error on build. - **ICORE pagination**: the ICORE portal uses `javascript:jumpPage('N')` links, not standard `?page=N` URLs. `fetch_icore.py` handles this. If you get only 50 results instead of ~900, pagination is broken. - **SCImago blocked**: `pa-fetch-scimago` will raise a clear error if anti-bot HTML is returned. Add data inline to `venues.yaml` instead. -- **WikiCFP `` labels**: deadline detail pages use `` for label cells, not ``. The parser looks for `+` pairs. A `find_all("td")` approach finds nothing. -- **Calendar events**: `pa-generate` embeds events as a YAML list in the `events:` front matter field of `content/calendar/_index.md`. The custom layout at `site/layouts/_default/calendar.html` reads `.Params.events` and initializes FullCalendar. Do not remove the `layout: calendar` front matter field. -- **FullCalendar CDN**: loaded from `cdn.jsdelivr.net`. The `extend_head.html` partial injects the CSS; the layout injects the JS. Both are conditional on `layout == "calendar"`. -- **Deadline preservation**: never strip deadline fields from `deadlines.yaml` just because the submission window has closed. Keep all fields (abstract deadline, submission deadline, notification, camera-ready) for every conference whose event date is still in the future. Remove an entry only once the conference has taken place. An agent doing a "refresh" or "cleanup" must not treat a past submission deadline as stale data worth deleting. -- **WikiCFP IDs are edition-specific**: each year's event gets a new WikiCFP event ID. The IDs in the table above are for specific editions and will be wrong once a new cycle begins. When `pa-fetch-deadlines` returns stale or mismatched data, check whether the `wikicfp_id` in `venues.yaml` still points to the upcoming edition. If the new event page doesn't exist on WikiCFP yet, set `wikicfp_id: false` and add a `source: manual` entry; update the ID once the new page appears. See Task 6 for the full annual refresh checklist. +- **WikiCFP `` labels**: deadline detail pages use `` for label cells, not ``. The parser looks for `+` pairs. +- **Calendar events**: `pa-generate` embeds events as YAML in the `events:` front matter field. The layout at `site/layouts/_default/calendar.html` reads `.Params.events` and initializes FullCalendar. Do not remove the `layout: calendar` front matter field. +- **Deadline preservation**: never strip deadline fields from `deadlines.yaml` just because the submission window has closed. Remove an entry only once the conference has taken place. +- **WikiCFP IDs are edition-specific**: each year's event gets a new ID. IDs verified at one point in time will be wrong once a new cycle begins. See Task 6 for the annual refresh checklist. --- @@ -402,6 +512,6 @@ selected: - **iCal feed** — generate a `.ics` file from deadline data so researchers can subscribe from their calendar app. - **Email/RSS notifications** — alert when a deadline is within N weeks. - **Citation tracking** — periodically re-query OpenAlex for citation counts on digest papers. -- **Multi-domain support** — a single repo tracking multiple domains; run the pipeline per domain with a `--domain` flag. - **Best paper badge** — `pa-generate` could cross-reference `best_papers.yaml` with digest candidates and add a `best_paper_award: true` flag, then render a badge in `_digest_body()`. -- **Automated WikiCFP ID discovery** — when a venue has no `wikicfp_id`, attempt a search and record the result in `venues.yaml` for future runs (reduces manual work when bootstrapping new domains). +- **Automated WikiCFP ID discovery** — when a venue has no `wikicfp_id`, attempt a search and record the result in `venues.yaml` for future runs (reduces manual work when bootstrapping new topics). +- **Cross-topic venue pages** — some venues (e.g., ASPLOS) span multiple topics. A future `cross_listed: [embedded-ai, cloud-edge]` field in `venues.yaml` could render the venue under multiple topic sections without duplicating data. diff --git a/build.sh b/build.sh index 3202fc7..d7b86e1 100755 --- a/build.sh +++ b/build.sh @@ -2,7 +2,8 @@ # Full build pipeline: fetch rankings → fetch deadlines → generate content → hugo build. # # Usage: -# ./build.sh # full build +# ./build.sh # full build (all topics) +# ./build.sh --topic cloud-edge # process one topic only # ./build.sh --skip-rankings # use cached CSVs # ./build.sh --skip-deadlines # use cached deadlines.yaml # ./build.sh --dev # run hugo server instead of building @@ -16,6 +17,7 @@ ICORE_QUERY="" SKIP_RANKINGS=0 SKIP_DEADLINES=0 HUGO_MODE="build" +TOPIC="" while [[ $# -gt 0 ]]; do case "$1" in @@ -23,6 +25,7 @@ while [[ $# -gt 0 ]]; do --skip-rankings) SKIP_RANKINGS=1; shift ;; --skip-deadlines) SKIP_DEADLINES=1; shift ;; --dev) HUGO_MODE="serve"; shift ;; + --topic) TOPIC="$2"; shift 2 ;; *) echo "Unknown option: $1"; exit 1 ;; esac done @@ -30,6 +33,7 @@ done # Ensure uv environment is ready uv sync --quiet +# Rankings are shared across all topics — fetch once if [[ $SKIP_RANKINGS -eq 0 ]]; then echo "==> Fetching ICORE rankings …" uv run pa-fetch-icore --query "$ICORE_QUERY" @@ -38,23 +42,54 @@ if [[ $SKIP_RANKINGS -eq 0 ]]; then uv run pa-fetch-scimago || echo " WARNING: SCImago fetch failed (anti-bot). Using cached/inline data." fi -if [[ $SKIP_DEADLINES -eq 0 ]]; then - # Only run if venues.yaml has at least one conference - if uv run python -c " -import yaml, sys -v = yaml.safe_load(open('site/data/venues.yaml')) -sys.exit(0 if (v or {}).get('conferences') else 1) -" 2>/dev/null; then - echo "==> Fetching deadlines …" - uv run pa-fetch-deadlines - else - echo "==> Skipping deadlines (no conferences in site/data/venues.yaml)" - fi +# Discover topics: either the single --topic flag or all from topics.yaml +if [[ -n "$TOPIC" ]]; then + TOPICS=("$TOPIC") +else + mapfile -t TOPICS < <(uv run python -c " +import yaml +data = yaml.safe_load(open('site/data/topics.yaml')) or {} +for t in data.get('topics', []): + print(t['slug']) +") fi -echo "==> Generating Hugo content …" -uv run pa-generate +for TOPIC_SLUG in "${TOPICS[@]}"; do + echo "" + echo "==> Processing topic: $TOPIC_SLUG" + DATA_DIR="site/data/${TOPIC_SLUG}" + CONTENT_DIR="site/content/${TOPIC_SLUG}" + BASE_PATH="/${TOPIC_SLUG}" + + if [[ $SKIP_DEADLINES -eq 0 ]]; then + # Only run if venues.yaml has at least one conference + if uv run python -c " +import yaml, sys +v = yaml.safe_load(open('${DATA_DIR}/venues.yaml')) +sys.exit(0 if (v or {}).get('conferences') else 1) +" 2>/dev/null; then + echo " --> Fetching deadlines …" + uv run pa-fetch-deadlines \ + --venues "${DATA_DIR}/venues.yaml" \ + --output "${DATA_DIR}/deadlines.yaml" + else + echo " --> Skipping deadlines (no conferences in venues.yaml)" + fi + fi + + echo " --> Generating Hugo content …" + uv run pa-generate \ + --venues "${DATA_DIR}/venues.yaml" \ + --deadlines "${DATA_DIR}/deadlines.yaml" \ + --papers-dir "${DATA_DIR}/papers" \ + --icore "site/data/rankings/icore.csv" \ + --scimago "site/data/rankings/scimago.csv" \ + --content "${CONTENT_DIR}" \ + --base-path "${BASE_PATH}" +done + +echo "" echo "==> Building Hugo site …" if [[ "$HUGO_MODE" == "serve" ]]; then hugo --source site server --buildDrafts --bind 0.0.0.0 diff --git a/site/assets/js/calendar.js b/site/assets/js/calendar.js index a89e8d8..8451537 100644 --- a/site/assets/js/calendar.js +++ b/site/assets/js/calendar.js @@ -12,6 +12,7 @@ document.addEventListener('DOMContentLoaded', function () { var cal = new Calendar(el, { plugins: [dayGridPlugin, listPlugin], initialView: 'dayGridMonth', + firstDay: 1, events: events, headerToolbar: { left: 'prev,next today', diff --git a/site/content/_index.md b/site/content/_index.md new file mode 100644 index 0000000..4674ac3 --- /dev/null +++ b/site/content/_index.md @@ -0,0 +1,5 @@ +--- +title: "Publish Assistant" +description: "Research venue tracker — select a topic." +draft: false +--- diff --git a/site/content/cloud-edge/_index.md b/site/content/cloud-edge/_index.md new file mode 100644 index 0000000..8798992 --- /dev/null +++ b/site/content/cloud-edge/_index.md @@ -0,0 +1,5 @@ +--- +title: "Edge and Cloud Systems" +description: "Conferences and journals for edge computing, cloud systems, and distributed systems." +draft: false +--- diff --git a/site/content/calendar/_index.md b/site/content/cloud-edge/calendar/_index.md similarity index 69% rename from site/content/calendar/_index.md rename to site/content/cloud-edge/calendar/_index.md index f89fb4c..caff47b 100644 --- a/site/content/calendar/_index.md +++ b/site/content/cloud-edge/calendar/_index.md @@ -1,12 +1,12 @@ --- title: Submission Deadlines layout: calendar -generated: '2026-04-26T12:49:15Z' +generated: '2026-04-26T18:22:46Z' draft: false events: - title: OSDI — abstract deadline start: '2025-12-04' - url: /venues/conferences/osdi/ + url: /cloud-edge/venues/conferences/osdi/ color: '#f4a261' allDay: true extendedProps: @@ -14,7 +14,7 @@ events: cfp_url: https://www.usenix.org/conference/osdi26/call-for-papers - title: OSDI — paper deadline start: '2025-12-11' - url: /venues/conferences/osdi/ + url: /cloud-edge/venues/conferences/osdi/ color: '#e63946' allDay: true extendedProps: @@ -22,7 +22,7 @@ events: cfp_url: https://www.usenix.org/conference/osdi26/call-for-papers - title: OSDI start: '2026-07-13' - url: /venues/conferences/osdi/ + url: /cloud-edge/venues/conferences/osdi/ color: '#457b9d' allDay: true end: '2026-07-16' @@ -30,7 +30,7 @@ events: location: Seattle, WA, USA - title: SOSP — abstract deadline start: '2026-03-26' - url: /venues/conferences/sosp/ + url: /cloud-edge/venues/conferences/sosp/ color: '#f4a261' allDay: true extendedProps: @@ -38,7 +38,7 @@ events: cfp_url: https://sigops.org/s/conferences/sosp/2026/cfp.html - title: SOSP — paper deadline start: '2026-04-01' - url: /venues/conferences/sosp/ + url: /cloud-edge/venues/conferences/sosp/ color: '#e63946' allDay: true extendedProps: @@ -46,7 +46,7 @@ events: cfp_url: https://sigops.org/s/conferences/sosp/2026/cfp.html - title: SOSP — notification start: '2026-07-03' - url: /venues/conferences/sosp/ + url: /cloud-edge/venues/conferences/sosp/ color: '#2a9d8f' allDay: true extendedProps: @@ -54,7 +54,7 @@ events: cfp_url: https://sigops.org/s/conferences/sosp/2026/cfp.html - title: SOSP start: '2026-09-29' - url: /venues/conferences/sosp/ + url: /cloud-edge/venues/conferences/sosp/ color: '#457b9d' allDay: true end: '2026-10-03' @@ -62,7 +62,7 @@ events: location: Prague, Czechia - title: NSDI — abstract deadline start: '2026-09-10' - url: /venues/conferences/nsdi/ + url: /cloud-edge/venues/conferences/nsdi/ color: '#f4a261' allDay: true extendedProps: @@ -70,7 +70,7 @@ events: cfp_url: https://www.usenix.org/conference/nsdi27/call-for-papers - title: NSDI — paper deadline start: '2026-09-17' - url: /venues/conferences/nsdi/ + url: /cloud-edge/venues/conferences/nsdi/ color: '#e63946' allDay: true extendedProps: @@ -78,7 +78,7 @@ events: cfp_url: https://www.usenix.org/conference/nsdi27/call-for-papers - title: NSDI — notification start: '2026-12-08' - url: /venues/conferences/nsdi/ + url: /cloud-edge/venues/conferences/nsdi/ color: '#2a9d8f' allDay: true extendedProps: @@ -86,7 +86,7 @@ events: cfp_url: https://www.usenix.org/conference/nsdi27/call-for-papers - title: NSDI start: '2027-05-11' - url: /venues/conferences/nsdi/ + url: /cloud-edge/venues/conferences/nsdi/ color: '#457b9d' allDay: true end: '2027-05-14' @@ -94,7 +94,7 @@ events: location: Providence, RI, USA - title: EuroSys — abstract deadline start: '2026-05-07' - url: /venues/conferences/eurosys/ + url: /cloud-edge/venues/conferences/eurosys/ color: '#f4a261' allDay: true extendedProps: @@ -102,7 +102,7 @@ events: cfp_url: https://2027.eurosys.org/cfp.html - title: EuroSys — paper deadline start: '2026-05-14' - url: /venues/conferences/eurosys/ + url: /cloud-edge/venues/conferences/eurosys/ color: '#e63946' allDay: true extendedProps: @@ -110,7 +110,7 @@ events: cfp_url: https://2027.eurosys.org/cfp.html - title: EuroSys — notification start: '2026-08-21' - url: /venues/conferences/eurosys/ + url: /cloud-edge/venues/conferences/eurosys/ color: '#2a9d8f' allDay: true extendedProps: @@ -118,7 +118,7 @@ events: cfp_url: https://2027.eurosys.org/cfp.html - title: EuroSys start: '2027-04-19' - url: /venues/conferences/eurosys/ + url: /cloud-edge/venues/conferences/eurosys/ color: '#457b9d' allDay: true end: '2027-04-25' @@ -126,7 +126,7 @@ events: location: Rabat, Morocco - title: ATC — paper deadline start: '2026-06-10' - url: /venues/conferences/atc/ + url: /cloud-edge/venues/conferences/atc/ color: '#e63946' allDay: true extendedProps: @@ -134,7 +134,7 @@ events: cfp_url: https://sigops.org/s/conferences/atc/2026/cfp.html - title: ATC — notification start: '2026-09-18' - url: /venues/conferences/atc/ + url: /cloud-edge/venues/conferences/atc/ color: '#2a9d8f' allDay: true extendedProps: @@ -142,7 +142,7 @@ events: cfp_url: https://sigops.org/s/conferences/atc/2026/cfp.html - title: ATC start: '2026-11-16' - url: /venues/conferences/atc/ + url: /cloud-edge/venues/conferences/atc/ color: '#457b9d' allDay: true end: '2026-11-19' @@ -150,7 +150,7 @@ events: location: Hong Kong - title: SoCC — abstract deadline start: '2026-07-07' - url: /venues/conferences/socc/ + url: /cloud-edge/venues/conferences/socc/ color: '#f4a261' allDay: true extendedProps: @@ -158,7 +158,7 @@ events: cfp_url: https://acmsocc.org/2026/papers.html - title: SoCC — paper deadline start: '2026-07-14' - url: /venues/conferences/socc/ + url: /cloud-edge/venues/conferences/socc/ color: '#e63946' allDay: true extendedProps: @@ -166,7 +166,7 @@ events: cfp_url: https://acmsocc.org/2026/papers.html - title: SoCC — notification start: '2026-09-26' - url: /venues/conferences/socc/ + url: /cloud-edge/venues/conferences/socc/ color: '#2a9d8f' allDay: true extendedProps: @@ -174,7 +174,7 @@ events: cfp_url: https://acmsocc.org/2026/papers.html - title: SoCC start: '2026-11-18' - url: /venues/conferences/socc/ + url: /cloud-edge/venues/conferences/socc/ color: '#457b9d' allDay: true end: '2026-11-21' @@ -182,7 +182,7 @@ events: location: Singapore - title: Middleware — abstract deadline start: '2026-05-29' - url: /venues/conferences/middleware/ + url: /cloud-edge/venues/conferences/middleware/ color: '#f4a261' allDay: true extendedProps: @@ -190,7 +190,7 @@ events: cfp_url: https://middleware-conf.github.io/2026/calls/call-for-research-papers/ - title: Middleware — paper deadline start: '2026-06-05' - url: /venues/conferences/middleware/ + url: /cloud-edge/venues/conferences/middleware/ color: '#e63946' allDay: true extendedProps: @@ -198,7 +198,7 @@ events: cfp_url: https://middleware-conf.github.io/2026/calls/call-for-research-papers/ - title: Middleware — notification start: '2026-08-28' - url: /venues/conferences/middleware/ + url: /cloud-edge/venues/conferences/middleware/ color: '#2a9d8f' allDay: true extendedProps: @@ -206,7 +206,7 @@ events: cfp_url: https://middleware-conf.github.io/2026/calls/call-for-research-papers/ - title: Middleware start: '2026-12-14' - url: /venues/conferences/middleware/ + url: /cloud-edge/venues/conferences/middleware/ color: '#457b9d' allDay: true end: '2026-12-19' @@ -214,7 +214,7 @@ events: location: Tarragona, Spain - title: IPDPS — abstract deadline start: '2025-10-02' - url: /venues/conferences/ipdps/ + url: /cloud-edge/venues/conferences/ipdps/ color: '#f4a261' allDay: true extendedProps: @@ -222,7 +222,7 @@ events: cfp_url: https://www.ipdps.org/ipdps2026/2026-call-for-papers.html - title: IPDPS — paper deadline start: '2025-10-09' - url: /venues/conferences/ipdps/ + url: /cloud-edge/venues/conferences/ipdps/ color: '#e63946' allDay: true extendedProps: @@ -230,7 +230,7 @@ events: cfp_url: https://www.ipdps.org/ipdps2026/2026-call-for-papers.html - title: IPDPS — notification start: '2026-02-02' - url: /venues/conferences/ipdps/ + url: /cloud-edge/venues/conferences/ipdps/ color: '#2a9d8f' allDay: true extendedProps: @@ -238,7 +238,7 @@ events: cfp_url: https://www.ipdps.org/ipdps2026/2026-call-for-papers.html - title: IPDPS start: '2026-05-25' - url: /venues/conferences/ipdps/ + url: /cloud-edge/venues/conferences/ipdps/ color: '#457b9d' allDay: true end: '2026-05-30' @@ -246,7 +246,7 @@ events: location: New Orleans, USA - title: SC — abstract deadline start: '2026-04-01' - url: /venues/conferences/sc/ + url: /cloud-edge/venues/conferences/sc/ color: '#f4a261' allDay: true extendedProps: @@ -254,7 +254,7 @@ events: cfp_url: https://sc26.supercomputing.org/program/papers/ - title: SC — paper deadline start: '2026-04-08' - url: /venues/conferences/sc/ + url: /cloud-edge/venues/conferences/sc/ color: '#e63946' allDay: true extendedProps: @@ -262,7 +262,7 @@ events: cfp_url: https://sc26.supercomputing.org/program/papers/ - title: SC — notification start: '2026-07-01' - url: /venues/conferences/sc/ + url: /cloud-edge/venues/conferences/sc/ color: '#2a9d8f' allDay: true extendedProps: @@ -270,7 +270,7 @@ events: cfp_url: https://sc26.supercomputing.org/program/papers/ - title: SC start: '2026-11-17' - url: /venues/conferences/sc/ + url: /cloud-edge/venues/conferences/sc/ color: '#457b9d' allDay: true end: '2026-11-20' @@ -278,7 +278,7 @@ events: location: Chicago, IL, USA - title: HPDC — abstract deadline start: '2026-01-29' - url: /venues/conferences/hpdc/ + url: /cloud-edge/venues/conferences/hpdc/ color: '#f4a261' allDay: true extendedProps: @@ -286,7 +286,7 @@ events: cfp_url: https://hpdc.sci.utah.edu/2026/calls-cfp.html - title: HPDC — paper deadline start: '2026-02-05' - url: /venues/conferences/hpdc/ + url: /cloud-edge/venues/conferences/hpdc/ color: '#e63946' allDay: true extendedProps: @@ -294,7 +294,7 @@ events: cfp_url: https://hpdc.sci.utah.edu/2026/calls-cfp.html - title: HPDC — notification start: '2026-03-31' - url: /venues/conferences/hpdc/ + url: /cloud-edge/venues/conferences/hpdc/ color: '#2a9d8f' allDay: true extendedProps: @@ -302,7 +302,7 @@ events: cfp_url: https://hpdc.sci.utah.edu/2026/calls-cfp.html - title: HPDC start: '2026-07-13' - url: /venues/conferences/hpdc/ + url: /cloud-edge/venues/conferences/hpdc/ color: '#457b9d' allDay: true end: '2026-07-17' @@ -310,61 +310,61 @@ events: location: Cleveland, OH, USA - title: MobiSys — abstract deadline start: '2025-11-28' - url: /venues/conferences/mobisys/ + url: /cloud-edge/venues/conferences/mobisys/ color: '#f4a261' allDay: true extendedProps: cfp_url: https://www.sigmobile.org/mobisys/2026/ - title: MobiSys — paper deadline start: '2025-12-05' - url: /venues/conferences/mobisys/ + url: /cloud-edge/venues/conferences/mobisys/ color: '#e63946' allDay: true extendedProps: cfp_url: https://www.sigmobile.org/mobisys/2026/ - title: MobiSys — notification start: '2026-03-02' - url: /venues/conferences/mobisys/ + url: /cloud-edge/venues/conferences/mobisys/ color: '#2a9d8f' allDay: true extendedProps: cfp_url: https://www.sigmobile.org/mobisys/2026/ - title: MobiSys start: '2026-06-22' - url: /venues/conferences/mobisys/ + url: /cloud-edge/venues/conferences/mobisys/ color: '#457b9d' allDay: true end: '2026-06-25' - title: SEC — abstract deadline start: '2026-04-24' - url: /venues/conferences/sec/ + 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' - url: /venues/conferences/sec/ + url: /cloud-edge/venues/conferences/sec/ color: '#e63946' allDay: true extendedProps: cfp_url: https://acm-ieee-sec.org/2026/ - title: SEC — notification start: '2026-07-29' - url: /venues/conferences/sec/ + url: /cloud-edge/venues/conferences/sec/ color: '#2a9d8f' allDay: true extendedProps: cfp_url: https://acm-ieee-sec.org/2026/ - title: SEC start: '2026-10-13' - url: /venues/conferences/sec/ + url: /cloud-edge/venues/conferences/sec/ color: '#457b9d' allDay: true end: '2026-10-17' - title: CCGrid — paper deadline start: '2025-12-21' - url: /venues/conferences/ccgrid/ + url: /cloud-edge/venues/conferences/ccgrid/ color: '#e63946' allDay: true extendedProps: @@ -372,7 +372,7 @@ events: cfp_url: https://ccgrid2026.org/cfp.html - title: CCGrid — notification start: '2026-02-10' - url: /venues/conferences/ccgrid/ + url: /cloud-edge/venues/conferences/ccgrid/ color: '#2a9d8f' allDay: true extendedProps: @@ -380,7 +380,7 @@ events: cfp_url: https://ccgrid2026.org/cfp.html - title: CCGrid start: '2026-05-18' - url: /venues/conferences/ccgrid/ + url: /cloud-edge/venues/conferences/ccgrid/ color: '#457b9d' allDay: true end: '2026-05-22' @@ -390,19 +390,19 @@ events: | Conference | Abstract | Paper deadline | Notification | Event dates | Location | ICORE | |---|---|---|---|---|---|---| -| [IPDPS](/venues/conferences/ipdps/) | Oct 2, 2025 | Oct 9, 2025 | Feb 2, 2026 | May 25-29, 2026 | New Orleans, USA | A | -| [MobiSys](/venues/conferences/mobisys/) | Nov 28, 2025 | Dec 5, 2025 | Mar 2, 2026 | Jun 22-24, 2026 | | A | -| [OSDI](/venues/conferences/osdi/) | Dec 4, 2025 | Dec 11, 2025 | | Jul 13-15, 2026 | Seattle, WA, USA | A* | -| [CCGrid](/venues/conferences/ccgrid/) | | Dec 21, 2025 | Feb 10, 2026 | May 18-21, 2026 | Sydney, Australia | B | -| [HPDC](/venues/conferences/hpdc/) | Jan 29, 2026 | Feb 5, 2026 | Mar 31, 2026 | Jul 13, 2026 - Jul 16, 2026 | Cleveland, OH, USA | A | -| [SOSP](/venues/conferences/sosp/) | Mar 26, 2026 | Apr 1, 2026 | Jul 3, 2026 | Sep 29, 2026 - Oct 2, 2026 | Prague, Czechia | A* | -| [SC](/venues/conferences/sc/) | Apr 1, 2026 | Apr 8, 2026 | Jul 1, 2026 | Nov 17-19, 2026 | Chicago, IL, USA | A | -| [SEC](/venues/conferences/sec/) | Apr 24, 2026 | May 1, 2026 | Jul 29, 2026 | Oct 13-16, 2026 | | unranked | -| [EuroSys](/venues/conferences/eurosys/) | May 7, 2026 | May 14, 2026 | Aug 21, 2026 | Apr 19-24, 2027 | Rabat, Morocco | A | -| [Middleware](/venues/conferences/middleware/) | May 29, 2026 | Jun 5, 2026 | Aug 28, 2026 | Dec 14-18, 2026 | Tarragona, Spain | A | -| [ATC](/venues/conferences/atc/) | | Jun 10, 2026 | Sep 18, 2026 | Nov 16-18, 2026 | Hong Kong | C | -| [SoCC](/venues/conferences/socc/) | Jul 7, 2026 | Jul 14, 2026 | Sep 26, 2026 | Nov 18-20, 2026 | Singapore | — | -| [NSDI](/venues/conferences/nsdi/) | Sep 10, 2026 | Sep 17, 2026 | Dec 8, 2026 | May 11-13, 2027 | Providence, RI, USA | National: USA | +| [IPDPS](/cloud-edge/venues/conferences/ipdps/) | Oct 2, 2025 | Oct 9, 2025 | Feb 2, 2026 | May 25-29, 2026 | New Orleans, USA | A | +| [MobiSys](/cloud-edge/venues/conferences/mobisys/) | Nov 28, 2025 | Dec 5, 2025 | Mar 2, 2026 | Jun 22-24, 2026 | | A | +| [OSDI](/cloud-edge/venues/conferences/osdi/) | Dec 4, 2025 | Dec 11, 2025 | | Jul 13-15, 2026 | Seattle, WA, USA | A* | +| [CCGrid](/cloud-edge/venues/conferences/ccgrid/) | | Dec 21, 2025 | Feb 10, 2026 | May 18-21, 2026 | Sydney, Australia | B | +| [HPDC](/cloud-edge/venues/conferences/hpdc/) | 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/) | Mar 26, 2026 | Apr 1, 2026 | Jul 3, 2026 | Sep 29, 2026 - Oct 2, 2026 | Prague, Czechia | A* | +| [SC](/cloud-edge/venues/conferences/sc/) | Apr 1, 2026 | Apr 8, 2026 | Jul 1, 2026 | Nov 17-19, 2026 | Chicago, IL, USA | A | +| [SEC](/cloud-edge/venues/conferences/sec/) | Apr 24, 2026 | May 1, 2026 | Jul 29, 2026 | Oct 13-16, 2026 | | unranked | +| [EuroSys](/cloud-edge/venues/conferences/eurosys/) | May 7, 2026 | May 14, 2026 | Aug 21, 2026 | Apr 19-24, 2027 | Rabat, Morocco | A | +| [Middleware](/cloud-edge/venues/conferences/middleware/) | May 29, 2026 | Jun 5, 2026 | Aug 28, 2026 | Dec 14-18, 2026 | Tarragona, Spain | A | +| [ATC](/cloud-edge/venues/conferences/atc/) | | Jun 10, 2026 | Sep 18, 2026 | Nov 16-18, 2026 | Hong Kong | C | +| [SoCC](/cloud-edge/venues/conferences/socc/) | Jul 7, 2026 | Jul 14, 2026 | Sep 26, 2026 | Nov 18-20, 2026 | Singapore | — | +| [NSDI](/cloud-edge/venues/conferences/nsdi/) | Sep 10, 2026 | Sep 17, 2026 | Dec 8, 2026 | May 11-13, 2027 | Providence, RI, USA | National: USA | > Deadlines sourced from conference websites and [WikiCFP](http://www.wikicfp.com/). diff --git a/site/content/digests/ATC-2024/index.md b/site/content/cloud-edge/digests/ATC-2024/index.md similarity index 100% rename from site/content/digests/ATC-2024/index.md rename to site/content/cloud-edge/digests/ATC-2024/index.md diff --git a/site/content/digests/ATC-2025/index.md b/site/content/cloud-edge/digests/ATC-2025/index.md similarity index 100% rename from site/content/digests/ATC-2025/index.md rename to site/content/cloud-edge/digests/ATC-2025/index.md diff --git a/site/content/digests/ATC-2026/index.md b/site/content/cloud-edge/digests/ATC-2026/index.md similarity index 100% rename from site/content/digests/ATC-2026/index.md rename to site/content/cloud-edge/digests/ATC-2026/index.md diff --git a/site/content/digests/CCGrid-2024/index.md b/site/content/cloud-edge/digests/CCGrid-2024/index.md similarity index 100% rename from site/content/digests/CCGrid-2024/index.md rename to site/content/cloud-edge/digests/CCGrid-2024/index.md diff --git a/site/content/digests/CCGrid-2026/index.md b/site/content/cloud-edge/digests/CCGrid-2026/index.md similarity index 100% rename from site/content/digests/CCGrid-2026/index.md rename to site/content/cloud-edge/digests/CCGrid-2026/index.md diff --git a/site/content/digests/EuroSys-2024/index.md b/site/content/cloud-edge/digests/EuroSys-2024/index.md similarity index 100% rename from site/content/digests/EuroSys-2024/index.md rename to site/content/cloud-edge/digests/EuroSys-2024/index.md diff --git a/site/content/digests/EuroSys-2025/index.md b/site/content/cloud-edge/digests/EuroSys-2025/index.md similarity index 100% rename from site/content/digests/EuroSys-2025/index.md rename to site/content/cloud-edge/digests/EuroSys-2025/index.md diff --git a/site/content/digests/EuroSys-2027/index.md b/site/content/cloud-edge/digests/EuroSys-2027/index.md similarity index 100% rename from site/content/digests/EuroSys-2027/index.md rename to site/content/cloud-edge/digests/EuroSys-2027/index.md diff --git a/site/content/digests/FGCS-2024/index.md b/site/content/cloud-edge/digests/FGCS-2024/index.md similarity index 100% rename from site/content/digests/FGCS-2024/index.md rename to site/content/cloud-edge/digests/FGCS-2024/index.md diff --git a/site/content/digests/FGCS-2025/index.md b/site/content/cloud-edge/digests/FGCS-2025/index.md similarity index 100% rename from site/content/digests/FGCS-2025/index.md rename to site/content/cloud-edge/digests/FGCS-2025/index.md diff --git a/site/content/digests/FGCS-2026/index.md b/site/content/cloud-edge/digests/FGCS-2026/index.md similarity index 100% rename from site/content/digests/FGCS-2026/index.md rename to site/content/cloud-edge/digests/FGCS-2026/index.md diff --git a/site/content/digests/HPDC-2024/index.md b/site/content/cloud-edge/digests/HPDC-2024/index.md similarity index 100% rename from site/content/digests/HPDC-2024/index.md rename to site/content/cloud-edge/digests/HPDC-2024/index.md diff --git a/site/content/digests/HPDC-2025/index.md b/site/content/cloud-edge/digests/HPDC-2025/index.md similarity index 100% rename from site/content/digests/HPDC-2025/index.md rename to site/content/cloud-edge/digests/HPDC-2025/index.md diff --git a/site/content/digests/HPDC-2026/index.md b/site/content/cloud-edge/digests/HPDC-2026/index.md similarity index 100% rename from site/content/digests/HPDC-2026/index.md rename to site/content/cloud-edge/digests/HPDC-2026/index.md diff --git a/site/content/digests/IC-2024/index.md b/site/content/cloud-edge/digests/IC-2024/index.md similarity index 100% rename from site/content/digests/IC-2024/index.md rename to site/content/cloud-edge/digests/IC-2024/index.md diff --git a/site/content/digests/IC-2025/index.md b/site/content/cloud-edge/digests/IC-2025/index.md similarity index 100% rename from site/content/digests/IC-2025/index.md rename to site/content/cloud-edge/digests/IC-2025/index.md diff --git a/site/content/digests/IC-2026/index.md b/site/content/cloud-edge/digests/IC-2026/index.md similarity index 100% rename from site/content/digests/IC-2026/index.md rename to site/content/cloud-edge/digests/IC-2026/index.md diff --git a/site/content/digests/IPDPS-2024/index.md b/site/content/cloud-edge/digests/IPDPS-2024/index.md similarity index 100% rename from site/content/digests/IPDPS-2024/index.md rename to site/content/cloud-edge/digests/IPDPS-2024/index.md diff --git a/site/content/digests/IPDPS-2025/index.md b/site/content/cloud-edge/digests/IPDPS-2025/index.md similarity index 100% rename from site/content/digests/IPDPS-2025/index.md rename to site/content/cloud-edge/digests/IPDPS-2025/index.md diff --git a/site/content/digests/IPDPS-2026/index.md b/site/content/cloud-edge/digests/IPDPS-2026/index.md similarity index 100% rename from site/content/digests/IPDPS-2026/index.md rename to site/content/cloud-edge/digests/IPDPS-2026/index.md diff --git a/site/content/digests/JPDC-2024/index.md b/site/content/cloud-edge/digests/JPDC-2024/index.md similarity index 100% rename from site/content/digests/JPDC-2024/index.md rename to site/content/cloud-edge/digests/JPDC-2024/index.md diff --git a/site/content/digests/JPDC-2025/index.md b/site/content/cloud-edge/digests/JPDC-2025/index.md similarity index 100% rename from site/content/digests/JPDC-2025/index.md rename to site/content/cloud-edge/digests/JPDC-2025/index.md diff --git a/site/content/digests/JPDC-2026/index.md b/site/content/cloud-edge/digests/JPDC-2026/index.md similarity index 100% rename from site/content/digests/JPDC-2026/index.md rename to site/content/cloud-edge/digests/JPDC-2026/index.md diff --git a/site/content/digests/Middleware-2024/index.md b/site/content/cloud-edge/digests/Middleware-2024/index.md similarity index 100% rename from site/content/digests/Middleware-2024/index.md rename to site/content/cloud-edge/digests/Middleware-2024/index.md diff --git a/site/content/digests/Middleware-2025/index.md b/site/content/cloud-edge/digests/Middleware-2025/index.md similarity index 100% rename from site/content/digests/Middleware-2025/index.md rename to site/content/cloud-edge/digests/Middleware-2025/index.md diff --git a/site/content/digests/Middleware-2026/index.md b/site/content/cloud-edge/digests/Middleware-2026/index.md similarity index 100% rename from site/content/digests/Middleware-2026/index.md rename to site/content/cloud-edge/digests/Middleware-2026/index.md diff --git a/site/content/digests/MobiSys-2024/index.md b/site/content/cloud-edge/digests/MobiSys-2024/index.md similarity index 100% rename from site/content/digests/MobiSys-2024/index.md rename to site/content/cloud-edge/digests/MobiSys-2024/index.md diff --git a/site/content/digests/MobiSys-2025/index.md b/site/content/cloud-edge/digests/MobiSys-2025/index.md similarity index 100% rename from site/content/digests/MobiSys-2025/index.md rename to site/content/cloud-edge/digests/MobiSys-2025/index.md diff --git a/site/content/digests/MobiSys-2026/index.md b/site/content/cloud-edge/digests/MobiSys-2026/index.md similarity index 100% rename from site/content/digests/MobiSys-2026/index.md rename to site/content/cloud-edge/digests/MobiSys-2026/index.md diff --git a/site/content/digests/NSDI-2024/index.md b/site/content/cloud-edge/digests/NSDI-2024/index.md similarity index 100% rename from site/content/digests/NSDI-2024/index.md rename to site/content/cloud-edge/digests/NSDI-2024/index.md diff --git a/site/content/digests/NSDI-2025/index.md b/site/content/cloud-edge/digests/NSDI-2025/index.md similarity index 100% rename from site/content/digests/NSDI-2025/index.md rename to site/content/cloud-edge/digests/NSDI-2025/index.md diff --git a/site/content/digests/NSDI-2027/index.md b/site/content/cloud-edge/digests/NSDI-2027/index.md similarity index 100% rename from site/content/digests/NSDI-2027/index.md rename to site/content/cloud-edge/digests/NSDI-2027/index.md diff --git a/site/content/digests/OSDI-2024/index.md b/site/content/cloud-edge/digests/OSDI-2024/index.md similarity index 100% rename from site/content/digests/OSDI-2024/index.md rename to site/content/cloud-edge/digests/OSDI-2024/index.md diff --git a/site/content/digests/OSDI-2025/index.md b/site/content/cloud-edge/digests/OSDI-2025/index.md similarity index 100% rename from site/content/digests/OSDI-2025/index.md rename to site/content/cloud-edge/digests/OSDI-2025/index.md diff --git a/site/content/digests/OSDI-2026/index.md b/site/content/cloud-edge/digests/OSDI-2026/index.md similarity index 100% rename from site/content/digests/OSDI-2026/index.md rename to site/content/cloud-edge/digests/OSDI-2026/index.md diff --git a/site/content/digests/SC-2024/index.md b/site/content/cloud-edge/digests/SC-2024/index.md similarity index 100% rename from site/content/digests/SC-2024/index.md rename to site/content/cloud-edge/digests/SC-2024/index.md diff --git a/site/content/digests/SC-2025/index.md b/site/content/cloud-edge/digests/SC-2025/index.md similarity index 100% rename from site/content/digests/SC-2025/index.md rename to site/content/cloud-edge/digests/SC-2025/index.md diff --git a/site/content/digests/SC-2026/index.md b/site/content/cloud-edge/digests/SC-2026/index.md similarity index 100% rename from site/content/digests/SC-2026/index.md rename to site/content/cloud-edge/digests/SC-2026/index.md diff --git a/site/content/digests/SEC-2024/index.md b/site/content/cloud-edge/digests/SEC-2024/index.md similarity index 100% rename from site/content/digests/SEC-2024/index.md rename to site/content/cloud-edge/digests/SEC-2024/index.md diff --git a/site/content/digests/SEC-2025/index.md b/site/content/cloud-edge/digests/SEC-2025/index.md similarity index 100% rename from site/content/digests/SEC-2025/index.md rename to site/content/cloud-edge/digests/SEC-2025/index.md diff --git a/site/content/digests/SEC-2026/index.md b/site/content/cloud-edge/digests/SEC-2026/index.md similarity index 100% rename from site/content/digests/SEC-2026/index.md rename to site/content/cloud-edge/digests/SEC-2026/index.md diff --git a/site/content/digests/SOSP-2024/index.md b/site/content/cloud-edge/digests/SOSP-2024/index.md similarity index 100% rename from site/content/digests/SOSP-2024/index.md rename to site/content/cloud-edge/digests/SOSP-2024/index.md diff --git a/site/content/digests/SOSP-2025/index.md b/site/content/cloud-edge/digests/SOSP-2025/index.md similarity index 100% rename from site/content/digests/SOSP-2025/index.md rename to site/content/cloud-edge/digests/SOSP-2025/index.md diff --git a/site/content/digests/SOSP-2026/index.md b/site/content/cloud-edge/digests/SOSP-2026/index.md similarity index 100% rename from site/content/digests/SOSP-2026/index.md rename to site/content/cloud-edge/digests/SOSP-2026/index.md diff --git a/site/content/digests/SoCC-2024/index.md b/site/content/cloud-edge/digests/SoCC-2024/index.md similarity index 100% rename from site/content/digests/SoCC-2024/index.md rename to site/content/cloud-edge/digests/SoCC-2024/index.md diff --git a/site/content/digests/SoCC-2025/index.md b/site/content/cloud-edge/digests/SoCC-2025/index.md similarity index 100% rename from site/content/digests/SoCC-2025/index.md rename to site/content/cloud-edge/digests/SoCC-2025/index.md diff --git a/site/content/digests/SoCC-2026/index.md b/site/content/cloud-edge/digests/SoCC-2026/index.md similarity index 100% rename from site/content/digests/SoCC-2026/index.md rename to site/content/cloud-edge/digests/SoCC-2026/index.md diff --git a/site/content/digests/TC-2024/index.md b/site/content/cloud-edge/digests/TC-2024/index.md similarity index 100% rename from site/content/digests/TC-2024/index.md rename to site/content/cloud-edge/digests/TC-2024/index.md diff --git a/site/content/digests/TC-2025/index.md b/site/content/cloud-edge/digests/TC-2025/index.md similarity index 100% rename from site/content/digests/TC-2025/index.md rename to site/content/cloud-edge/digests/TC-2025/index.md diff --git a/site/content/digests/TC-2026/index.md b/site/content/cloud-edge/digests/TC-2026/index.md similarity index 100% rename from site/content/digests/TC-2026/index.md rename to site/content/cloud-edge/digests/TC-2026/index.md diff --git a/site/content/digests/TCC-2024/index.md b/site/content/cloud-edge/digests/TCC-2024/index.md similarity index 100% rename from site/content/digests/TCC-2024/index.md rename to site/content/cloud-edge/digests/TCC-2024/index.md diff --git a/site/content/digests/TCC-2025/index.md b/site/content/cloud-edge/digests/TCC-2025/index.md similarity index 100% rename from site/content/digests/TCC-2025/index.md rename to site/content/cloud-edge/digests/TCC-2025/index.md diff --git a/site/content/digests/TCC-2026/index.md b/site/content/cloud-edge/digests/TCC-2026/index.md similarity index 100% rename from site/content/digests/TCC-2026/index.md rename to site/content/cloud-edge/digests/TCC-2026/index.md diff --git a/site/content/digests/TOCS-2024/index.md b/site/content/cloud-edge/digests/TOCS-2024/index.md similarity index 100% rename from site/content/digests/TOCS-2024/index.md rename to site/content/cloud-edge/digests/TOCS-2024/index.md diff --git a/site/content/digests/TOCS-2025/index.md b/site/content/cloud-edge/digests/TOCS-2025/index.md similarity index 100% rename from site/content/digests/TOCS-2025/index.md rename to site/content/cloud-edge/digests/TOCS-2025/index.md diff --git a/site/content/digests/TOCS-2026/index.md b/site/content/cloud-edge/digests/TOCS-2026/index.md similarity index 100% rename from site/content/digests/TOCS-2026/index.md rename to site/content/cloud-edge/digests/TOCS-2026/index.md diff --git a/site/content/digests/TPDS-2024/index.md b/site/content/cloud-edge/digests/TPDS-2024/index.md similarity index 100% rename from site/content/digests/TPDS-2024/index.md rename to site/content/cloud-edge/digests/TPDS-2024/index.md diff --git a/site/content/digests/TPDS-2025/index.md b/site/content/cloud-edge/digests/TPDS-2025/index.md similarity index 100% rename from site/content/digests/TPDS-2025/index.md rename to site/content/cloud-edge/digests/TPDS-2025/index.md diff --git a/site/content/digests/TPDS-2026/index.md b/site/content/cloud-edge/digests/TPDS-2026/index.md similarity index 100% rename from site/content/digests/TPDS-2026/index.md rename to site/content/cloud-edge/digests/TPDS-2026/index.md diff --git a/site/content/digests/_index.md b/site/content/cloud-edge/digests/_index.md similarity index 100% rename from site/content/digests/_index.md rename to site/content/cloud-edge/digests/_index.md diff --git a/site/content/cloud-edge/venues/_index.md b/site/content/cloud-edge/venues/_index.md new file mode 100644 index 0000000..916ca97 --- /dev/null +++ b/site/content/cloud-edge/venues/_index.md @@ -0,0 +1,9 @@ +--- +title: Venues +draft: false +--- + +Tracking **13 conferences** and **7 journals** for this domain. + +- **[Conferences →](/cloud-edge/venues/conferences/)** ranked by ICORE (A*, A, B, C) +- **[Journals →](/cloud-edge/venues/journals/)** ranked by SCImago quartile (Q1–Q4) diff --git a/site/content/venues/conferences/ATC/_index.md b/site/content/cloud-edge/venues/conferences/ATC/_index.md similarity index 72% rename from site/content/venues/conferences/ATC/_index.md rename to site/content/cloud-edge/venues/conferences/ATC/_index.md index dfac63d..35b4cdf 100644 --- a/site/content/venues/conferences/ATC/_index.md +++ b/site/content/cloud-edge/venues/conferences/ATC/_index.md @@ -26,6 +26,7 @@ cfp_url: https://sigops.org/s/conferences/atc/2026/cfp.html | **ICORE Rank** | **C** | | **Domains** | `edge-and-cloud`, `operating-systems`, `distributed-systems` | | **Website** | [https://sigops.org/s/conferences/atc/2026/](https://sigops.org/s/conferences/atc/2026/) | +| **Latest digest** | [ATC 2025](/cloud-edge/digests/atc-2025/) — 13 papers | ## Upcoming Deadline @@ -39,7 +40,20 @@ cfp_url: https://sigops.org/s/conferences/atc/2026/cfp.html | **CFP** | [https://sigops.org/s/conferences/atc/2026/cfp.html](https://sigops.org/s/conferences/atc/2026/cfp.html) | | **Source** | `wikicfp:192652` | -## Digests +## Previous Editions + +### ATC 2025 + +| | | +|---|---| +| **Papers digested** | 13 | +| **Topics** | `operating-systems`, `cloud`, `storage`, `networking` | +| **Digest** | [→ ATC 2025 Digest](/cloud-edge/digests/atc-2025/) | + +### ATC 2024 + +| | | +|---|---| +| **Papers digested** | 12 | +| **Digest** | [→ ATC 2024 Digest](/cloud-edge/digests/atc-2024/) | -- [ATC 2025](/digests/atc-2025/) — 13 papers -- [ATC 2024](/digests/atc-2024/) — 12 papers diff --git a/site/content/venues/conferences/CCGrid/_index.md b/site/content/cloud-edge/venues/conferences/CCGrid/_index.md similarity index 76% rename from site/content/venues/conferences/CCGrid/_index.md rename to site/content/cloud-edge/venues/conferences/CCGrid/_index.md index be61fff..c369f13 100644 --- a/site/content/venues/conferences/CCGrid/_index.md +++ b/site/content/cloud-edge/venues/conferences/CCGrid/_index.md @@ -26,6 +26,7 @@ cfp_url: https://ccgrid2026.org/cfp.html | **ICORE Rank** | **B** | | **Domains** | `edge-and-cloud`, `cloud-computing`, `hpc`, `distributed-systems` | | **Website** | [https://ccgrid2026.org/](https://ccgrid2026.org/) | +| **Latest digest** | [CCGrid 2024](/cloud-edge/digests/ccgrid-2024/) — 10 papers | ## Upcoming Deadline @@ -38,6 +39,13 @@ cfp_url: https://ccgrid2026.org/cfp.html | **Location** | Sydney, Australia | | **CFP** | [https://ccgrid2026.org/cfp.html](https://ccgrid2026.org/cfp.html) | -## Digests +## Previous Editions + +### CCGrid 2024 + +| | | +|---|---| +| **Papers digested** | 10 | +| **Topics** | `cloud-computing`, `distributed-systems`, `hpc` | +| **Digest** | [→ CCGrid 2024 Digest](/cloud-edge/digests/ccgrid-2024/) | -- [CCGrid 2024](/digests/ccgrid-2024/) — 10 papers diff --git a/site/content/venues/conferences/EuroSys/_index.md b/site/content/cloud-edge/venues/conferences/EuroSys/_index.md similarity index 64% rename from site/content/venues/conferences/EuroSys/_index.md rename to site/content/cloud-edge/venues/conferences/EuroSys/_index.md index a4ebe34..af5f0b3 100644 --- a/site/content/venues/conferences/EuroSys/_index.md +++ b/site/content/cloud-edge/venues/conferences/EuroSys/_index.md @@ -26,6 +26,7 @@ cfp_url: https://2027.eurosys.org/cfp.html | **ICORE Rank** | **A** | | **Domains** | `edge-and-cloud`, `operating-systems`, `distributed-systems` | | **Website** | [https://2027.eurosys.org/](https://2027.eurosys.org/) | +| **Latest digest** | [EuroSys 2025](/cloud-edge/digests/eurosys-2025/) — 13 papers | ## Upcoming Deadline @@ -39,7 +40,20 @@ cfp_url: https://2027.eurosys.org/cfp.html | **CFP** | [https://2027.eurosys.org/cfp.html](https://2027.eurosys.org/cfp.html) | | **Source** | `wikicfp:186524` | -## Digests +## Previous Editions + +### EuroSys 2025 + +| | | +|---|---| +| **Papers digested** | 13 | +| **Topics** | `operating-systems`, `distributed-systems`, `cloud`, `storage`, `memory`, `networking`, `llm-systems`, `security`, `hardware-software-co-design`, `serverless` | +| **Digest** | [→ EuroSys 2025 Digest](/cloud-edge/digests/eurosys-2025/) | + +### EuroSys 2024 + +| | | +|---|---| +| **Papers digested** | 13 | +| **Digest** | [→ EuroSys 2024 Digest](/cloud-edge/digests/eurosys-2024/) | -- [EuroSys 2025](/digests/eurosys-2025/) — 13 papers -- [EuroSys 2024](/digests/eurosys-2024/) — 13 papers diff --git a/site/content/venues/conferences/HPDC/_index.md b/site/content/cloud-edge/venues/conferences/HPDC/_index.md similarity index 71% rename from site/content/venues/conferences/HPDC/_index.md rename to site/content/cloud-edge/venues/conferences/HPDC/_index.md index cfe13fd..2703ed9 100644 --- a/site/content/venues/conferences/HPDC/_index.md +++ b/site/content/cloud-edge/venues/conferences/HPDC/_index.md @@ -27,6 +27,7 @@ cfp_url: https://hpdc.sci.utah.edu/2026/calls-cfp.html | **ICORE Rank** | **A** | | **Domains** | `edge-and-cloud`, `hpc`, `distributed-systems` | | **Website** | [https://www.hpdc.org/](https://www.hpdc.org/) | +| **Latest digest** | [HPDC 2025](/cloud-edge/digests/hpdc-2025/) — 10 papers | ## Upcoming Deadline @@ -41,7 +42,20 @@ cfp_url: https://hpdc.sci.utah.edu/2026/calls-cfp.html | **CFP** | [https://hpdc.sci.utah.edu/2026/calls-cfp.html](https://hpdc.sci.utah.edu/2026/calls-cfp.html) | | **Source** | `wikicfp:191029` | -## Digests +## Previous Editions + +### HPDC 2025 + +| | | +|---|---| +| **Papers digested** | 10 | +| **Topics** | `hpc`, `distributed-systems`, `networking`, `storage`, `scheduling`, `cloud-hpc`, `performance` | +| **Digest** | [→ HPDC 2025 Digest](/cloud-edge/digests/hpdc-2025/) | + +### HPDC 2024 + +| | | +|---|---| +| **Papers digested** | 12 | +| **Digest** | [→ HPDC 2024 Digest](/cloud-edge/digests/hpdc-2024/) | -- [HPDC 2025](/digests/hpdc-2025/) — 10 papers -- [HPDC 2024](/digests/hpdc-2024/) — 12 papers diff --git a/site/content/venues/conferences/IPDPS/_index.md b/site/content/cloud-edge/venues/conferences/IPDPS/_index.md similarity index 72% rename from site/content/venues/conferences/IPDPS/_index.md rename to site/content/cloud-edge/venues/conferences/IPDPS/_index.md index d2de9b8..3e1e78d 100644 --- a/site/content/venues/conferences/IPDPS/_index.md +++ b/site/content/cloud-edge/venues/conferences/IPDPS/_index.md @@ -27,6 +27,7 @@ cfp_url: https://www.ipdps.org/ipdps2026/2026-call-for-papers.html | **ICORE Rank** | **A** | | **Domains** | `edge-and-cloud`, `parallel-computing`, `distributed-systems` | | **Website** | [https://www.ipdps.org/](https://www.ipdps.org/) | +| **Latest digest** | [IPDPS 2025](/cloud-edge/digests/ipdps-2025/) — 12 papers | ## Upcoming Deadline @@ -41,7 +42,20 @@ cfp_url: https://www.ipdps.org/ipdps2026/2026-call-for-papers.html | **CFP** | [https://www.ipdps.org/ipdps2026/2026-call-for-papers.html](https://www.ipdps.org/ipdps2026/2026-call-for-papers.html) | | **Source** | `wikicfp:189093` | -## Digests +## Previous Editions + +### IPDPS 2025 + +| | | +|---|---| +| **Papers digested** | 12 | +| **Topics** | `parallel-computing`, `hpc`, `distributed-systems`, `gpu` | +| **Digest** | [→ IPDPS 2025 Digest](/cloud-edge/digests/ipdps-2025/) | + +### IPDPS 2024 + +| | | +|---|---| +| **Papers digested** | 14 | +| **Digest** | [→ IPDPS 2024 Digest](/cloud-edge/digests/ipdps-2024/) | -- [IPDPS 2025](/digests/ipdps-2025/) — 12 papers -- [IPDPS 2024](/digests/ipdps-2024/) — 14 papers diff --git a/site/content/venues/conferences/Middleware/_index.md b/site/content/cloud-edge/venues/conferences/Middleware/_index.md similarity index 71% rename from site/content/venues/conferences/Middleware/_index.md rename to site/content/cloud-edge/venues/conferences/Middleware/_index.md index f9cbab5..c95b464 100644 --- a/site/content/venues/conferences/Middleware/_index.md +++ b/site/content/cloud-edge/venues/conferences/Middleware/_index.md @@ -26,6 +26,7 @@ cfp_url: https://middleware-conf.github.io/2026/calls/call-for-research-papers/ | **ICORE Rank** | **A** | | **Domains** | `edge-and-cloud`, `distributed-systems` | | **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 @@ -40,7 +41,20 @@ cfp_url: https://middleware-conf.github.io/2026/calls/call-for-research-papers/ | **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` | -## Digests +## Previous Editions + +### Middleware 2025 + +| | | +|---|---| +| **Papers digested** | 12 | +| **Digest** | [→ Middleware 2025 Digest](/cloud-edge/digests/middleware-2025/) | + +### Middleware 2024 + +| | | +|---|---| +| **Papers digested** | 11 | +| **Topics** | `distributed-systems`, `edge-computing`, `cloud` | +| **Digest** | [→ Middleware 2024 Digest](/cloud-edge/digests/middleware-2024/) | -- [Middleware 2025](/digests/middleware-2025/) — 12 papers -- [Middleware 2024](/digests/middleware-2024/) — 11 papers diff --git a/site/content/venues/conferences/MobiSys/_index.md b/site/content/cloud-edge/venues/conferences/MobiSys/_index.md similarity index 70% rename from site/content/venues/conferences/MobiSys/_index.md rename to site/content/cloud-edge/venues/conferences/MobiSys/_index.md index 22d2c00..bb4c822 100644 --- a/site/content/venues/conferences/MobiSys/_index.md +++ b/site/content/cloud-edge/venues/conferences/MobiSys/_index.md @@ -25,6 +25,7 @@ cfp_url: https://www.sigmobile.org/mobisys/2026/ | **ICORE Rank** | **A** | | **Domains** | `edge-and-cloud`, `mobile-computing`, `edge-computing` | | **Website** | [https://www.sigmobile.org/mobisys/2026/](https://www.sigmobile.org/mobisys/2026/) | +| **Latest digest** | [MobiSys 2025](/cloud-edge/digests/mobisys-2025/) — 12 papers | ## Upcoming Deadline @@ -37,7 +38,20 @@ cfp_url: https://www.sigmobile.org/mobisys/2026/ | **Event dates** | Jun 22-24, 2026 | | **CFP** | [https://www.sigmobile.org/mobisys/2026/](https://www.sigmobile.org/mobisys/2026/) | -## Digests +## Previous Editions + +### MobiSys 2025 + +| | | +|---|---| +| **Papers digested** | 12 | +| **Topics** | `mobile-computing`, `edge-computing`, `networking` | +| **Digest** | [→ MobiSys 2025 Digest](/cloud-edge/digests/mobisys-2025/) | + +### MobiSys 2024 + +| | | +|---|---| +| **Papers digested** | 13 | +| **Digest** | [→ MobiSys 2024 Digest](/cloud-edge/digests/mobisys-2024/) | -- [MobiSys 2025](/digests/mobisys-2025/) — 12 papers -- [MobiSys 2024](/digests/mobisys-2024/) — 13 papers diff --git a/site/content/venues/conferences/NSDI/_index.md b/site/content/cloud-edge/venues/conferences/NSDI/_index.md similarity index 68% rename from site/content/venues/conferences/NSDI/_index.md rename to site/content/cloud-edge/venues/conferences/NSDI/_index.md index 92f5f4f..6fcffe3 100644 --- a/site/content/venues/conferences/NSDI/_index.md +++ b/site/content/cloud-edge/venues/conferences/NSDI/_index.md @@ -25,6 +25,7 @@ cfp_url: https://www.usenix.org/conference/nsdi27/call-for-papers | **ICORE Rank** | **National: USA** | | **Domains** | `edge-and-cloud`, `networking`, `distributed-systems` | | **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 @@ -37,7 +38,20 @@ cfp_url: https://www.usenix.org/conference/nsdi27/call-for-papers | **Location** | Providence, RI, USA | | **CFP** | [https://www.usenix.org/conference/nsdi27/call-for-papers](https://www.usenix.org/conference/nsdi27/call-for-papers) | -## Digests +## Previous Editions + +### NSDI 2025 + +| | | +|---|---| +| **Papers digested** | 13 | +| **Topics** | `networking`, `distributed-systems`, `cloud`, `programmable-data-planes`, `network-verification`, `datacenter`, `transport`, `ml-systems`, `5g` | +| **Digest** | [→ NSDI 2025 Digest](/cloud-edge/digests/nsdi-2025/) | + +### NSDI 2024 + +| | | +|---|---| +| **Papers digested** | 13 | +| **Digest** | [→ NSDI 2024 Digest](/cloud-edge/digests/nsdi-2024/) | -- [NSDI 2025](/digests/nsdi-2025/) — 13 papers -- [NSDI 2024](/digests/nsdi-2024/) — 13 papers diff --git a/site/content/venues/conferences/OSDI/_index.md b/site/content/cloud-edge/venues/conferences/OSDI/_index.md similarity index 69% rename from site/content/venues/conferences/OSDI/_index.md rename to site/content/cloud-edge/venues/conferences/OSDI/_index.md index 5b323bc..6d0ba7d 100644 --- a/site/content/venues/conferences/OSDI/_index.md +++ b/site/content/cloud-edge/venues/conferences/OSDI/_index.md @@ -24,6 +24,7 @@ cfp_url: https://www.usenix.org/conference/osdi26/call-for-papers | **ICORE Rank** | **A*** | | **Domains** | `edge-and-cloud`, `operating-systems`, `distributed-systems` | | **Website** | [https://www.usenix.org/conference/osdi26](https://www.usenix.org/conference/osdi26) | +| **Latest digest** | [OSDI 2025](/cloud-edge/digests/osdi-2025/) — 13 papers | ## Upcoming Deadline @@ -35,7 +36,20 @@ cfp_url: https://www.usenix.org/conference/osdi26/call-for-papers | **Location** | Seattle, WA, USA | | **CFP** | [https://www.usenix.org/conference/osdi26/call-for-papers](https://www.usenix.org/conference/osdi26/call-for-papers) | -## Digests +## Previous Editions + +### OSDI 2025 + +| | | +|---|---| +| **Papers digested** | 13 | +| **Digest** | [→ OSDI 2025 Digest](/cloud-edge/digests/osdi-2025/) | + +### OSDI 2024 + +| | | +|---|---| +| **Papers digested** | 11 | +| **Topics** | `llm-serving`, `distributed-systems`, `verification`, `memory`, `networking`, `storage` | +| **Digest** | [→ OSDI 2024 Digest](/cloud-edge/digests/osdi-2024/) | -- [OSDI 2025](/digests/osdi-2025/) — 13 papers -- [OSDI 2024](/digests/osdi-2024/) — 11 papers diff --git a/site/content/venues/conferences/SC/_index.md b/site/content/cloud-edge/venues/conferences/SC/_index.md similarity index 77% rename from site/content/venues/conferences/SC/_index.md rename to site/content/cloud-edge/venues/conferences/SC/_index.md index 279f3ce..93f98fb 100644 --- a/site/content/venues/conferences/SC/_index.md +++ b/site/content/cloud-edge/venues/conferences/SC/_index.md @@ -28,6 +28,7 @@ cfp_url: https://sc26.supercomputing.org/program/papers/ | **ICORE Rank** | **A** | | **Domains** | `edge-and-cloud`, `hpc`, `distributed-systems` | | **Website** | [https://sc24.supercomputing.org/](https://sc24.supercomputing.org/) | +| **Latest digest** | [SC 2025](/cloud-edge/digests/sc-2025/) — 15 papers | ## Upcoming Deadline @@ -42,7 +43,19 @@ cfp_url: https://sc26.supercomputing.org/program/papers/ | **CFP** | [https://sc26.supercomputing.org/program/papers/](https://sc26.supercomputing.org/program/papers/) | | **Source** | `wikicfp:194274` | -## Digests +## Previous Editions + +### SC 2025 + +| | | +|---|---| +| **Papers digested** | 15 | +| **Digest** | [→ SC 2025 Digest](/cloud-edge/digests/sc-2025/) | + +### SC 2024 + +| | | +|---|---| +| **Papers digested** | 15 | +| **Digest** | [→ SC 2024 Digest](/cloud-edge/digests/sc-2024/) | -- [SC 2025](/digests/sc-2025/) — 15 papers -- [SC 2024](/digests/sc-2024/) — 15 papers diff --git a/site/content/venues/conferences/SEC/_index.md b/site/content/cloud-edge/venues/conferences/SEC/_index.md similarity index 73% rename from site/content/venues/conferences/SEC/_index.md rename to site/content/cloud-edge/venues/conferences/SEC/_index.md index 870a96e..0dc9d36 100644 --- a/site/content/venues/conferences/SEC/_index.md +++ b/site/content/cloud-edge/venues/conferences/SEC/_index.md @@ -25,6 +25,7 @@ cfp_url: https://acm-ieee-sec.org/2026/ | **ICORE Rank** | **unranked** | | **Domains** | `edge-and-cloud`, `edge-computing` | | **Website** | [https://acm-ieee-sec.org/2026/](https://acm-ieee-sec.org/2026/) | +| **Latest digest** | [SEC 2025](/cloud-edge/digests/sec-2025/) — 12 papers | ## Upcoming Deadline @@ -38,7 +39,19 @@ cfp_url: https://acm-ieee-sec.org/2026/ | **CFP** | [https://acm-ieee-sec.org/2026/](https://acm-ieee-sec.org/2026/) | | **Source** | `wikicfp:189776` | -## Digests +## Previous Editions + +### SEC 2025 + +| | | +|---|---| +| **Papers digested** | 12 | +| **Digest** | [→ SEC 2025 Digest](/cloud-edge/digests/sec-2025/) | + +### SEC 2024 + +| | | +|---|---| +| **Papers digested** | 12 | +| **Digest** | [→ SEC 2024 Digest](/cloud-edge/digests/sec-2024/) | -- [SEC 2025](/digests/sec-2025/) — 12 papers -- [SEC 2024](/digests/sec-2024/) — 12 papers diff --git a/site/content/venues/conferences/SOSP/_index.md b/site/content/cloud-edge/venues/conferences/SOSP/_index.md similarity index 70% rename from site/content/venues/conferences/SOSP/_index.md rename to site/content/cloud-edge/venues/conferences/SOSP/_index.md index 380e641..92fbab6 100644 --- a/site/content/venues/conferences/SOSP/_index.md +++ b/site/content/cloud-edge/venues/conferences/SOSP/_index.md @@ -27,6 +27,7 @@ cfp_url: https://sigops.org/s/conferences/sosp/2026/cfp.html | **ICORE Rank** | **A*** | | **Domains** | `edge-and-cloud`, `operating-systems`, `distributed-systems` | | **Website** | [https://sigops.org/s/conferences/sosp/](https://sigops.org/s/conferences/sosp/) | +| **Latest digest** | [SOSP 2025](/cloud-edge/digests/sosp-2025/) — 14 papers | ## Upcoming Deadline @@ -41,7 +42,20 @@ cfp_url: https://sigops.org/s/conferences/sosp/2026/cfp.html | **CFP** | [https://sigops.org/s/conferences/sosp/2026/cfp.html](https://sigops.org/s/conferences/sosp/2026/cfp.html) | | **Source** | `wikicfp:191399` | -## Digests +## Previous Editions + +### SOSP 2025 + +| | | +|---|---| +| **Papers digested** | 14 | +| **Digest** | [→ SOSP 2025 Digest](/cloud-edge/digests/sosp-2025/) | + +### SOSP 2024 + +| | | +|---|---| +| **Papers digested** | 13 | +| **Topics** | `operating-systems`, `distributed-systems`, `storage`, `cloud`, `formal-verification`, `ml-systems`, `security`, `serverless` | +| **Digest** | [→ SOSP 2024 Digest](/cloud-edge/digests/sosp-2024/) | -- [SOSP 2025](/digests/sosp-2025/) — 14 papers -- [SOSP 2024](/digests/sosp-2024/) — 13 papers diff --git a/site/content/venues/conferences/SoCC/_index.md b/site/content/cloud-edge/venues/conferences/SoCC/_index.md similarity index 70% rename from site/content/venues/conferences/SoCC/_index.md rename to site/content/cloud-edge/venues/conferences/SoCC/_index.md index 82f91cf..890939a 100644 --- a/site/content/venues/conferences/SoCC/_index.md +++ b/site/content/cloud-edge/venues/conferences/SoCC/_index.md @@ -26,6 +26,7 @@ cfp_url: https://acmsocc.org/2026/papers.html | **ICORE Rank** | **—** | | **Domains** | `edge-and-cloud`, `cloud-computing` | | **Website** | [https://acmsocc.org/2026/](https://acmsocc.org/2026/) | +| **Latest digest** | [SoCC 2025](/cloud-edge/digests/socc-2025/) — 13 papers | ## Upcoming Deadline @@ -40,7 +41,20 @@ cfp_url: https://acmsocc.org/2026/papers.html | **CFP** | [https://acmsocc.org/2026/papers.html](https://acmsocc.org/2026/papers.html) | | **Source** | `wikicfp:191071` | -## Digests +## Previous Editions + +### SoCC 2025 + +| | | +|---|---| +| **Papers digested** | 13 | +| **Digest** | [→ SoCC 2025 Digest](/cloud-edge/digests/socc-2025/) | + +### SoCC 2024 + +| | | +|---|---| +| **Papers digested** | 12 | +| **Topics** | `cloud-computing`, `distributed-systems` | +| **Digest** | [→ SoCC 2024 Digest](/cloud-edge/digests/socc-2024/) | -- [SoCC 2025](/digests/socc-2025/) — 13 papers -- [SoCC 2024](/digests/socc-2024/) — 12 papers diff --git a/site/content/cloud-edge/venues/conferences/_index.md b/site/content/cloud-edge/venues/conferences/_index.md new file mode 100644 index 0000000..39273cb --- /dev/null +++ b/site/content/cloud-edge/venues/conferences/_index.md @@ -0,0 +1,21 @@ +--- +title: Conferences +description: 13 tracked conferences +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 | +| [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-24, 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-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 | +| [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 17-19, 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 | diff --git a/site/content/venues/journals/FGCS/_index.md b/site/content/cloud-edge/venues/journals/FGCS/_index.md similarity index 68% rename from site/content/venues/journals/FGCS/_index.md rename to site/content/cloud-edge/venues/journals/FGCS/_index.md index d9c4ecf..a7f9fca 100644 --- a/site/content/venues/journals/FGCS/_index.md +++ b/site/content/cloud-edge/venues/journals/FGCS/_index.md @@ -27,8 +27,21 @@ homepage: https://www.sciencedirect.com/journal/future-generation-computer-syste | **Submission model** | Rolling | | **Domains** | `edge-and-cloud`, `cloud-computing`, `distributed-systems` | | **Website** | [https://www.sciencedirect.com/journal/future-generation-computer-systems](https://www.sciencedirect.com/journal/future-generation-computer-systems) | +| **Latest digest** | [FGCS 2025](/cloud-edge/digests/fgcs-2025/) — 12 papers | -## Digests +## Previous Editions + +### FGCS 2025 + +| | | +|---|---| +| **Papers digested** | 12 | +| **Digest** | [→ FGCS 2025 Digest](/cloud-edge/digests/fgcs-2025/) | + +### FGCS 2024 + +| | | +|---|---| +| **Papers digested** | 12 | +| **Digest** | [→ FGCS 2024 Digest](/cloud-edge/digests/fgcs-2024/) | -- [FGCS 2025](/digests/fgcs-2025/) — 12 papers -- [FGCS 2024](/digests/fgcs-2024/) — 12 papers diff --git a/site/content/venues/journals/IC/_index.md b/site/content/cloud-edge/venues/journals/IC/_index.md similarity index 65% rename from site/content/venues/journals/IC/_index.md rename to site/content/cloud-edge/venues/journals/IC/_index.md index c9b6b84..ec3495a 100644 --- a/site/content/venues/journals/IC/_index.md +++ b/site/content/cloud-edge/venues/journals/IC/_index.md @@ -27,8 +27,21 @@ scimago_h_index: '122' | **Submission model** | Rolling | | **Domains** | `edge-and-cloud`, `networking`, `cloud-computing` | | **Website** | [https://www.computer.org/csdl/magazine/ic](https://www.computer.org/csdl/magazine/ic) | +| **Latest digest** | [IC 2025](/cloud-edge/digests/ic-2025/) — 10 papers | -## Digests +## Previous Editions + +### IC 2025 + +| | | +|---|---| +| **Papers digested** | 10 | +| **Digest** | [→ IC 2025 Digest](/cloud-edge/digests/ic-2025/) | + +### IC 2024 + +| | | +|---|---| +| **Papers digested** | 10 | +| **Digest** | [→ IC 2024 Digest](/cloud-edge/digests/ic-2024/) | -- [IC 2025](/digests/ic-2025/) — 10 papers -- [IC 2024](/digests/ic-2024/) — 10 papers diff --git a/site/content/venues/journals/JPDC/_index.md b/site/content/cloud-edge/venues/journals/JPDC/_index.md similarity index 70% rename from site/content/venues/journals/JPDC/_index.md rename to site/content/cloud-edge/venues/journals/JPDC/_index.md index f2d6f88..111a837 100644 --- a/site/content/venues/journals/JPDC/_index.md +++ b/site/content/cloud-edge/venues/journals/JPDC/_index.md @@ -27,8 +27,21 @@ homepage: https://www.sciencedirect.com/journal/journal-of-parallel-and-distribu | **Submission model** | Rolling | | **Domains** | `edge-and-cloud`, `parallel-computing`, `distributed-systems` | | **Website** | [https://www.sciencedirect.com/journal/journal-of-parallel-and-distributed-computing](https://www.sciencedirect.com/journal/journal-of-parallel-and-distributed-computing) | +| **Latest digest** | [JPDC 2025](/cloud-edge/digests/jpdc-2025/) — 12 papers | -## Digests +## Previous Editions + +### JPDC 2025 + +| | | +|---|---| +| **Papers digested** | 12 | +| **Digest** | [→ JPDC 2025 Digest](/cloud-edge/digests/jpdc-2025/) | + +### JPDC 2024 + +| | | +|---|---| +| **Papers digested** | 12 | +| **Digest** | [→ JPDC 2024 Digest](/cloud-edge/digests/jpdc-2024/) | -- [JPDC 2025](/digests/jpdc-2025/) — 12 papers -- [JPDC 2024](/digests/jpdc-2024/) — 12 papers diff --git a/site/content/venues/journals/TC/_index.md b/site/content/cloud-edge/venues/journals/TC/_index.md similarity index 66% rename from site/content/venues/journals/TC/_index.md rename to site/content/cloud-edge/venues/journals/TC/_index.md index 8f6ecb0..652d860 100644 --- a/site/content/venues/journals/TC/_index.md +++ b/site/content/cloud-edge/venues/journals/TC/_index.md @@ -27,8 +27,21 @@ homepage: https://www.computer.org/csdl/journal/tc | **Submission model** | Rolling | | **Domains** | `edge-and-cloud`, `computer-architecture`, `distributed-systems` | | **Website** | [https://www.computer.org/csdl/journal/tc](https://www.computer.org/csdl/journal/tc) | +| **Latest digest** | [TC 2025](/cloud-edge/digests/tc-2025/) — 12 papers | -## Digests +## Previous Editions + +### TC 2025 + +| | | +|---|---| +| **Papers digested** | 12 | +| **Digest** | [→ TC 2025 Digest](/cloud-edge/digests/tc-2025/) | + +### TC 2024 + +| | | +|---|---| +| **Papers digested** | 12 | +| **Digest** | [→ TC 2024 Digest](/cloud-edge/digests/tc-2024/) | -- [TC 2025](/digests/tc-2025/) — 12 papers -- [TC 2024](/digests/tc-2024/) — 12 papers diff --git a/site/content/venues/journals/TCC/_index.md b/site/content/cloud-edge/venues/journals/TCC/_index.md similarity index 64% rename from site/content/venues/journals/TCC/_index.md rename to site/content/cloud-edge/venues/journals/TCC/_index.md index 515875d..5e347b9 100644 --- a/site/content/venues/journals/TCC/_index.md +++ b/site/content/cloud-edge/venues/journals/TCC/_index.md @@ -26,8 +26,21 @@ homepage: https://www.computer.org/csdl/journal/cc | **Submission model** | Rolling | | **Domains** | `edge-and-cloud`, `cloud-computing` | | **Website** | [https://www.computer.org/csdl/journal/cc](https://www.computer.org/csdl/journal/cc) | +| **Latest digest** | [TCC 2025](/cloud-edge/digests/tcc-2025/) — 12 papers | -## Digests +## Previous Editions + +### TCC 2025 + +| | | +|---|---| +| **Papers digested** | 12 | +| **Digest** | [→ TCC 2025 Digest](/cloud-edge/digests/tcc-2025/) | + +### TCC 2024 + +| | | +|---|---| +| **Papers digested** | 12 | +| **Digest** | [→ TCC 2024 Digest](/cloud-edge/digests/tcc-2024/) | -- [TCC 2025](/digests/tcc-2025/) — 12 papers -- [TCC 2024](/digests/tcc-2024/) — 12 papers diff --git a/site/content/venues/journals/TOCS/_index.md b/site/content/cloud-edge/venues/journals/TOCS/_index.md similarity index 65% rename from site/content/venues/journals/TOCS/_index.md rename to site/content/cloud-edge/venues/journals/TOCS/_index.md index 150c657..d3136ce 100644 --- a/site/content/venues/journals/TOCS/_index.md +++ b/site/content/cloud-edge/venues/journals/TOCS/_index.md @@ -27,8 +27,21 @@ homepage: https://dl.acm.org/journal/tocs | **Submission model** | Rolling | | **Domains** | `edge-and-cloud`, `operating-systems`, `distributed-systems` | | **Website** | [https://dl.acm.org/journal/tocs](https://dl.acm.org/journal/tocs) | +| **Latest digest** | [TOCS 2025](/cloud-edge/digests/tocs-2025/) — 10 papers | -## Digests +## Previous Editions + +### TOCS 2025 + +| | | +|---|---| +| **Papers digested** | 10 | +| **Digest** | [→ TOCS 2025 Digest](/cloud-edge/digests/tocs-2025/) | + +### TOCS 2024 + +| | | +|---|---| +| **Papers digested** | 8 | +| **Digest** | [→ TOCS 2024 Digest](/cloud-edge/digests/tocs-2024/) | -- [TOCS 2025](/digests/tocs-2025/) — 10 papers -- [TOCS 2024](/digests/tocs-2024/) — 8 papers diff --git a/site/content/venues/journals/TPDS/_index.md b/site/content/cloud-edge/venues/journals/TPDS/_index.md similarity index 67% rename from site/content/venues/journals/TPDS/_index.md rename to site/content/cloud-edge/venues/journals/TPDS/_index.md index e2eec26..78232f4 100644 --- a/site/content/venues/journals/TPDS/_index.md +++ b/site/content/cloud-edge/venues/journals/TPDS/_index.md @@ -27,8 +27,21 @@ homepage: https://www.computer.org/csdl/journal/td | **Submission model** | Rolling | | **Domains** | `edge-and-cloud`, `parallel-computing`, `distributed-systems` | | **Website** | [https://www.computer.org/csdl/journal/td](https://www.computer.org/csdl/journal/td) | +| **Latest digest** | [TPDS 2025](/cloud-edge/digests/tpds-2025/) — 12 papers | -## Digests +## Previous Editions + +### TPDS 2025 + +| | | +|---|---| +| **Papers digested** | 12 | +| **Digest** | [→ TPDS 2025 Digest](/cloud-edge/digests/tpds-2025/) | + +### TPDS 2024 + +| | | +|---|---| +| **Papers digested** | 12 | +| **Digest** | [→ TPDS 2024 Digest](/cloud-edge/digests/tpds-2024/) | -- [TPDS 2025](/digests/tpds-2025/) — 12 papers -- [TPDS 2024](/digests/tpds-2024/) — 12 papers diff --git a/site/content/cloud-edge/venues/journals/_index.md b/site/content/cloud-edge/venues/journals/_index.md new file mode 100644 index 0000000..e5fdb1a --- /dev/null +++ b/site/content/cloud-edge/venues/journals/_index.md @@ -0,0 +1,15 @@ +--- +title: Journals +description: 7 tracked journals +draft: false +--- + +| Journal | Full name | SCImago | SJR | H-Index | Model | Domains | Digests | +|---|---|---|---|---|---|---|---| +| [FGCS](/cloud-edge/venues/journals/fgcs/) | Future Generation Computer Systems | **Q1** | 1.520 | 130 | Rolling | `edge-and-cloud`, `cloud-computing`, `distributed-systems` | 2 | +| [IC](/cloud-edge/venues/journals/ic/) | IEEE Internet Computing | **Q1** | 0.995 | 122 | Rolling | `edge-and-cloud`, `networking`, `cloud-computing` | 2 | +| [TC](/cloud-edge/venues/journals/tc/) | IEEE Transactions on Computers | **Q1** | 1.310 | 148 | Rolling | `edge-and-cloud`, `computer-architecture`, `distributed-systems` | 2 | +| [TCC](/cloud-edge/venues/journals/tcc/) | IEEE Transactions on Cloud Computing | **Q1** | 1.420 | 68 | Rolling | `edge-and-cloud`, `cloud-computing` | 2 | +| [TOCS](/cloud-edge/venues/journals/tocs/) | ACM Transactions on Computer Systems | **Q1** | 1.180 | 79 | Rolling | `edge-and-cloud`, `operating-systems`, `distributed-systems` | 2 | +| [TPDS](/cloud-edge/venues/journals/tpds/) | IEEE Transactions on Parallel and Distributed Systems | **Q1** | 1.560 | 131 | Rolling | `edge-and-cloud`, `parallel-computing`, `distributed-systems` | 2 | +| [JPDC](/cloud-edge/venues/journals/jpdc/) | Journal of Parallel and Distributed Computing | **Q2** | 0.640 | 83 | Rolling | `edge-and-cloud`, `parallel-computing`, `distributed-systems` | 2 | diff --git a/site/content/venues/_index.md b/site/content/venues/_index.md deleted file mode 100644 index 2d5543a..0000000 --- a/site/content/venues/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Venues -draft: false ---- - -Tracking **13 conferences** and **7 journals** for this domain. - -- **[Conferences →](/venues/conferences/)** ranked by ICORE (A*, A, B, C) -- **[Journals →](/venues/journals/)** ranked by SCImago quartile (Q1–Q4) diff --git a/site/content/venues/conferences/_index.md b/site/content/venues/conferences/_index.md deleted file mode 100644 index 6e55737..0000000 --- a/site/content/venues/conferences/_index.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: Conferences -description: 13 tracked conferences -draft: false ---- - -| Conference | Full name | ICORE | Abstract | Paper deadline | Notification | Event | Location | -|---|---|---|---|---|---|---|---| -| [OSDI](/venues/conferences/osdi/) | USENIX Symposium on Operating Systems Design and Implementation | **A*** | Dec 4, 2025 | Dec 11, 2025 | | Jul 13-15, 2026 | Seattle, WA, USA | -| [SOSP](/venues/conferences/sosp/) | ACM Symposium on Operating Systems Principles | **A*** | Mar 26, 2026 | Apr 1, 2026 | Jul 3, 2026 | Sep 29, 2026 - Oct 2, 2026 | Prague, Czechia | -| [EuroSys](/venues/conferences/eurosys/) | European Conference on Computer Systems | **A** | May 7, 2026 | May 14, 2026 | Aug 21, 2026 | Apr 19-24, 2027 | Rabat, Morocco | -| [HPDC](/venues/conferences/hpdc/) | IEEE International Symposium on High Performance Distributed Computing | **A** | Jan 29, 2026 | Feb 5, 2026 | Mar 31, 2026 | Jul 13, 2026 - Jul 16, 2026 | Cleveland, OH, USA | -| [IPDPS](/venues/conferences/ipdps/) | IEEE International Parallel and Distributed Processing Symposium | **A** | Oct 2, 2025 | Oct 9, 2025 | Feb 2, 2026 | May 25-29, 2026 | New Orleans, USA | -| [Middleware](/venues/conferences/middleware/) | ACM/IFIP/USENIX Middleware Conference | **A** | May 29, 2026 | Jun 5, 2026 | Aug 28, 2026 | Dec 14-18, 2026 | Tarragona, Spain | -| [MobiSys](/venues/conferences/mobisys/) | ACM International Conference on Mobile Systems, Applications, and Services | **A** | Nov 28, 2025 | Dec 5, 2025 | Mar 2, 2026 | Jun 22-24, 2026 | | -| [SC](/venues/conferences/sc/) | International Conference for High Performance Computing, Networking, Storage and Analysis | **A** | Apr 1, 2026 | Apr 8, 2026 | Jul 1, 2026 | Nov 17-19, 2026 | Chicago, IL, USA | -| [CCGrid](/venues/conferences/ccgrid/) | IEEE/ACM International Symposium on Cluster, Cloud and Internet Computing | **B** | | Dec 21, 2025 | Feb 10, 2026 | May 18-21, 2026 | Sydney, Australia | -| [ATC](/venues/conferences/atc/) | ACM SIGOPS Annual Technical Conference | **C** | | Jun 10, 2026 | Sep 18, 2026 | Nov 16-18, 2026 | Hong Kong | -| [NSDI](/venues/conferences/nsdi/) | USENIX Symposium on Networked Systems Design and Implementation | **National: USA** | Sep 10, 2026 | Sep 17, 2026 | Dec 8, 2026 | May 11-13, 2027 | Providence, RI, USA | -| [SEC](/venues/conferences/sec/) | IEEE/ACM Symposium on Edge Computing | **unranked** | Apr 24, 2026 | May 1, 2026 | Jul 29, 2026 | Oct 13-16, 2026 | | -| [SoCC](/venues/conferences/socc/) | ACM Symposium on Cloud Computing | **—** | Jul 7, 2026 | Jul 14, 2026 | Sep 26, 2026 | Nov 18-20, 2026 | Singapore | diff --git a/site/content/venues/journals/_index.md b/site/content/venues/journals/_index.md deleted file mode 100644 index e0e2d84..0000000 --- a/site/content/venues/journals/_index.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Journals -description: 7 tracked journals -draft: false ---- - -| Journal | Full name | SCImago | SJR | H-Index | Model | Domains | -|---|---|---|---|---|---|---| -| [FGCS](/venues/journals/fgcs/) | Future Generation Computer Systems | **Q1** | 1.520 | 130 | Rolling | `edge-and-cloud`, `cloud-computing`, `distributed-systems` | -| [IC](/venues/journals/ic/) | IEEE Internet Computing | **Q1** | 0.995 | 122 | Rolling | `edge-and-cloud`, `networking`, `cloud-computing` | -| [TC](/venues/journals/tc/) | IEEE Transactions on Computers | **Q1** | 1.310 | 148 | Rolling | `edge-and-cloud`, `computer-architecture`, `distributed-systems` | -| [TCC](/venues/journals/tcc/) | IEEE Transactions on Cloud Computing | **Q1** | 1.420 | 68 | Rolling | `edge-and-cloud`, `cloud-computing` | -| [TOCS](/venues/journals/tocs/) | ACM Transactions on Computer Systems | **Q1** | 1.180 | 79 | Rolling | `edge-and-cloud`, `operating-systems`, `distributed-systems` | -| [TPDS](/venues/journals/tpds/) | IEEE Transactions on Parallel and Distributed Systems | **Q1** | 1.560 | 131 | Rolling | `edge-and-cloud`, `parallel-computing`, `distributed-systems` | -| [JPDC](/venues/journals/jpdc/) | Journal of Parallel and Distributed Computing | **Q2** | 0.640 | 83 | Rolling | `edge-and-cloud`, `parallel-computing`, `distributed-systems` | diff --git a/site/data/best_papers.yaml b/site/data/cloud-edge/best_papers.yaml similarity index 100% rename from site/data/best_papers.yaml rename to site/data/cloud-edge/best_papers.yaml diff --git a/site/data/deadlines.yaml b/site/data/cloud-edge/deadlines.yaml similarity index 100% rename from site/data/deadlines.yaml rename to site/data/cloud-edge/deadlines.yaml diff --git a/site/data/papers/.gitkeep b/site/data/cloud-edge/papers/.gitkeep similarity index 100% rename from site/data/papers/.gitkeep rename to site/data/cloud-edge/papers/.gitkeep diff --git a/site/data/papers/ATC-2024-candidates.yaml b/site/data/cloud-edge/papers/ATC-2024-candidates.yaml similarity index 100% rename from site/data/papers/ATC-2024-candidates.yaml rename to site/data/cloud-edge/papers/ATC-2024-candidates.yaml diff --git a/site/data/papers/ATC-2024-digest.yaml b/site/data/cloud-edge/papers/ATC-2024-digest.yaml similarity index 100% rename from site/data/papers/ATC-2024-digest.yaml rename to site/data/cloud-edge/papers/ATC-2024-digest.yaml diff --git a/site/data/papers/ATC-2025-candidates.yaml b/site/data/cloud-edge/papers/ATC-2025-candidates.yaml similarity index 100% rename from site/data/papers/ATC-2025-candidates.yaml rename to site/data/cloud-edge/papers/ATC-2025-candidates.yaml diff --git a/site/data/papers/ATC-2025-digest.yaml b/site/data/cloud-edge/papers/ATC-2025-digest.yaml similarity index 100% rename from site/data/papers/ATC-2025-digest.yaml rename to site/data/cloud-edge/papers/ATC-2025-digest.yaml diff --git a/site/data/papers/CCGrid-2024-candidates.yaml b/site/data/cloud-edge/papers/CCGrid-2024-candidates.yaml similarity index 100% rename from site/data/papers/CCGrid-2024-candidates.yaml rename to site/data/cloud-edge/papers/CCGrid-2024-candidates.yaml diff --git a/site/data/papers/CCGrid-2024-digest.yaml b/site/data/cloud-edge/papers/CCGrid-2024-digest.yaml similarity index 100% rename from site/data/papers/CCGrid-2024-digest.yaml rename to site/data/cloud-edge/papers/CCGrid-2024-digest.yaml diff --git a/site/data/papers/EuroSys-2024-candidates.yaml b/site/data/cloud-edge/papers/EuroSys-2024-candidates.yaml similarity index 100% rename from site/data/papers/EuroSys-2024-candidates.yaml rename to site/data/cloud-edge/papers/EuroSys-2024-candidates.yaml diff --git a/site/data/papers/EuroSys-2024-digest.yaml b/site/data/cloud-edge/papers/EuroSys-2024-digest.yaml similarity index 100% rename from site/data/papers/EuroSys-2024-digest.yaml rename to site/data/cloud-edge/papers/EuroSys-2024-digest.yaml diff --git a/site/data/papers/EuroSys-2025-candidates.yaml b/site/data/cloud-edge/papers/EuroSys-2025-candidates.yaml similarity index 100% rename from site/data/papers/EuroSys-2025-candidates.yaml rename to site/data/cloud-edge/papers/EuroSys-2025-candidates.yaml diff --git a/site/data/papers/EuroSys-2025-digest.yaml b/site/data/cloud-edge/papers/EuroSys-2025-digest.yaml similarity index 100% rename from site/data/papers/EuroSys-2025-digest.yaml rename to site/data/cloud-edge/papers/EuroSys-2025-digest.yaml diff --git a/site/data/papers/FGCS-2024-candidates.yaml b/site/data/cloud-edge/papers/FGCS-2024-candidates.yaml similarity index 100% rename from site/data/papers/FGCS-2024-candidates.yaml rename to site/data/cloud-edge/papers/FGCS-2024-candidates.yaml diff --git a/site/data/papers/FGCS-2024-digest.yaml b/site/data/cloud-edge/papers/FGCS-2024-digest.yaml similarity index 100% rename from site/data/papers/FGCS-2024-digest.yaml rename to site/data/cloud-edge/papers/FGCS-2024-digest.yaml diff --git a/site/data/papers/FGCS-2025-candidates.yaml b/site/data/cloud-edge/papers/FGCS-2025-candidates.yaml similarity index 100% rename from site/data/papers/FGCS-2025-candidates.yaml rename to site/data/cloud-edge/papers/FGCS-2025-candidates.yaml diff --git a/site/data/papers/FGCS-2025-digest.yaml b/site/data/cloud-edge/papers/FGCS-2025-digest.yaml similarity index 100% rename from site/data/papers/FGCS-2025-digest.yaml rename to site/data/cloud-edge/papers/FGCS-2025-digest.yaml diff --git a/site/data/papers/HPDC-2024-candidates.yaml b/site/data/cloud-edge/papers/HPDC-2024-candidates.yaml similarity index 100% rename from site/data/papers/HPDC-2024-candidates.yaml rename to site/data/cloud-edge/papers/HPDC-2024-candidates.yaml diff --git a/site/data/papers/HPDC-2024-digest.yaml b/site/data/cloud-edge/papers/HPDC-2024-digest.yaml similarity index 100% rename from site/data/papers/HPDC-2024-digest.yaml rename to site/data/cloud-edge/papers/HPDC-2024-digest.yaml diff --git a/site/data/papers/HPDC-2025-candidates.yaml b/site/data/cloud-edge/papers/HPDC-2025-candidates.yaml similarity index 100% rename from site/data/papers/HPDC-2025-candidates.yaml rename to site/data/cloud-edge/papers/HPDC-2025-candidates.yaml diff --git a/site/data/papers/HPDC-2025-digest.yaml b/site/data/cloud-edge/papers/HPDC-2025-digest.yaml similarity index 100% rename from site/data/papers/HPDC-2025-digest.yaml rename to site/data/cloud-edge/papers/HPDC-2025-digest.yaml diff --git a/site/data/papers/IC-2024-candidates.yaml b/site/data/cloud-edge/papers/IC-2024-candidates.yaml similarity index 100% rename from site/data/papers/IC-2024-candidates.yaml rename to site/data/cloud-edge/papers/IC-2024-candidates.yaml diff --git a/site/data/papers/IC-2024-digest.yaml b/site/data/cloud-edge/papers/IC-2024-digest.yaml similarity index 100% rename from site/data/papers/IC-2024-digest.yaml rename to site/data/cloud-edge/papers/IC-2024-digest.yaml diff --git a/site/data/papers/IC-2025-candidates.yaml b/site/data/cloud-edge/papers/IC-2025-candidates.yaml similarity index 100% rename from site/data/papers/IC-2025-candidates.yaml rename to site/data/cloud-edge/papers/IC-2025-candidates.yaml diff --git a/site/data/papers/IC-2025-digest.yaml b/site/data/cloud-edge/papers/IC-2025-digest.yaml similarity index 100% rename from site/data/papers/IC-2025-digest.yaml rename to site/data/cloud-edge/papers/IC-2025-digest.yaml diff --git a/site/data/papers/IPDPS-2024-candidates.yaml b/site/data/cloud-edge/papers/IPDPS-2024-candidates.yaml similarity index 100% rename from site/data/papers/IPDPS-2024-candidates.yaml rename to site/data/cloud-edge/papers/IPDPS-2024-candidates.yaml diff --git a/site/data/papers/IPDPS-2024-digest.yaml b/site/data/cloud-edge/papers/IPDPS-2024-digest.yaml similarity index 100% rename from site/data/papers/IPDPS-2024-digest.yaml rename to site/data/cloud-edge/papers/IPDPS-2024-digest.yaml diff --git a/site/data/papers/IPDPS-2025-candidates.yaml b/site/data/cloud-edge/papers/IPDPS-2025-candidates.yaml similarity index 100% rename from site/data/papers/IPDPS-2025-candidates.yaml rename to site/data/cloud-edge/papers/IPDPS-2025-candidates.yaml diff --git a/site/data/papers/IPDPS-2025-digest.yaml b/site/data/cloud-edge/papers/IPDPS-2025-digest.yaml similarity index 100% rename from site/data/papers/IPDPS-2025-digest.yaml rename to site/data/cloud-edge/papers/IPDPS-2025-digest.yaml diff --git a/site/data/papers/JPDC-2024-candidates.yaml b/site/data/cloud-edge/papers/JPDC-2024-candidates.yaml similarity index 100% rename from site/data/papers/JPDC-2024-candidates.yaml rename to site/data/cloud-edge/papers/JPDC-2024-candidates.yaml diff --git a/site/data/papers/JPDC-2024-digest.yaml b/site/data/cloud-edge/papers/JPDC-2024-digest.yaml similarity index 100% rename from site/data/papers/JPDC-2024-digest.yaml rename to site/data/cloud-edge/papers/JPDC-2024-digest.yaml diff --git a/site/data/papers/JPDC-2025-candidates.yaml b/site/data/cloud-edge/papers/JPDC-2025-candidates.yaml similarity index 100% rename from site/data/papers/JPDC-2025-candidates.yaml rename to site/data/cloud-edge/papers/JPDC-2025-candidates.yaml diff --git a/site/data/papers/JPDC-2025-digest.yaml b/site/data/cloud-edge/papers/JPDC-2025-digest.yaml similarity index 100% rename from site/data/papers/JPDC-2025-digest.yaml rename to site/data/cloud-edge/papers/JPDC-2025-digest.yaml diff --git a/site/data/papers/Middleware-2024-candidates.yaml b/site/data/cloud-edge/papers/Middleware-2024-candidates.yaml similarity index 100% rename from site/data/papers/Middleware-2024-candidates.yaml rename to site/data/cloud-edge/papers/Middleware-2024-candidates.yaml diff --git a/site/data/papers/Middleware-2024-digest.yaml b/site/data/cloud-edge/papers/Middleware-2024-digest.yaml similarity index 100% rename from site/data/papers/Middleware-2024-digest.yaml rename to site/data/cloud-edge/papers/Middleware-2024-digest.yaml diff --git a/site/data/papers/Middleware-2025-candidates.yaml b/site/data/cloud-edge/papers/Middleware-2025-candidates.yaml similarity index 100% rename from site/data/papers/Middleware-2025-candidates.yaml rename to site/data/cloud-edge/papers/Middleware-2025-candidates.yaml diff --git a/site/data/papers/Middleware-2025-digest.yaml b/site/data/cloud-edge/papers/Middleware-2025-digest.yaml similarity index 100% rename from site/data/papers/Middleware-2025-digest.yaml rename to site/data/cloud-edge/papers/Middleware-2025-digest.yaml diff --git a/site/data/papers/MobiSys-2024-candidates.yaml b/site/data/cloud-edge/papers/MobiSys-2024-candidates.yaml similarity index 100% rename from site/data/papers/MobiSys-2024-candidates.yaml rename to site/data/cloud-edge/papers/MobiSys-2024-candidates.yaml diff --git a/site/data/papers/MobiSys-2024-digest.yaml b/site/data/cloud-edge/papers/MobiSys-2024-digest.yaml similarity index 100% rename from site/data/papers/MobiSys-2024-digest.yaml rename to site/data/cloud-edge/papers/MobiSys-2024-digest.yaml diff --git a/site/data/papers/MobiSys-2025-candidates.yaml b/site/data/cloud-edge/papers/MobiSys-2025-candidates.yaml similarity index 100% rename from site/data/papers/MobiSys-2025-candidates.yaml rename to site/data/cloud-edge/papers/MobiSys-2025-candidates.yaml diff --git a/site/data/papers/MobiSys-2025-digest.yaml b/site/data/cloud-edge/papers/MobiSys-2025-digest.yaml similarity index 100% rename from site/data/papers/MobiSys-2025-digest.yaml rename to site/data/cloud-edge/papers/MobiSys-2025-digest.yaml diff --git a/site/data/papers/NSDI-2024-candidates.yaml b/site/data/cloud-edge/papers/NSDI-2024-candidates.yaml similarity index 100% rename from site/data/papers/NSDI-2024-candidates.yaml rename to site/data/cloud-edge/papers/NSDI-2024-candidates.yaml diff --git a/site/data/papers/NSDI-2024-digest.yaml b/site/data/cloud-edge/papers/NSDI-2024-digest.yaml similarity index 100% rename from site/data/papers/NSDI-2024-digest.yaml rename to site/data/cloud-edge/papers/NSDI-2024-digest.yaml diff --git a/site/data/papers/NSDI-2025-candidates.yaml b/site/data/cloud-edge/papers/NSDI-2025-candidates.yaml similarity index 100% rename from site/data/papers/NSDI-2025-candidates.yaml rename to site/data/cloud-edge/papers/NSDI-2025-candidates.yaml diff --git a/site/data/papers/NSDI-2025-digest.yaml b/site/data/cloud-edge/papers/NSDI-2025-digest.yaml similarity index 100% rename from site/data/papers/NSDI-2025-digest.yaml rename to site/data/cloud-edge/papers/NSDI-2025-digest.yaml diff --git a/site/data/papers/OSDI-2024-candidates.yaml b/site/data/cloud-edge/papers/OSDI-2024-candidates.yaml similarity index 100% rename from site/data/papers/OSDI-2024-candidates.yaml rename to site/data/cloud-edge/papers/OSDI-2024-candidates.yaml diff --git a/site/data/papers/OSDI-2024-digest.yaml b/site/data/cloud-edge/papers/OSDI-2024-digest.yaml similarity index 100% rename from site/data/papers/OSDI-2024-digest.yaml rename to site/data/cloud-edge/papers/OSDI-2024-digest.yaml diff --git a/site/data/papers/OSDI-2025-candidates.yaml b/site/data/cloud-edge/papers/OSDI-2025-candidates.yaml similarity index 100% rename from site/data/papers/OSDI-2025-candidates.yaml rename to site/data/cloud-edge/papers/OSDI-2025-candidates.yaml diff --git a/site/data/papers/OSDI-2025-digest.yaml b/site/data/cloud-edge/papers/OSDI-2025-digest.yaml similarity index 100% rename from site/data/papers/OSDI-2025-digest.yaml rename to site/data/cloud-edge/papers/OSDI-2025-digest.yaml diff --git a/site/data/papers/SC-2024-candidates.yaml b/site/data/cloud-edge/papers/SC-2024-candidates.yaml similarity index 100% rename from site/data/papers/SC-2024-candidates.yaml rename to site/data/cloud-edge/papers/SC-2024-candidates.yaml diff --git a/site/data/papers/SC-2024-digest.yaml b/site/data/cloud-edge/papers/SC-2024-digest.yaml similarity index 100% rename from site/data/papers/SC-2024-digest.yaml rename to site/data/cloud-edge/papers/SC-2024-digest.yaml diff --git a/site/data/papers/SC-2025-candidates.yaml b/site/data/cloud-edge/papers/SC-2025-candidates.yaml similarity index 100% rename from site/data/papers/SC-2025-candidates.yaml rename to site/data/cloud-edge/papers/SC-2025-candidates.yaml diff --git a/site/data/papers/SC-2025-digest.yaml b/site/data/cloud-edge/papers/SC-2025-digest.yaml similarity index 100% rename from site/data/papers/SC-2025-digest.yaml rename to site/data/cloud-edge/papers/SC-2025-digest.yaml diff --git a/site/data/papers/SEC-2024-candidates.yaml b/site/data/cloud-edge/papers/SEC-2024-candidates.yaml similarity index 100% rename from site/data/papers/SEC-2024-candidates.yaml rename to site/data/cloud-edge/papers/SEC-2024-candidates.yaml diff --git a/site/data/papers/SEC-2024-digest.yaml b/site/data/cloud-edge/papers/SEC-2024-digest.yaml similarity index 100% rename from site/data/papers/SEC-2024-digest.yaml rename to site/data/cloud-edge/papers/SEC-2024-digest.yaml diff --git a/site/data/papers/SEC-2025-candidates.yaml b/site/data/cloud-edge/papers/SEC-2025-candidates.yaml similarity index 100% rename from site/data/papers/SEC-2025-candidates.yaml rename to site/data/cloud-edge/papers/SEC-2025-candidates.yaml diff --git a/site/data/papers/SEC-2025-digest.yaml b/site/data/cloud-edge/papers/SEC-2025-digest.yaml similarity index 100% rename from site/data/papers/SEC-2025-digest.yaml rename to site/data/cloud-edge/papers/SEC-2025-digest.yaml diff --git a/site/data/papers/SOSP-2024-candidates.yaml b/site/data/cloud-edge/papers/SOSP-2024-candidates.yaml similarity index 100% rename from site/data/papers/SOSP-2024-candidates.yaml rename to site/data/cloud-edge/papers/SOSP-2024-candidates.yaml diff --git a/site/data/papers/SOSP-2024-digest.yaml b/site/data/cloud-edge/papers/SOSP-2024-digest.yaml similarity index 100% rename from site/data/papers/SOSP-2024-digest.yaml rename to site/data/cloud-edge/papers/SOSP-2024-digest.yaml diff --git a/site/data/papers/SOSP-2025-candidates.yaml b/site/data/cloud-edge/papers/SOSP-2025-candidates.yaml similarity index 100% rename from site/data/papers/SOSP-2025-candidates.yaml rename to site/data/cloud-edge/papers/SOSP-2025-candidates.yaml diff --git a/site/data/papers/SOSP-2025-digest.yaml b/site/data/cloud-edge/papers/SOSP-2025-digest.yaml similarity index 100% rename from site/data/papers/SOSP-2025-digest.yaml rename to site/data/cloud-edge/papers/SOSP-2025-digest.yaml diff --git a/site/data/papers/SoCC-2024-candidates.yaml b/site/data/cloud-edge/papers/SoCC-2024-candidates.yaml similarity index 100% rename from site/data/papers/SoCC-2024-candidates.yaml rename to site/data/cloud-edge/papers/SoCC-2024-candidates.yaml diff --git a/site/data/papers/SoCC-2024-digest.yaml b/site/data/cloud-edge/papers/SoCC-2024-digest.yaml similarity index 100% rename from site/data/papers/SoCC-2024-digest.yaml rename to site/data/cloud-edge/papers/SoCC-2024-digest.yaml diff --git a/site/data/papers/SoCC-2025-candidates.yaml b/site/data/cloud-edge/papers/SoCC-2025-candidates.yaml similarity index 100% rename from site/data/papers/SoCC-2025-candidates.yaml rename to site/data/cloud-edge/papers/SoCC-2025-candidates.yaml diff --git a/site/data/papers/SoCC-2025-digest.yaml b/site/data/cloud-edge/papers/SoCC-2025-digest.yaml similarity index 100% rename from site/data/papers/SoCC-2025-digest.yaml rename to site/data/cloud-edge/papers/SoCC-2025-digest.yaml diff --git a/site/data/papers/TC-2024-candidates.yaml b/site/data/cloud-edge/papers/TC-2024-candidates.yaml similarity index 100% rename from site/data/papers/TC-2024-candidates.yaml rename to site/data/cloud-edge/papers/TC-2024-candidates.yaml diff --git a/site/data/papers/TC-2024-digest.yaml b/site/data/cloud-edge/papers/TC-2024-digest.yaml similarity index 100% rename from site/data/papers/TC-2024-digest.yaml rename to site/data/cloud-edge/papers/TC-2024-digest.yaml diff --git a/site/data/papers/TC-2025-candidates.yaml b/site/data/cloud-edge/papers/TC-2025-candidates.yaml similarity index 100% rename from site/data/papers/TC-2025-candidates.yaml rename to site/data/cloud-edge/papers/TC-2025-candidates.yaml diff --git a/site/data/papers/TC-2025-digest.yaml b/site/data/cloud-edge/papers/TC-2025-digest.yaml similarity index 100% rename from site/data/papers/TC-2025-digest.yaml rename to site/data/cloud-edge/papers/TC-2025-digest.yaml diff --git a/site/data/papers/TCC-2024-candidates.yaml b/site/data/cloud-edge/papers/TCC-2024-candidates.yaml similarity index 100% rename from site/data/papers/TCC-2024-candidates.yaml rename to site/data/cloud-edge/papers/TCC-2024-candidates.yaml diff --git a/site/data/papers/TCC-2024-digest.yaml b/site/data/cloud-edge/papers/TCC-2024-digest.yaml similarity index 100% rename from site/data/papers/TCC-2024-digest.yaml rename to site/data/cloud-edge/papers/TCC-2024-digest.yaml diff --git a/site/data/papers/TCC-2025-candidates.yaml b/site/data/cloud-edge/papers/TCC-2025-candidates.yaml similarity index 100% rename from site/data/papers/TCC-2025-candidates.yaml rename to site/data/cloud-edge/papers/TCC-2025-candidates.yaml diff --git a/site/data/papers/TCC-2025-digest.yaml b/site/data/cloud-edge/papers/TCC-2025-digest.yaml similarity index 100% rename from site/data/papers/TCC-2025-digest.yaml rename to site/data/cloud-edge/papers/TCC-2025-digest.yaml diff --git a/site/data/papers/TOCS-2024-candidates.yaml b/site/data/cloud-edge/papers/TOCS-2024-candidates.yaml similarity index 100% rename from site/data/papers/TOCS-2024-candidates.yaml rename to site/data/cloud-edge/papers/TOCS-2024-candidates.yaml diff --git a/site/data/papers/TOCS-2024-digest.yaml b/site/data/cloud-edge/papers/TOCS-2024-digest.yaml similarity index 100% rename from site/data/papers/TOCS-2024-digest.yaml rename to site/data/cloud-edge/papers/TOCS-2024-digest.yaml diff --git a/site/data/papers/TOCS-2025-candidates.yaml b/site/data/cloud-edge/papers/TOCS-2025-candidates.yaml similarity index 100% rename from site/data/papers/TOCS-2025-candidates.yaml rename to site/data/cloud-edge/papers/TOCS-2025-candidates.yaml diff --git a/site/data/papers/TOCS-2025-digest.yaml b/site/data/cloud-edge/papers/TOCS-2025-digest.yaml similarity index 100% rename from site/data/papers/TOCS-2025-digest.yaml rename to site/data/cloud-edge/papers/TOCS-2025-digest.yaml diff --git a/site/data/papers/TPDS-2024-candidates.yaml b/site/data/cloud-edge/papers/TPDS-2024-candidates.yaml similarity index 100% rename from site/data/papers/TPDS-2024-candidates.yaml rename to site/data/cloud-edge/papers/TPDS-2024-candidates.yaml diff --git a/site/data/papers/TPDS-2024-digest.yaml b/site/data/cloud-edge/papers/TPDS-2024-digest.yaml similarity index 100% rename from site/data/papers/TPDS-2024-digest.yaml rename to site/data/cloud-edge/papers/TPDS-2024-digest.yaml diff --git a/site/data/papers/TPDS-2025-candidates.yaml b/site/data/cloud-edge/papers/TPDS-2025-candidates.yaml similarity index 100% rename from site/data/papers/TPDS-2025-candidates.yaml rename to site/data/cloud-edge/papers/TPDS-2025-candidates.yaml diff --git a/site/data/papers/TPDS-2025-digest.yaml b/site/data/cloud-edge/papers/TPDS-2025-digest.yaml similarity index 100% rename from site/data/papers/TPDS-2025-digest.yaml rename to site/data/cloud-edge/papers/TPDS-2025-digest.yaml diff --git a/site/data/venues.yaml b/site/data/cloud-edge/venues.yaml similarity index 100% rename from site/data/venues.yaml rename to site/data/cloud-edge/venues.yaml diff --git a/site/data/topics.yaml b/site/data/topics.yaml new file mode 100644 index 0000000..a130a90 --- /dev/null +++ b/site/data/topics.yaml @@ -0,0 +1,4 @@ +topics: + - slug: cloud-edge + title: "Edge and Cloud Systems" + description: "Conferences and journals for edge computing, cloud systems, and distributed systems." diff --git a/site/hugo.toml b/site/hugo.toml index 5270def..a06a81b 100644 --- a/site/hugo.toml +++ b/site/hugo.toml @@ -2,6 +2,9 @@ baseURL = 'http://localhost:1313/' languageCode = 'en-us' title = 'Publish Assistant' theme = 'PaperMod' + +ignoreFiles = ['data/rankings/.*\.csv$'] + [pagination] pagerSize = 20 @@ -10,7 +13,7 @@ theme = 'PaperMod' tag = 'tags' [params] - description = "Research venues, submission deadlines, and paper digests for edge and cloud systems." + description = "Research venue tracker: conference rankings, deadlines, and paper digests." author = "Publish Assistant" ShowReadingTime = false ShowShareButtons = false @@ -19,21 +22,3 @@ theme = 'PaperMod' ShowCodeCopyButtons = false ShowToc = false disableSpecial1stPost = true - - [params.homeInfoParams] - Title = "Edge and Cloud Systems" - Content = "Conferences and journals" - -[menu] - [[menu.main]] - name = "Venues" - url = "/venues/" - weight = 10 - [[menu.main]] - name = "Calendar" - url = "/calendar/" - weight = 20 - [[menu.main]] - name = "Digests" - url = "/digests/" - weight = 30 diff --git a/site/layouts/partials/extend_head.html b/site/layouts/partials/extend_head.html index 5b0806f..f55e536 100644 --- a/site/layouts/partials/extend_head.html +++ b/site/layouts/partials/extend_head.html @@ -7,5 +7,22 @@ .fc table { display: table; overflow-x: visible; margin-bottom: 0; border-radius: 0; word-break: normal; } .fc th { min-width: 0; text-align: center; } .fc td:first-child, .fc th:first-child { width: auto; } + /* Map PaperMod dark theme to FullCalendar CSS variables */ + [data-theme="dark"] #pa-calendar { + --fc-page-bg-color: var(--theme); + --fc-neutral-bg-color: var(--entry); + --fc-neutral-text-color: var(--secondary); + --fc-border-color: var(--border); + --fc-today-bg-color: rgba(255, 220, 40, 0.08); + --fc-list-event-hover-bg-color: var(--entry); + --fc-button-text-color: var(--primary); + --fc-button-bg-color: var(--entry); + --fc-button-border-color: var(--border); + --fc-button-hover-bg-color: var(--tertiary); + --fc-button-hover-border-color: var(--border); + --fc-button-active-bg-color: var(--tertiary); + --fc-button-active-border-color: var(--border); + color: var(--primary); + } {{- end }} diff --git a/site/layouts/partials/header.html b/site/layouts/partials/header.html new file mode 100644 index 0000000..3e9176a --- /dev/null +++ b/site/layouts/partials/header.html @@ -0,0 +1,119 @@ +
+ +
diff --git a/src/publish_assistant/fetch_deadlines.py b/src/publish_assistant/fetch_deadlines.py index 5d63fdb..4112a6e 100644 --- a/src/publish_assistant/fetch_deadlines.py +++ b/src/publish_assistant/fetch_deadlines.py @@ -155,8 +155,8 @@ def process_venue(session: requests.Session, conf: dict) -> dict | None: def main() -> None: ap = argparse.ArgumentParser(description="Fetch submission deadlines from WikiCFP.") - ap.add_argument("--venues", default="site/data/venues.yaml") - ap.add_argument("--output", default="site/data/deadlines.yaml") + ap.add_argument("--venues", default="site/data/cloud-edge/venues.yaml") + ap.add_argument("--output", default="site/data/cloud-edge/deadlines.yaml") args = ap.parse_args() venues_path = Path(args.venues) diff --git a/src/publish_assistant/generate_content.py b/src/publish_assistant/generate_content.py index 75e2bb7..8fe530d 100644 --- a/src/publish_assistant/generate_content.py +++ b/src/publish_assistant/generate_content.py @@ -6,18 +6,18 @@ Each page has a minimal front matter block (for Hugo taxonomy / metadata) plus a rendered Markdown body so generic themes display content without custom templates. Reads: - site/data/venues.yaml master venue list - site/data/rankings/icore.csv ICORE conference ranks - site/data/rankings/scimago.csv SCImago journal ranks (optional) - site/data/deadlines.yaml deadline data - site/data/papers/--candidates.yaml paper pools - site/data/papers/--digest.yaml agent-curated selections + site/data//venues.yaml master venue list + site/data/rankings/icore.csv ICORE conference ranks (shared) + site/data/rankings/scimago.csv SCImago journal ranks (shared, optional) + site/data//deadlines.yaml deadline data + site/data//papers/--candidates.yaml paper pools + site/data//papers/--digest.yaml agent-curated selections Writes: - site/content/venues/conferences//_index.md - site/content/venues/journals//_index.md - site/content/calendar/_index.md - site/content/digests/-/index.md + site/content//venues/conferences//_index.md + site/content//venues/journals//_index.md + site/content//calendar/_index.md + site/content//digests/-/index.md PRESERVED_VENUE_FIELDS are never overwritten once set (manual edits survive). """ @@ -152,7 +152,7 @@ def load_venue_digests(papers_dir: Path) -> dict[str, list[dict]]: # Markdown body renderers # --------------------------------------------------------------------------- -def _conf_body(fm: dict, digests: list[dict] | None = None) -> str: +def _conf_body(fm: dict, digests: list[dict] | None = None, base_path: str = "") -> str: rank = fm.get("icore_rank") or "—" hp = fm.get("homepage") or "" dl = fm.get("next_deadline") or "TBD" @@ -175,6 +175,13 @@ def _conf_body(fm: dict, digests: list[dict] | None = None) -> str: ] if hp: lines.append(f"| **Website** | [{hp}]({hp}) |") + if digests: + latest = sorted(digests, key=lambda x: x["year"], reverse=True)[0] + slug = latest["slug"].lower() + year = latest["year"] + 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", "| | |", "|---|---|", @@ -195,20 +202,27 @@ def _conf_body(fm: dict, digests: list[dict] | None = None) -> str: lines.append(f"| **Source** | `{src}` |") if digests: - lines += ["\n## Digests\n"] + lines += ["\n## Previous Editions\n"] for d in sorted(digests, key=lambda x: x["year"], reverse=True): slug = d["slug"].lower() year = d["year"] count = d.get("paper_count", 0) - suffix = f"— {count} papers" if count else "*(digest pending)*" - lines.append(f"- [{title} {year}](/digests/{slug}/) {suffix}") + tags = d.get("tags") or [] + lines.append(f"### {title} {year}\n") + lines += ["| | |", "|---|---|"] + if count: + lines.append(f"| **Papers digested** | {count} |") + if tags: + lines.append(f"| **Topics** | {', '.join(f'`{t}`' for t in tags)} |") + lines.append(f"| **Digest** | [→ {title} {year} Digest]({base_path}/digests/{slug}/) |") + lines.append("") if notes: lines += ["\n## Notes\n", notes] return "\n".join(lines) + "\n" -def _journal_body(fm: dict, digests: list[dict] | None = None) -> str: +def _journal_body(fm: dict, digests: list[dict] | None = None, base_path: str = "") -> str: q = fm.get("scimago_quartile") or "—" sjr = fm.get("scimago_sjr") or "—" h = fm.get("scimago_h_index") or "—" @@ -231,15 +245,29 @@ def _journal_body(fm: dict, digests: list[dict] | None = None) -> str: ] if hp: lines.append(f"| **Website** | [{hp}]({hp}) |") + if digests: + latest = sorted(digests, key=lambda x: x["year"], reverse=True)[0] + slug = latest["slug"].lower() + year = latest["year"] + 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} |") if digests: - lines += ["\n## Digests\n"] + lines += ["\n## Previous Editions\n"] for d in sorted(digests, key=lambda x: x["year"], reverse=True): slug = d["slug"].lower() year = d["year"] count = d.get("paper_count", 0) - suffix = f"— {count} papers" if count else "*(digest pending)*" - lines.append(f"- [{title} {year}](/digests/{slug}/) {suffix}") + tags = d.get("tags") or [] + lines.append(f"### {title} {year}\n") + lines += ["| | |", "|---|---|"] + if count: + lines.append(f"| **Papers digested** | {count} |") + if tags: + lines.append(f"| **Topics** | {', '.join(f'`{t}`' for t in tags)} |") + lines.append(f"| **Digest** | [→ {title} {year} Digest]({base_path}/digests/{slug}/) |") + lines.append("") if notes: lines += ["\n## Notes\n", notes] @@ -297,17 +325,18 @@ _ICORE_ORDER = {"A*": 0, "A": 1, "B": 2, "C": 3} _QUARTILE_ORDER = {"Q1": 0, "Q2": 1, "Q3": 2, "Q4": 3} -def _venues_body(venues: dict) -> str: +def _venues_body(venues: dict, base_path: str = "") -> str: n_conf = len(venues.get("conferences") or []) n_jour = len(venues.get("journals") or []) return ( f"\nTracking **{n_conf} conferences** and **{n_jour} journals** for this domain.\n\n" - "- **[Conferences →](/venues/conferences/)** ranked by ICORE (A*, A, B, C)\n" - "- **[Journals →](/venues/journals/)** ranked by SCImago quartile (Q1–Q4)\n" + f"- **[Conferences →]({base_path}/venues/conferences/)** ranked by ICORE (A*, A, B, C)\n" + f"- **[Journals →]({base_path}/venues/journals/)** ranked by SCImago quartile (Q1–Q4)\n" ) -def _conferences_section_body(venues: dict, icore: dict, deadlines: dict) -> str: +def _conferences_section_body(venues: dict, icore: dict, deadlines: dict, + venue_digests: dict | None = None, base_path: str = "") -> str: rows = [] for conf in venues.get("conferences") or []: acronym = conf.get("acronym", "") @@ -318,22 +347,25 @@ def _conferences_section_body(venues: dict, icore: dict, deadlines: dict) -> str notif = dl.get("notification") or "" event = dl.get("event_dates") or "—" location = dl.get("location") or "" + domains = ", ".join(f"`{d}`" for d in conf.get("domain", [])) + n_dig = len((venue_digests or {}).get(acronym, [])) rows.append((_ICORE_ORDER.get(rank, 99), acronym, conf.get("full_name", ""), - rank, abstract, paper, notif, event, location)) + rank, abstract, paper, notif, event, location, domains, n_dig)) rows.sort(key=lambda r: (r[0], r[1])) lines = [ - "\n| Conference | Full name | ICORE | Abstract | Paper deadline | Notification | Event | Location |", - "|---|---|---|---|---|---|---|---|", + "\n| Conference | Full name | ICORE | Domains | Abstract | Paper deadline | Notification | Event | Location | Digests |", + "|---|---|---|---|---|---|---|---|---|---|", ] - for _, acronym, full_name, rank, abstract, paper, notif, event, location in rows: - link = f"[{acronym}](/venues/conferences/{acronym.lower()}/)" + for _, acronym, full_name, rank, abstract, paper, notif, event, location, domains, n_dig in rows: + link = f"[{acronym}]({base_path}/venues/conferences/{acronym.lower()}/)" abs_cell = abstract if (abstract and abstract != paper) else "" - lines.append(f"| {link} | {full_name} | **{rank}** | {abs_cell} | {paper} | {notif} | {event} | {location} |") + dig_cell = str(n_dig) if n_dig else "—" + lines.append(f"| {link} | {full_name} | **{rank}** | {domains} | {abs_cell} | {paper} | {notif} | {event} | {location} | {dig_cell} |") return "\n".join(lines) + "\n" -def _journals_section_body(venues: dict) -> str: +def _journals_section_body(venues: dict, venue_digests: dict | None = None, base_path: str = "") -> str: rows = [] for j in venues.get("journals") or []: acronym = j.get("acronym", "") @@ -342,16 +374,18 @@ def _journals_section_body(venues: dict) -> str: h = j.get("scimago_h_index") or "—" model = (j.get("submission_model") or "rolling").title() domains = ", ".join(f"`{d}`" for d in j.get("domain", [])) - rows.append((_QUARTILE_ORDER.get(q, 99), acronym, j.get("full_name", ""), q, sjr, h, model, domains)) + n_dig = len((venue_digests or {}).get(acronym, [])) + rows.append((_QUARTILE_ORDER.get(q, 99), acronym, j.get("full_name", ""), q, sjr, h, model, domains, n_dig)) rows.sort(key=lambda r: (r[0], r[1])) lines = [ - "\n| Journal | Full name | SCImago | SJR | H-Index | Model | Domains |", - "|---|---|---|---|---|---|---|", + "\n| Journal | Full name | SCImago | SJR | H-Index | Model | Domains | Digests |", + "|---|---|---|---|---|---|---|---|", ] - for _, acronym, full_name, q, sjr, h, model, domains in rows: - link = f"[{acronym}](/venues/journals/{acronym.lower()}/)" - lines.append(f"| {link} | {full_name} | **{q}** | {sjr} | {h} | {model} | {domains} |") + for _, acronym, full_name, q, sjr, h, model, domains, n_dig in rows: + link = f"[{acronym}]({base_path}/venues/journals/{acronym.lower()}/)" + dig_cell = str(n_dig) if n_dig else "—" + lines.append(f"| {link} | {full_name} | **{q}** | {sjr} | {h} | {model} | {domains} | {dig_cell} |") return "\n".join(lines) + "\n" @@ -359,12 +393,12 @@ def _journals_section_body(venues: dict) -> str: # Calendar events builder (for FullCalendar) # --------------------------------------------------------------------------- -def _calendar_events(venues: dict, deadlines: dict) -> list[dict]: +def _calendar_events(venues: dict, deadlines: dict, base_path: str = "") -> list[dict]: events: list[dict] = [] for conf in venues.get("conferences") or []: acronym = conf.get("acronym", "") dl = deadlines.get(acronym, {}) - url = f"/venues/conferences/{acronym.lower()}/" + url = f"{base_path}/venues/conferences/{acronym.lower()}/" location = dl.get("location") or "" cfp_url = dl.get("cfp_url") or "" @@ -398,7 +432,7 @@ def _calendar_events(venues: dict, deadlines: dict) -> list[dict]: return events -def _calendar_body(venues: dict, icore: dict, deadlines: dict) -> str: +def _calendar_body(venues: dict, icore: dict, deadlines: dict, base_path: str = "") -> str: def parse_deadline(s: str): for fmt in ("%b %d, %Y", "%b %d %Y"): try: @@ -428,7 +462,7 @@ def _calendar_body(venues: dict, icore: dict, deadlines: dict) -> str: for acronym, abstract, paper, notif, event, location, rank in rows: abs_cell = abstract if (abstract and abstract != paper) else "" lines.append( - f"| [{acronym}](/venues/conferences/{acronym.lower()}/) " + f"| [{acronym}]({base_path}/venues/conferences/{acronym.lower()}/) " f"| {abs_cell} | {paper} | {notif} | {event} | {location} | {rank} |" ) @@ -472,7 +506,8 @@ def _digest_body(papers: list[dict]) -> str: # --------------------------------------------------------------------------- def gen_conferences(venues: dict, icore: dict, deadlines: dict, root: Path, - venue_digests: dict[str, list[dict]] | None = None) -> int: + venue_digests: dict[str, list[dict]] | None = None, + base_path: str = "") -> int: count = 0 for conf in venues.get("conferences") or []: acronym = conf.get("acronym", "").strip() @@ -513,14 +548,15 @@ def gen_conferences(venues: dict, icore: dict, deadlines: dict, root: Path, fm = merge_fm(existing_fm, new_fm, PRESERVED_VENUE_FIELDS) digests = (venue_digests or {}).get(acronym) - write_hugo_file(path, fm, _conf_body(fm, digests)) + write_hugo_file(path, fm, _conf_body(fm, digests, base_path)) count += 1 print(f" {path.relative_to(root.parent)}", file=sys.stderr) return count def gen_journals(venues: dict, scimago: dict[str, dict], root: Path, - venue_digests: dict[str, list[dict]] | None = None) -> int: + venue_digests: dict[str, list[dict]] | None = None, + base_path: str = "") -> int: count = 0 for journal in venues.get("journals") or []: acronym = journal.get("acronym", "").strip() @@ -550,32 +586,34 @@ def gen_journals(venues: dict, scimago: dict[str, dict], root: Path, } fm = merge_fm(existing_fm, new_fm, PRESERVED_VENUE_FIELDS) digests = (venue_digests or {}).get(acronym) - write_hugo_file(path, fm, _journal_body(fm, digests)) + write_hugo_file(path, fm, _journal_body(fm, digests, base_path)) count += 1 print(f" {path.relative_to(root.parent)}", file=sys.stderr) return count -def gen_calendar(venues: dict, icore: dict, deadlines: dict, root: Path) -> None: +def gen_calendar(venues: dict, icore: dict, deadlines: dict, root: Path, + base_path: str = "") -> None: path = root / "calendar" / "_index.md" existing_fm, _ = read_hugo_file(path) new_fm = { "title": "Submission Deadlines", "layout": "calendar", "generated": datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ"), - "events": _calendar_events(venues, deadlines), + "events": _calendar_events(venues, deadlines, base_path), "draft": False, } fm = merge_fm(existing_fm, new_fm, set()) - write_hugo_file(path, fm, _calendar_body(venues, icore, deadlines)) + write_hugo_file(path, fm, _calendar_body(venues, icore, deadlines, base_path)) print(f" {path.relative_to(root.parent)}", file=sys.stderr) -def gen_section_indexes(venues: dict, icore: dict, deadlines: dict, root: Path) -> None: +def gen_section_indexes(venues: dict, icore: dict, deadlines: dict, root: Path, + venue_digests: dict | None = None, base_path: str = "") -> None: # venues/_index.md p = root / "venues" / "_index.md" fm = merge_fm(read_hugo_file(p)[0], {"title": "Venues", "draft": False}, set()) - write_hugo_file(p, fm, _venues_body(venues)) + write_hugo_file(p, fm, _venues_body(venues, base_path)) print(f" {p.relative_to(root.parent)}", file=sys.stderr) # venues/conferences/_index.md @@ -583,7 +621,7 @@ def gen_section_indexes(venues: dict, icore: dict, deadlines: dict, root: Path) n = len(venues.get("conferences") or []) fm = merge_fm(read_hugo_file(p)[0], {"title": "Conferences", "description": f"{n} tracked conferences", "draft": False}, set()) - write_hugo_file(p, fm, _conferences_section_body(venues, icore, deadlines)) + write_hugo_file(p, fm, _conferences_section_body(venues, icore, deadlines, venue_digests, base_path)) print(f" {p.relative_to(root.parent)}", file=sys.stderr) # venues/journals/_index.md @@ -591,7 +629,7 @@ def gen_section_indexes(venues: dict, icore: dict, deadlines: dict, root: Path) n = len(venues.get("journals") or []) fm = merge_fm(read_hugo_file(p)[0], {"title": "Journals", "description": f"{n} tracked journals", "draft": False}, set()) - write_hugo_file(p, fm, _journals_section_body(venues)) + write_hugo_file(p, fm, _journals_section_body(venues, venue_digests, base_path)) print(f" {p.relative_to(root.parent)}", file=sys.stderr) @@ -699,22 +737,25 @@ def gen_digests(papers_dir: Path, root: Path, def main() -> None: ap = argparse.ArgumentParser(description="Generate Hugo content from data files.") - ap.add_argument("--venues", default="site/data/venues.yaml") + ap.add_argument("--venues", default="site/data/cloud-edge/venues.yaml") ap.add_argument("--icore", default="site/data/rankings/icore.csv") ap.add_argument("--scimago", default="site/data/rankings/scimago.csv") - ap.add_argument("--deadlines", default="site/data/deadlines.yaml") - ap.add_argument("--papers-dir", default="site/data/papers", dest="papers_dir") - ap.add_argument("--content", default="site/content") + ap.add_argument("--deadlines", default="site/data/cloud-edge/deadlines.yaml") + ap.add_argument("--papers-dir", default="site/data/cloud-edge/papers", dest="papers_dir") + ap.add_argument("--content", default="site/content/cloud-edge") + ap.add_argument("--base-path", default="/cloud-edge", dest="base_path", + help="URL prefix for all internal links, e.g. '/cloud-edge'") args = ap.parse_args() venues_path = Path(args.venues) if not venues_path.exists(): - print(f"Error: {venues_path} not found. Populate site/data/venues.yaml first.", file=sys.stderr) + print(f"Error: {venues_path} not found.", file=sys.stderr) sys.exit(1) with open(venues_path, encoding="utf-8") as f: venues = yaml.safe_load(f) or {} + base_path = args.base_path.rstrip("/") content_root = Path(args.content) papers_dir = Path(args.papers_dir) icore = load_icore(args.icore) @@ -727,16 +768,16 @@ def main() -> None: if deadlines: print(f"Loaded deadlines for {len(deadlines)} venues", file=sys.stderr) print("\nGenerating venue section indexes …", file=sys.stderr) - gen_section_indexes(venues, icore, deadlines, content_root) + gen_section_indexes(venues, icore, deadlines, content_root, venue_digests, base_path) print("\nGenerating conference pages …", file=sys.stderr) - n_conf = gen_conferences(venues, icore, deadlines, content_root, venue_digests) + n_conf = gen_conferences(venues, icore, deadlines, content_root, venue_digests, base_path) print("\nGenerating journal pages …", file=sys.stderr) - n_jour = gen_journals(venues, scimago, content_root, venue_digests) + n_jour = gen_journals(venues, scimago, content_root, venue_digests, base_path) print("\nGenerating calendar page …", file=sys.stderr) - gen_calendar(venues, icore, deadlines, content_root) + gen_calendar(venues, icore, deadlines, content_root, base_path) print("\nGenerating digest pages …", file=sys.stderr) n_dig = gen_digests(papers_dir, content_root, venues, deadlines)