Development
Code
The Python Launcher is mostly run as a typical Rust project. The only potential differences is the automation tool used (for convenience).
We use just as a task runner. Some rules require Python >= 3.11 to be installed. Some rules will also use py itself via cargo run, so the source code needs to be working.
Website
The website is built using MkDocs and Material for MkDocs.
While developing the website, you can run just docs-dev to start a local server that will automatically reload when you make changes. This will create a virtual environment in .venv and install the necessary dependencies.
To build the docs, use just docs.
Releasing
GitHub Releases
- Adjust the version number in
Cargo.toml(previous releases). - Check that the relevant action workflows are passing.
- Run the
releasepipeline. - Publish the release.
- Make sure the docs are up-to-date based on the published version (e.g. the installation instructions link to the newest files)
Useful links
Appendix
PEPs
- PEP 397: Python launcher for Windows
- PEP 486: Make the Python Launcher aware of virtual environments