Skip to content

Latest commit

 

History

History
47 lines (34 loc) · 3.04 KB

File metadata and controls

47 lines (34 loc) · 3.04 KB

Running the current edition

Tasks performed while the upcoming or in-flight conference is the live site at https://2026.pycon.de/ (or whatever the current edition's host is).

What runs automatically

  • Pretalx sync.github/workflows/fetch_submissions.yml imports talks and speakers from the Pretalx API on a schedule. The cron is paused outside conference cycles; re-enable it by uncommenting the schedule: lines in the workflow when the next CFP closes. Manual runs via workflow_dispatch are always available.
  • Deploy.github/workflows/main.yml builds and uploads to S3 on every push to main.
  • Staging deploy.github/workflows/development.yml mirrors the above for the staging bucket.

Common tasks

Task Doc
Add or edit a blog post docs/blog_post.md
Add a sponsor or community partner docs/sponsors_partners.md
Add a subsite (a top-level page that isn't a blog post) docs/subsites.md
Manage the homepage / landing page (pre-, during-, post-conference) docs/landing_pages.md
Talk / speaker data from Pretalx docs/pretalx.md
Contact form (FastAPI backend) docs/contact_form.md
Deploy to S3 docs/deployment.md

Editorial conventions

  • Never edit talk or speaker files directly. They are regenerated by the Pretalx importer on the next sync — your changes will disappear. Push edits upstream in Pretalx instead.
  • Configurable values live in YAML databags (databags/) — slugs, claims, contact addresses, social URLs, IDs. No literal config in templates or Python.
  • Generated content folders under content/ (tracks, redirect pages, sitemap segments, search index) are produced by make build. Do not hand-edit them — re-run the build instead.

Build pipeline

make build runs four phases in order; each is also exposed as its own target.

make redirects     # databags/redirects.yaml + per-talk Pretalx-code redirects → content/, site-config/
make tracks        # scan talks → content/tracks/ and content/archive/{year}/tracks/
make lektor-build  # Lektor renders content/ + templates/ → site/
make pagefind      # site/ → site/pagefind/ (search index, ~12 MB)

Run an individual phase when iterating on its inputs. Run make build before any deploy.

Where to look when something breaks

  • A talk page is missing → check the latest Pretalx sync ran (workflow run page) and that the talk is confirmed in Pretalx.
  • A talk shows raw ${...} or empty fields → the importer schema may have drifted; see docs/pretalx.md for the year-keyed field mapping in databags/pretalx.yaml.
  • Search returns no results → the Lektor dev server doesn't serve the Pagefind index. Run make build and serve site/ directly. Details in docs/search.md.
  • The site builds locally but the deploy fails → check .github/workflows/main.yml and the AWS secrets list in docs/deployment.md.