Metadata-Version: 2.4
Name: verdog-runtime
Version: 0.1.0
Summary: The Verdog workflow runtime, shared by every generated project.
License-Expression: AGPL-3.0-only
Project-URL: Repository, https://github.com/verdog-ai/verdog-runtime
Project-URL: Documentation, https://github.com/verdog-ai/verdog-website/tree/main/site
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cloudpickle>=3.1.2
Requires-Dist: typing-extensions>=4.13
Requires-Dist: tyro>=1
Requires-Dist: tabulate>=0.10
Dynamic: license-file

# Verdog runtime

The Python runtime shared by projects generated by [Verdog](https://github.com/verdog-ai/verdog).
It provides workflow declarations, the interpreter, agent adapters, and durable run resumption.
Requires Python 3.12 or newer.

Generated projects declare `verdog-runtime` as a dependency. For local development
before the package is published, install this checkout with `uv pip install .`.

## Development

```sh
uv sync --locked
uv run --locked pytest
uv run --locked pyright
uv build
```

The tests and type-checking configuration are self-contained in this repository.

See the [workflow declarations](verdog_runtime/declarations/README.md),
[interpreter](verdog_runtime/interpreter/README.md), and
[user documentation](https://github.com/verdog-ai/verdog-website/tree/main/site).

## Release

[release.yml](.github/workflows/release.yml) runs when a `v*` tag is pushed,
like `v0.1.0`. It checks that the tag matches `project.version`, runs tests and
type checks on Python 3.12, builds the wheel and source distribution, checks
the installed wheel, and publishes both distributions to PyPI.

Configure this once before the first release:

1. Create the GitHub environment `pypi` in this repository's settings.
2. Add a [PyPI Trusted Publisher](https://docs.pypi.org/trusted-publishers/):
   project `verdog-runtime`, owner `verdog-ai`, repository `verdog-runtime`,
   workflow filename `release.yml`, environment `pypi`.
   For a new PyPI project, add it as a pending publisher under your account's
   Publishing settings. For an existing project, use its Publishing settings.
   No API-token secret is needed.

Commit and push the repository contents, including this workflow. For each
release, update `project.version` in `pyproject.toml`, run `uv lock`, and commit
those changes. Then push the matching tag:

```sh
git push origin main
git tag v0.1.0
git push origin v0.1.0
```

Use a new version and matching tag for each subsequent release.

## License

Verdog runtime is licensed under the GNU Affero General Public License,
version 3 only (`AGPL-3.0-only`). See [LICENSE](LICENSE).
