Coder Social home page Coder Social logo

Comments (6)

peterhuene avatar peterhuene commented on September 26, 2024 1

The problem is that cargo component new currently runs cargo add for the wit-bindgen dependency, and doing so with a workspace.dependencies entry causes a conflict due to --no-default-features being passed to cargo add (it can't be specified on the package dependency even if they're the same value, unfortunately).

To fix this, cargo component new will need to detect that a compatible workspace dependency already exists and use that instead.

To work around this, you'll need to temporarily remove the workspace dep, add the project, add the workspace dep back, and then convert the package dep to use the workspace one.

Also note that the current release of cargo-component isn't fully compatible with wit-bindgen 0.19.x; you may run into build errors, especially if you're using resources; what's in main currently works with it, and with #240 merged soon, I will probably cut a release of cargo-component.

from cargo-component.

peterhuene avatar peterhuene commented on September 26, 2024 1

Also note that we hope to remove the wit-bindgen dependency from user projects in the future, with work already done to prevent the kind of breakage that 0.19.x introduced; at a minimum, we might have a dependency on a tiny "canonical exports" crate that can be built without having to muck with features.

from cargo-component.

peterhuene avatar peterhuene commented on September 26, 2024 1

I verified that with these changes we get the expected behavior of cargo component new inside of a workspace where the dependencies are already specified:

[dependencies]
bitflags.workspace = true
wit-bindgen-rt.workspace = true

from cargo-component.

DougAnderson444 avatar DougAnderson444 commented on September 26, 2024

@benwis perhaps you're seeing workspace issues too?

from cargo-component.

peterhuene avatar peterhuene commented on September 26, 2024

With bytecodealliance/wit-bindgen#876 and the new wit-bindgen-rt crate published in the near future, cargo-component projects will then have only direct dependencies on bitflags (for the generated bindings) and wit-bindgen-rt (for exporting required canonical ABI functions).

And since this gets rid of having to specify features on the dependencies, it should help fix this particular issue!

from cargo-component.

DougAnderson444 avatar DougAnderson444 commented on September 26, 2024

@peterhuene you rock!

from cargo-component.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.