Skip to content

Update Rust crate guppy to 0.17.26#3363

Merged
sunshowers merged 1 commit into
mainfrom
renovate/guppy-0.x
May 23, 2026
Merged

Update Rust crate guppy to 0.17.26#3363
sunshowers merged 1 commit into
mainfrom
renovate/guppy-0.x

Conversation

@nextest-bot
Copy link
Copy Markdown
Collaborator

This PR contains the following updates:

Package Type Update Change
guppy workspace.dependencies patch 0.17.250.17.26

Release Notes

guppy-rs/guppy (guppy)

v0.17.26: guppy 0.17.26

Compare Source

Fixed

A node with a self-loop edge -- typically a package with a path
dev-dependency on its own crate, or a feature node like base/[base]
arising from one -- was treated inconsistently by several APIs. The root
cause was that self-edges were counted as incoming edges in the SCC and
topological-sort machinery, which transitively confused everything built
on top:

  • Sccs::externals / forward roots. Previously, a package whose only
    incoming edge was its own self-loop was excluded from the set of forward
    roots, so callers iterating over
    query_workspace().resolve().root_ids(_) did not see it, and forward
    link enumeration on it was broken. Now, self-loop edges no longer
    disqualify a node from being a forward root: a single-node SCC is
    external iff it has no incoming edges from outside its own SCC.
    (#​586)
  • Topological sort. Previously, TopoWithCycles::new filtered
    self-looping nodes out of its root set for the same reason, dropping
    them from the DFS and then placing them and their descendants at the
    end of the topological order via a best-effort fallback. Now, the
    root-set predicate accepts a node whose only incoming edge is its own
    self-loop, so such nodes are visited in DFS order alongside other
    roots. (#​589)
  • Cycles::is_cyclic and feature::Cycles::is_cyclic. Previously,
    these were reflexively true for every package or feature, regardless
    of actual cycle membership. Now, they return true only when the
    argument lies on a directed cycle: either in a multi-node SCC, or in a
    single-node SCC with a self-loop edge. This is a behavior change, but
    in the context of the rest of this release is being treated as a
    bugfix. (#​590)
  • Cycles::all_cycles and feature::Cycles::all_cycles. Previously,
    these reported only SCCs of two or more elements. Now, they also yield
    single-node SCCs whose node has a self-loop edge, in topological order
    alongside multi-node SCCs. This makes all_cycles() and
    is_cyclic(x, x) agree on what counts as a cycle. (#​590)
  • FeatureGraphWarning::SelfLoop. Previously, this warning was
    emitted for every self-loop edge in the feature graph, including
    legitimate ones such as a path dev-dependency on the package's own
    crate. Now, it is restricted to named-feature self-loops like
    [features] a = ["a"], which really are user errors. (#​592)
Documentation
  • PackageGraph::directly_depends_on and
    FeatureGraph::directly_depends_on.
    Previously, both documented
    themselves as returning false when the two IDs were equal. The
    implementation has always called dep_graph.contains_edge(a, b),
    which correctly returns true for self-loop edges, so the
    documentation contradicted the behavior. The documentation has now
    been corrected to match.
  • FeatureGraph::directly_depends_on. Previously, the docstring
    read "returns true if feature_a is a direct dependency of
    feature_b," with the operands inverted relative to the actual
    implementation. Now the docstring reflects the implementation:
    returns true if feature_b is a direct dependency of feature_a.
    (#​591)
  • [Cycles] type-level documentation. Previously, the long-form
    documentation talked exclusively about multi-node cycles (like
    serde and serde_derive). It now also acknowledges single-node
    self-loop cycles as a case.

Configuration

📅 Schedule: (in timezone America/Los_Angeles)

  • Branch creation
    • "after 8pm,before 6am"
  • Automerge
    • "after 8pm,before 6am"

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

@nextest-bot nextest-bot added the dependencies Pull requests that update a dependency file label May 23, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented May 23, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.52%. Comparing base (0c689e6) to head (ed1d1e0).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3363      +/-   ##
==========================================
- Coverage   85.53%   85.52%   -0.01%     
==========================================
  Files         160      160              
  Lines       47954    47954              
==========================================
- Hits        41017    41013       -4     
- Misses       6937     6941       +4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@trunk-io
Copy link
Copy Markdown

trunk-io Bot commented May 23, 2026

Static BadgeStatic BadgeStatic BadgeStatic Badge

View Full Report ↗︎Docs

@sunshowers sunshowers merged commit 092cfeb into main May 23, 2026
27 checks passed
@nextest-bot nextest-bot deleted the renovate/guppy-0.x branch May 23, 2026 07:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants