|
| 1 | +--- |
| 2 | +title: Website Management & Ops |
| 3 | +description: Guidance for maintaining the OSG networking site and personae workflow |
| 4 | +--- |
| 5 | + |
| 6 | +# Website Management & Operations |
| 7 | + |
| 8 | +This page outlines recommended processes for building, publishing and managing the OSG Networking site (MkDocs) with a focus on persona-based documentation. The goal is to maintain `docs/` as the single source of truth and manage generated `site/` through CI. |
| 9 | + |
| 10 | +## Overview |
| 11 | +- Use `docs/` as canonical source of content. |
| 12 | +- Build & verify with `mkdocs build` locally or via CI. |
| 13 | +- Use CI to deploy to `gh-pages` or a hosted platform; avoid committing generated `site/` to the repo when possible. |
| 14 | + |
| 15 | +## Local development & testing |
| 16 | +1. Create a Python virtualenv and install dependencies: |
| 17 | +~~~bash |
| 18 | +python3 -m venv .venv |
| 19 | +source .venv/bin/activate |
| 20 | +pip install -U pip |
| 21 | +pip install mkdocs mkdocs-material pymdown-extensions |
| 22 | +~~~ |
| 23 | +2. Run a local preview server: |
| 24 | +~~~bash |
| 25 | +mkdocs serve -a 0.0.0.0:8000 |
| 26 | +~~~ |
| 27 | +3. Build the site for local verification: |
| 28 | +~~~bash |
| 29 | +mkdocs build --clean -d site |
| 30 | +~~~ |
| 31 | + |
| 32 | +## CI & Publishing |
| 33 | +1. CI should run the following steps on PRs and pushes to `master`: |
| 34 | + - `mkdocs build --clean` (fail on build errors) |
| 35 | + - Run link checks and the `verify-site-scripts.sh` script to assert docs/site parity for changed files (optional if not keeping `site/` in repo) |
| 36 | + - Run `autoupdate-scripts-sha.sh` to update `*.sha256` files when scripts change in docs. |
| 37 | +2. CI publish step (if you want to auto-deploy): use `peaceiris/actions-gh-pages` or `JamesIves/github-pages-deploy-action` to publish the `site/` directory to the `gh-pages` branch or a host. |
| 38 | + |
| 39 | +## Keep `docs/` canonical |
| 40 | +- Prefer editing and reviewing changes to files under `docs/`. |
| 41 | +- If you must edit `site/` (e.g., for manual content patches), follow the same review process and back-propagate changes into `docs/`. |
| 42 | + |
| 43 | +## Persona content & operational workflow |
| 44 | +- Persona pages live under `docs/personas/<persona>/` and should include the canonical `landing.md`, `intro.md`, and other materials. |
| 45 | +- Owners and status metadata should be included in frontmatter (owner email or team, status: proposed/draft/stable). This helps review and governance. |
| 46 | + |
| 47 | +## Actions we automated |
| 48 | +- CI verification: `.github/scripts/verify-site-scripts.sh` — verifies `docs/` script copies and `site/` parity for changed scripts. |
| 49 | +- Autoupdate: `.github/scripts/autoupdate-scripts-sha.sh` — updates per script `*.sha256` and `scripts.sha256` when a script in `docs/` changes in a PR. |
| 50 | + |
| 51 | +## Migration / Next steps |
| 52 | +1. Consider removing `site/` from the repo if CI deployment is configured and stable; commit `site/` removal with a PR that updates CI to publish built site to `gh-pages`. |
| 53 | +2. Add a `web-site-management.md` page (this page) with step-by-step instructions for maintainers. |
| 54 | +3. Add code owners for `docs/` and `personas` to ensure consistent review. |
| 55 | + |
| 56 | +--- |
| 57 | + |
| 58 | +If anything in this workflow should be changed (e.g., we continue to check in site), we can adapt the CI accordingly to keep both the ease of `site/` updates and code reviewing safeguards. |
0 commit comments