Skip to content
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

Stabilize -Z avoid-dev-deps as --minimal-cargo-lock #5133

Open
infinity0 opened this issue Mar 6, 2018 · 13 comments
Open

Stabilize -Z avoid-dev-deps as --minimal-cargo-lock #5133

infinity0 opened this issue Mar 6, 2018 · 13 comments

Comments

@infinity0
Copy link
Contributor

@infinity0 infinity0 commented Mar 6, 2018

#5012 will add a -Z avoid-dev-deps flag to avoid installing dev-dependencies in certain targets like install.

@alexcrichton thinks that "in the long run [this wants] to be something like --minimal-cargo-lock which prunes all non-relevant dependencies like platform-specific dependencies that don't apply, dev-deps if you're not building tests, etc."

@matklad
Copy link
Member

@matklad matklad commented Jun 26, 2018

@infinity0

Clarification question: am I correct that cargo install currently avoids dev dependencies even if the flag is not specified? That is, this issue is specifically for cargo build command?

@infinity0
Copy link
Contributor Author

@infinity0 infinity0 commented Jun 27, 2018

@matklad when I last touched that code, yes. the dev_dependencies_no_check test is for this.

@ignatenkobrain
Copy link
Contributor

@ignatenkobrain ignatenkobrain commented Aug 18, 2018

@infinity0 do you have some patch for this?

We wanted to not package some optional dependencies and hit this issue.

@ignatenkobrain
Copy link
Contributor

@ignatenkobrain ignatenkobrain commented Aug 18, 2018

\cc @keszybz

@ignatenkobrain
Copy link
Contributor

@ignatenkobrain ignatenkobrain commented Aug 19, 2018

and also deps for disabled features, I hope. Right?

@infinity0
Copy link
Contributor Author

@infinity0 infinity0 commented Aug 20, 2018

@ignatenkobrain Cargo already carries this functionality as cargo build -Z avoid-dev-deps or cargo install (with no extra flags) but only for dev-dependencies, not optional dependencies or unused features or unused target-specific dependencies. No I don't have a patch for the other things I mentioned.

@ignatenkobrain
Copy link
Contributor

@ignatenkobrain ignatenkobrain commented Oct 15, 2018

@alexcrichton any chance to get someone to work on this? I'm pretty sure that all distributions which decide to package crates will get hit by this.

@phi-gamma
Copy link
Contributor

@phi-gamma phi-gamma commented Nov 20, 2019

What needs to be done in order to get his option stabilized?

Cargo pulling in Windows and Redox deps unconditionally is currently
forcing us to patch the Cargo.toml files of numerous crates. It would
remove a lot of friction if this behavior could instead be disabled globally.

@ehuss
Copy link
Contributor

@ehuss ehuss commented Nov 20, 2019

Sorry, at this time we don't have this particular feature on a path towards stabilization. We recognize that there are circumstances where it solves a problem, but we feel like the design hasn't been completely fleshed out, and nobody on the team has the time right now to shepherd that design.

@dkg
Copy link

@dkg dkg commented Nov 27, 2019

fwiw, this looks like it needs to be resolved to fix problems with debian's autopkgtest suite and multiple crates.

@est31
Copy link
Contributor

@est31 est31 commented Feb 24, 2020

I think this is subsumed by #7916

@cuviper
Copy link
Member

@cuviper cuviper commented Mar 6, 2020

I think this is subsumed by #7916

It doesn't seem so. I tried by running cargo vendor >.cargo/config, then removing some of the dev-deps. I could still build with -Z avoid-dev-deps, but not with -Z features=dev_dep.

cargo 1.43.0-nightly (bda50510d 2020-03-02)
@est31
Copy link
Contributor

@est31 est31 commented Mar 7, 2020

Hmm right good point. I think the difference between the two features is that -Z features=dev_dep still compiles the dev dependencies, just doesn't unify features any more while -Z avoid-dev-deps does not compile them at all

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Roadmap
  
Unstable, no backers
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
8 participants