How to debug what appears to be versioning issues in cargo

Yesterday I posted a long, long description of a problem I encountered with Cargo. I stayed at the level of "why are multiple versions of this package getting pulled-in, when there is clearly no constraint forcing it?" But there's a different problem, that I don't know how to debug at all. That post is in moderation (first post, new user, big post, gosh, maybe he's spamming, let's have a moderator review -- makes perfect sense grin)

In my scenario, a crate QT depended on pyo3, which depended on hashbrown. pyo3's version-constraint on hashbrown is pretty relaxed, so if QT specifies a strict version constraint on hashbrown, you'd tink that that would force pyo3 to select that version. But that's not what happend.

But this brings up a different problem. QT has code that uses hashbrown. That code fails all sorts of type-checking with pyo3 and hashbrown. The code is wrappered in macros, so just staring at it doesn't help much. I'd like to do two things:

  1. extract a list of commands I can run on the commandline to reproduce the build process

  2. and from a source-file that contains macro instances, extract the expanded source code, so I can compile that and see the compile errors.

I know there's a command "cargo expand" for #2, but searching Google, I've found no way to do #1.

Will the cargo build -vv help here? It will print a bunch of rustc calls as they are executed.

Thank you! That's a start!

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.