Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Indicate that composer is actually working with `create-project`, instead of appearing unresponsive #8409
When I run this command:
I get the following output:
And I expected this to happen:
~14MB downloads before any output from composer's command begins(with ~4MB more downloaded for dependencies).
On a slow connection this can appear unresponsive(this was taking about a minute). As my network is usually faster(1MB/sec), and the lack of input, I was under the impression the command was hanging(new to composer), thinking there was something wrong with my system..
@alcohol ok, thanks for that. It doesn't really help resolve the experience for new users though. I am new to PHP and Composer, and my first usage of composer was the command above.
Do you find it acceptable for a user to have no immediate feedback for a minute or longer due to waiting on network download for any output? I did not require any additional verbosity elsewhere in the output, just feedback that Composer was actually working and not hanging.
I cannot imagine any drawbacks from an added line of output?
@alcohol How long it takes also depends on the network connection as well...? I'm not sure why you bring that up, as shown above, it can take over a minute, on another machine/network perhaps far less, but for some users it can take a fair amount of time before any output from composer is provided.
I'm confused.. Do you understand what issue I'm raising here?
It's a UX issue. Especially for new users, when the command can run with no output for over a minute suggests the utility is unresponsive/broken.
Not unlike if you navigated to a webpage and it took a minute before anything appeared. You could open up the dev tools or monitor your network to see if anything was actually happening, but some indication of the page actually loading beyond a blank page would be desirable right?
All I'm requesting, is an improvement that shows the composer command has actually began something, that it's running. I know better now, but I was quite confused at the time until some actual output was received.
I thought it'd be worth letting you know about this, but if you don't feel it's important to improve the UX for this scenario, that's fine.
I'm not in a position to judge if this needs improving or not since I am biased. I know how the tool works so I know why it can take a while before more meaningful output is generated (when not using verbose output).
I personally do not like adding output just for the sake of adding output. I'm a patient person and I don't assume things are broken just because I don't get instant feedback. This is of course a personal opinion and we should probably try to aim for what the majority of our users feels is "good".
We don't really handle requests, unless it involves the word "pull" ;-)
Seriously though, submit a pull requests and we'll look it over. I'm not sure where in the flow and what kind of feedback would improve the UX here, but you seem to have some ideas about that so go ahead
I wouldn't call a 90 second delay instant feedback..
If I had used Composer prior and not had an experience with a long delay, perhaps this would be a non-issue for me as well. Being new to PHP, I had to provide some additonal extensions to get it working, so it wasn't obvious if it was working. I only noticed due to the network activity while leaving it to run and investigating why it appeared to be unresponsive.
The initial ~14MB wasn't due to downloading dependencies for laravel, afaik it was downloading some sort of metadata?(something in the
I went with a fairly generic message related to the command instead. I am new to PHP, I'm not sure how to add a delay with a boolean toggle so it's only displayed on slow connections, so it'll be one additional line(to what is many anyhow afaik?) for everyone.
Also moved install directory check prior to the network request so it fails fast(linked related issue).