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

pip doesn't give live output #666

Open
avylove opened this issue Oct 24, 2022 · 2 comments
Open

pip doesn't give live output #666

avylove opened this issue Oct 24, 2022 · 2 comments
Labels

Comments

@avylove
Copy link

avylove commented Oct 24, 2022

Current Behavior

When running a session with a lot of dependencies with --verbose, Nox will appear to hang after calling pip. Then will return all of the pip output at once. This breaks one of the fundamental rules of user interfaces, never make the user wonder what is happening.

Expected Behavior

Nox should provide realtime output from pip when --verbose is passed. There are several ways to do this. (Don't capture stdout/stderr, capture and print in loop until process is complete, call pip through Python). Probably this should be solved more generally than pip because there are other long-running commands people will want to run.

Steps To Reproduce

  1. Create nox session with a lot of dependencies
  2. Run nox --verbose -s <session>
  3. Observer hang until pip completes

Environment

- OS: Ubuntu 20.04
- Python: 3.8
- Nox: 2022.8.7

Anything else?

No response

@avylove avylove added the bug label Oct 24, 2022
@avylove
Copy link
Author

avylove commented Jan 26, 2023

This was an issue recently dealing with pip backtracking. Essentially pip was stuck in a dependency resolution loop. I ended up having to run pip manually in order to determine this because Nox just appeared to hang. It got me thinking though, depending on how the buffers are configured, this would eventually overwrite the buffer or fill the system memory.

@avylove
Copy link
Author

avylove commented May 1, 2023

I see now I can pass silent=False to Session.install(). This seems counter-intuitive. I'd expect the default to be False, especially if the --verbose option was passed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

1 participant