miyagawa/cpanminus — pull request #382 by sdt (2014-05-12 08:15:47+00:00)
Title: Process dependencies in a deterministic order

In App::cpanminus::Dependency->from_versions, walk through %$versions in
sorted-key order so that dependencies get processed in a deterministic order.

With the hash-order randomization in perl 5.18, dependencies get listed/installed in
a different order each time. This patch forces consistent ordering.

I had been getting strange dependency failures with Carton and Pinto which I strongly
suspect were caused by this and possibly Any::Moose. I'd build a carton bundle (or a
pinto repo) on one machine, and would sometimes get missing dependencies when
installing on another machine. Trying the installation a second time would succeed.

I suspect the issue was Any::Moose reporting a different set of dependencies if Moose
had already been installed or not. I was hoping to make a small repro case for this,
but I'm unable to reproduce it at all anymore :confused:

Either way, this makes the output of --showdeps a lot easier to scan.