msanders / cider

Hassle-free bootstrapping with Homebrew.
https://pypi.python.org/pypi/cider/
MIT License
839 stars 25 forks source link

Bootstrap.yml package ordering #27

Closed ianwalter closed 9 years ago

ianwalter commented 9 years ago

Cider shouldn't order packages alphabetically. Some packages might need to be installed ahead of others, for example, node & npm ahead of iojs.

RogerThiede commented 9 years ago

What extra functionality would be gained if this extra logic is added?

ianwalter commented 9 years ago

It would allow the user to control when something gets installed. For example, I want Virtualbox to get installed before Kitematic because Kitematic depends on Virtualbox and if I start Kitematic before Virtualbox gets installed it tries to download Virtualbox and I end up with two installations.

Thats a very specific example, but a more general example would be maybe I want Tor to be installed first so that I can browse the web securely while I wait for other packages to be installed.

RogerThiede commented 9 years ago

I'm not sure I understand your first example. Do you not end up in the same correct state either way?

Your second example seems interesting, and I would call it an "interactive cider restore" since currently cider restore expects to be atomic. How likely would such a feature be useful?

msanders commented 9 years ago

This shouldn't be a problem since Homebrew installs dependencies automatically, and by default cider only installs orphaned packages (i.e. the outermost dependency). In the case of the last example, I agree with Roger that the restore operation is expected to be atomic. If this does cause a bug I'll add support, but I'd rather not add unnecessary complexity.