The website uses Sphinx, MyST Markdown, and the Read the Docs theme. Sources
live in docs/. Edit Markdown (.md) pages and add
new pages to a toctree so they appear in the navigation. The logos are in
docs/logos/; the site uses pyecloud-logo-stacked-transparent-for-dark.svg
on the dark blue panel. Colours, taken from the logos, and layout adjustments
live in docs/_static/custom.css.
Parameter tables use MyST's fenced list-table directive so their Markdown
cells can contain paragraphs, lists, and equations without long table rows.
From the repository root, create a separate environment in docs/.venv-docs
using Python 3.11 or newer (the publishing workflow uses Python 3.12):
python -m venv docs/.venv-docs
source docs/.venv-docs/bin/activate
python -m pip install -r docs/requirements.txt
python -m sphinx -n -W --keep-going -b html docs docs/_build/html
python -m http.server 8000 --directory docs/_build/htmlOpen http://localhost:8000. On Windows, activate the environment with
docs\.venv-docs\Scripts\activate instead. The environment is ignored by Git
and excluded from the Sphinx sources in docs/conf.py. Rebuild after editing a page, then refresh
the browser. Stop the server with Ctrl+C.
The build treats warnings as errors and checks internal references. It does
not install PyECLOUD, compile native extensions, or run simulations. The
displayed release is read from PyECLOUD/_version.py without importing the
simulation packages.
Check external links separately, since remote sites can be temporarily unavailable:
python -m sphinx -b linkcheck docs docs/_build/linkcheckThe site is published with GitHub Pages by the Documentation workflow
(.github/workflows/docs.yml):
- Every push to
main, including merged pull requests, builds the site and deploys it. - Every pull request against
mainbuilds the site without deploying it, so warnings and broken references are caught before merging. - The workflow can also be started manually from the Actions tab.
The build uses the same strict settings as the local build above. Only
PyCOMPLETE/PyECLOUD deploys; forks run the build check only.
To preview a build, download the documentation-html artifact from the run
summary, extract it, and serve the extracted folder with
python -m http.server 8000. In a fork, Actions may need to be enabled in the
fork's Actions tab first.
The buildup parameter pages were migrated from
docs/legacy_tex/reference/src/reference.tex. The single-bunch page includes
PyPARIS_sim_class/Simulation_parameters_doc.md directly, so that guide has one
editable source. Parameter descriptions should match the code; check names, defaults and units in PyECLOUD/default_input_parameters.py when you change them.
The figures in Plotting buildup results are
generated from the saved LHC dipole reference data using
docs/_static/plot_buildup_outputs.py and stored in docs/_static/buildup/.
Sphinx includes these figures directly, so building the website does not require
running PyECLOUD or regenerating plots. To regenerate them from the repository
root with PyECLOUD and Matplotlib installed:
python docs/_static/plot_buildup_outputs.py testing/tests_buildup/LHC_ArcDipReal_450GeV_sey1.70_2.5e11ppb_bl_1.00ns/Pyecltest_angle3D_ref.mat --output-dir docs/_static/buildupHow the documentation was migrated from the original wiki and reference manual, and how far it has been checked against the code, is recorded in the migration and audit notes.