Skip to content

deps(poise): upgrade to 0.7.0 and call parent_commands as a method - #194

Merged
FAZuH merged 1 commit into
mainfrom
deps/poise-0.7
Oct 5, 2026
Merged

FAZuH merged 1 commit into
mainfrom
deps/poise-0.7

Conversation

@FAZuH

@FAZuH FAZuH commented Oct 5, 2026

Copy link
Copy Markdown
Owner

Summary

Makes the release build deterministic. For some time the release has been
building a different poise than every other build: patch-version.yml:205
runs cargo generate-lockfile on every release, 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.

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:928 and :973: call parent_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, the
release'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-targets on 1.98.1 with a clean
    target: 0 errors
  • cargo check --workspace --all-features --all-targets on 1.98.1: clean
  • cargo clippy --workspace --all-features --all-targets -- -D warnings: clean
  • bash dev.sh format lint: clean
  • Suite: 926 passed / 0 failed / 4 ignored

The branch pin stays, since the committed rev is what makes the lockfile
deterministic.

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.
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

Release Preview

Next version: v0.4.1

Note: CHANGELOG.md has no ## [Unreleased] section. An empty one was created for this preview — add your entries under it to preview the release body.

0.4.1 (2026-10-05)

@FAZuH
FAZuH merged commit 70806bf into main Oct 5, 2026
5 checks passed
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.

1 participant