Skip to content

Gravewright v2.0.0-alpha.0 — SDK Freeze

Choose a tag to compare

@ricardoporfirio ricardoporfirio released this 17 Jun 23:13

Gravewright v2.0.0-alpha.0 — SDK Freeze

Gravewright v2.0.0-alpha.0 freezes SDK 1 as the supported package extension contract.

This release turns Gravewright into a system-agnostic, package-first VTT platform. Rulesets and addons are now expected to ship as SDK packages instead of being baked into the core.

This release also includes a built package artifact that can be installed through the package manager UI or validated and installed manually.

Highlights

  • Freezes SDK 1 as the supported package extension contract.
  • Removes pre-SDK-1 legacy compatibility surfaces.
  • Keeps the core platform system-agnostic.
  • Removes bundled DnD5e from the core.
  • Ships ruleset support as external SDK packages.
  • Includes a built package artifact for installation and validation.
  • Supports external ruleset packages through the grouped package layout.
  • Stabilizes package validation, install, update, and diagnostics.
  • Stabilizes managed package storage via storage.sqlite.
  • Stabilizes package interop via sdk.bus.
  • Stabilizes declarative sheets and HTML/runtime sheet support.
  • Updates the package manager UI for ruleset inspection and installation.
  • Adds one-click setup scripts for Windows, macOS, and Linux.
  • Adds Docker deployment support.
  • Verifies package-aware backup and restore coverage.

SDK 1 frozen surface

SDK 1 now includes the following supported extension surfaces:

  • manifest v1;
  • grouped package layout: data/packages/{kind_plural}/{id};
  • declarative JSON package model;
  • actor and item registration;
  • declarative sheets;
  • HTML sheets;
  • sheet runtime behavior through sheets.runtime;
  • combat runtime behavior through combat.runtime;
  • package-to-package messaging through sdk.bus;
  • managed package storage through storage.sqlite;
  • package settings;
  • package content packs;
  • package validation and diagnostics;
  • package-aware backup and restore.

System-agnostic core

Gravewright core no longer bundles DnD5e as a built-in ruleset.

5e support is distributed separately as an SDK package:

When included with this release, the built package artifact can be installed directly through the Gravewright package manager UI.

This keeps the core platform clean and lets game systems ship independently as packages.

Installing Gravewright

Windows

Download the release archive, extract it, and run:

install-windows.bat

macOS / Linux

Download the release archive, extract it, then run:

bash install-macos-linux.sh

Or:

chmod +x install-macos-linux.sh
./install-macos-linux.sh

Manual setup

uv sync --frozen
uv run python scripts/setup_local_env.py
uv run python -m app.cli doctor
uv run python -m app.cli run --open

Then open:

http://127.0.0.1:8000

Docker

docker compose up -d --build

Then open:

http://localhost:8000

Installing rulesets

Rulesets are installed as packages.

Recommended: use the Gravewright web UI.

  1. Open Gravewright.
  2. Go to Sistemas de Regras / Rulesets.
  3. Click Enviar e instalar.
  4. Select a ruleset package .zip.
  5. Review package details.
  6. Click Instalar.

If you are using the package artifact included with this release, select the provided built package .zip during installation.

Manual package installation is also supported:

uv run python -m app.cli package validate data/packages/rulesets/my-rpg
uv run python -m app.cli package install my-rpg --enable
uv run python -m app.cli doctor

Validation

This release was validated with:

unit test suite
e2e test suite
compileall
SDK reference check
alembic upgrade head
doctor --strict --json
backup --include-assets --include-packages --verify
restore --dry-run

The included built package artifact was also validated against the SDK 1 package contract.

Expected doctor output may include a development warning if SESSION_SECRET is still set to the default value.

Alpha status

This is still an Alpha release, not LTS.

Real campaign use is no longer discouraged when backups are used, but you should still:

  • back up before upgrading;
  • test upgrades before important sessions;
  • keep export/backup copies of campaign data;
  • expect possible breaking changes before LTS, especially outside the frozen SDK 1 package contract.

Notes for package authors

Package authors should target SDK 1 and use the documented extension surfaces.

Do not depend on removed pre-SDK-1 compatibility APIs.

Use:

  • sheets.runtime instead of old sheet hook naming;
  • combat.runtime instead of old combat hook naming;
  • sdk.bus for package-to-package integration;
  • storage.sqlite for managed package storage;
  • grouped package layout under data/packages/{kind_plural}/{id}.

Upgrade notes

If you were using an earlier Alpha with bundled DnD5e, install the external 5e SRD package instead:

If a built package artifact is included with this release, install that package through the package manager UI or through the CLI before running campaigns that depend on it.

If your local database references the old bundled DnD5e package, remove or update that package reference before running campaigns.

Known limitations

  • Gravewright is not LTS yet.
  • Marketplace/premium package distribution is not implemented yet.
  • Cards/deck support is not part of core in this release.
  • Some package ecosystems are still being developed externally.

Summary

Gravewright v2.0.0-alpha.0 is the SDK Freeze release.

It establishes Gravewright as a self-hostable, server-authoritative, SDK-driven VTT where game systems and extensions ship as packages instead of being baked into the core.

This release also provides a built package artifact so the SDK package workflow can be installed, inspected, validated, and tested immediately.