Skip to content

Add VitePress documentation for Hermes 5.x - #68

Merged
tomaj merged 1 commit into
masterfrom
docs/site
Oct 13, 2026
Merged

tomaj merged 1 commit into
masterfrom
docs/site

Conversation

@tomaj

@tomaj tomaj commented Oct 12, 2026 •

Copy link
Copy Markdown
Owner

Description

VitePress documentation for Hermes 5.x, served at /hermes/.

GitHub Pages currently publishes the PHPUnit HTML coverage report at the site root. This change builds the guide and, after the test workflow succeeds on master, copies that same coverage-report artifact to /hermes/coverage/ inside one Pages deploy. The standalone coverage workflow is removed so the two jobs cannot overwrite each other. The docs deploy listens for a workflow named CI or PHPUnit, so it still runs after the PHP 8.4 CI lands.

The home illustration is an inline SVG. Envelopes move from emit() into the high, default, and scheduled lanes, then to handle(), where a check appears. One envelope fails and travels back along the retry path. prefers-reduced-motion leaves a static frame. Light and dark colors follow the theme.

Examples follow the 5.x signatures in src/. Slovak pages and a 6.x tree are not included. docs/site-nav.ts and docs/guide/versioning.md are the places to add them.

Type of change

  • Bug fix (non-breaking)
  • New feature (non-breaking)
  • Breaking change (target the 6.0 line)
  • Documentation

Testing

  • composer phpunit
  • composer phpstan
  • composer phpcs

No PHP sources changed. docs/scripts/check-links.sh builds the site, checks that every SVG is well-formed XML, checks that generated GitHub edit and blob/master links match files in the repo, and crawls the site at base /hermes/. Edit links are not requested from GitHub.

Documentation

  • CHANGELOG.md updated for a user-visible change
  • README.md updated, if the public usage changed
  • No documentation update is needed

CHANGELOG.md is unchanged. This is not a library release. The docs changelog page follows the existing file and the 5.0.0 release notes.

Checklist

The library tests are unchanged. The documentation check is the link and SVG script above.

Pages

  • / Home, with the animated hero
  • /guide/getting-started Getting started and quickstart
  • /guide/concepts Message, Emitter, Dispatcher, Handler, Driver
  • /guide/architecture Architecture
  • /guide/drivers/ Driver comparison
  • /guide/drivers/redis Redis (ext-redis)
  • /guide/drivers/predis Predis
  • /guide/drivers/rabbitmq RabbitMQ lazy
  • /guide/drivers/sqs Amazon SQS
  • /guide/retry Retry
  • /guide/delayed Delayed execution
  • /guide/priority Priority, including issue 50
  • /guide/shutdown Max items and graceful shutdown (file, Redis, Predis)
  • /guide/logging Logging
  • /guide/testing Testing
  • /guide/deployment Supervisor, systemd, Kubernetes
  • /guide/extending Custom driver, handler, serializer, shutdown
  • /guide/versioning Where 6.x and Slovak pages go later
  • /api/reference API reference
  • /faq FAQ
  • /changelog Changelog
  • /contributing Contributing

Diagrams

All 30 diagrams are hand-drawn Excalidraw style (no fill, light and dark SVGs) generated from docs/diagrams/*.mmd with npm run diagrams; diagrams:check in CI fails if the committed SVGs are stale.

  • Home: animated emit, queue lanes, worker check, and a retry return
  • Getting started: sequence from emit to handle
  • Concepts: request path, message states, handler error flowchart
  • Architecture: controller to worker, emit/dispatch/handle sequence, life of one message
  • Drivers: which driver to choose
  • Redis: key layout (sets and the schedule sorted set) and the wait sequence
  • Predis: wait sequence, including ZREM
  • RabbitMQ: default exchange, non-durable queue, no_ack consume, and the consume sequence
  • Amazon SQS: createQueue, receive, delete before handle, visibility timeout note
  • Retry: exception path, and a sequence with the backoff formula
  • Delayed execution: sorted set versus immediate publish
  • Priority: insertion order reversed by array_reverse (issue 50)
  • Shutdown: loop flowchart and the ops/signal/manager sequence
  • Logging: which line is written for send, start, end, error, and shutdown
  • Testing: direct handle() versus DummyDriver
  • Deployment: web replicas plus Supervisor, systemd, and Kubernetes
  • Extending: interfaces and a custom driver
  • Versioning: how 6.x and Slovak pages attach later
  • API reference: MessageInterface, DriverInterface, HandlerInterface, Emitter, Dispatcher
  • FAQ: what a handler failure does

Publish the guide at /hermes/ and keep the coverage report at /hermes/coverage/ so GitHub Pages can serve both.

Diagrams are hand-drawn Excalidraw SVGs generated from docs/diagrams/*.mmd, with light and dark variants and the Excalifont font embedded. The docs link check also fails when the generated files are out of date.

Co-authored-by: Tomas Majer <tomasmajer@gmail.com>
echo "Open [index.html](./index.html) for the line-by-line report."
echo
echo "- Commit: ${{ github.event.workflow_run.head_sha }}"
echo "- Branch: ${{ github.event.workflow_run.head_branch }}"
@tomaj
tomaj marked this pull request as ready for review October 13, 2026 07:40
@tomaj
tomaj merged commit 8d0bc3c into master Oct 13, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants