docs/contribution/developer_guide.md @ base
docs/contribution/developer_guide.md @ PR head
66
7## 1. Setting Up the Development Environment7## 1. Setting Up the Development Environment
88
9To set up the development environment for the Optics Framework, follow these steps:9To set up the development environment for the Optics Framework, follow these steps:
nn10
11**Prefer not to set this up by hand?** The repository ships a dev container that does all of it for you, locally in VS Code or in a GitHub Codespace — see [Dev Container and Codespaces](dev_container.md).
1012
11### Clone the Repository13### Clone the Repository
1214
13Clone the Optics Framework repository to your local machine using the following command:15Clone the Optics Framework repository to your local machine using the following command:
117```119```
118120
119This will start a local server (typically at `http://127.0.0.1:8000`) that automatically reloads when you make changes to the documentation files.121This will start a local server (typically at `http://127.0.0.1:8000`) that automatically reloads when you make changes to the documentation files.
120122
n121To build the documentation for production:n123To build the documentation the way CI does:
122124
123```bash125```bash
n124poetry run mkdocs buildn126poetry run mkdocs build --strict
125```127```
tt128
129`--strict` turns MkDocs warnings into failures, so a link to a page that does not exist fails the build instead of shipping. The `Build-mkdocs-docs` workflow uses it for both the pull-request build and the deploy to GitHub Pages — run it locally before pushing a docs change.
130
131A link to a file outside `docs/` (a Dockerfile, `docker-compose.yml`, `.devcontainer/devcontainer.json`) cannot be relative: `docs/` is the site root, so anything above it is unreachable. Link to those with their full `https://github.com/mozarkai/optics-framework/blob/main/...` URL.
126132
127### Run Tests133### Run Tests
128134
129Run the tests to ensure that your changes do not break existing functionality:135Run the tests to ensure that your changes do not break existing functionality:
Legends
Colors
Added
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op