Hi John,
This importer does not solve the declarations, and IMHO it should not
anyway - as the are dependencies of another packages, which might change over time.

I’m not sure I fully understand why the recursive importer should not solve the transitive dependencies. Could you elaborate further?

If you are suggesting that guix refresh won’t pick up the changes, then I think agree with you. That I believe is an artifact of using arguments rather than inputs to specify dependencies.

I was talking about `guix import crates -r`, which - like `guix refresh` - shall not add transitive dependencies to #crate-inputs.

But I would expect the build-system to transitivly resolve #crate-inputs as well as #crate-development inputs.

The importer does solve the transitive dependencies but there is a bug. Version numbers of cargo dependencies are not used which can sometimes cause the problem you describe. I really hope the fixes get merged soon because it is a real pain. 
Are you talking about "guix import crates" here, too?
-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |