-
Notifications
You must be signed in to change notification settings - Fork 61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Problem: sputnikvm users don't want to download large gaslighter dependencies #79
Comments
We can make gaslighter deps as dev dependencies? Would that work? But your way is equally viable. Go for it! |
I'm planning to do this after testing has been finished. |
So you're proposing to split |
We can just split them into different subfolders under https://github.com/ethereumproject/sputnikvm |
I see, okay great |
I'll do this now, though I'm keeping the |
Thanks! |
Actually The |
But Cargo indeed pulls all those dependencies in when building the library. See rust-lang/cargo#1982 |
This seems to be current convention. You can't get cargo to 1) build multiple libraries 2) selectively build a binary (I'm quite sure on number 1, but not entirely sure of number 2). This is standard operating procedure for carge. |
So until this Cargo issue is fixed, let's just separate sputnikvm and gaslighter to different crates. |
I still fail to see why this is a problem. To make different crates you need two "top level" Cargo will download all deps anyway and put them in Dependencies that are present in In other words the artefacts are already completely separated and the current state of the repository already works with expected behaviour. There is only one crate |
But if a library user wants to pull Many projects like |
okay I see your problem. Yeah okay I'll do that now. |
solved by #91 |
Cargo still doesn't support bin dependencies (rust-lang/cargo#1982). However, several dependencies we currently have (like JSON parser) are only for the bin target.
Until that, I suggest we separate sputnikvm and gaslighter into two different crates. This basically creates a structure like below:
The
sputnikvm
will then be used to build the library, and thegaslighter
will be used to build the executable.The text was updated successfully, but these errors were encountered: