Conversation
|
Can you update main README with instruction how to deploy locally ? |
There was a problem hiding this comment.
Pull request overview
This PR migrates the YAPTIDE developer documentation site from a MkDocs/Poetry setup to an Astro + Starlight site, adds a new documentation content structure (architecture/backend/frontend/converter/API reference), and updates CI/dependabot to match the new Node-based build.
Changes:
- Replace MkDocs configuration/content with an Astro + Starlight documentation site (new
astro.config.mjs,package.json, content undersrc/content/docs/). - Add extensive new/updated developer documentation pages across setup, architecture, backend, frontend, converter, and API reference.
- Update GitHub Pages workflow and Dependabot to use npm + Astro build output (
dist/), and adjust repo-level config files (.gitignore, VSCode configs).
Reviewed changes
Copilot reviewed 73 out of 157 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
astro.config.mjs |
Starlight site configuration (site/base/sidebar/logo/edit link). |
package.json |
Introduces Astro/Starlight dependencies and build scripts. |
tsconfig.json |
Adds Astro strict TS config for the docs project. |
src/content.config.ts |
Configures Starlight docs collection loader/schema. |
src/styles/custom.css |
Custom theme tokens + landing-page card/badge styling. |
public/favicon.svg |
Adds SVG favicon with light/dark fill via media query. |
public/assets/logo.svg |
Adds static logo asset for the site. |
src/assets/yaptide-logo.svg |
Adds logo used by Starlight config. |
.gitignore |
Updates ignores for Astro (dist/, .astro/, node_modules/, env files). |
.vscode/launch.json |
Adds VSCode launch config for astro dev. |
.vscode/extensions.json |
Recommends Astro VSCode extension. |
.github/workflows/docs.yml |
Switches GitHub Pages build/deploy from MkDocs/Python to Astro/Node (dist/). |
.github/dependabot.yml |
Switches dependency updates from pip to npm (+ GitHub Actions). |
src/content/docs/index.mdx |
New developer docs landing page with mode matrix and navigation cards. |
src/content/docs/local-setup/local-frontend-demo.mdx |
Local “demo mode” (frontend-only) setup guide. |
src/content/docs/docker-setup/docker-frontend-demo.mdx |
Docker guide for serving demo build (currently includes TODO placeholders). |
src/content/docs/docker-setup/docker-celery.mdx |
Docker setup guide for backend + Celery workers (currently includes TODO placeholders). |
src/content/docs/docker-setup/docker-slurm.mdx |
Docker SLURM setup stub (currently TODO + tip block). |
src/content/docs/architecture/overview.md |
System-level architecture overview + diagram. |
src/content/docs/architecture/data-flow.md |
End-to-end data flow across direct/batch/local execution paths. |
src/content/docs/architecture/auth-model.md |
Auth model for native vs Keycloak + demo mode behavior. |
src/content/docs/backend/overview.md |
Backend architecture overview (Flask/Celery/Postgres). |
src/content/docs/backend/api-endpoints.md |
Narrative guide to backend endpoints and usage. |
src/content/docs/backend/database.md |
Database schema/model documentation and migration workflow. |
src/content/docs/backend/simulation-lifecycle.md |
Job/task state machine and direct vs batch execution details. |
src/content/docs/backend/simulator-management.md |
Simulator binary management via S3 + encryption. |
src/content/docs/backend/docker-deployment.md |
Docker Compose deployment guide for backend stack. |
src/content/docs/backend/testing.md |
Backend testing approach and fixtures. |
src/content/docs/frontend/overview.md |
Frontend architecture overview and directory structure. |
src/content/docs/frontend/3d-editor.md |
3D editor (Three.js) architecture and core patterns. |
src/content/docs/frontend/simulation-services.md |
Frontend simulation service abstraction and flows. |
src/content/docs/frontend/pyodide-converter.md |
In-browser converter via Pyodide + build pipeline. |
src/content/docs/frontend/geant4-wasm.md |
Geant4 WebAssembly runtime architecture and limitations. |
src/content/docs/frontend/auth-flows.md |
Standard vs Keycloak auth flows + demo mode behavior. |
src/content/docs/frontend/adding-commands.md |
Command-pattern guide for undo/redo and testing. |
src/content/docs/frontend/testing.md |
Frontend test strategy (Jest/RTL) + mocking patterns. |
src/content/docs/converter/overview.md |
Converter purpose, supported engines, and structure. |
src/content/docs/converter/conversion-flow.md |
End-to-end conversion pipeline explanation. |
src/content/docs/converter/adding-a-simulator.md |
How-to guide for adding a new converter engine. |
src/content/docs/converter/shieldhit.md |
SHIELD-HIT12A converter internals and formats. |
src/content/docs/converter/fluka.md |
FLUKA converter internals and card-based format. |
src/content/docs/converter/geant4.md |
Geant4 converter internals (GDML + macro). |
src/content/docs/converter/testing.md |
Converter testing strategy (golden files + unit tests). |
src/content/docs/contributing/guide.md |
Contribution workflow across repos. |
src/content/docs/contributing/code-style.md |
Style/lint conventions across Python/TS repos. |
src/content/docs/contributing/glossary.md |
Project glossary for domain and architecture terms. |
src/content/docs/api-reference/overview.md |
API reference overview + endpoint grouping. |
src/content/docs/api-reference/auth.md |
Auth endpoint reference. |
src/content/docs/api-reference/jobs.md |
Jobs endpoint reference. |
src/content/docs/api-reference/results.md |
Results/inputs/logs endpoint reference. |
src/content/docs/api-reference/user.md |
User/clusters endpoint reference. |
mkdocs.yml |
Removes MkDocs site config. |
pyproject.toml |
Removes Poetry/MkDocs dependency definition. |
docs/index.md |
Removes old MkDocs landing stub. |
docs/gen_ref_pages.py |
Removes MkDocs auto-reference generator script. |
docs/backend/* |
Removes old MkDocs backend docs. |
docs/frontend/* |
Removes old MkDocs frontend docs. |
docs/converter/* |
Removes old MkDocs converter docs. |
docs/documentation/index.md |
Removes old MkDocs “how docs work” page. |
Comments suppressed due to low confidence (1)
.github/workflows/docs.yml:56
actions/configure-pagesruns for pull_request events as well, but PRs (especially from forks) typically don't have GitHub Pages write permissions. Consider gating Pages-specific steps (configure-pages,upload-pages-artifact,deploy-pages) behind the samepush && refs/heads/maincondition, and keep PR runs to justnpm ci/npm run buildto avoid CI failures.
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload artifact if on main
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: actions/upload-pages-artifact@v4
with:
path: 'dist'
- name: Deploy to GitHub Pages if on main
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
id: deployment
uses: actions/deploy-pages@v4
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| :::tip | ||
| Prefer a local setup? See [Local — SLURM](/docs/local-setup/local-slurm/) for the non-containerized version. | ||
| ::: |
There was a problem hiding this comment.
The admonition block appears to be closed with ::: followed by trailing whitespace. Starlight/markdown-it container syntax typically expects the closing fence to be exactly :::; the extra spaces can prevent the tip block from closing/rendering correctly. Remove the trailing whitespace so the closing line is just :::.
| Welcome to the YAPTIDE developer documentation! Here you can find guides and resources for setting up a development environment, understanding the architecture, and contributing to the project. | ||
| The source code is hosted on [GitHub](https://github.com/yaptide/). | ||
|
|
||
| To learn how to use the app, see the [user documentation](https://yaptide.github.io/docs/). | ||
|
|
There was a problem hiding this comment.
This link labels itself as "user documentation" but points to https://yaptide.github.io/docs/, which is also the configured base for this site (astro.config.mjs sets base: "/docs"). That makes the link circular/confusing. Point it to the actual user-facing docs location (or rename the link text if this site is intended to be the user docs).
astro.config.mjs
Outdated
| } | ||
| ], | ||
| }, | ||
| { |
There was a problem hiding this comment.
The sidebar config for the "Docker Setup" section has inconsistent indentation (the opening { is indented differently than the rest of the array items). While it still parses, it reads like an accidental nesting/copy-paste error and makes future edits risky. Reformat this block (e.g., run the repo formatter) so the sidebar array items are consistently aligned.
| { | |
| { |
| ## Prerequisites | ||
|
|
||
| TODO Docker setup should not require Node.js or Python - change the dockerfile and update this guide | ||
|
|
||
| - **Node.js 20+** with npm | ||
| - **Python 3.9+** with pip and venv — needed to build the converter into a Pyodide/WebAssembly module (only if building locally) | ||
| - **Docker** |
There was a problem hiding this comment.
There is a TODO placeholder in the published docs. If this page is meant to be user-facing, replace the TODO with actual prerequisites (or move it into an explicit "Known limitations" callout) so the guide is actionable.
| ## Prerequisites | ||
|
|
||
| TODO the Node.js and Python requirements should be removed for the docker setup - update the dockerfile and this guide | ||
|
|
||
| - **Docker Engine 20.10+** with Docker Compose v2 | ||
| - **Node.js 20+** with npm (for the frontend, until the frontend Docker setup is complete) | ||
| - **Python 3.9+** with pip and venv (for the converter submodule build, until the frontend Docker setup is complete) | ||
| - **Git** |
There was a problem hiding this comment.
This page contains TODO placeholders (e.g., about removing Node.js/Python requirements and switching the frontend instructions to Docker). If this is intended for developers to follow today, please either complete these sections or clearly label them as not yet supported so readers don't follow partially correct instructions.
| ## Step 3: Start the frontend | ||
|
|
||
| TODO change this to use Docker instructions — the frontend currently requires a local setup | ||
|
|
||
| The backend API is available at **http://localhost:5000** (via NGINX). Start the frontend in a separate terminal: | ||
| ```bash |
There was a problem hiding this comment.
This TODO indicates the core instructions are not yet Docker-based ("change this to use Docker instructions"). If the page is going into the sidebar/navigation, consider either completing this section or adding an explicit note that the Docker setup is currently backend-only and the frontend must be run locally, to avoid misleading readers.
I created new docs, some pages are rewrites of the old docs, some are new. The base was generated by AI, I reviewed and fixed all the generated pages. There's a few TODOs which I'll resolve before merging.
I used Starlight instead of
mkdocs, so the commands are different now:npm run start- run and test locallynpm run build- build the production websitenpm run preview- run the buildGithub Pages workflow needs to be tested before merging.