Skip to content

Runner hooks and docs refresh#14

Merged
dcrockwell merged 2 commits intodevelopfrom
feature/runner-hooks
Feb 1, 2026
Merged

Runner hooks and docs refresh#14
dcrockwell merged 2 commits intodevelopfrom
feature/runner-hooks

Conversation

@dcrockwell
Copy link
Copy Markdown
Contributor

Why

We needed a first-class way to apply setup/teardown across multiple suites, without duplicating hooks inside each suite, and to document the new runner behavior clearly for users.

What

Added runner-level hooks (per-test, per-suite, per-run), introduced TestInfo/SuiteInfo metadata with best-effort source tracking, expanded docs and tested snippets, updated compatibility reports, and bumped the version to 2.1.0 with release notes.

How

Implemented hook execution in the runner/executor with sandboxing and failure semantics, threaded metadata through discovery and gherkin parsing, added comprehensive tests and snippet-backed examples, and updated docs/CHANGELOG/README accordingly.

Test Plan

  • make test

## Why This Change Was Made
- Provide a first-class way to apply setup/teardown across suites without editing each suite’s internal hooks.
- Expose deterministic metadata (name, full name, tags, kind, source) so runner hooks can make decisions based on identifiers.
- Keep execution behavior explicit and predictable under parallelism while improving documentation and tested examples.

## What Was Changed
- Added runner-level hook APIs in `dream_test/runner` and executed them in `dream_test/parallel` with sandboxing.
- Introduced `types.TestInfo` and `types.SuiteInfo`, plus `source` propagation from discovery and Gherkin parsing.
- Updated docs, snippets, tests, compatibility reports, and bumped the project to 2.1.0 with release notes.

## Note to Future Engineer
- Runner hook failures have specific semantics (`SetupFailed` for before_each_test, synthetic failures for suite/run hooks); please keep these aligned if you refactor execution.
- The `source` field is best-effort and will be `None` for manually constructed suites—sorry in advance to your future self’s forensic ambitions.
## Why This Change Was Made
- CI was failing because gleam_stdlib now requires Gleam >= 1.14.0, but the workflow was pinned to 1.13.0.

## What Was Changed
- Bumped the GitHub Actions workflow to install Gleam 1.14.0.

## Note to Future Engineer
- If CI suddenly breaks with a version mismatch, check this pin before blaming the universe.
- Yes, another version bump. You're welcome, future you.
@dcrockwell dcrockwell self-assigned this Feb 1, 2026
@dcrockwell dcrockwell added documentation Improvements or additions to documentation enhancement New feature or request labels Feb 1, 2026
@dcrockwell dcrockwell merged commit 7db7072 into develop Feb 1, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant