Merged
Conversation
## 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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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