Load Fall 2026 courses into prod and relaunch #33
Labels
No labels
bug
chore
data
feature
frontend
good first issue
intermediate
needs/docs
needs/research
needs/upstream
type/bug
type/external
type/feature
type/refactor
urgency
high
urgency
immediate
urgency
low
urgency
medium
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
ScottyLabs/cal#33
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Classes are the base layer of the calendar. Prod needs the full Fall 2026 Schedule of Classes before we tell students to come back.
Current state
api/scraper/scripts/export_soc.pyscrapes SOC and upserts orgs, courses, categories, events and recurrence rules, then asks the API to build occurrences (/api/events/regenerate_occurrences_by_events, batches of 50).infer_semester_labelinapi/scraper/helpers/semester.py): run in October, it resolves toFall_26. Reruns are safe (upserts only)..forgejo/workflows/scrape.ymlcannot do this yet: the OpenBaocirole only readssecret/secretspec/cal/ci/(see thekeepalive.ymlheader), so run it from a laptop.Scope
SUPABASE_URL,SUPABASE_SERVICE_ROLE_KEY,API_BASE_URL,SCRAPER_API_TOKEN(resolve theprodprofile with secretspec; never paste them in chat).api/:python -m scraper.scripts.export_soc --dry-run. Check the org/course/event counts and that duplicate identities is 0.python -m scraper.scripts.export_soc(about 7.5 minutes). Every regeneration batch should report 0 failed; if not, rerun.Done when
Notes
For the tech lead. This makes a good live demo at a work session: dry run, real run, then watch the courses appear.
The
scrape.ymlheader says a SOC run takes "roughly an hour"; that is stale, so update it while you are there.