Contributing¶
PyReveal favors a small public API: build Slide() objects, add them to Presentation, export with save(). Prefer plain strings and typed enums (Theme, Plugin, …) over low-level HTML and element classes unless you need fine-grained control.
Development setup¶
git clone https://github.com/tavallaie/pyreveal.git
cd pyreveal
git submodule update --init --recursive
uv sync --dev --group docs
Run tests¶
Build the package¶
Publish a release¶
Releases are automated by .github/workflows/release.yml. Pushing a v* tag runs tests, publishes to PyPI, and creates a GitHub Release with generated notes.
One-time PyPI setup¶
- Create the pyreveal project on PyPI (first release only).
- On PyPI → Publishing → Add a new trusted publisher:
- Owner:
tavallaie - Repository:
pyreveal - Workflow:
release.yml - Environment: (leave blank unless you use a GitHub Environment)
No API tokens are stored in the repository; uv publish uses OIDC trusted publishing.
Cut a release¶
- Bump
versioninpyproject.tomland commit. - Tag and push:
- Watch the Release workflow on GitHub Actions.
- Docs for the new version are deployed when the tag lands on
mainordev(see Documentation versioning). After merging a release bump tomain, push the tag from that commit.
Documentation¶
Preview docs locally:
Build a static site:
See Documentation versioning for publishing versioned docs to GitHub Pages.