Management repo for the Web VPython stack. The four active sub-repos are separate git repositories cloned into this directory.
bash refreshall.sh: pull this repo and every sub-repo (fast-forward only).make: the menu of everything you can run (serve, deploy, build, git).- Current plan: glowscript.org → webvpython.org migration. Work-in-progress notes for the runners are in AGENTS.md.
- What's live:
curl -s https://beta.webvpython.org/configshows the deployedgit_commit.
Things that bite:
- One database for everything. glowscript.org (Classic GAE) and beta.webvpython.org both
use the Datastore in GCP project
glowscript.make serve-prodwrites to it too. - Two projects. Cloud Run (
flaskdstorehost) and the database are inglowscript; the runner and docs buckets are inglowscript-py38. Deploy scripts pin their targets, so the active gcloud config doesn't matter. - Runners stay on a separate origin from the IDE. They run student code; never serve them from the IDE's own domain.
| Directory | Repo | Purpose |
|---|---|---|
flaskHost/ |
vpython/flaskHost | Flask app, Cloud Run deployment |
rsWVPRunner/ |
vpython/rsWVPRunner | RapydScript runner, GCS static |
wmWVPRunner/ |
vpython/wmWVPRunner | WASM/Pyodide runner, GCS static |
webVPythonDocsHome/ |
vpython/webVPythonDocsHome | Sphinx docs, GCS static |
glowscript/ |
vpython/glowscript | Classic GlowScript (being retired) |
git clone git@github.com:vpython/glowThings.git
cd glowThings
bash setup.shsetup.sh clones each sub-repo and runs post-clone setup:
wmWVPRunner:npm installrsWVPRunner: installs Uglify-ESnode_modules(needed forbuild-packages)webVPythonDocsHome: creates.venvand installs Sphinx dependencies
bash refreshall.sh # or: make git-pullPulls this workspace repo and every sub-repo (including glowscript/), fast-forward
only. It never merges or overwrites local edits; a repo that has diverged or has
conflicting local changes is reported and skipped. Run it before starting work on a
different machine.
make serve # starts flask :8080, rsWVPRunner :8090, wmWVPRunner :5173Each runner can also be started individually:
cd flaskHost && bash serve.sh
cd rsWVPRunner && bash serve.sh
cd wmWVPRunner && bash serve.shmake deploy # all four
make deploy-flask # flaskHost only (Cloud Run)
make deploy-runners # both runners (GCS)
make deploy-docs # docs (GCS)After modifying any file in rsWVPRunner/lib/ or rsWVPRunner/shaders/:
make build-packagesThis rebuilds all four package files in rsWVPRunner/package/ and
regenerates rsWVPRunner/lib/glow/shaders.gen.js from shader sources.
Then redeploy with make deploy-runners.
| Service | URL |
|---|---|
| Production (beta) | https://beta.webvpython.org |
| Cloud Run direct | https://flaskdstorehost-dhppn6xgeq-uc.a.run.app |
| RS runner (GCS) | https://storage.googleapis.com/rswvprunner/untrusted/run.html |
| WASM runner (GCS) | https://storage.googleapis.com/wmvprunner/index.html |
| Docs (GCS) | https://storage.googleapis.com/glow-docs/VPythonDocs/index.html |