Repository navigation
deps(poise): upgrade to 0.7.0 and call parent_commands as a method - #194
Merged
Merged
Conversation
The release build has been building a different poise than every other build for some time, and the two toolchain-looking failures earlier were the same root cause in different clothes. patch-version.yml regenerates the lockfile with cargo generate-lockfile, and poise is pinned as a branch (serenity-next), so the release re-resolves it to whatever HEAD is that day. HEAD is now 0.7.0, where parent_commands is a method; the committed lockfile pins 0.6.1, where it is a field. The release job failed with E0615 twice. Upgrade instead of pinning: call it as a method (src/plugin/command.rs:928, 973) and regenerate the lockfile once so local builds, PR CI and the release all resolve the same rev. With the rev committed, the release's regen is a no-op rather than a silent jump to a newer major. Verified against the exact command and profile the release job runs: cargo build --release --all-features --all-targets on 1.98.1 with a clean target, 0 errors. 926 passed / 0 failed / 4 ignored. clippy -D warnings clean, format clean. No code change beyond the two call sites was needed for the 0.6.1 to 0.7.0 jump; serenity is unchanged. The branch pin stays, since the rev is what makes the lockfile deterministic.
Contributor
Release PreviewNext version:
0.4.1 (2026-10-05) |
This was referenced Oct 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Makes the release build deterministic. For some time the release has been
building a different poise than every other build:
patch-version.yml:205runs
cargo generate-lockfileon every release, and poise is pinned as abranch (
serenity-next), so the release re-resolves it to whatever HEAD isthat day. HEAD is now 0.7.0, where
parent_commandsis a method; thecommitted lockfile pins 0.6.1, where it is a field. The release job failed
with
E0615twice.The two earlier failures with the same shape were the same root cause in
different clothes. The toolchain being newer (1.99 vs 1.98) was true but
irrelevant; the breakage is that the release build is not pin-protected the
way local builds and PR CI are.
Changes
src/plugin/command.rs:928and:973: callparent_commands()as a method.Regenerate the lockfile once so local builds, PR CI and the release all
resolve the same rev (0.7.0 at
a1d0e3e). With the rev committed, therelease's regen is a no-op.
Why upgrade rather than pin the rev
Pinning the rev would have made this one line, and was on the table. The
upgrade is cleaner long-term and the breaking surface turned out to be two
call sites and nothing else. If anything had been substantial, this would
have been a pin instead.
Validation
Verified against the exact command and profile the release job runs:
cargo build --release --all-features --all-targetson 1.98.1 with a cleantarget: 0 errors
cargo check --workspace --all-features --all-targetson 1.98.1: cleancargo clippy --workspace --all-features --all-targets -- -D warnings: cleanbash dev.sh format lint: cleanThe branch pin stays, since the committed rev is what makes the lockfile
deterministic.