Skip to content

feat(pumpkin-core): Define predicate order and add Predicate::implies#426

Merged
maartenflippo merged 7 commits intomainfrom
feat/predicate-order
Apr 30, 2026
Merged

feat(pumpkin-core): Define predicate order and add Predicate::implies#426
maartenflippo merged 7 commits intomainfrom
feat/predicate-order

Conversation

@maartenflippo
Copy link
Copy Markdown
Contributor

The chosen order makes minimizing a sorted collection easy. It can be done in two linear passes, one forward and one backward.

The chosen order makes minimizing a sorted collection easy. It can
be done in two linear passes, one forward and one backward.
@maartenflippo maartenflippo changed the title feat(pumpkin-core): Define an order among predicates feat(pumpkin-core): Define an order among predicates and add Predicate::implies Apr 23, 2026
@maartenflippo maartenflippo changed the title feat(pumpkin-core): Define an order among predicates and add Predicate::implies feat(pumpkin-core): Define predicate order and add Predicate::implies Apr 23, 2026
Copy link
Copy Markdown
Contributor

@ImkoMarijnissen ImkoMarijnissen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a concrete use case for this in the future?

Comment thread pumpkin-crates/core/src/engine/predicates/predicate.rs Outdated
Comment thread pumpkin-crates/core/src/engine/predicates/predicate.rs Outdated
Comment thread pumpkin-crates/core/src/engine/predicates/predicate.rs
@maartenflippo
Copy link
Copy Markdown
Contributor Author

Is there a concrete use case for this in the future?

Yes, I use it in the HL resolver (#408)

Comment thread pumpkin-crates/core/src/engine/predicates/predicate.rs Outdated
@maartenflippo maartenflippo merged commit 7efb72a into main Apr 30, 2026
8 checks passed
@maartenflippo maartenflippo deleted the feat/predicate-order branch April 30, 2026 00:52
maartenflippo added a commit that referenced this pull request Apr 30, 2026
commit 6a1615b1a1315c4664503d535e573616ec4bdf5d
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Apr 30 13:49:17 2026 +1000

    chore(deps): bump pyo3 from 0.25.1 to 0.28.3 (#436)

    Bumps [pyo3](https://github.com/pyo3/pyo3) from 0.25.1 to 0.28.3.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/pyo3/pyo3/releases">pyo3's
    releases</a>.</em></p>
    <blockquote>
    <h2>PyO3 0.28.3</h2>
    <p>This patch contains several fixes for stability of the PyO3 0.28.x
    series:</p>
    <ul>
    <li><code>Python::attach</code> and <code>Python::try_attach</code> will
    no longer return before the thread initializing the interpreter has
    finished runnning <code>site.py</code> when using the
    <code>auto-initialize</code> feature.</li>
    <li>Fix unsoundness in <code>PyBytesWriter::write_vectored</code> when
    targeting the Python 3.15 prerelease interpreter.</li>
    <li>Fix possible deadlock in <code>.into_pyobject()</code>
    implementation for C-like <code>#[pyclass]</code> enums.</li>
    </ul>
    <p>A couple of edge cases causing compile failures were also fixed.</p>
    <p>Thank you to the following contributors for the improvements:</p>
    <p><a href="https://github.com/alex"><code>@​alex</code></a>
    <a
    href="https://github.com/bschoenmaeckers"><code>@​bschoenmaeckers</code></a>
    <a href="https://github.com/chirizxc"><code>@​chirizxc</code></a>
    <a href="https://github.com/davidhewitt"><code>@​davidhewitt</code></a>
    <a
    href="https://github.com/Embers-of-the-Fire"><code>@​Embers-of-the-Fire</code></a>
    <a href="https://github.com/Icxolu"><code>@​Icxolu</code></a>
    <a href="https://github.com/maurosilber"><code>@​maurosilber</code></a>
    <a href="https://github.com/ngoldbaum"><code>@​ngoldbaum</code></a></p>
    <h2>PyO3 0.28.2</h2>
    <p>This patch release contains a soundness fix for subclassing native
    types such as <code>PyList</code> with the <code>abi3</code> feature
    enabled when targeting a minimum version of Python 3.12 or higher.
    (Support for doing such subclassing was newly added in PyO3 0.28.0.)</p>
    <p>PyO3 0.28.0 and 0.28.1 will be yanked.</p>
    <p>This release also contains a correction to the FFI definition
    <code>PyType_GetTypeDataSize</code> and incorrectly-generated
    <code>__qualname__</code> on <code>#[pyclass]</code> enum variant types
    when using <code>#[pyo3(name = &quot;...&quot;)]</code> option to rename
    the enum and/or variant.</p>
    <p>Thank you to the following contributors for the improvements:</p>
    <p><a
    href="https://github.com/davidhewitt"><code>@​davidhewitt</code></a>
    <a href="https://github.com/Icxolu"><code>@​Icxolu</code></a>
    <a href="https://github.com/ngoldbaum"><code>@​ngoldbaum</code></a></p>
    <h2>PyO3 0.28.1</h2>
    <p>This patch contains a number of minor compile-time fixes for PyO3
    0.28.0.</p>
    <p>Thank you to the following contributors for the improvements:</p>
    <p><a
    href="https://github.com/davidhewitt"><code>@​davidhewitt</code></a>
    <a href="https://github.com/funsafemath"><code>@​funsafemath</code></a>
    <a href="https://github.com/ngoldbaum"><code>@​ngoldbaum</code></a>
    <a href="https://github.com/rara64"><code>@​rara64</code></a>
    <a href="https://github.com/tdyas"><code>@​tdyas</code></a></p>
    <h2>PyO3 0.28.0</h2>
    <p>This release contains many improvements across PyO3's feature
    set:</p>
    <ul>
    <li>Proper support for <code>__init__</code> methods for
    <code>#[pyclass]</code> types</li>
    <li>Support for <code>#[deleter]</code>s to complement the existing
    <code>#[getter]</code> and <code>#[setter]</code> attributes when
    implementing class &quot;properties&quot;.</li>
    <li>Support for subclassing many Python types with the <code>abi3</code>
    feature (requires Python 3.12+).</li>
    <li>A new <code>#[pyclass(new = &quot;from_fields&quot;)]</code> option
    to automatically define the constructor from the class fields.</li>
    <li>Many corrections to FFI definitions (including removal of many
    private CPython methods)</li>
    </ul>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    href="https://github.com/PyO3/pyo3/blob/main/CHANGELOG.md">pyo3's
    changelog</a>.</em></p>
    <blockquote>
    <h2>[0.28.3] - 2026-04-02</h2>
    <h3>Fixed</h3>
    <ul>
    <li>Fix compile error with <code>#[pyclass(get_all)]</code> on a type
    named <code>Probe</code>. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5837">#5837</a></li>
    <li>Fix compile error in debug builds related to
    <code>_Py_NegativeRefcount</code> with Python &lt; 3.12. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5847">#5847</a></li>
    <li>Fix a race condition where <code>Python::attach</code> or
    <code>try_attach</code> could return before <code>site.py</code> had
    finished running. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5903">#5903</a></li>
    <li>Fix unsoundness in <code>PyBytesWriter::write_vectored</code> with
    Python 3.15 prerelease versions. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5907">#5907</a></li>
    <li>Fix deadlock in <code>.into_pyobject()</code> implementation for
    C-like <code>#[pyclass]</code> enums. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5928">#5928</a></li>
    </ul>
    <h2>[0.28.2] - 2026-02-18</h2>
    <h3>Fixed</h3>
    <ul>
    <li>Fix complex enum <code>__qualname__</code> not using python name <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5815">#5815</a></li>
    <li>Fix FFI definition <code>PyType_GetTypeDataSize</code> (was
    incorrectly named <code>PyObject_GetTypeDataSize</code>). <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5819">#5819</a></li>
    <li>Fix memory corruption when subclassing native types with
    <code>abi3</code> feature on Python 3.12+ (newly enabled in PyO3
    0.28.0). <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5823">#5823</a></li>
    </ul>
    <h2>[0.28.1] - 2026-02-14</h2>
    <h3>Fixed</h3>
    <ul>
    <li>Fix <code>*args</code> / <code>**kwargs</code> support in<code>
    experimental-async</code> feature (regressed in 0.28.0). <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5771">#5771</a></li>
    <li>Fix <code>clippy::declare_interior_mutable_const</code> warning
    inside <code>#[pyclass]</code> generated code on enums. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5772">#5772</a></li>
    <li>Fix <code>ambiguous_associated_items</code> compilation error when
    deriving <code>FromPyObject</code> or using
    <code>#[pyclass(from_py_object)]</code> macro on enums with
    <code>Error</code> variant. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5784">#5784</a></li>
    <li>Fix <code>__qualname__</code> for complex <code>#[pyclass]</code>
    enum variants to include the enum name. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5796">#5796</a></li>
    <li>Fix missing <code>std::sync::atomic::Ordering</code> import for
    targets without atomic64. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5808">#5808</a></li>
    </ul>
    <h2>[0.28.0] - 2026-02-01</h2>
    <h3>Packaging</h3>
    <ul>
    <li>Bump MSRV to Rust 1.83. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5531">#5531</a></li>
    <li>Bump minimum supported <code>quote</code> version to 1.0.37. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5531">#5531</a></li>
    <li>Bump supported GraalPy version to 25.0. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5542">#5542</a></li>
    <li>Drop <code>memoffset</code> dependency. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5545">#5545</a></li>
    <li>Support for free-threaded Python is now opt-out rather than opt-in.
    <a href="https://redirect.github.com/PyO3/pyo3/pull/5564">#5564</a></li>
    <li>Bump <code>target-lexicon</code> dependency to 0.13.3. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5571">#5571</a></li>
    <li>Drop <code>indoc</code> and <code>unindent</code> dependencies. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5608">#5608</a></li>
    </ul>
    <h3>Added</h3>
    <ul>
    <li>Add <code>__init__</code> support in <code>#[pymethods]</code>. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/4951">#4951</a></li>
    <li>Expose <code>PySuper</code> on PyPy, GraalPy and ABI3 <a
    href="https://redirect.github.com/PyO3/pyo3/pull/4951">#4951</a></li>
    <li>Add <code>PyString::from_fmt</code> and <code>py_format!</code>
    macro. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5199">#5199</a></li>
    <li>Add <code>#[pyclass(new = &quot;from_fields&quot;)]</code> option.
    <a href="https://redirect.github.com/PyO3/pyo3/pull/5421">#5421</a></li>
    <li>Add <code>pyo3::buffer::PyUntypedBuffer</code>, a type-erased form
    of <code>PyBuffer&lt;T&gt;</code>. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5458">#5458</a></li>
    <li>Add <code>PyBytes::new_with_writer</code> <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5517">#5517</a></li>
    <li>Add <code>PyClass::NAME</code>. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5579">#5579</a></li>
    <li>Add <code>pyo3_build_config::add_libpython_rpath_link_args</code>.
    <a href="https://redirect.github.com/PyO3/pyo3/pull/5624">#5624</a></li>
    </ul>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/PyO3/pyo3/commit/743af645e7143be6abe2217aafaa0540cf532af4"><code>743af64</code></a>
    release: 0.28.3</li>
    <li><a
    href="https://github.com/PyO3/pyo3/commit/2042b4c0c1da74844f43f4970ab52386abf6deac"><code>2042b4c</code></a>
    fix deadlock when initializing enum via <code>into_pyobject()</code> (<a
    href="https://redirect.github.com/pyo3/pyo3/issues/5928">#5928</a>)</li>
    <li><a
    href="https://github.com/PyO3/pyo3/commit/01572470d031d16cd14fdc96f330397b4055f424"><code>0157247</code></a>
    ci: update UI tests for Rust 1.94 (<a
    href="https://redirect.github.com/pyo3/pyo3/issues/5859">#5859</a>)</li>
    <li><a
    href="https://github.com/PyO3/pyo3/commit/e234f8a75aaa0c0c0feecaf360107a78a7c0e436"><code>e234f8a</code></a>
    Update getting-started.md (<a
    href="https://redirect.github.com/pyo3/pyo3/issues/5899">#5899</a>)</li>
    <li><a
    href="https://github.com/PyO3/pyo3/commit/c06848d5f466350efe6bd05c9fc6cd923a12dd78"><code>c06848d</code></a>
    fix ffi-check in 3.15.0a7 (<a
    href="https://redirect.github.com/pyo3/pyo3/issues/5873">#5873</a>)</li>
    <li><a
    href="https://github.com/PyO3/pyo3/commit/83f4283bde6e207827edeb9422e79944ced8327c"><code>83f4283</code></a>
    remove unused <code>try_trait_v2</code> feature when enabling the
    <code>nightly</code> feature (<a
    href="https://redirect.github.com/pyo3/pyo3/issues/5868">#5868</a>)</li>
    <li><a
    href="https://github.com/PyO3/pyo3/commit/0de57ed453eeb47e40b011d8be2cdc0028116ebc"><code>0de57ed</code></a>
    Fix unsoundness in <code>PyBytesWriter::write_vectored</code> (<a
    href="https://redirect.github.com/pyo3/pyo3/issues/5907">#5907</a>)</li>
    <li><a
    href="https://github.com/PyO3/pyo3/commit/49cd13fae22c5e46a4b0946539b9e64bb8ccb573"><code>49cd13f</code></a>
    fixes <a
    href="https://redirect.github.com/pyo3/pyo3/issues/5900">#5900</a> --
    address race condition with initialization and site.py loading...</li>
    <li><a
    href="https://github.com/PyO3/pyo3/commit/c90d163638ef4a754fd31a3a29e3ba2ebc05a354"><code>c90d163</code></a>
    [fix] Fix <code>std::ffi</code> import for
    <code>_Py_NegativeRefcount</code> (<a
    href="https://redirect.github.com/pyo3/pyo3/issues/5847">#5847</a>)</li>
    <li><a
    href="https://github.com/PyO3/pyo3/commit/b79d7257dd0abd9d6d029878d8f0902a8e35e695"><code>b79d725</code></a>
    fix(pyo3-macros): allow pyclass named Probe (<a
    href="https://redirect.github.com/pyo3/pyo3/issues/5837">#5837</a>)</li>
    <li>Additional commits viewable in <a
    href="https://github.com/pyo3/pyo3/compare/v0.25.1...v0.28.3">compare
    view</a></li>
    </ul>
    </details>
    <br />

    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pyo3&package-manager=cargo&previous-version=0.25.1&new-version=0.28.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

    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-automerge-start)
    [//]: # (dependabot-automerge-end)

    ---

    <details>
    <summary>Dependabot commands and options</summary>
    <br />

    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)

    </details>

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Maarten Flippo <maartenflippo@outlook.com>

commit 646c2f2d577b59574759695f54c6884290a3a4ff
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Apr 30 13:25:04 2026 +1000

    chore(deps): bump wasm-bindgen-test from 0.3.68 to 0.3.70 (#435)

    Bumps [wasm-bindgen-test](https://github.com/wasm-bindgen/wasm-bindgen)
    from 0.3.68 to 0.3.70.
    <details>
    <summary>Commits</summary>
    <ul>
    <li>See full diff in <a
    href="https://github.com/wasm-bindgen/wasm-bindgen/commits">compare
    view</a></li>
    </ul>
    </details>
    <br />

    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=wasm-bindgen-test&package-manager=cargo&previous-version=0.3.68&new-version=0.3.70)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

    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-automerge-start)
    [//]: # (dependabot-automerge-end)

    ---

    <details>
    <summary>Dependabot commands and options</summary>
    <br />

    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)

    </details>

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 5b887a44e7f614e4cdfd312df638dbc1945f5251
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Apr 30 13:23:58 2026 +1000

    chore(deps): bump cc from 1.2.60 to 1.2.61 (#437)

    Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.60 to 1.2.61.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/rust-lang/cc-rs/releases">cc's
    releases</a>.</em></p>
    <blockquote>
    <h2>cc-v1.2.61</h2>
    <h3>Other</h3>
    <ul>
    <li>fix <code>OutputKind::Capture</code> documentation (<a
    href="https://redirect.github.com/rust-lang/cc-rs/pull/1705">#1705</a>)</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    href="https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md">cc's
    changelog</a>.</em></p>
    <blockquote>
    <h2><a
    href="https://github.com/rust-lang/cc-rs/compare/cc-v1.2.60...cc-v1.2.61">1.2.61</a>
    - 2026-04-24</h2>
    <h3>Other</h3>
    <ul>
    <li>fix <code>OutputKind::Capture</code> documentation (<a
    href="https://redirect.github.com/rust-lang/cc-rs/pull/1705">#1705</a>)</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/rust-lang/cc-rs/commit/360f69119862eb26b44253f09f9ce60be5b3011b"><code>360f691</code></a>
    chore(cc): release v1.2.61 (<a
    href="https://redirect.github.com/rust-lang/cc-rs/issues/1707">#1707</a>)</li>
    <li><a
    href="https://github.com/rust-lang/cc-rs/commit/17a2788f499da76bf7a6b404367ab37613b8fa00"><code>17a2788</code></a>
    Bump taiki-e/install-action from 2.75.16 to 2.75.17 (<a
    href="https://redirect.github.com/rust-lang/cc-rs/issues/1706">#1706</a>)</li>
    <li><a
    href="https://github.com/rust-lang/cc-rs/commit/da52db738b1b1ea89cc176dfd718e0de6bef742a"><code>da52db7</code></a>
    command_helpers.rs: fix <code>OutputKind::Capture</code> documentation
    (<a
    href="https://redirect.github.com/rust-lang/cc-rs/issues/1705">#1705</a>)</li>
    <li><a
    href="https://github.com/rust-lang/cc-rs/commit/ee64d58c06ec386eaa5298bb415e56c5710498ce"><code>ee64d58</code></a>
    Bump taiki-e/install-action from 2.75.4 to 2.75.5 (<a
    href="https://redirect.github.com/rust-lang/cc-rs/issues/1703">#1703</a>)</li>
    <li><a
    href="https://github.com/rust-lang/cc-rs/commit/78cf7e481b1b2ce6f61cada4128843451e5580f4"><code>78cf7e4</code></a>
    CI: Hash-pin all actions, apply other suggestions from zizmor (<a
    href="https://redirect.github.com/rust-lang/cc-rs/issues/1702">#1702</a>)</li>
    <li>See full diff in <a
    href="https://github.com/rust-lang/cc-rs/compare/cc-v1.2.60...cc-v1.2.61">compare
    view</a></li>
    </ul>
    </details>
    <br />

    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cc&package-manager=cargo&previous-version=1.2.60&new-version=1.2.61)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

    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-automerge-start)
    [//]: # (dependabot-automerge-end)

    ---

    <details>
    <summary>Dependabot commands and options</summary>
    <br />

    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)

    </details>

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 7efb72a451c1c09d32071e1bfb412a242fd71421
Author: Maarten Flippo <maartenflippo@outlook.com>
Date:   Thu Apr 30 10:52:33 2026 +1000

    feat(pumpkin-core): Define predicate order and add Predicate::implies (#426)

    The chosen order makes minimizing a sorted collection easy. It can be
    done in two linear passes, one forward and one backward.

commit 70503a5ed2929006f0be72c97045409e8605f9e5
Author: Maarten Flippo <maartenflippo@outlook.com>
Date:   Thu Apr 30 09:57:09 2026 +1000

    feat(pumpkin-core): Brancher implements Debug (#409)

    Just like many other traits, we want the `Brancher` trait to extend
    `Debug`. This allows for easier debug printing and usage of the Debug
    derive macro.

commit c82db0ac716f973a395bc7a50ea492614ca236c1
Author: Maarten Flippo <maartenflippo@outlook.com>
Date:   Thu Apr 30 09:56:24 2026 +1000

    refactor(pumpkin-core): Attach `InferenceCode` instead of `Predicate` (#433)

    When calling `PropagationContext::post`, the user must supply an
    inference code as a parameter. However, when the reason of the
    propagation is lazy, the inference code of the explanation may differ
    from the inference that identified the propagation.

    A very small other benefit is that on benchmarks with much propagation,
    the clone of an inference code actually shows up in profiles. With this
    PR, when a lazy explanation is used, no such clone happens.

    For eager reasons: Instead of passing the `InferenceCode` to
    `PropagationContext::post`, it is part of the eager reason.
    `From<PropositionalConjunction>` is no longer implemented for `Reason`.
    Instead, `From<(PropositionalConjunction, &InferenceCode)>` is
    implemented.

    Alternatively, if a lazy explanation is used, instead of returning
    `&[Predicate]`, `Propagator::lazy_explanation` now returns a
    `LazyExplanation`. This is a combination of a slice of predicates with
    an inference code.

commit e5db5c677ac2e19b1d49f89c881af914600e715e
Author: Maarten Flippo <maartenflippo@outlook.com>
Date:   Wed Apr 29 14:00:23 2026 +1000

    fix(pumpkin-core): Creation and Insertion in Sparse Set (#395)

    Co-authored-by: Imko Marijnissen <imko.marijnissen@gmail.com>

commit 664384820bd09c12c7d4fb717cea5838600e7c27
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Apr 27 10:33:35 2026 +1000

    chore(deps): bump convert_case from 0.8.0 to 0.11.0 (#428)

    Bumps [convert_case](https://github.com/rutrum/convert-case) from 0.8.0
    to 0.11.0.
    <details>
    <summary>Commits</summary>
    <ul>
    <li>See full diff in <a
    href="https://github.com/rutrum/convert-case/commits">compare
    view</a></li>
    </ul>
    </details>
    <br />

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 7159a584b1d24eed4753c714410489bfe446182a
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Apr 27 10:14:50 2026 +1000

    chore(deps): bump downcast-rs from 1.2.1 to 2.0.2 (#429)

    Bumps [downcast-rs](https://github.com/marcianx/downcast-rs) from 1.2.1
    to 2.0.2.
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    href="https://github.com/marcianx/downcast-rs/blob/master/CHANGELOG.md">downcast-rs's
    changelog</a>.</em></p>
    <blockquote>
    <h2>2.0.2 - 2025-09-01</h2>
    <h3>Changed</h3>
    <ul>
    <li>Updated <code>README.md</code> to omit lines hidden in crate
    documentation.</li>
    <li>(Minor) <code>Cargo.toml</code>: Corrected license format and added
    categories.</li>
    </ul>
    <h2>2.0.1 - 2025-01-06</h2>
    <h3>Change</h3>
    <ul>
    <li>Updated how code conditioned on the <code>sync</code> flag is
    written in the crate
    documentation to work around a <a
    href="https://redirect.github.com/rust-lang/crates.io/issues/10331">crates.io
    doc rendering
    bug</a>.</li>
    </ul>
    <h2>2.0.0 - 2025-01-06</h2>
    <h3>Added</h3>
    <ul>
    <li>Gated the sync/<code>Arc</code> downcasting functionality behind a
    new <code>sync</code> feature
    that is enabled by default.</li>
    <li>Added a new <code>DowncastSend</code> trait to support downcasting
    to <code>Box&lt;Any + Send&gt;</code>
    and made <code>DowncastSync</code> extend this trait.</li>
    <li>Added downcasting support to <code>Box&lt;Any + Send +
    Sync&gt;</code> to <code>DowncastSync</code>.</li>
    </ul>
    <h3>Change</h3>
    <ul>
    <li>Updated minimum supported rust version 1.56 to enforce the
    <code>rustdoc::bare_urls</code> lint (1.53) and switch to edition 2021
    (1.56).</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li>See full diff in <a
    href="https://github.com/marcianx/downcast-rs/commits">compare
    view</a></li>
    </ul>
    </details>
    <br />

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 187fce88bdb7857f2ee1114a230f3b441fa9c81a
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Apr 27 10:14:37 2026 +1000

    chore(deps): bump bitfield from 0.14.0 to 0.19.4 (#430)

    Bumps [bitfield](https://github.com/dzamlo/rust-bitfield) from 0.14.0 to
    0.19.4.
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    href="https://github.com/dzamlo/rust-bitfield/blob/master/CHANGELOG.md">bitfield's
    changelog</a>.</em></p>
    <blockquote>
    <h2>[0.19.4] - 2025-11-16</h2>
    <h3>Added</h3>
    <ul>
    <li>Support <code>try_into</code> keyword in field definition to use
    <code>TryInto</code> instead of <code>Into</code></li>
    </ul>
    <h3>Fixed</h3>
    <ul>
    <li>Print the correct error message on incorrect use of the
    <code>impl</code> in <code>no_std</code> crates, thanks to <a
    href="https://github.com/stop5"><code>@​stop5</code></a> for reporting
    and proposing the fix</li>
    </ul>
    <h2>[0.19.3] - 2025-10-10</h2>
    <h3>Added</h3>
    <ul>
    <li>In debug mode, check that msb &gt;= lsb in the default
    <code>BitRange</code>/<code>BitRangeMut</code> implementations and show
    a more helpful
    message than before if this is the case, thanks to <a
    href="https://github.com/blaine-dodson"><code>@​blaine-dodson</code></a>
    for reporting</li>
    <li>Mention MSB and LSB ordering in the readme</li>
    <li>Explain sign extension and valid range of signed field in the
    readme</li>
    </ul>
    <h2>[0.19.2] - 2025-08-24</h2>
    <h3>Fixed</h3>
    <ul>
    <li>Allow usage of a signed int types for the base of newtype, thanks to
    <a href="https://github.com/FeeeeK"><code>@​FeeeeK</code></a></li>
    </ul>
    <h2>[0.19.1] - 2025-05-14</h2>
    <h3>Fixed</h3>
    <ul>
    <li>Allow to use <code>impl new</code> with
    <code>#[deny(missing_docs)]</code>.</li>
    </ul>
    <h2>[0.19.0] - 2025-02-23</h2>
    <h3>Fixed</h3>
    <ul>
    <li>Allow to specify an array of bools.</li>
    </ul>
    <h3>Breaking Changes</h3>
    <ul>
    <li>If the type of an array field is exactly <code>bool</code>, then the
    <code>Bit</code>/<code>BitMut</code> traits are used instead of
    <code>BitRange</code>/<code>BitRangeMut</code>. In some very unlikely
    case where the traits are implemented manually, this may break
    existing code.</li>
    </ul>
    <h2>[0.18.1] - 2025-01-29</h2>
    <h3>Fixed</h3>
    <ul>
    <li>Don't use <code>__bitfield_*</code> macros from the code generated
    by the proc-macros. Otherwise, they need to be imported by
    the calling code.</li>
    <li>Allow <code>mask</code>, <code>from</code> and <code>ìnto</code> as
    getter names.</li>
    </ul>
    <h2>[0.18.0] - 2025-01-27</h2>
    <h3>Fixed</h3>
    <ul>
    <li>With the new proc macro implementation some corner-cases that were
    not handled are now handled correctly.</li>
    </ul>
    <h3>Breaking Changes</h3>
    <ul>
    <li>The syntax to create a constructor by specifying individual fields
    has been removed.</li>
    </ul>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/dzamlo/rust-bitfield/commit/a459bcfd6f96a2d8e0cba02a69e3f4f9e7384938"><code>a459bcf</code></a>
    bitfield 0.19.4</li>
    <li><a
    href="https://github.com/dzamlo/rust-bitfield/commit/de82ee32c89f0bd0a8c879baf94645e785f45028"><code>de82ee3</code></a>
    fix: print the correct error message on incorrect use of the impl in
    no_std c...</li>
    <li><a
    href="https://github.com/dzamlo/rust-bitfield/commit/e3c27779f491d2fe5518e50bfd4513c9c85569f8"><code>e3c2777</code></a>
    docs: Show in example that it is possible to add doc comments</li>
    <li><a
    href="https://github.com/dzamlo/rust-bitfield/commit/079e145ca7e46a15dcfe2e7d544424d71920404e"><code>079e145</code></a>
    fix: Support try_into for array fields</li>
    <li><a
    href="https://github.com/dzamlo/rust-bitfield/commit/3cdcfd3c45cecddb22f598d199100bf2c94dd49c"><code>3cdcfd3</code></a>
    feat: Add support for try_into</li>
    <li><a
    href="https://github.com/dzamlo/rust-bitfield/commit/53331f7f7c99c3d9bb104d18ba254f1f12f33559"><code>53331f7</code></a>
    bitfield 0.19.3</li>
    <li><a
    href="https://github.com/dzamlo/rust-bitfield/commit/a366e5a210382a094e87e2292a109e22eaa4b2b1"><code>a366e5a</code></a>
    docs: Explain sign extension in README</li>
    <li><a
    href="https://github.com/dzamlo/rust-bitfield/commit/0681808d236da1f1d133e7cae04320369872271a"><code>0681808</code></a>
    docs: Mention MSB and LSB ordering in the README</li>
    <li><a
    href="https://github.com/dzamlo/rust-bitfield/commit/9fe9a0f1dd51b2f3caa38f93cbae27e41b67fb3f"><code>9fe9a0f</code></a>
    feat: Add debug check for inverted msb/lsb</li>
    <li><a
    href="https://github.com/dzamlo/rust-bitfield/commit/7f5136d8aa97adf8284543575ec3651e784d9ca6"><code>7f5136d</code></a>
    bitfield 0.19.2</li>
    <li>Additional commits viewable in <a
    href="https://github.com/dzamlo/rust-bitfield/compare/v0.14.0...v0.19.4">compare
    view</a></li>
    </ul>
    </details>
    <br />

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 065e431b8bfb1558859d8b0c3fa0cd5eb1255900
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Apr 23 16:20:49 2026 +1000

    chore(deps): bump signal-hook from 0.3.18 to 0.4.4 (#431)

    Bumps [signal-hook](https://github.com/vorner/signal-hook) from 0.3.18
    to 0.4.4.
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    href="https://github.com/vorner/signal-hook/blob/master/CHANGELOG.md">signal-hook's
    changelog</a>.</em></p>
    <blockquote>
    <h1>0.4.4</h1>
    <ul>
    <li>Documentation about SIGBUS (<a
    href="https://redirect.github.com/vorner/signal-hook/issues/204">#204</a>).</li>
    </ul>
    <h1>0.4.3</h1>
    <ul>
    <li>Don't exclude .c files from release package.</li>
    </ul>
    <h1>0.4.2</h1>
    <ul>
    <li>Fix double-close on pipe unregister (<a
    href="https://redirect.github.com/vorner/signal-hook/issues/200">#200</a>).</li>
    <li>Don't include development scripts in release package (195).</li>
    </ul>
    <h1>signal-hook-mio-0.3.0</h1>
    <h1>signal-hook-tokio-0.4.0</h1>
    <h1>signal-hook-async-std-0.4.0</h1>
    <ul>
    <li>Release to bump dependency on signal-hook.</li>
    </ul>
    <h1>0.4.1</h1>
    <ul>
    <li>Don't pin specific dependency versions accidentally.</li>
    </ul>
    <h1>0.4.0</h1>
    <ul>
    <li>Changed the <code>low_level::pipe</code> to look
    <code>OwnedFd</code> instead of <code>IntoRawFd</code>, to
    enforce ownership of the file descriptor (<a
    href="https://redirect.github.com/vorner/signal-hook/issues/196">#196</a>).</li>
    </ul>
    <h1>signal-hook-registry-1.4.8</h1>
    <ul>
    <li>Restore errno on signal handler exit (<a
    href="https://redirect.github.com/vorner/signal-hook/issues/194">#194</a>,
    <a
    href="https://redirect.github.com/vorner/signal-hook/issues/191">#191</a>).</li>
    </ul>
    <h1>signal-hook-registry-1.4.7</h1>
    <ul>
    <li>Using earlier monopolization to reduce binary size (<a
    href="https://redirect.github.com/vorner/signal-hook/issues/190">#190</a>).</li>
    </ul>
    <h1>signal-hook-mio-0.2.5</h1>
    <ul>
    <li>Allow mio 1.1</li>
    </ul>
    <h1>signal-hook-registry-1.4.6</h1>
    <ul>
    <li>Reword/improve the safety requirements docs for register (<a
    href="https://redirect.github.com/vorner/signal-hook/issues/178">#178</a>).</li>
    </ul>
    <h1>signal-hook-1.3.18</h1>
    <ul>
    <li>Release the special-case removal of AIX for top-level signal-hook
    too (<a
    href="https://redirect.github.com/vorner/signal-hook/issues/169">#169</a>,
    <a
    href="https://redirect.github.com/vorner/signal-hook/issues/176">#176</a>).</li>
    </ul>
    <h1>signal-hook-async-std-0.3.0</h1>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/vorner/signal-hook/commit/f37a7b5918830009c83f5e17fd5a533f2dfd7f82"><code>f37a7b5</code></a>
    Document SIGBUS</li>
    <li><a
    href="https://github.com/vorner/signal-hook/commit/b089b6b64487b23cb3cfc770ab5aa2f55f051116"><code>b089b6b</code></a>
    Update deps</li>
    <li><a
    href="https://github.com/vorner/signal-hook/commit/7854fb670a19e512a030bfa0d41ecb5f8fc90b57"><code>7854fb6</code></a>
    Don't exclude .c files from release package</li>
    <li><a
    href="https://github.com/vorner/signal-hook/commit/c81b0e01ed4eb4b1af3ef753c2ad7a213c3955a7"><code>c81b0e0</code></a>
    Release version 0.4.2</li>
    <li><a
    href="https://github.com/vorner/signal-hook/commit/390dafbc1dce27eb222bce33340dd3ad3ee4653c"><code>390dafb</code></a>
    Fix double-close on pipe unregister</li>
    <li><a
    href="https://github.com/vorner/signal-hook/commit/173107ab7c60d684637e6a3362460903d90d81a4"><code>173107a</code></a>
    Exclude development script from published package</li>
    <li><a
    href="https://github.com/vorner/signal-hook/commit/2413101f2e7851483993e32a3b5a49d09af32e4f"><code>2413101</code></a>
    Release async crates</li>
    <li><a
    href="https://github.com/vorner/signal-hook/commit/85f8c75e6e42b96382faa8a376bafeea8e058ed2"><code>85f8c75</code></a>
    Version 0.4.1 (don't pin dep versions)</li>
    <li><a
    href="https://github.com/vorner/signal-hook/commit/6e4472288ee8387436fa5d708f46e8609edbcde2"><code>6e44722</code></a>
    Version bump to 0.4.0</li>
    <li><a
    href="https://github.com/vorner/signal-hook/commit/80cc0cff0002d1eeb85f8ab9131367a64eed7d98"><code>80cc0cf</code></a>
    Update dependencies</li>
    <li>Additional commits viewable in <a
    href="https://github.com/vorner/signal-hook/compare/v0.3.18...v0.4.4">compare
    view</a></li>
    </ul>
    </details>
    <br />

    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=signal-hook&package-manager=cargo&previous-version=0.3.18&new-version=0.4.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

    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-automerge-start)
    [//]: # (dependabot-automerge-end)

    ---

    <details>
    <summary>Dependabot commands and options</summary>
    <br />

    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)

    </details>

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 037e4eccb5630c0d417927fd2312b4a9591f85d3
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Apr 23 16:20:10 2026 +1000

    chore(deps): bump itertools from 0.13.0 to 0.14.0 (#427)

    Bumps [itertools](https://github.com/rust-itertools/itertools) from
    0.13.0 to 0.14.0.
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    href="https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md">itertools's
    changelog</a>.</em></p>
    <blockquote>
    <h2>0.14.0</h2>
    <h3>Breaking</h3>
    <ul>
    <li>Increased MSRV to 1.63.0 (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/960">#960</a>)</li>
    <li>Removed generic parameter from <code>cons_tuples</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/988">#988</a>)</li>
    </ul>
    <h3>Added</h3>
    <ul>
    <li>Added <code>array_combinations</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/991">#991</a>)</li>
    <li>Added <code>k_smallest_relaxed</code> and variants (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/925">#925</a>)</li>
    <li>Added <code>next_array</code> and <code>collect_array</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/560">#560</a>)</li>
    <li>Implemented <code>DoubleEndedIterator</code> for
    <code>FilterOk</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/948">#948</a>)</li>
    <li>Implemented <code>DoubleEndedIterator</code> for
    <code>FilterMapOk</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/950">#950</a>)</li>
    </ul>
    <h3>Changed</h3>
    <ul>
    <li>Allow <code>Q: ?Sized</code> in <code>Itertools::contains</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/971">#971</a>)</li>
    <li>Improved hygiene of <code>chain!</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/943">#943</a>)</li>
    <li>Improved <code>into_group_map_by</code> documentation (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/1000">#1000</a>)</li>
    <li>Improved <code>tree_reduce</code> documentation (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/955">#955</a>)</li>
    <li>Improved discoverability of <code>merge_join_by</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/966">#966</a>)</li>
    <li>Improved discoverability of <code>take_while_inclusive</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/972">#972</a>)</li>
    <li>Improved documentation of <code>find_or_last</code> and
    <code>find_or_first</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/984">#984</a>)</li>
    <li>Prevented exponentially large type sizes in
    <code>tuple_combinations</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/945">#945</a>)</li>
    <li>Added <code>track_caller</code> attr for <code>asser_equal</code>
    (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/976">#976</a>)</li>
    </ul>
    <h3>Notable Internal Changes</h3>
    <ul>
    <li>Fixed clippy lints (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/956">#956</a>,
    <a
    href="https://redirect.github.com/rust-itertools/itertools/issues/987">#987</a>,
    <a
    href="https://redirect.github.com/rust-itertools/itertools/issues/1008">#1008</a>)</li>
    <li>Addressed warnings within doctests (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/964">#964</a>)</li>
    <li>CI: Run most tests with miri (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/961">#961</a>)</li>
    <li>CI: Speed up &quot;cargo-semver-checks&quot; action (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/938">#938</a>)</li>
    <li>Changed an instance of <code>default_features</code> in
    <code>Cargo.toml</code> to <code>default-features</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/985">#985</a>)</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/rust-itertools/itertools/commit/a015a6831525ee1637df747d3f530a627d9741bf"><code>a015a68</code></a>
    Add <code>next_array</code> and <code>collect_array</code></li>
    <li><a
    href="https://github.com/rust-itertools/itertools/commit/a1213e1c81af9d8c329239b916fb9663387ae1b0"><code>a1213e1</code></a>
    Prepare v0.14.0 release</li>
    <li><a
    href="https://github.com/rust-itertools/itertools/commit/ff0c942b2e0127dfdd311a8b1ee022bd367c237f"><code>ff0c942</code></a>
    fix clippy lints</li>
    <li><a
    href="https://github.com/rust-itertools/itertools/commit/f80883b8e01cba2f8ef872cd33d6eda1a471db4c"><code>f80883b</code></a>
    Fix into_group_map_by documentation errors</li>
    <li><a
    href="https://github.com/rust-itertools/itertools/commit/b793238ff14bb4270456264708acc9771022d6a2"><code>b793238</code></a>
    Add track_caller for asser_equal</li>
    <li><a
    href="https://github.com/rust-itertools/itertools/commit/5d4056b643c575c6a808ec4d6f2fb24db57acf43"><code>5d4056b</code></a>
    <code>default_features</code> is deprecated - switch it to
    <code>default-features</code></li>
    <li><a
    href="https://github.com/rust-itertools/itertools/commit/a447b6896043facbd234bd57213cfae58244d46d"><code>a447b68</code></a>
    doc for added trait</li>
    <li><a
    href="https://github.com/rust-itertools/itertools/commit/d0479b080781cf92a035cf2e33aee04079062b3e"><code>d0479b0</code></a>
    &quot;nitpicks&quot;</li>
    <li><a
    href="https://github.com/rust-itertools/itertools/commit/35c78ce0bc36fbe41df2f5833827b166896e1f50"><code>35c78ce</code></a>
    IndexMut -&gt; BorrowMut&lt;slice&gt;</li>
    <li><a
    href="https://github.com/rust-itertools/itertools/commit/deb53ba21065e6adbcfdd8af120f939733cc52c6"><code>deb53ba</code></a>
    refactored to share code</li>
    <li>Additional commits viewable in <a
    href="https://github.com/rust-itertools/itertools/compare/v0.13.0...v0.14.0">compare
    view</a></li>
    </ul>
    </details>
    <br />

    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=itertools&package-manager=cargo&previous-version=0.13.0&new-version=0.14.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

    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-automerge-start)
    [//]: # (dependabot-automerge-end)

    ---

    <details>
    <summary>Dependabot commands and options</summary>
    <br />

    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)

    </details>

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit be34a9424ddfd5ed7e3ecb8f2eb45e353405d95d
Author: Maarten Flippo <maartenflippo@outlook.com>
Date:   Thu Apr 23 15:58:34 2026 +1000

    Add uv package ecosystem to dependabot config

commit b7aeb7157b0d9cf277643f304af0ea4924a736f5
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Apr 23 15:11:35 2026 +1000

    chore(deps): bump actions/cache from 4 to 5 (#425)

    Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/actions/cache/releases">actions/cache's
    releases</a>.</em></p>
    <blockquote>
    <h2>v5.0.0</h2>
    <blockquote>
    <p>[!IMPORTANT]
    <strong><code>actions/cache@v5</code> runs on the Node.js 24 runtime and
    requires a minimum Actions Runner version of
    <code>2.327.1</code>.</strong></p>
    <p>If you are using self-hosted runners, ensure they are updated before
    upgrading.</p>
    </blockquote>
    <hr />
    <h2>What's Changed</h2>
    <ul>
    <li>Upgrade to use node24 by <a
    href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
    href="https://redirect.github.com/actions/cache/pull/1630">actions/cache#1630</a></li>
    <li>Prepare v5.0.0 release by <a
    href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
    href="https://redirect.github.com/actions/cache/pull/1684">actions/cache#1684</a></li>
    </ul>
    <p><strong>Full Changelog</strong>: <a
    href="https://github.com/actions/cache/compare/v4.3.0...v5.0.0">https://github.com/actions/cache/compare/v4.3.0...v5.0.0</a></p>
    <h2>v4.3.0</h2>
    <h2>What's Changed</h2>
    <ul>
    <li>Add note on runner versions by <a
    href="https://github.com/GhadimiR"><code>@​GhadimiR</code></a> in <a
    href="https://redirect.github.com/actions/cache/pull/1642">actions/cache#1642</a></li>
    <li>Prepare <code>v4.3.0</code> release by <a
    href="https://github.com/Link"><code>@​Link</code></a>- in <a
    href="https://redirect.github.com/actions/cache/pull/1655">actions/cache#1655</a></li>
    </ul>
    <h2>New Contributors</h2>
    <ul>
    <li><a href="https://github.com/GhadimiR"><code>@​GhadimiR</code></a>
    made their first contribution in <a
    href="https://redirect.github.com/actions/cache/pull/1642">actions/cache#1642</a></li>
    </ul>
    <p><strong>Full Changelog</strong>: <a
    href="https://github.com/actions/cache/compare/v4...v4.3.0">https://github.com/actions/cache/compare/v4...v4.3.0</a></p>
    <h2>v4.2.4</h2>
    <h2>What's Changed</h2>
    <ul>
    <li>Update README.md by <a
    href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
    href="https://redirect.github.com/actions/cache/pull/1620">actions/cache#1620</a></li>
    <li>Upgrade <code>@actions/cache</code> to <code>4.0.5</code> and move
    <code>@protobuf-ts/plugin</code> to dev depdencies by <a
    href="https://github.com/Link"><code>@​Link</code></a>- in <a
    href="https://redirect.github.com/actions/cache/pull/1634">actions/cache#1634</a></li>
    <li>Prepare release <code>4.2.4</code> by <a
    href="https://github.com/Link"><code>@​Link</code></a>- in <a
    href="https://redirect.github.com/actions/cache/pull/1636">actions/cache#1636</a></li>
    </ul>
    <h2>New Contributors</h2>
    <ul>
    <li><a href="https://github.com/nebuk89"><code>@​nebuk89</code></a> made
    their first contribution in <a
    href="https://redirect.github.com/actions/cache/pull/1620">actions/cache#1620</a></li>
    </ul>
    <p><strong>Full Changelog</strong>: <a
    href="https://github.com/actions/cache/compare/v4...v4.2.4">https://github.com/actions/cache/compare/v4...v4.2.4</a></p>
    <h2>v4.2.3</h2>
    <h2>What's Changed</h2>
    <ul>
    <li>Update to use <code>@​actions/cache</code> 4.0.3 package &amp;
    prepare for new release by <a
    href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
    href="https://redirect.github.com/actions/cache/pull/1577">actions/cache#1577</a>
    (SAS tokens for cache entries are now masked in debug logs)</li>
    </ul>
    <h2>New Contributors</h2>
    <ul>
    <li><a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
    made their first contribution in <a
    href="https://redirect.github.com/actions/cache/pull/1577">actions/cache#1577</a></li>
    </ul>
    <p><strong>Full Changelog</strong>: <a
    href="https://github.com/actions/cache/compare/v4.2.2...v4.2.3">https://github.com/actions/cache/compare/v4.2.2...v4.2.3</a></p>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    href="https://github.com/actions/cache/blob/main/RELEASES.md">actions/cache's
    changelog</a>.</em></p>
    <blockquote>
    <h1>Releases</h1>
    <h2>How to prepare a release</h2>
    <blockquote>
    <p>[!NOTE]<br />
    Relevant for maintainers with write access only.</p>
    </blockquote>
    <ol>
    <li>Switch to a new branch from <code>main</code>.</li>
    <li>Run <code>npm test</code> to ensure all tests are passing.</li>
    <li>Update the version in <a
    href="https://github.com/actions/cache/blob/main/package.json"><code>https://github.com/actions/cache/blob/main/package.json</code></a>.</li>
    <li>Run <code>npm run build</code> to update the compiled files.</li>
    <li>Update this <a
    href="https://github.com/actions/cache/blob/main/RELEASES.md"><code>https://github.com/actions/cache/blob/main/RELEASES.md</code></a>
    with the new version and changes in the <code>## Changelog</code>
    section.</li>
    <li>Run <code>licensed cache</code> to update the license report.</li>
    <li>Run <code>licensed status</code> and resolve any warnings by
    updating the <a
    href="https://github.com/actions/cache/blob/main/.licensed.yml"><code>https://github.com/actions/cache/blob/main/.licensed.yml</code></a>
    file with the exceptions.</li>
    <li>Commit your changes and push your branch upstream.</li>
    <li>Open a pull request against <code>main</code> and get it reviewed
    and merged.</li>
    <li>Draft a new release <a
    href="https://github.com/actions/cache/releases">https://github.com/actions/cache/releases</a>
    use the same version number used in <code>package.json</code>
    <ol>
    <li>Create a new tag with the version number.</li>
    <li>Auto generate release notes and update them to match the changes you
    made in <code>RELEASES.md</code>.</li>
    <li>Toggle the set as the latest release option.</li>
    <li>Publish the release.</li>
    </ol>
    </li>
    <li>Navigate to <a
    href="https://github.com/actions/cache/actions/workflows/release-new-action-version.yml">https://github.com/actions/cache/actions/workflows/release-new-action-version.yml</a>
    <ol>
    <li>There should be a workflow run queued with the same version
    number.</li>
    <li>Approve the run to publish the new version and update the major tags
    for this action.</li>
    </ol>
    </li>
    </ol>
    <h2>Changelog</h2>
    <h3>5.0.4</h3>
    <ul>
    <li>Bump <code>minimatch</code> to v3.1.5 (fixes ReDoS via globstar
    patterns)</li>
    <li>Bump <code>undici</code> to v6.24.1 (WebSocket decompression bomb
    protection, header validation fixes)</li>
    <li>Bump <code>fast-xml-parser</code> to v5.5.6</li>
    </ul>
    <h3>5.0.3</h3>
    <ul>
    <li>Bump <code>@actions/cache</code> to v5.0.5 (Resolves: <a
    href="https://github.com/actions/cache/security/dependabot/33">https://github.com/actions/cache/security/dependabot/33</a>)</li>
    <li>Bump <code>@actions/core</code> to v2.0.3</li>
    </ul>
    <h3>5.0.2</h3>
    <ul>
    <li>Bump <code>@actions/cache</code> to v5.0.3 <a
    href="https://redirect.github.com/actions/cache/pull/1692">#1692</a></li>
    </ul>
    <h3>5.0.1</h3>
    <ul>
    <li>Update <code>@azure/storage-blob</code> to <code>^12.29.1</code> via
    <code>@actions/cache@5.0.1</code> <a
    href="https://redirect.github.com/actions/cache/pull/1685">#1685</a></li>
    </ul>
    <h3>5.0.0</h3>
    <blockquote>
    <p>[!IMPORTANT]
    <code>actions/cache@v5</code> runs on the Node.js 24 runtime and
    requires a minimum Actions Runner version of <code>2.327.1</code>.</p>
    </blockquote>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/actions/cache/commit/27d5ce7f107fe9357f9df03efb73ab90386fccae"><code>27d5ce7</code></a>
    Merge pull request <a
    href="https://redirect.github.com/actions/cache/issues/1747">#1747</a>
    from actions/yacaovsnc/update-dependency</li>
    <li><a
    href="https://github.com/actions/cache/commit/f280785d7b6e1884c7d12b9136eb0f4a1574fcfd"><code>f280785</code></a>
    licensed changes</li>
    <li><a
    href="https://github.com/actions/cache/commit/619aeb1606e195be0b36fd0ff68dcf1aff6b65a7"><code>619aeb1</code></a>
    npm run build generated dist files</li>
    <li><a
    href="https://github.com/actions/cache/commit/bcf16c2893940a4899761e55c7ac3c1cf88a04f6"><code>bcf16c2</code></a>
    Update ts-http-runtime to 0.3.5</li>
    <li><a
    href="https://github.com/actions/cache/commit/668228422ae6a00e4ad889ee87cd7109ec5666a7"><code>6682284</code></a>
    Merge pull request <a
    href="https://redirect.github.com/actions/cache/issues/1738">#1738</a>
    from actions/prepare-v5.0.4</li>
    <li><a
    href="https://github.com/actions/cache/commit/e34039626f957d3e3e50843d15c1b20547fc90e2"><code>e340396</code></a>
    Update RELEASES</li>
    <li><a
    href="https://github.com/actions/cache/commit/8a671105293e81530f1af99863cdf94550aba1a6"><code>8a67110</code></a>
    Add licenses</li>
    <li><a
    href="https://github.com/actions/cache/commit/1865903e1b0cb750dda9bc5c58be03424cc62830"><code>1865903</code></a>
    Update dependencies &amp; patch security vulnerabilities</li>
    <li><a
    href="https://github.com/actions/cache/commit/565629816435f6c0b50676926c9b05c254113c0c"><code>5656298</code></a>
    Merge pull request <a
    href="https://redirect.github.com/actions/cache/issues/1722">#1722</a>
    from RyPeck/patch-1</li>
    <li><a
    href="https://github.com/actions/cache/commit/4e380d19e192ace8e86f23f32ca6fdec98a673c6"><code>4e380d1</code></a>
    Fix cache key in examples.md for bun.lock</li>
    <li>Additional commits viewable in <a
    href="https://github.com/actions/cache/compare/v4...v5">compare
    view</a></li>
    </ul>
    </details>
    <br />

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit bb6305d26530509fd5bbadec10d74fed2f71a57e
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Apr 23 14:57:28 2026 +1000

    chore(deps): bump stringcase from 0.3.0 to 0.4.0 (#422)

    Bumps [stringcase](https://github.com/sttk/stringcase-rust) from 0.3.0
    to 0.4.0.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/sttk/stringcase-rust/releases">stringcase's
    releases</a>.</em></p>
    <blockquote>
    <h2>0.4.0</h2>
    <h3>⚠️ BREAKING CHANGES</h3>
    <p><em>NOTE: This release differs in the behavior of
    <code>〜_case_with_sep</code> compared to previous versions. (The rest
    behaves the same.)
    This release adds <code>〜_case_with_options</code> functions that take
    the <code>Options</code> struct as an argument for all case conversions
    and modifies the existing functions to use these functions. These
    <code>〜_case_with_options</code> functions ignore ASCII alphabetic
    characters and digits when specified as separators or keep characters.
    Therefore, the behaviour of <code>〜_case_with_sep</code> functions, when
    specified alphabetic or numeric characters as separators will neither
    result in these characters being used nor being removed as separators,
    which differs from the behavior in previous versions.
    In addition, <code>〜_case_with_sep</code>,
    <code>〜_case_with_keep</code>, and <code>〜_case_with_nums_as_word</code>
    functions are all deprecated.</em></p>
    <ul>
    <li>new!: added camel_case_with_options and made use it in existing
    camel case functions by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/25">sttk/stringcase-rust#25</a></li>
    <li>new!: added cobol_case_with_options and made use it in existing
    cobol case functions by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/27">sttk/stringcase-rust#27</a></li>
    <li>new!: added kebab_case_with_options and made use it in existing
    kebab case functions by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/28">sttk/stringcase-rust#28</a></li>
    <li>new!: added macro_case_with_options and made use it in existing
    macro case functions by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/29">sttk/stringcase-rust#29</a></li>
    <li>new!: added pascal_case_with_options and made use it in existing
    pascal case functions by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/30">sttk/stringcase-rust#30</a></li>
    <li>new!: added snake_case_with_options and made use it in existing
    snake case functions by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/31">sttk/stringcase-rust#31</a></li>
    <li>new!: added train_case_with_options and made use it in existing
    train case functions by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/32">sttk/stringcase-rust#32</a></li>
    </ul>
    <h3>Docs</h3>
    <ul>
    <li>doc,comment: modified documentation comments by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/33">sttk/stringcase-rust#33</a></li>
    <li>doc: modified README.md by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/36">sttk/stringcase-rust#36</a></li>
    </ul>
    <h3>Supports</h3>
    <ul>
    <li>cicd: updated target rust versions by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/26">sttk/stringcase-rust#26</a></li>
    <li>test: added more tests for coverage by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/34">sttk/stringcase-rust#34</a></li>
    <li>test: updated benchmark tests by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/35">sttk/stringcase-rust#35</a></li>
    <li>release tasks for 0.4.0 by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/37">sttk/stringcase-rust#37</a></li>
    </ul>
    <p><strong>Full Changelog</strong>: <a
    href="https://github.com/sttk/stringcase-rust/compare/0.3.0...0.4.0">https://github.com/sttk/stringcase-rust/compare/0.3.0...0.4.0</a></p>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/sttk/stringcase-rust/commit/a04c8f88e24234033da1d8ac557d71122e2034c4"><code>a04c8f8</code></a>
    0.4.0 (<a
    href="https://redirect.github.com/sttk/stringcase-rust/issues/37">#37</a>)</li>
    <li><a
    href="https://github.com/sttk/stringcase-rust/commit/db8c28ff7c1e2ff7baafa6b87ee7e0ae590fe939"><code>db8c28f</code></a>
    doc: modified README.md (<a
    href="https://redirect.github.com/sttk/stringcase-rust/issues/36">#36</a>)</li>
    <li><a
    href="https://github.com/sttk/stringcase-rust/commit/22d46883dd0ed2ef24b7ddf5bb2c345e90ca07eb"><code>22d4688</code></a>
    test: updated benchmark tests (<a
    href="https://redirect.github.com/sttk/stringcase-rust/issues/35">#35</a>)</li>
    <li><a
    href="https://github.com/sttk/stringcase-rust/commit/2b1f2612a0a5d529a4c426a7bc9a7959eea835bc"><code>2b1f261</code></a>
    test: added more tests for coverage (<a
    href="https://redirect.github.com/sttk/stringcase-rust/issues/34">#34</a>)</li>
    <li><a
    href="https://github.com/sttk/stringcase-rust/commit/bd04d55734493c0e6fb10af1f00abcbbc6cf01b9"><code>bd04d55</code></a>
    doc,comment: modified documentation comments (<a
    href="https://redirect.github.com/sttk/stringcase-rust/issues/33">#33</a>)</li>
    <li><a
    href="https://github.com/sttk/stringcase-rust/commit/8283681968a9b74e1f1297fb1d6cfeaa3d789c37"><code>8283681</code></a>
    new!: added train_case_with_options and made use it in existing train
    case fu...</li>
    <li><a
    href="https://github.com/sttk/stringcase-rust/commit/033e117f272ffb7c58a4e8c09e7d9ea05e8f26e4"><code>033e117</code></a>
    new!: added snake_case_with_options and made use it in existing snake
    case fu...</li>
    <li><a
    href="https://github.com/sttk/stringcase-rust/commit/65c6a15a05e7818ba5160d86d3a051418a5f8c8c"><code>65c6a15</code></a>
    new!: added pascal_case_with_options and made use it in existing pascal
    case ...</li>
    <li><a
    href="https://github.com/sttk/stringcase-rust/commit/93cb03e8b3c327e4176fa4506fea3106288fd8a8"><code>93cb03e</code></a>
    new!: added macro_case_with_options and made use it in existing macro
    case fu...</li>
    <li><a
    href="https://github.com/sttk/stringcase-rust/commit/cc35bcffd159a35a517fc12e341998d992ee3264"><code>cc35bcf</code></a>
    new!: added kebab_case_with_options and made use it in existing kebab
    case fu...</li>
    <li>Additional commits viewable in <a
    href="https://github.com/sttk/stringcase-rust/compare/0.3.0...0.4.0">compare
    view</a></li>
    </ul>
    </details>
    <br />

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 8f4914ecc5908dcbcdbf38bc8dc28a7cff5ff70f
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Apr 23 14:52:01 2026 +1000

    chore(deps): bump actions/download-artifact from 4 to 8 (#424)

    Bumps
    [actions/download-artifact](https://github.com/actions/download-artifact)
    from 4 to 8.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/actions/download-artifact/releases">actions/download-artifact's
    r…
maartenflippo added a commit that referenced this pull request Apr 30, 2026
commit 6a1615b1a1315c4664503d535e573616ec4bdf5d
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Apr 30 13:49:17 2026 +1000

    chore(deps): bump pyo3 from 0.25.1 to 0.28.3 (#436)

    Bumps [pyo3](https://github.com/pyo3/pyo3) from 0.25.1 to 0.28.3.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/pyo3/pyo3/releases">pyo3's
    releases</a>.</em></p>
    <blockquote>
    <h2>PyO3 0.28.3</h2>
    <p>This patch contains several fixes for stability of the PyO3 0.28.x
    series:</p>
    <ul>
    <li><code>Python::attach</code> and <code>Python::try_attach</code> will
    no longer return before the thread initializing the interpreter has
    finished runnning <code>site.py</code> when using the
    <code>auto-initialize</code> feature.</li>
    <li>Fix unsoundness in <code>PyBytesWriter::write_vectored</code> when
    targeting the Python 3.15 prerelease interpreter.</li>
    <li>Fix possible deadlock in <code>.into_pyobject()</code>
    implementation for C-like <code>#[pyclass]</code> enums.</li>
    </ul>
    <p>A couple of edge cases causing compile failures were also fixed.</p>
    <p>Thank you to the following contributors for the improvements:</p>
    <p><a href="https://github.com/alex"><code>@​alex</code></a>
    <a
    href="https://github.com/bschoenmaeckers"><code>@​bschoenmaeckers</code></a>
    <a href="https://github.com/chirizxc"><code>@​chirizxc</code></a>
    <a href="https://github.com/davidhewitt"><code>@​davidhewitt</code></a>
    <a
    href="https://github.com/Embers-of-the-Fire"><code>@​Embers-of-the-Fire</code></a>
    <a href="https://github.com/Icxolu"><code>@​Icxolu</code></a>
    <a href="https://github.com/maurosilber"><code>@​maurosilber</code></a>
    <a href="https://github.com/ngoldbaum"><code>@​ngoldbaum</code></a></p>
    <h2>PyO3 0.28.2</h2>
    <p>This patch release contains a soundness fix for subclassing native
    types such as <code>PyList</code> with the <code>abi3</code> feature
    enabled when targeting a minimum version of Python 3.12 or higher.
    (Support for doing such subclassing was newly added in PyO3 0.28.0.)</p>
    <p>PyO3 0.28.0 and 0.28.1 will be yanked.</p>
    <p>This release also contains a correction to the FFI definition
    <code>PyType_GetTypeDataSize</code> and incorrectly-generated
    <code>__qualname__</code> on <code>#[pyclass]</code> enum variant types
    when using <code>#[pyo3(name = &quot;...&quot;)]</code> option to rename
    the enum and/or variant.</p>
    <p>Thank you to the following contributors for the improvements:</p>
    <p><a
    href="https://github.com/davidhewitt"><code>@​davidhewitt</code></a>
    <a href="https://github.com/Icxolu"><code>@​Icxolu</code></a>
    <a href="https://github.com/ngoldbaum"><code>@​ngoldbaum</code></a></p>
    <h2>PyO3 0.28.1</h2>
    <p>This patch contains a number of minor compile-time fixes for PyO3
    0.28.0.</p>
    <p>Thank you to the following contributors for the improvements:</p>
    <p><a
    href="https://github.com/davidhewitt"><code>@​davidhewitt</code></a>
    <a href="https://github.com/funsafemath"><code>@​funsafemath</code></a>
    <a href="https://github.com/ngoldbaum"><code>@​ngoldbaum</code></a>
    <a href="https://github.com/rara64"><code>@​rara64</code></a>
    <a href="https://github.com/tdyas"><code>@​tdyas</code></a></p>
    <h2>PyO3 0.28.0</h2>
    <p>This release contains many improvements across PyO3's feature
    set:</p>
    <ul>
    <li>Proper support for <code>__init__</code> methods for
    <code>#[pyclass]</code> types</li>
    <li>Support for <code>#[deleter]</code>s to complement the existing
    <code>#[getter]</code> and <code>#[setter]</code> attributes when
    implementing class &quot;properties&quot;.</li>
    <li>Support for subclassing many Python types with the <code>abi3</code>
    feature (requires Python 3.12+).</li>
    <li>A new <code>#[pyclass(new = &quot;from_fields&quot;)]</code> option
    to automatically define the constructor from the class fields.</li>
    <li>Many corrections to FFI definitions (including removal of many
    private CPython methods)</li>
    </ul>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    href="https://github.com/PyO3/pyo3/blob/main/CHANGELOG.md">pyo3's
    changelog</a>.</em></p>
    <blockquote>
    <h2>[0.28.3] - 2026-04-02</h2>
    <h3>Fixed</h3>
    <ul>
    <li>Fix compile error with <code>#[pyclass(get_all)]</code> on a type
    named <code>Probe</code>. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5837">#5837</a></li>
    <li>Fix compile error in debug builds related to
    <code>_Py_NegativeRefcount</code> with Python &lt; 3.12. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5847">#5847</a></li>
    <li>Fix a race condition where <code>Python::attach</code> or
    <code>try_attach</code> could return before <code>site.py</code> had
    finished running. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5903">#5903</a></li>
    <li>Fix unsoundness in <code>PyBytesWriter::write_vectored</code> with
    Python 3.15 prerelease versions. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5907">#5907</a></li>
    <li>Fix deadlock in <code>.into_pyobject()</code> implementation for
    C-like <code>#[pyclass]</code> enums. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5928">#5928</a></li>
    </ul>
    <h2>[0.28.2] - 2026-02-18</h2>
    <h3>Fixed</h3>
    <ul>
    <li>Fix complex enum <code>__qualname__</code> not using python name <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5815">#5815</a></li>
    <li>Fix FFI definition <code>PyType_GetTypeDataSize</code> (was
    incorrectly named <code>PyObject_GetTypeDataSize</code>). <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5819">#5819</a></li>
    <li>Fix memory corruption when subclassing native types with
    <code>abi3</code> feature on Python 3.12+ (newly enabled in PyO3
    0.28.0). <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5823">#5823</a></li>
    </ul>
    <h2>[0.28.1] - 2026-02-14</h2>
    <h3>Fixed</h3>
    <ul>
    <li>Fix <code>*args</code> / <code>**kwargs</code> support in<code>
    experimental-async</code> feature (regressed in 0.28.0). <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5771">#5771</a></li>
    <li>Fix <code>clippy::declare_interior_mutable_const</code> warning
    inside <code>#[pyclass]</code> generated code on enums. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5772">#5772</a></li>
    <li>Fix <code>ambiguous_associated_items</code> compilation error when
    deriving <code>FromPyObject</code> or using
    <code>#[pyclass(from_py_object)]</code> macro on enums with
    <code>Error</code> variant. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5784">#5784</a></li>
    <li>Fix <code>__qualname__</code> for complex <code>#[pyclass]</code>
    enum variants to include the enum name. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5796">#5796</a></li>
    <li>Fix missing <code>std::sync::atomic::Ordering</code> import for
    targets without atomic64. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5808">#5808</a></li>
    </ul>
    <h2>[0.28.0] - 2026-02-01</h2>
    <h3>Packaging</h3>
    <ul>
    <li>Bump MSRV to Rust 1.83. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5531">#5531</a></li>
    <li>Bump minimum supported <code>quote</code> version to 1.0.37. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5531">#5531</a></li>
    <li>Bump supported GraalPy version to 25.0. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5542">#5542</a></li>
    <li>Drop <code>memoffset</code> dependency. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5545">#5545</a></li>
    <li>Support for free-threaded Python is now opt-out rather than opt-in.
    <a href="https://redirect.github.com/PyO3/pyo3/pull/5564">#5564</a></li>
    <li>Bump <code>target-lexicon</code> dependency to 0.13.3. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5571">#5571</a></li>
    <li>Drop <code>indoc</code> and <code>unindent</code> dependencies. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5608">#5608</a></li>
    </ul>
    <h3>Added</h3>
    <ul>
    <li>Add <code>__init__</code> support in <code>#[pymethods]</code>. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/4951">#4951</a></li>
    <li>Expose <code>PySuper</code> on PyPy, GraalPy and ABI3 <a
    href="https://redirect.github.com/PyO3/pyo3/pull/4951">#4951</a></li>
    <li>Add <code>PyString::from_fmt</code> and <code>py_format!</code>
    macro. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5199">#5199</a></li>
    <li>Add <code>#[pyclass(new = &quot;from_fields&quot;)]</code> option.
    <a href="https://redirect.github.com/PyO3/pyo3/pull/5421">#5421</a></li>
    <li>Add <code>pyo3::buffer::PyUntypedBuffer</code>, a type-erased form
    of <code>PyBuffer&lt;T&gt;</code>. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5458">#5458</a></li>
    <li>Add <code>PyBytes::new_with_writer</code> <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5517">#5517</a></li>
    <li>Add <code>PyClass::NAME</code>. <a
    href="https://redirect.github.com/PyO3/pyo3/pull/5579">#5579</a></li>
    <li>Add <code>pyo3_build_config::add_libpython_rpath_link_args</code>.
    <a href="https://redirect.github.com/PyO3/pyo3/pull/5624">#5624</a></li>
    </ul>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/PyO3/pyo3/commit/743af645e7143be6abe2217aafaa0540cf532af4"><code>743af64</code></a>
    release: 0.28.3</li>
    <li><a
    href="https://github.com/PyO3/pyo3/commit/2042b4c0c1da74844f43f4970ab52386abf6deac"><code>2042b4c</code></a>
    fix deadlock when initializing enum via <code>into_pyobject()</code> (<a
    href="https://redirect.github.com/pyo3/pyo3/issues/5928">#5928</a>)</li>
    <li><a
    href="https://github.com/PyO3/pyo3/commit/01572470d031d16cd14fdc96f330397b4055f424"><code>0157247</code></a>
    ci: update UI tests for Rust 1.94 (<a
    href="https://redirect.github.com/pyo3/pyo3/issues/5859">#5859</a>)</li>
    <li><a
    href="https://github.com/PyO3/pyo3/commit/e234f8a75aaa0c0c0feecaf360107a78a7c0e436"><code>e234f8a</code></a>
    Update getting-started.md (<a
    href="https://redirect.github.com/pyo3/pyo3/issues/5899">#5899</a>)</li>
    <li><a
    href="https://github.com/PyO3/pyo3/commit/c06848d5f466350efe6bd05c9fc6cd923a12dd78"><code>c06848d</code></a>
    fix ffi-check in 3.15.0a7 (<a
    href="https://redirect.github.com/pyo3/pyo3/issues/5873">#5873</a>)</li>
    <li><a
    href="https://github.com/PyO3/pyo3/commit/83f4283bde6e207827edeb9422e79944ced8327c"><code>83f4283</code></a>
    remove unused <code>try_trait_v2</code> feature when enabling the
    <code>nightly</code> feature (<a
    href="https://redirect.github.com/pyo3/pyo3/issues/5868">#5868</a>)</li>
    <li><a
    href="https://github.com/PyO3/pyo3/commit/0de57ed453eeb47e40b011d8be2cdc0028116ebc"><code>0de57ed</code></a>
    Fix unsoundness in <code>PyBytesWriter::write_vectored</code> (<a
    href="https://redirect.github.com/pyo3/pyo3/issues/5907">#5907</a>)</li>
    <li><a
    href="https://github.com/PyO3/pyo3/commit/49cd13fae22c5e46a4b0946539b9e64bb8ccb573"><code>49cd13f</code></a>
    fixes <a
    href="https://redirect.github.com/pyo3/pyo3/issues/5900">#5900</a> --
    address race condition with initialization and site.py loading...</li>
    <li><a
    href="https://github.com/PyO3/pyo3/commit/c90d163638ef4a754fd31a3a29e3ba2ebc05a354"><code>c90d163</code></a>
    [fix] Fix <code>std::ffi</code> import for
    <code>_Py_NegativeRefcount</code> (<a
    href="https://redirect.github.com/pyo3/pyo3/issues/5847">#5847</a>)</li>
    <li><a
    href="https://github.com/PyO3/pyo3/commit/b79d7257dd0abd9d6d029878d8f0902a8e35e695"><code>b79d725</code></a>
    fix(pyo3-macros): allow pyclass named Probe (<a
    href="https://redirect.github.com/pyo3/pyo3/issues/5837">#5837</a>)</li>
    <li>Additional commits viewable in <a
    href="https://github.com/pyo3/pyo3/compare/v0.25.1...v0.28.3">compare
    view</a></li>
    </ul>
    </details>
    <br />

    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pyo3&package-manager=cargo&previous-version=0.25.1&new-version=0.28.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

    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-automerge-start)
    [//]: # (dependabot-automerge-end)

    ---

    <details>
    <summary>Dependabot commands and options</summary>
    <br />

    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)

    </details>

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Maarten Flippo <maartenflippo@outlook.com>

commit 646c2f2d577b59574759695f54c6884290a3a4ff
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Apr 30 13:25:04 2026 +1000

    chore(deps): bump wasm-bindgen-test from 0.3.68 to 0.3.70 (#435)

    Bumps [wasm-bindgen-test](https://github.com/wasm-bindgen/wasm-bindgen)
    from 0.3.68 to 0.3.70.
    <details>
    <summary>Commits</summary>
    <ul>
    <li>See full diff in <a
    href="https://github.com/wasm-bindgen/wasm-bindgen/commits">compare
    view</a></li>
    </ul>
    </details>
    <br />

    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=wasm-bindgen-test&package-manager=cargo&previous-version=0.3.68&new-version=0.3.70)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

    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-automerge-start)
    [//]: # (dependabot-automerge-end)

    ---

    <details>
    <summary>Dependabot commands and options</summary>
    <br />

    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)

    </details>

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 5b887a44e7f614e4cdfd312df638dbc1945f5251
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Apr 30 13:23:58 2026 +1000

    chore(deps): bump cc from 1.2.60 to 1.2.61 (#437)

    Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.60 to 1.2.61.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/rust-lang/cc-rs/releases">cc's
    releases</a>.</em></p>
    <blockquote>
    <h2>cc-v1.2.61</h2>
    <h3>Other</h3>
    <ul>
    <li>fix <code>OutputKind::Capture</code> documentation (<a
    href="https://redirect.github.com/rust-lang/cc-rs/pull/1705">#1705</a>)</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    href="https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md">cc's
    changelog</a>.</em></p>
    <blockquote>
    <h2><a
    href="https://github.com/rust-lang/cc-rs/compare/cc-v1.2.60...cc-v1.2.61">1.2.61</a>
    - 2026-04-24</h2>
    <h3>Other</h3>
    <ul>
    <li>fix <code>OutputKind::Capture</code> documentation (<a
    href="https://redirect.github.com/rust-lang/cc-rs/pull/1705">#1705</a>)</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/rust-lang/cc-rs/commit/360f69119862eb26b44253f09f9ce60be5b3011b"><code>360f691</code></a>
    chore(cc): release v1.2.61 (<a
    href="https://redirect.github.com/rust-lang/cc-rs/issues/1707">#1707</a>)</li>
    <li><a
    href="https://github.com/rust-lang/cc-rs/commit/17a2788f499da76bf7a6b404367ab37613b8fa00"><code>17a2788</code></a>
    Bump taiki-e/install-action from 2.75.16 to 2.75.17 (<a
    href="https://redirect.github.com/rust-lang/cc-rs/issues/1706">#1706</a>)</li>
    <li><a
    href="https://github.com/rust-lang/cc-rs/commit/da52db738b1b1ea89cc176dfd718e0de6bef742a"><code>da52db7</code></a>
    command_helpers.rs: fix <code>OutputKind::Capture</code> documentation
    (<a
    href="https://redirect.github.com/rust-lang/cc-rs/issues/1705">#1705</a>)</li>
    <li><a
    href="https://github.com/rust-lang/cc-rs/commit/ee64d58c06ec386eaa5298bb415e56c5710498ce"><code>ee64d58</code></a>
    Bump taiki-e/install-action from 2.75.4 to 2.75.5 (<a
    href="https://redirect.github.com/rust-lang/cc-rs/issues/1703">#1703</a>)</li>
    <li><a
    href="https://github.com/rust-lang/cc-rs/commit/78cf7e481b1b2ce6f61cada4128843451e5580f4"><code>78cf7e4</code></a>
    CI: Hash-pin all actions, apply other suggestions from zizmor (<a
    href="https://redirect.github.com/rust-lang/cc-rs/issues/1702">#1702</a>)</li>
    <li>See full diff in <a
    href="https://github.com/rust-lang/cc-rs/compare/cc-v1.2.60...cc-v1.2.61">compare
    view</a></li>
    </ul>
    </details>
    <br />

    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cc&package-manager=cargo&previous-version=1.2.60&new-version=1.2.61)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

    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-automerge-start)
    [//]: # (dependabot-automerge-end)

    ---

    <details>
    <summary>Dependabot commands and options</summary>
    <br />

    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)

    </details>

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 7efb72a451c1c09d32071e1bfb412a242fd71421
Author: Maarten Flippo <maartenflippo@outlook.com>
Date:   Thu Apr 30 10:52:33 2026 +1000

    feat(pumpkin-core): Define predicate order and add Predicate::implies (#426)

    The chosen order makes minimizing a sorted collection easy. It can be
    done in two linear passes, one forward and one backward.

commit 70503a5ed2929006f0be72c97045409e8605f9e5
Author: Maarten Flippo <maartenflippo@outlook.com>
Date:   Thu Apr 30 09:57:09 2026 +1000

    feat(pumpkin-core): Brancher implements Debug (#409)

    Just like many other traits, we want the `Brancher` trait to extend
    `Debug`. This allows for easier debug printing and usage of the Debug
    derive macro.

commit c82db0ac716f973a395bc7a50ea492614ca236c1
Author: Maarten Flippo <maartenflippo@outlook.com>
Date:   Thu Apr 30 09:56:24 2026 +1000

    refactor(pumpkin-core): Attach `InferenceCode` instead of `Predicate` (#433)

    When calling `PropagationContext::post`, the user must supply an
    inference code as a parameter. However, when the reason of the
    propagation is lazy, the inference code of the explanation may differ
    from the inference that identified the propagation.

    A very small other benefit is that on benchmarks with much propagation,
    the clone of an inference code actually shows up in profiles. With this
    PR, when a lazy explanation is used, no such clone happens.

    For eager reasons: Instead of passing the `InferenceCode` to
    `PropagationContext::post`, it is part of the eager reason.
    `From<PropositionalConjunction>` is no longer implemented for `Reason`.
    Instead, `From<(PropositionalConjunction, &InferenceCode)>` is
    implemented.

    Alternatively, if a lazy explanation is used, instead of returning
    `&[Predicate]`, `Propagator::lazy_explanation` now returns a
    `LazyExplanation`. This is a combination of a slice of predicates with
    an inference code.

commit e5db5c677ac2e19b1d49f89c881af914600e715e
Author: Maarten Flippo <maartenflippo@outlook.com>
Date:   Wed Apr 29 14:00:23 2026 +1000

    fix(pumpkin-core): Creation and Insertion in Sparse Set (#395)

    Co-authored-by: Imko Marijnissen <imko.marijnissen@gmail.com>

commit 664384820bd09c12c7d4fb717cea5838600e7c27
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Apr 27 10:33:35 2026 +1000

    chore(deps): bump convert_case from 0.8.0 to 0.11.0 (#428)

    Bumps [convert_case](https://github.com/rutrum/convert-case) from 0.8.0
    to 0.11.0.
    <details>
    <summary>Commits</summary>
    <ul>
    <li>See full diff in <a
    href="https://github.com/rutrum/convert-case/commits">compare
    view</a></li>
    </ul>
    </details>
    <br />

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 7159a584b1d24eed4753c714410489bfe446182a
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Apr 27 10:14:50 2026 +1000

    chore(deps): bump downcast-rs from 1.2.1 to 2.0.2 (#429)

    Bumps [downcast-rs](https://github.com/marcianx/downcast-rs) from 1.2.1
    to 2.0.2.
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    href="https://github.com/marcianx/downcast-rs/blob/master/CHANGELOG.md">downcast-rs's
    changelog</a>.</em></p>
    <blockquote>
    <h2>2.0.2 - 2025-09-01</h2>
    <h3>Changed</h3>
    <ul>
    <li>Updated <code>README.md</code> to omit lines hidden in crate
    documentation.</li>
    <li>(Minor) <code>Cargo.toml</code>: Corrected license format and added
    categories.</li>
    </ul>
    <h2>2.0.1 - 2025-01-06</h2>
    <h3>Change</h3>
    <ul>
    <li>Updated how code conditioned on the <code>sync</code> flag is
    written in the crate
    documentation to work around a <a
    href="https://redirect.github.com/rust-lang/crates.io/issues/10331">crates.io
    doc rendering
    bug</a>.</li>
    </ul>
    <h2>2.0.0 - 2025-01-06</h2>
    <h3>Added</h3>
    <ul>
    <li>Gated the sync/<code>Arc</code> downcasting functionality behind a
    new <code>sync</code> feature
    that is enabled by default.</li>
    <li>Added a new <code>DowncastSend</code> trait to support downcasting
    to <code>Box&lt;Any + Send&gt;</code>
    and made <code>DowncastSync</code> extend this trait.</li>
    <li>Added downcasting support to <code>Box&lt;Any + Send +
    Sync&gt;</code> to <code>DowncastSync</code>.</li>
    </ul>
    <h3>Change</h3>
    <ul>
    <li>Updated minimum supported rust version 1.56 to enforce the
    <code>rustdoc::bare_urls</code> lint (1.53) and switch to edition 2021
    (1.56).</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li>See full diff in <a
    href="https://github.com/marcianx/downcast-rs/commits">compare
    view</a></li>
    </ul>
    </details>
    <br />

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 187fce88bdb7857f2ee1114a230f3b441fa9c81a
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Apr 27 10:14:37 2026 +1000

    chore(deps): bump bitfield from 0.14.0 to 0.19.4 (#430)

    Bumps [bitfield](https://github.com/dzamlo/rust-bitfield) from 0.14.0 to
    0.19.4.
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    href="https://github.com/dzamlo/rust-bitfield/blob/master/CHANGELOG.md">bitfield's
    changelog</a>.</em></p>
    <blockquote>
    <h2>[0.19.4] - 2025-11-16</h2>
    <h3>Added</h3>
    <ul>
    <li>Support <code>try_into</code> keyword in field definition to use
    <code>TryInto</code> instead of <code>Into</code></li>
    </ul>
    <h3>Fixed</h3>
    <ul>
    <li>Print the correct error message on incorrect use of the
    <code>impl</code> in <code>no_std</code> crates, thanks to <a
    href="https://github.com/stop5"><code>@​stop5</code></a> for reporting
    and proposing the fix</li>
    </ul>
    <h2>[0.19.3] - 2025-10-10</h2>
    <h3>Added</h3>
    <ul>
    <li>In debug mode, check that msb &gt;= lsb in the default
    <code>BitRange</code>/<code>BitRangeMut</code> implementations and show
    a more helpful
    message than before if this is the case, thanks to <a
    href="https://github.com/blaine-dodson"><code>@​blaine-dodson</code></a>
    for reporting</li>
    <li>Mention MSB and LSB ordering in the readme</li>
    <li>Explain sign extension and valid range of signed field in the
    readme</li>
    </ul>
    <h2>[0.19.2] - 2025-08-24</h2>
    <h3>Fixed</h3>
    <ul>
    <li>Allow usage of a signed int types for the base of newtype, thanks to
    <a href="https://github.com/FeeeeK"><code>@​FeeeeK</code></a></li>
    </ul>
    <h2>[0.19.1] - 2025-05-14</h2>
    <h3>Fixed</h3>
    <ul>
    <li>Allow to use <code>impl new</code> with
    <code>#[deny(missing_docs)]</code>.</li>
    </ul>
    <h2>[0.19.0] - 2025-02-23</h2>
    <h3>Fixed</h3>
    <ul>
    <li>Allow to specify an array of bools.</li>
    </ul>
    <h3>Breaking Changes</h3>
    <ul>
    <li>If the type of an array field is exactly <code>bool</code>, then the
    <code>Bit</code>/<code>BitMut</code> traits are used instead of
    <code>BitRange</code>/<code>BitRangeMut</code>. In some very unlikely
    case where the traits are implemented manually, this may break
    existing code.</li>
    </ul>
    <h2>[0.18.1] - 2025-01-29</h2>
    <h3>Fixed</h3>
    <ul>
    <li>Don't use <code>__bitfield_*</code> macros from the code generated
    by the proc-macros. Otherwise, they need to be imported by
    the calling code.</li>
    <li>Allow <code>mask</code>, <code>from</code> and <code>ìnto</code> as
    getter names.</li>
    </ul>
    <h2>[0.18.0] - 2025-01-27</h2>
    <h3>Fixed</h3>
    <ul>
    <li>With the new proc macro implementation some corner-cases that were
    not handled are now handled correctly.</li>
    </ul>
    <h3>Breaking Changes</h3>
    <ul>
    <li>The syntax to create a constructor by specifying individual fields
    has been removed.</li>
    </ul>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/dzamlo/rust-bitfield/commit/a459bcfd6f96a2d8e0cba02a69e3f4f9e7384938"><code>a459bcf</code></a>
    bitfield 0.19.4</li>
    <li><a
    href="https://github.com/dzamlo/rust-bitfield/commit/de82ee32c89f0bd0a8c879baf94645e785f45028"><code>de82ee3</code></a>
    fix: print the correct error message on incorrect use of the impl in
    no_std c...</li>
    <li><a
    href="https://github.com/dzamlo/rust-bitfield/commit/e3c27779f491d2fe5518e50bfd4513c9c85569f8"><code>e3c2777</code></a>
    docs: Show in example that it is possible to add doc comments</li>
    <li><a
    href="https://github.com/dzamlo/rust-bitfield/commit/079e145ca7e46a15dcfe2e7d544424d71920404e"><code>079e145</code></a>
    fix: Support try_into for array fields</li>
    <li><a
    href="https://github.com/dzamlo/rust-bitfield/commit/3cdcfd3c45cecddb22f598d199100bf2c94dd49c"><code>3cdcfd3</code></a>
    feat: Add support for try_into</li>
    <li><a
    href="https://github.com/dzamlo/rust-bitfield/commit/53331f7f7c99c3d9bb104d18ba254f1f12f33559"><code>53331f7</code></a>
    bitfield 0.19.3</li>
    <li><a
    href="https://github.com/dzamlo/rust-bitfield/commit/a366e5a210382a094e87e2292a109e22eaa4b2b1"><code>a366e5a</code></a>
    docs: Explain sign extension in README</li>
    <li><a
    href="https://github.com/dzamlo/rust-bitfield/commit/0681808d236da1f1d133e7cae04320369872271a"><code>0681808</code></a>
    docs: Mention MSB and LSB ordering in the README</li>
    <li><a
    href="https://github.com/dzamlo/rust-bitfield/commit/9fe9a0f1dd51b2f3caa38f93cbae27e41b67fb3f"><code>9fe9a0f</code></a>
    feat: Add debug check for inverted msb/lsb</li>
    <li><a
    href="https://github.com/dzamlo/rust-bitfield/commit/7f5136d8aa97adf8284543575ec3651e784d9ca6"><code>7f5136d</code></a>
    bitfield 0.19.2</li>
    <li>Additional commits viewable in <a
    href="https://github.com/dzamlo/rust-bitfield/compare/v0.14.0...v0.19.4">compare
    view</a></li>
    </ul>
    </details>
    <br />

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 065e431b8bfb1558859d8b0c3fa0cd5eb1255900
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Apr 23 16:20:49 2026 +1000

    chore(deps): bump signal-hook from 0.3.18 to 0.4.4 (#431)

    Bumps [signal-hook](https://github.com/vorner/signal-hook) from 0.3.18
    to 0.4.4.
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    href="https://github.com/vorner/signal-hook/blob/master/CHANGELOG.md">signal-hook's
    changelog</a>.</em></p>
    <blockquote>
    <h1>0.4.4</h1>
    <ul>
    <li>Documentation about SIGBUS (<a
    href="https://redirect.github.com/vorner/signal-hook/issues/204">#204</a>).</li>
    </ul>
    <h1>0.4.3</h1>
    <ul>
    <li>Don't exclude .c files from release package.</li>
    </ul>
    <h1>0.4.2</h1>
    <ul>
    <li>Fix double-close on pipe unregister (<a
    href="https://redirect.github.com/vorner/signal-hook/issues/200">#200</a>).</li>
    <li>Don't include development scripts in release package (195).</li>
    </ul>
    <h1>signal-hook-mio-0.3.0</h1>
    <h1>signal-hook-tokio-0.4.0</h1>
    <h1>signal-hook-async-std-0.4.0</h1>
    <ul>
    <li>Release to bump dependency on signal-hook.</li>
    </ul>
    <h1>0.4.1</h1>
    <ul>
    <li>Don't pin specific dependency versions accidentally.</li>
    </ul>
    <h1>0.4.0</h1>
    <ul>
    <li>Changed the <code>low_level::pipe</code> to look
    <code>OwnedFd</code> instead of <code>IntoRawFd</code>, to
    enforce ownership of the file descriptor (<a
    href="https://redirect.github.com/vorner/signal-hook/issues/196">#196</a>).</li>
    </ul>
    <h1>signal-hook-registry-1.4.8</h1>
    <ul>
    <li>Restore errno on signal handler exit (<a
    href="https://redirect.github.com/vorner/signal-hook/issues/194">#194</a>,
    <a
    href="https://redirect.github.com/vorner/signal-hook/issues/191">#191</a>).</li>
    </ul>
    <h1>signal-hook-registry-1.4.7</h1>
    <ul>
    <li>Using earlier monopolization to reduce binary size (<a
    href="https://redirect.github.com/vorner/signal-hook/issues/190">#190</a>).</li>
    </ul>
    <h1>signal-hook-mio-0.2.5</h1>
    <ul>
    <li>Allow mio 1.1</li>
    </ul>
    <h1>signal-hook-registry-1.4.6</h1>
    <ul>
    <li>Reword/improve the safety requirements docs for register (<a
    href="https://redirect.github.com/vorner/signal-hook/issues/178">#178</a>).</li>
    </ul>
    <h1>signal-hook-1.3.18</h1>
    <ul>
    <li>Release the special-case removal of AIX for top-level signal-hook
    too (<a
    href="https://redirect.github.com/vorner/signal-hook/issues/169">#169</a>,
    <a
    href="https://redirect.github.com/vorner/signal-hook/issues/176">#176</a>).</li>
    </ul>
    <h1>signal-hook-async-std-0.3.0</h1>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/vorner/signal-hook/commit/f37a7b5918830009c83f5e17fd5a533f2dfd7f82"><code>f37a7b5</code></a>
    Document SIGBUS</li>
    <li><a
    href="https://github.com/vorner/signal-hook/commit/b089b6b64487b23cb3cfc770ab5aa2f55f051116"><code>b089b6b</code></a>
    Update deps</li>
    <li><a
    href="https://github.com/vorner/signal-hook/commit/7854fb670a19e512a030bfa0d41ecb5f8fc90b57"><code>7854fb6</code></a>
    Don't exclude .c files from release package</li>
    <li><a
    href="https://github.com/vorner/signal-hook/commit/c81b0e01ed4eb4b1af3ef753c2ad7a213c3955a7"><code>c81b0e0</code></a>
    Release version 0.4.2</li>
    <li><a
    href="https://github.com/vorner/signal-hook/commit/390dafbc1dce27eb222bce33340dd3ad3ee4653c"><code>390dafb</code></a>
    Fix double-close on pipe unregister</li>
    <li><a
    href="https://github.com/vorner/signal-hook/commit/173107ab7c60d684637e6a3362460903d90d81a4"><code>173107a</code></a>
    Exclude development script from published package</li>
    <li><a
    href="https://github.com/vorner/signal-hook/commit/2413101f2e7851483993e32a3b5a49d09af32e4f"><code>2413101</code></a>
    Release async crates</li>
    <li><a
    href="https://github.com/vorner/signal-hook/commit/85f8c75e6e42b96382faa8a376bafeea8e058ed2"><code>85f8c75</code></a>
    Version 0.4.1 (don't pin dep versions)</li>
    <li><a
    href="https://github.com/vorner/signal-hook/commit/6e4472288ee8387436fa5d708f46e8609edbcde2"><code>6e44722</code></a>
    Version bump to 0.4.0</li>
    <li><a
    href="https://github.com/vorner/signal-hook/commit/80cc0cff0002d1eeb85f8ab9131367a64eed7d98"><code>80cc0cf</code></a>
    Update dependencies</li>
    <li>Additional commits viewable in <a
    href="https://github.com/vorner/signal-hook/compare/v0.3.18...v0.4.4">compare
    view</a></li>
    </ul>
    </details>
    <br />

    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=signal-hook&package-manager=cargo&previous-version=0.3.18&new-version=0.4.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

    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-automerge-start)
    [//]: # (dependabot-automerge-end)

    ---

    <details>
    <summary>Dependabot commands and options</summary>
    <br />

    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)

    </details>

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 037e4eccb5630c0d417927fd2312b4a9591f85d3
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Apr 23 16:20:10 2026 +1000

    chore(deps): bump itertools from 0.13.0 to 0.14.0 (#427)

    Bumps [itertools](https://github.com/rust-itertools/itertools) from
    0.13.0 to 0.14.0.
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    href="https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md">itertools's
    changelog</a>.</em></p>
    <blockquote>
    <h2>0.14.0</h2>
    <h3>Breaking</h3>
    <ul>
    <li>Increased MSRV to 1.63.0 (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/960">#960</a>)</li>
    <li>Removed generic parameter from <code>cons_tuples</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/988">#988</a>)</li>
    </ul>
    <h3>Added</h3>
    <ul>
    <li>Added <code>array_combinations</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/991">#991</a>)</li>
    <li>Added <code>k_smallest_relaxed</code> and variants (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/925">#925</a>)</li>
    <li>Added <code>next_array</code> and <code>collect_array</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/560">#560</a>)</li>
    <li>Implemented <code>DoubleEndedIterator</code> for
    <code>FilterOk</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/948">#948</a>)</li>
    <li>Implemented <code>DoubleEndedIterator</code> for
    <code>FilterMapOk</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/950">#950</a>)</li>
    </ul>
    <h3>Changed</h3>
    <ul>
    <li>Allow <code>Q: ?Sized</code> in <code>Itertools::contains</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/971">#971</a>)</li>
    <li>Improved hygiene of <code>chain!</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/943">#943</a>)</li>
    <li>Improved <code>into_group_map_by</code> documentation (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/1000">#1000</a>)</li>
    <li>Improved <code>tree_reduce</code> documentation (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/955">#955</a>)</li>
    <li>Improved discoverability of <code>merge_join_by</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/966">#966</a>)</li>
    <li>Improved discoverability of <code>take_while_inclusive</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/972">#972</a>)</li>
    <li>Improved documentation of <code>find_or_last</code> and
    <code>find_or_first</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/984">#984</a>)</li>
    <li>Prevented exponentially large type sizes in
    <code>tuple_combinations</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/945">#945</a>)</li>
    <li>Added <code>track_caller</code> attr for <code>asser_equal</code>
    (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/976">#976</a>)</li>
    </ul>
    <h3>Notable Internal Changes</h3>
    <ul>
    <li>Fixed clippy lints (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/956">#956</a>,
    <a
    href="https://redirect.github.com/rust-itertools/itertools/issues/987">#987</a>,
    <a
    href="https://redirect.github.com/rust-itertools/itertools/issues/1008">#1008</a>)</li>
    <li>Addressed warnings within doctests (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/964">#964</a>)</li>
    <li>CI: Run most tests with miri (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/961">#961</a>)</li>
    <li>CI: Speed up &quot;cargo-semver-checks&quot; action (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/938">#938</a>)</li>
    <li>Changed an instance of <code>default_features</code> in
    <code>Cargo.toml</code> to <code>default-features</code> (<a
    href="https://redirect.github.com/rust-itertools/itertools/issues/985">#985</a>)</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/rust-itertools/itertools/commit/a015a6831525ee1637df747d3f530a627d9741bf"><code>a015a68</code></a>
    Add <code>next_array</code> and <code>collect_array</code></li>
    <li><a
    href="https://github.com/rust-itertools/itertools/commit/a1213e1c81af9d8c329239b916fb9663387ae1b0"><code>a1213e1</code></a>
    Prepare v0.14.0 release</li>
    <li><a
    href="https://github.com/rust-itertools/itertools/commit/ff0c942b2e0127dfdd311a8b1ee022bd367c237f"><code>ff0c942</code></a>
    fix clippy lints</li>
    <li><a
    href="https://github.com/rust-itertools/itertools/commit/f80883b8e01cba2f8ef872cd33d6eda1a471db4c"><code>f80883b</code></a>
    Fix into_group_map_by documentation errors</li>
    <li><a
    href="https://github.com/rust-itertools/itertools/commit/b793238ff14bb4270456264708acc9771022d6a2"><code>b793238</code></a>
    Add track_caller for asser_equal</li>
    <li><a
    href="https://github.com/rust-itertools/itertools/commit/5d4056b643c575c6a808ec4d6f2fb24db57acf43"><code>5d4056b</code></a>
    <code>default_features</code> is deprecated - switch it to
    <code>default-features</code></li>
    <li><a
    href="https://github.com/rust-itertools/itertools/commit/a447b6896043facbd234bd57213cfae58244d46d"><code>a447b68</code></a>
    doc for added trait</li>
    <li><a
    href="https://github.com/rust-itertools/itertools/commit/d0479b080781cf92a035cf2e33aee04079062b3e"><code>d0479b0</code></a>
    &quot;nitpicks&quot;</li>
    <li><a
    href="https://github.com/rust-itertools/itertools/commit/35c78ce0bc36fbe41df2f5833827b166896e1f50"><code>35c78ce</code></a>
    IndexMut -&gt; BorrowMut&lt;slice&gt;</li>
    <li><a
    href="https://github.com/rust-itertools/itertools/commit/deb53ba21065e6adbcfdd8af120f939733cc52c6"><code>deb53ba</code></a>
    refactored to share code</li>
    <li>Additional commits viewable in <a
    href="https://github.com/rust-itertools/itertools/compare/v0.13.0...v0.14.0">compare
    view</a></li>
    </ul>
    </details>
    <br />

    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=itertools&package-manager=cargo&previous-version=0.13.0&new-version=0.14.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

    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-automerge-start)
    [//]: # (dependabot-automerge-end)

    ---

    <details>
    <summary>Dependabot commands and options</summary>
    <br />

    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)

    </details>

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit be34a9424ddfd5ed7e3ecb8f2eb45e353405d95d
Author: Maarten Flippo <maartenflippo@outlook.com>
Date:   Thu Apr 23 15:58:34 2026 +1000

    Add uv package ecosystem to dependabot config

commit b7aeb7157b0d9cf277643f304af0ea4924a736f5
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Apr 23 15:11:35 2026 +1000

    chore(deps): bump actions/cache from 4 to 5 (#425)

    Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/actions/cache/releases">actions/cache's
    releases</a>.</em></p>
    <blockquote>
    <h2>v5.0.0</h2>
    <blockquote>
    <p>[!IMPORTANT]
    <strong><code>actions/cache@v5</code> runs on the Node.js 24 runtime and
    requires a minimum Actions Runner version of
    <code>2.327.1</code>.</strong></p>
    <p>If you are using self-hosted runners, ensure they are updated before
    upgrading.</p>
    </blockquote>
    <hr />
    <h2>What's Changed</h2>
    <ul>
    <li>Upgrade to use node24 by <a
    href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
    href="https://redirect.github.com/actions/cache/pull/1630">actions/cache#1630</a></li>
    <li>Prepare v5.0.0 release by <a
    href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
    href="https://redirect.github.com/actions/cache/pull/1684">actions/cache#1684</a></li>
    </ul>
    <p><strong>Full Changelog</strong>: <a
    href="https://github.com/actions/cache/compare/v4.3.0...v5.0.0">https://github.com/actions/cache/compare/v4.3.0...v5.0.0</a></p>
    <h2>v4.3.0</h2>
    <h2>What's Changed</h2>
    <ul>
    <li>Add note on runner versions by <a
    href="https://github.com/GhadimiR"><code>@​GhadimiR</code></a> in <a
    href="https://redirect.github.com/actions/cache/pull/1642">actions/cache#1642</a></li>
    <li>Prepare <code>v4.3.0</code> release by <a
    href="https://github.com/Link"><code>@​Link</code></a>- in <a
    href="https://redirect.github.com/actions/cache/pull/1655">actions/cache#1655</a></li>
    </ul>
    <h2>New Contributors</h2>
    <ul>
    <li><a href="https://github.com/GhadimiR"><code>@​GhadimiR</code></a>
    made their first contribution in <a
    href="https://redirect.github.com/actions/cache/pull/1642">actions/cache#1642</a></li>
    </ul>
    <p><strong>Full Changelog</strong>: <a
    href="https://github.com/actions/cache/compare/v4...v4.3.0">https://github.com/actions/cache/compare/v4...v4.3.0</a></p>
    <h2>v4.2.4</h2>
    <h2>What's Changed</h2>
    <ul>
    <li>Update README.md by <a
    href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
    href="https://redirect.github.com/actions/cache/pull/1620">actions/cache#1620</a></li>
    <li>Upgrade <code>@actions/cache</code> to <code>4.0.5</code> and move
    <code>@protobuf-ts/plugin</code> to dev depdencies by <a
    href="https://github.com/Link"><code>@​Link</code></a>- in <a
    href="https://redirect.github.com/actions/cache/pull/1634">actions/cache#1634</a></li>
    <li>Prepare release <code>4.2.4</code> by <a
    href="https://github.com/Link"><code>@​Link</code></a>- in <a
    href="https://redirect.github.com/actions/cache/pull/1636">actions/cache#1636</a></li>
    </ul>
    <h2>New Contributors</h2>
    <ul>
    <li><a href="https://github.com/nebuk89"><code>@​nebuk89</code></a> made
    their first contribution in <a
    href="https://redirect.github.com/actions/cache/pull/1620">actions/cache#1620</a></li>
    </ul>
    <p><strong>Full Changelog</strong>: <a
    href="https://github.com/actions/cache/compare/v4...v4.2.4">https://github.com/actions/cache/compare/v4...v4.2.4</a></p>
    <h2>v4.2.3</h2>
    <h2>What's Changed</h2>
    <ul>
    <li>Update to use <code>@​actions/cache</code> 4.0.3 package &amp;
    prepare for new release by <a
    href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
    href="https://redirect.github.com/actions/cache/pull/1577">actions/cache#1577</a>
    (SAS tokens for cache entries are now masked in debug logs)</li>
    </ul>
    <h2>New Contributors</h2>
    <ul>
    <li><a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
    made their first contribution in <a
    href="https://redirect.github.com/actions/cache/pull/1577">actions/cache#1577</a></li>
    </ul>
    <p><strong>Full Changelog</strong>: <a
    href="https://github.com/actions/cache/compare/v4.2.2...v4.2.3">https://github.com/actions/cache/compare/v4.2.2...v4.2.3</a></p>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    href="https://github.com/actions/cache/blob/main/RELEASES.md">actions/cache's
    changelog</a>.</em></p>
    <blockquote>
    <h1>Releases</h1>
    <h2>How to prepare a release</h2>
    <blockquote>
    <p>[!NOTE]<br />
    Relevant for maintainers with write access only.</p>
    </blockquote>
    <ol>
    <li>Switch to a new branch from <code>main</code>.</li>
    <li>Run <code>npm test</code> to ensure all tests are passing.</li>
    <li>Update the version in <a
    href="https://github.com/actions/cache/blob/main/package.json"><code>https://github.com/actions/cache/blob/main/package.json</code></a>.</li>
    <li>Run <code>npm run build</code> to update the compiled files.</li>
    <li>Update this <a
    href="https://github.com/actions/cache/blob/main/RELEASES.md"><code>https://github.com/actions/cache/blob/main/RELEASES.md</code></a>
    with the new version and changes in the <code>## Changelog</code>
    section.</li>
    <li>Run <code>licensed cache</code> to update the license report.</li>
    <li>Run <code>licensed status</code> and resolve any warnings by
    updating the <a
    href="https://github.com/actions/cache/blob/main/.licensed.yml"><code>https://github.com/actions/cache/blob/main/.licensed.yml</code></a>
    file with the exceptions.</li>
    <li>Commit your changes and push your branch upstream.</li>
    <li>Open a pull request against <code>main</code> and get it reviewed
    and merged.</li>
    <li>Draft a new release <a
    href="https://github.com/actions/cache/releases">https://github.com/actions/cache/releases</a>
    use the same version number used in <code>package.json</code>
    <ol>
    <li>Create a new tag with the version number.</li>
    <li>Auto generate release notes and update them to match the changes you
    made in <code>RELEASES.md</code>.</li>
    <li>Toggle the set as the latest release option.</li>
    <li>Publish the release.</li>
    </ol>
    </li>
    <li>Navigate to <a
    href="https://github.com/actions/cache/actions/workflows/release-new-action-version.yml">https://github.com/actions/cache/actions/workflows/release-new-action-version.yml</a>
    <ol>
    <li>There should be a workflow run queued with the same version
    number.</li>
    <li>Approve the run to publish the new version and update the major tags
    for this action.</li>
    </ol>
    </li>
    </ol>
    <h2>Changelog</h2>
    <h3>5.0.4</h3>
    <ul>
    <li>Bump <code>minimatch</code> to v3.1.5 (fixes ReDoS via globstar
    patterns)</li>
    <li>Bump <code>undici</code> to v6.24.1 (WebSocket decompression bomb
    protection, header validation fixes)</li>
    <li>Bump <code>fast-xml-parser</code> to v5.5.6</li>
    </ul>
    <h3>5.0.3</h3>
    <ul>
    <li>Bump <code>@actions/cache</code> to v5.0.5 (Resolves: <a
    href="https://github.com/actions/cache/security/dependabot/33">https://github.com/actions/cache/security/dependabot/33</a>)</li>
    <li>Bump <code>@actions/core</code> to v2.0.3</li>
    </ul>
    <h3>5.0.2</h3>
    <ul>
    <li>Bump <code>@actions/cache</code> to v5.0.3 <a
    href="https://redirect.github.com/actions/cache/pull/1692">#1692</a></li>
    </ul>
    <h3>5.0.1</h3>
    <ul>
    <li>Update <code>@azure/storage-blob</code> to <code>^12.29.1</code> via
    <code>@actions/cache@5.0.1</code> <a
    href="https://redirect.github.com/actions/cache/pull/1685">#1685</a></li>
    </ul>
    <h3>5.0.0</h3>
    <blockquote>
    <p>[!IMPORTANT]
    <code>actions/cache@v5</code> runs on the Node.js 24 runtime and
    requires a minimum Actions Runner version of <code>2.327.1</code>.</p>
    </blockquote>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/actions/cache/commit/27d5ce7f107fe9357f9df03efb73ab90386fccae"><code>27d5ce7</code></a>
    Merge pull request <a
    href="https://redirect.github.com/actions/cache/issues/1747">#1747</a>
    from actions/yacaovsnc/update-dependency</li>
    <li><a
    href="https://github.com/actions/cache/commit/f280785d7b6e1884c7d12b9136eb0f4a1574fcfd"><code>f280785</code></a>
    licensed changes</li>
    <li><a
    href="https://github.com/actions/cache/commit/619aeb1606e195be0b36fd0ff68dcf1aff6b65a7"><code>619aeb1</code></a>
    npm run build generated dist files</li>
    <li><a
    href="https://github.com/actions/cache/commit/bcf16c2893940a4899761e55c7ac3c1cf88a04f6"><code>bcf16c2</code></a>
    Update ts-http-runtime to 0.3.5</li>
    <li><a
    href="https://github.com/actions/cache/commit/668228422ae6a00e4ad889ee87cd7109ec5666a7"><code>6682284</code></a>
    Merge pull request <a
    href="https://redirect.github.com/actions/cache/issues/1738">#1738</a>
    from actions/prepare-v5.0.4</li>
    <li><a
    href="https://github.com/actions/cache/commit/e34039626f957d3e3e50843d15c1b20547fc90e2"><code>e340396</code></a>
    Update RELEASES</li>
    <li><a
    href="https://github.com/actions/cache/commit/8a671105293e81530f1af99863cdf94550aba1a6"><code>8a67110</code></a>
    Add licenses</li>
    <li><a
    href="https://github.com/actions/cache/commit/1865903e1b0cb750dda9bc5c58be03424cc62830"><code>1865903</code></a>
    Update dependencies &amp; patch security vulnerabilities</li>
    <li><a
    href="https://github.com/actions/cache/commit/565629816435f6c0b50676926c9b05c254113c0c"><code>5656298</code></a>
    Merge pull request <a
    href="https://redirect.github.com/actions/cache/issues/1722">#1722</a>
    from RyPeck/patch-1</li>
    <li><a
    href="https://github.com/actions/cache/commit/4e380d19e192ace8e86f23f32ca6fdec98a673c6"><code>4e380d1</code></a>
    Fix cache key in examples.md for bun.lock</li>
    <li>Additional commits viewable in <a
    href="https://github.com/actions/cache/compare/v4...v5">compare
    view</a></li>
    </ul>
    </details>
    <br />

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit bb6305d26530509fd5bbadec10d74fed2f71a57e
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Apr 23 14:57:28 2026 +1000

    chore(deps): bump stringcase from 0.3.0 to 0.4.0 (#422)

    Bumps [stringcase](https://github.com/sttk/stringcase-rust) from 0.3.0
    to 0.4.0.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/sttk/stringcase-rust/releases">stringcase's
    releases</a>.</em></p>
    <blockquote>
    <h2>0.4.0</h2>
    <h3>⚠️ BREAKING CHANGES</h3>
    <p><em>NOTE: This release differs in the behavior of
    <code>〜_case_with_sep</code> compared to previous versions. (The rest
    behaves the same.)
    This release adds <code>〜_case_with_options</code> functions that take
    the <code>Options</code> struct as an argument for all case conversions
    and modifies the existing functions to use these functions. These
    <code>〜_case_with_options</code> functions ignore ASCII alphabetic
    characters and digits when specified as separators or keep characters.
    Therefore, the behaviour of <code>〜_case_with_sep</code> functions, when
    specified alphabetic or numeric characters as separators will neither
    result in these characters being used nor being removed as separators,
    which differs from the behavior in previous versions.
    In addition, <code>〜_case_with_sep</code>,
    <code>〜_case_with_keep</code>, and <code>〜_case_with_nums_as_word</code>
    functions are all deprecated.</em></p>
    <ul>
    <li>new!: added camel_case_with_options and made use it in existing
    camel case functions by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/25">sttk/stringcase-rust#25</a></li>
    <li>new!: added cobol_case_with_options and made use it in existing
    cobol case functions by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/27">sttk/stringcase-rust#27</a></li>
    <li>new!: added kebab_case_with_options and made use it in existing
    kebab case functions by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/28">sttk/stringcase-rust#28</a></li>
    <li>new!: added macro_case_with_options and made use it in existing
    macro case functions by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/29">sttk/stringcase-rust#29</a></li>
    <li>new!: added pascal_case_with_options and made use it in existing
    pascal case functions by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/30">sttk/stringcase-rust#30</a></li>
    <li>new!: added snake_case_with_options and made use it in existing
    snake case functions by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/31">sttk/stringcase-rust#31</a></li>
    <li>new!: added train_case_with_options and made use it in existing
    train case functions by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/32">sttk/stringcase-rust#32</a></li>
    </ul>
    <h3>Docs</h3>
    <ul>
    <li>doc,comment: modified documentation comments by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/33">sttk/stringcase-rust#33</a></li>
    <li>doc: modified README.md by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/36">sttk/stringcase-rust#36</a></li>
    </ul>
    <h3>Supports</h3>
    <ul>
    <li>cicd: updated target rust versions by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/26">sttk/stringcase-rust#26</a></li>
    <li>test: added more tests for coverage by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/34">sttk/stringcase-rust#34</a></li>
    <li>test: updated benchmark tests by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/35">sttk/stringcase-rust#35</a></li>
    <li>release tasks for 0.4.0 by <a
    href="https://github.com/sttk"><code>@​sttk</code></a> in <a
    href="https://redirect.github.com/sttk/stringcase-rust/pull/37">sttk/stringcase-rust#37</a></li>
    </ul>
    <p><strong>Full Changelog</strong>: <a
    href="https://github.com/sttk/stringcase-rust/compare/0.3.0...0.4.0">https://github.com/sttk/stringcase-rust/compare/0.3.0...0.4.0</a></p>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/sttk/stringcase-rust/commit/a04c8f88e24234033da1d8ac557d71122e2034c4"><code>a04c8f8</code></a>
    0.4.0 (<a
    href="https://redirect.github.com/sttk/stringcase-rust/issues/37">#37</a>)</li>
    <li><a
    href="https://github.com/sttk/stringcase-rust/commit/db8c28ff7c1e2ff7baafa6b87ee7e0ae590fe939"><code>db8c28f</code></a>
    doc: modified README.md (<a
    href="https://redirect.github.com/sttk/stringcase-rust/issues/36">#36</a>)</li>
    <li><a
    href="https://github.com/sttk/stringcase-rust/commit/22d46883dd0ed2ef24b7ddf5bb2c345e90ca07eb"><code>22d4688</code></a>
    test: updated benchmark tests (<a
    href="https://redirect.github.com/sttk/stringcase-rust/issues/35">#35</a>)</li>
    <li><a
    href="https://github.com/sttk/stringcase-rust/commit/2b1f2612a0a5d529a4c426a7bc9a7959eea835bc"><code>2b1f261</code></a>
    test: added more tests for coverage (<a
    href="https://redirect.github.com/sttk/stringcase-rust/issues/34">#34</a>)</li>
    <li><a
    href="https://github.com/sttk/stringcase-rust/commit/bd04d55734493c0e6fb10af1f00abcbbc6cf01b9"><code>bd04d55</code></a>
    doc,comment: modified documentation comments (<a
    href="https://redirect.github.com/sttk/stringcase-rust/issues/33">#33</a>)</li>
    <li><a
    href="https://github.com/sttk/stringcase-rust/commit/8283681968a9b74e1f1297fb1d6cfeaa3d789c37"><code>8283681</code></a>
    new!: added train_case_with_options and made use it in existing train
    case fu...</li>
    <li><a
    href="https://github.com/sttk/stringcase-rust/commit/033e117f272ffb7c58a4e8c09e7d9ea05e8f26e4"><code>033e117</code></a>
    new!: added snake_case_with_options and made use it in existing snake
    case fu...</li>
    <li><a
    href="https://github.com/sttk/stringcase-rust/commit/65c6a15a05e7818ba5160d86d3a051418a5f8c8c"><code>65c6a15</code></a>
    new!: added pascal_case_with_options and made use it in existing pascal
    case ...</li>
    <li><a
    href="https://github.com/sttk/stringcase-rust/commit/93cb03e8b3c327e4176fa4506fea3106288fd8a8"><code>93cb03e</code></a>
    new!: added macro_case_with_options and made use it in existing macro
    case fu...</li>
    <li><a
    href="https://github.com/sttk/stringcase-rust/commit/cc35bcffd159a35a517fc12e341998d992ee3264"><code>cc35bcf</code></a>
    new!: added kebab_case_with_options and made use it in existing kebab
    case fu...</li>
    <li>Additional commits viewable in <a
    href="https://github.com/sttk/stringcase-rust/compare/0.3.0...0.4.0">compare
    view</a></li>
    </ul>
    </details>
    <br />

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 8f4914ecc5908dcbcdbf38bc8dc28a7cff5ff70f
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Apr 23 14:52:01 2026 +1000

    chore(deps): bump actions/download-artifact from 4 to 8 (#424)

    Bumps
    [actions/download-artifact](https://github.com/actions/download-artifact)
    from 4 to 8.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/actions/download-artifact/releases">actions/download-artifact's
    r…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants