Skip to content

Build(deps): bump prettyplease from 0.2.37 to 0.3.0 - #78

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/prettyplease-0.3.0
Open

Build(deps): bump prettyplease from 0.2.37 to 0.3.0#78
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/prettyplease-0.3.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 30, 2026

Copy link
Copy Markdown
Contributor

Bumps prettyplease from 0.2.37 to 0.3.0.

Release notes

Sourced from prettyplease's releases.

0.3.0

Commits
  • 49e5089 Release 0.3.0
  • fcbf4d3 Merge pull request #128 from dtolnay/syn3
  • 3bcd9d9 Update to syn 3
  • 1a89d07 Format with rustfmt
  • daa39f5 Update actions/upload-artifact@v6 -> v7
  • 44d4c3d Update actions/checkout@v6 -> v7
  • 87d1c22 Update examples to nightly-2026-02-09
  • 50a7042 Raise required compiler to Rust 1.71
  • ae76ee8 Resolve unnecessary_map_or clippy lint
  • 938b756 Raise required compiler to Rust 1.70
  • Additional commits viewable in compare view

Dependabot compatibility score

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


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

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

Bumps [prettyplease](https://github.com/dtolnay/prettyplease) from 0.2.37 to 0.3.0.
- [Release notes](https://github.com/dtolnay/prettyplease/releases)
- [Commits](dtolnay/prettyplease@0.2.37...0.3.0)

---
updated-dependencies:
- dependency-name: prettyplease
  dependency-version: 0.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added cargo Dependabot channel for Rust crate updates. dependencies Dependency updates, applied to every Dependabot pull request. labels Jul 30, 2026

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Sorry @dependabot[bot], you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@github-actions
github-actions Bot enabled auto-merge (squash) July 30, 2026 14:30
@leynos

leynos commented Aug 19, 2026

Copy link
Copy Markdown
Owner

@coderabbitai please investigate the cause of the build/test CI failure and raise a GitHub issue for the fix.

@coderabbitai

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="leynos/theoremc"
pr="78"

echo "== Pull request and checks =="
gh pr view "$pr" --repo "$repo" \
  --json url,headRefName,baseRefName,statusCheckRollup,files \
  --jq '{url, headRefName, baseRefName, checks: [.statusCheckRollup[] | {name, status, conclusion, detailsUrl}], files: [.files[].path]}'

echo
echo "== Failed GitHub Actions jobs =="
gh api "repos/$repo/actions/runs?event=pull_request&per_page=100" --paginate \
  --jq --arg head "$(gh pr view "$pr" --repo "$repo" --json headRefOid --jq .headRefOid)" '
    .workflow_runs[] | select(.head_sha == $head) | {id, name, status, conclusion, html_url}
  ' | while IFS= read -r run; do
    echo "$run"
  done

head_sha="$(gh pr view "$pr" --repo "$repo" --json headRefOid --jq .headRefOid)"
run_ids="$(gh api "repos/$repo/actions/runs?event=pull_request&per_page=100" --paginate \
  --jq --arg head "$head_sha" '.workflow_runs[] | select(.head_sha == $head and .conclusion == "failure") | .id')"

for run_id in $run_ids; do
  echo
  echo "== Failed jobs for run $run_id =="
  gh api "repos/$repo/actions/runs/$run_id/jobs?filter=latest&per_page=100" --paginate \
    --jq '.jobs[] | select(.conclusion == "failure") | {name, html_url, steps: [.steps[] | select(.conclusion == "failure") | {name, number}]}'
  echo "== Failure log for run $run_id =="
  gh run view "$run_id" --repo "$repo" --log-failed || true
done

echo
echo "== Rust and Cargo constraints =="
fd -HI -t f '^(Cargo\.toml|Cargo\.lock|rust-toolchain(\.toml)?|.*\.ya?ml)$' . \
  -E .git -E target | sort | while IFS= read -r file; do
    echo "--- $file"
    rg -n -i -C 2 'prettyplease|rust-version|toolchain|msrv|cargo (build|test)|rustup' "$file" || true
  done

Length of output: 3794


🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="leynos/theoremc"
run_id="30550832694"
job_id="90898737477"

echo "== Failed job metadata =="
gh api "repos/$repo/actions/jobs/$job_id" \
  --jq '{name, conclusion, html_url, started_at, completed_at, steps: [.steps[] | {name, conclusion, number}]}'

echo
echo "== Failed job log =="
gh run view "$run_id" --repo "$repo" --job "$job_id" --log-failed

echo
echo "== Changed Cargo manifest =="
cat -n crates/theoremc-macros/Cargo.toml

echo
echo "== Relevant lockfile entries =="
rg -n -A12 -B3 'name = "(prettyplease|syn|theoremc-macros)"' Cargo.lock

echo
echo "== Rust and CI configuration =="
fd -HI -t f '^(rust-toolchain(\.toml)?|Cargo\.toml|.*\.ya?ml)$' . -E .git -E target \
  | sort \
  | while IFS= read -r file; do
      if rg -q -i 'rust-version|toolchain|rustup|cargo (build|test)' "$file"; then
        echo "--- $file"
        rg -n -i -C2 'rust-version|toolchain|rustup|cargo (build|test)' "$file"
      fi
    done

Length of output: 174030


🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="leynos/theoremc"
pr_url="https://github.com/leynos/theoremc/pull/78"

existing="$(gh issue list --repo "$repo" --state open --limit 100 \
  --search '"prettyplease" "syn"' \
  --json number,title,url \
  --jq '.[] | select((.title | ascii_downcase | contains("prettyplease")) and (.title | ascii_downcase | contains("syn"))) | "\(.number)\t\(.title)\t\(.url)"' \
  || true)"

if [ -n "$existing" ]; then
  echo "EXISTING_ISSUE"
  printf '%s\n' "$existing"
  exit 0
fi

comment_url="$(gh api "repos/$repo/issues/78/comments?per_page=100" \
  --jq '.[] | select(.user.login == "leynos" and (.body | contains("please investigate the cause of the build/test CI failure"))) | .html_url' \
  | tail -n 1)"

issue_body="$(cat <<EOF
## Summary

The \`build-test\` workflow fails after PR `#78` upgrades \`prettyplease\` from \`0.2.37\` to \`0.3.0\`.

## Cause

\`prettyplease 0.3.0\` depends on \`syn 3.0.3\`. The macro crate still directly depends on \`syn 2.0.117\`. In \`crates/theoremc-macros/src/tests.rs\`, the test passes a \`syn 2::File\` to \`prettyplease::unparse\`, which now requires \`syn 3::File\`.

The coverage command fails with:

\`\`\`text
error[E0308]: mismatched types
expected \`syn::file::File\`, found \`syn::File\`
note: there are multiple different versions of crate \`syn\` in the dependency graph
\`\`\`

## Required changes

- Update \`crates/theoremc-macros\` and its test code to use the \`syn 3\` API required by \`prettyplease 0.3.0\`.
- If the crate cannot yet migrate to \`syn 3\`, revert or defer the \`prettyplease\` upgrade to a version compatible with \`syn 2\`.
- Run the workspace coverage test command after the dependency versions are aligned.

## Acceptance criteria

- \`cargo llvm-cov nextest --manifest-path Cargo.toml --workspace --lcov --output-path lcov.info\` succeeds.
- The macro tests compile without passing a \`syn 2::File\` to an API that requires \`syn 3::File\`.
- The dependency graph does not contain incompatible \`syn::File\` types at the \`prettyplease::unparse\` call site.

## Backlinks

- Pull request: $pr_url
- Request comment: ${comment_url:-$pr_url}
- Failing job: https://github.com/leynos/theoremc/actions/runs/30550832694/job/90898737477
EOF
)"

issue_url="$(gh issue create --repo "$repo" \
  --title "Align theoremc-macros with syn 3 for prettyplease 0.3.0" \
  --body "$issue_body" \
  --assignee "leynos")"

echo "CREATED_ISSUE"
echo "$issue_url"

Length of output: 2649


@leynos, the failure is caused by an incompatible syn major version.

prettyplease 0.3.0 requires syn 3::File. crates/theoremc-macros uses syn 2.0.117, so crates/theoremc-macros/src/tests.rs:141 passes a syn 2::File to prettyplease::unparse. The coverage test then fails with E0308.

Track the fix in #84. The issue is assigned to you and links to PR #78, the request comment, and the failed CI job.


🧠 Learnings used
Learnt from: leynos
Repo: leynos/netsuke PR: 0
File: :0-0
Timestamp: 2026-08-14T22:57:52.249Z
Learning: For leynos/netsuke PR reviews, treat warnings as required work. When a finding is out of scope, identify an existing GitHub issue that covers it; otherwise propose a focused GitHub follow-up issue. Treat observability, code safety, documentation, and validation coverage as in scope.

Learnt from: leynos
Repo: leynos/netsuke PR: 0
File: :0-0
Timestamp: 2026-08-15T22:31:39.799Z
Learning: For leynos/netsuke PR reviews, treat warnings as required work. When a finding is out of scope, identify an existing GitHub issue that covers it; otherwise propose a focused GitHub follow-up issue. Treat observability, code safety, documentation, and validation coverage as in scope.

Learnt from: leynos
Repo: leynos/netsuke PR: 0
File: :0-0
Timestamp: 2026-08-16T02:08:00.482Z
Learning: For leynos/netsuke pull request reviews, treat warnings as required work. If a warning is out of scope, identify an existing GitHub issue that covers it or propose a focused GitHub follow-up issue. Treat observability, code safety, documentation, and validation coverage as in scope.

You are interacting with an AI system.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cargo Dependabot channel for Rust crate updates. dependencies Dependency updates, applied to every Dependabot pull request.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant