Skip to content

Bump hegeltest from 0.39.4 to 0.43.1 - #107

Merged
xd009642 merged 1 commit into
masterfrom
dependabot/cargo/hegeltest-0.43.1
Sep 14, 2026
Merged

xd009642 merged 1 commit into
masterfrom
dependabot/cargo/hegeltest-0.43.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 14, 2026

Copy link
Copy Markdown
Contributor

Bumps hegeltest from 0.39.4 to 0.43.1.

Release notes

Sourced from hegeltest's releases.

libhegel v0.42.1

This patch changes how libhegel releases are tagged and named. A libhegel release is now tagged libhegel-v<version> and its GitHub release is titled libhegel v<version>, so the prebuilt binaries download from https://github.com/hegeldev/hegel-rust/releases/download/libhegel-v<version>/<asset>. The repository's plain v<version> tags now belong to the hegeltest crate, whose version differs from libhegel's. Earlier libhegel releases keep their v<version> tags and also carry libhegel-v<version> tags, so existing pins keep working and a binding can use one URL scheme for every version.

v0.42.0

This release turns print_blob on by default.

libhegel C ABI

This release changes the base value of print_blob from false to true, and removes print_blob = true from the ci profile. hegel_settings_get_print_blob now returns true for a handle from hegel_settings_new under development, base, and workload. The behavior of ci is unchanged.

v0.41.1

This patch moves the Antithesis integration into the engine: the test's location is now passed to libhegel, which writes the verdict to sdk.jsonl itself when running inside Antithesis. Nothing changes in what is reported.

With no JSON left to write in the frontend, serde_json is now only a dependency when the serde_json feature is enabled, instead of always.

libhegel C ABI

This patch moves the Antithesis integration into libhegel, so every language binding gets it rather than each reimplementing it.

The new hegel_settings_set_test_location records where the test under a settings handle lives: its source file and line, the class, module or package enclosing it, and the function name.

hegel_settings_set_test_location(ctx, settings, "tests/list_tests.c", 42, "list_tests", "reversal_is_involutive");

Inside Antithesis (detected via ANTITHESIS_OUTPUT_DIR), libhegel then writes the verdict of every run started from those settings, and of every test case replayed from a blob with them, to sdk.jsonl in the output directory as an always assertion in the format Antithesis's SDKs use — identified as <class_name>::<function> passes properties — so the property is listed alongside the assertions in the system under test and flagged when it fails. A run that ends in a run-level error (a failed health check, say) is reported as a failure, since it is no verdict on the property. Outside Antithesis, and for settings without a location, nothing is written. Like the database key, the location is per-test identity rather than a setting, and hegel_settings_register_profile does not snapshot it.

v0.41.0

This release updates the hegeltest-c dependency to 0.41.0.

libhegel C ABI

This release changes the numeric values of hegel_verbosity_t so that the default, HEGEL_VERBOSITY_NORMAL, is 0. A zero-initialized value now selects the default level (#357):

/* before */
HEGEL_VERBOSITY_QUIET = 0, HEGEL_VERBOSITY_NORMAL = 1
/* after */
HEGEL_VERBOSITY_NORMAL = 0, HEGEL_VERBOSITY_QUIET = 1

RELEASE_TYPE: patch

This patch fixes an engine panic during shrinking. When the span-reordering pass ran against a test case with several groups of same-label sibling spans, and reordering one group produced an improvement that shortened the recorded span list, the pass went on to index the remaining groups with positions from the old, longer list. The run then aborted with Engine panic: index out of bounds instead of reporting the shrunk counterexample (re-running the test recovered via the failure database, but the first run's result was lost). Span groups are now re-validated against the current spans after each improvement, and groups that no longer exist are skipped.

v0.40.0

This release adds named settings profiles. Three ship with Hegel: development (what local runs get), ci (selected automatically on CI servers), and workload (selected automatically inside Antithesis). Modify a shipped profile or define your own in a hegel.toml at your package or workspace root:

... (truncated)

Changelog

Sourced from hegeltest's changelog.

0.43.1 - 2026-09-11

This patch adds Generator::label, a provided method giving every generator a label of its own, and the functions generators::label_from_name and generators::combine_labels for deriving one. A label is an opaque u64 identifying a generator to the engine, which treats two spans with the same label as coming from the same generator when it shrinks and mutates test cases; it has no other meaning. The default label is derived from the generator's type name, so hand-written generators get a stable label with no extra work; generators built from others should combine a label of their own with their components':

use hegel::generators::{self as gs, Generator};
impl<T, G: Generator<T>> Generator<(T, T)> for Pairs<G> {
fn label(&self) -> u64 {
gs::combine_labels(&[gs::label_from_name("mycrate.pairs"), self.inner.label()])
}
fn do_draw(&amp;self, tc: &amp;hegel::TestCase) -&gt; (T, T) {
    (self.inner.do_draw(tc), self.inner.do_draw(tc))
}

}

Previously every collection shared one label, every map another and so on, regardless of what they contained. The built-in combinators, #[derive(DefaultGenerator)] and #[composite] now label their spans this way, so vecs(integers()) and vecs(text()) have different labels, which should let the engine's span-swapping shrink passes and mutations line up spans that actually correspond. The hidden generators::labels constants and generators::fnv1a_hash are gone; the engine's hegel_label_t enum they mirrored no longer exists.

0.43.0 - 2026-09-11

This release deprecates the exclude_min(bool) and exclude_max(bool) builder methods on gs::floats() in favour of min_value_exclusive and max_value_exclusive, which take the bound directly:

// before
gs::floats::<f64>().min_value(0.0).exclude_min(true).max_value(1.0).exclude_max(true)
// after
gs::floats::<f64>().min_value_exclusive(0.0).max_value_exclusive(1.0)

min_value and min_value_exclusive set the same bound, so whichever is called last wins (likewise for max_value / max_value_exclusive). An exclusive bound can no longer be set without a bound value, so that InvalidArgument no longer exists; the remaining validation (an exclusive +inf minimum, an exclusive -inf maximum, or exclusive bounds on a single-point range) is unchanged.

exclude_min and exclude_max remain as deprecated methods so existing call sites get a deprecation warning naming the replacement, but calling either now panics immediately rather than configuring the generator.

0.42.1 - 2026-09-11

This release updates the hegeltest-c dependency to 0.38.1.

0.42.0 - 2026-09-10

This release replaces hegel::stateful::run and hegel::stateful::run_concurrent with a builder, hegel::stateful::Machine. Settings::stateful_step_count is removed. Each state machine chooses its own step count, instead of every stateful test in a run sharing one setting.

// before
#[hegel::test(stateful_step_count = 200)]
fn test_counter(tc: TestCase) {
    hegel::stateful::run(Counter::new(), tc);
}
</tr></table> 

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [hegeltest](https://github.com/hegeldev/hegel-rust) from 0.39.4 to 0.43.1.
- [Release notes](https://github.com/hegeldev/hegel-rust/releases)
- [Changelog](https://github.com/hegeldev/hegel-rust/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hegeldev/hegel-rust/commits)

---
updated-dependencies:
- dependency-name: hegeltest
  dependency-version: 0.43.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update rust code labels Sep 14, 2026
@xd009642
xd009642 merged commit 992024e into master Sep 14, 2026
1 check passed
@dependabot
dependabot Bot deleted the dependabot/cargo/hegeltest-0.43.1 branch September 14, 2026 17:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant