rust-lang / rust-lang/rust-bindgen

syn dependency version bound is incompatible with prettyplease

Open
#3,448 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
5.3k
Forks
829
Avg merge
1d 1h
Merged PRs (30d)
15

Description

I have the following build dependencies in my crate:

bindgen = "0.73.1"
cmake = "0.1.58"

The syn version bound in bindgen (>=2, <4) allows Cargo to select a 2.x release (2.0.119) for bindgen and a 3.x release (3.0.3) for prettyplease, which causes a compilation error. Why cargo picks an old syn release for bindgen is beyond me.

This is one of those cases where I just shut my computer off and go do something else, because it is 11pm and I do not feel like spending the rest of my Saturday night hitting cargo with a rock until it does the right thing.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the dependency resolution with bindgen 0.73.1, prettyplease, and the selected syn versions described in the issue. Inspect the dependency declarations and Cargo's resolved graph, then confirm that the reported compilation conflict is eliminated while keeping the affected build dependencies compatible.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.