| Component | Repo | Status |
|---|---|---|
| PDF engine | bhxiv-gen-pdf |
Docker image at ghcr.io/biohackrxiv/bhxiv-gen-pdf:master |
| Preview web app | preview.biohackrxiv.org |
Sinatra app that clones repos / accepts ZIPs, calls gen-pdf |
| Paper template | publication-template |
GitHub template repo with a basic CI workflow |
| Index site | bhxiv-index |
Jekyll site at index.biohackrxiv.org, authoritative event list |
| Metadata/RDF | bhxiv-metadata |
SPARQL pipeline, partially broken, stale event list |
- Authoritative event list:
bhxiv-index/_data/meetings.yml(~37 events, actively maintained) - Stale event list:
bhxiv-metadata/etc/events.yaml(~11 events, not synchronized) - Event registration: Issue template exists in
bhxiv-metadatabut should move tobhxiv-index - SPARQL pipeline: Partially non-functional (queries commented out in preview site)
- PDF only available as artifact — users must navigate to Actions > Run > Artifacts to download
- No pull request preview — only triggers on push to
main, not on PRs - No GitHub Pages deployment — PDF isn't served at a stable URL
- Fragile metadata validation — uses raw
sed+grepinstead of proper YAML parsing; unhelpful error messages - Docker image uses pinned old versions — Ruby 3.0.2, Pandoc 2.16.1, Debian Bullseye-era TexLive
- No PR comment with PDF link — no feedback loop for authors
- Two divergent event lists —
bhxiv-metadataandbhxiv-indexare not synchronized - No documentation for organizers or submitters — contributors can't find how to register events
- bhxiv-index PR #8: Adds
/for-organizers/and/for-submitters/guide pages biohackrxiv/bhxiv-index#8 - preview.biohackrxiv.org PR #33: Adds links to those guides from the preview site biohackrxiv/preview.biohackrxiv.org#33
- bhxiv-index PR #6: ARCSMP2025 event registration (open since Nov 2025, needs committee decision) biohackrxiv/bhxiv-index#6
Goal: Make the GitHub Actions workflow the primary way to generate PDFs.
Changes to publication-template/.github/workflows/gen_pdf.yaml:
- Trigger on PRs too — add
pull_requesttrigger so authors get feedback before merging - Deploy PDF to GitHub Pages — after successful build on
main, publishpaper.pdfto GitHub Pages so each repo has a stable preview URL (https://<user>.github.io/<repo>/paper.pdf) - Post PR comment with PDF link — on PR builds, upload artifact and comment with a link to download it
- Improve metadata validation — replace the fragile
sed | grepchecks with a proper validation step (useyqto parse YAML front matter and give clear error messages for each missing field) - Add status badge — include a build-status badge in the template
README.md
- Update base image — Ruby 3.0.2 is EOL; bump to 3.2+ or 3.3
- Update Pandoc — 2.16.1 → 3.x (check compatibility with LaTeX template and Lua filters)
- Pin TexLive by year — use a more recent TexLive version from a Debian Bookworm base
- Add multi-arch build — support
linux/arm64for faster CI on newer GitHub runners - Improve local usage documentation — make it easy for users to run
gen-pdflocally via Docker (see Phase 5)
- Package as a composite or Docker GitHub Action in
bhxiv-gen-pdf— so instead of using the third-partydocker-run-action, paper repos can simply do:
- uses: biohackrxiv/bhxiv-gen-pdf@v1
with:
paper_dir: paperThis is cleaner, versionable, and gives you control over the interface.
- Move issue template from
bhxiv-metadatatobhxiv-index - Automate event approval — issue triggers a GitHub Actions workflow that generates a PR with
meetings.ymlentry + tag page scaffold - Validate paper
eventfields against the approved event list during PDF generation - Deprecate
bhxiv-metadata/etc/events.yamlin favor ofbhxiv-index/_data/meetings.yml
Goal: Replace the Sinatra/Docker PDF generation app with a static page that serves as the central documentation and instruction hub for BioHackrXiv users.
The preview.biohackrxiv.org domain is well-known and already linked from many places, so it should remain active as a landing page.
The page should cover:
- Overview — what BioHackrXiv is and how the submission process works
- For paper submitters (or link to index site guide)
- How to create a repo from the publication-template
- Required YAML metadata fields with examples
- How to find your event's metadata on the index site
- For event organizers (or link to index site guide)
- How to register an event via issue on bhxiv-index
- How to generate a PDF — three options:
- Option A: GitHub Actions (recommended) — push to your repo, PDF is auto-generated and deployed to GitHub Pages
- Option B: Run locally with Docker —
docker run --rm -v $(pwd):/work ghcr.io/biohackrxiv/bhxiv-gen-pdf:master gen-pdf /work/paper - Option C: Run locally without Docker — install Ruby, Pandoc, TexLive, clone bhxiv-gen-pdf, run
gen-pdf
- Links — publication index, meetings list, published papers on OSF, GitHub org, contact
- Replace the Sinatra app with a static HTML page (or a minimal Jekyll/Hugo site)
- Host via GitHub Pages from the
preview.biohackrxiv.orgrepo - Keep the
preview.biohackrxiv.orgCNAME pointing to GitHub Pages - Remove Docker/Sinatra/Nginx infrastructure
- Phase 1 complete (GitHub Actions workflow is the primary PDF generation method)
- Guide pages merged and live on index.biohackrxiv.org
- All references to the old preview form updated across org repos
- Static site deployed and tested on preview.biohackrxiv.org
- Wait one hackathon cycle to confirm the new workflow works in practice
| Step | What | Where | Effort | Status |
|---|---|---|---|---|
| 1 | Add organizer/submitter guide pages | bhxiv-index, preview |
Small | PR #8, PR #33 |
| 2 | Add PR trigger + PR comment with artifact link | publication-template |
Small | TODO |
| 3 | Add GitHub Pages deployment of PDF | publication-template |
Small | TODO |
| 4 | Improve metadata validation | publication-template |
Small | TODO |
| 5 | Move issue template to bhxiv-index | bhxiv-index |
Small | TODO |
| 6 | Package as reusable GitHub Action | bhxiv-gen-pdf |
Medium | TODO |
| 7 | Modernize Docker image (Ruby, Pandoc, TexLive) | bhxiv-gen-pdf |
Medium | TODO |
| 8 | Automate event approval workflow | bhxiv-index |
Medium | TODO |
| 9 | Convert preview site to static docs | preview |
Medium | TODO |
Author writes paper.md
|
v
[preview.biohackrxiv.org] ← Sinatra web app (manual step)
|
v
[bhxiv-gen-pdf CLI + Pandoc + TexLive]
|
v
paper.pdf (ephemeral, /tmp based)
Author writes paper.md in GitHub repo (from template)
|
v
[GitHub Actions on push/PR]
uses: biohackrxiv/bhxiv-gen-pdf@v1
|
├─ PR → artifact + comment with link
└─ main → GitHub Pages (stable URL)
|
v
paper.pdf (persistent, versioned)
[preview.biohackrxiv.org] ← Static documentation site
- Getting started guide
- Links to template, index, meetings
- Instructions for GitHub Actions / local Docker / local CLI