Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Dart's package manager (Pub) uses an SAT solver to find possible solutions, and even more impressively, to describe why a dependency can't be fulfilled:

    Because dropdown >=2.0.0 depends on icons >=2.0.0 and root depends
  on icons <2.0.0, dropdown >=2.0.0 is forbidden.

    And because menu >=1.1.0 depends on dropdown >=2.0.0, menu >=1.1.0
  is forbidden.

    And because menu <1.1.0 depends on dropdown >=1.0.0 <2.0.0 which
  depends on intl <4.0.0, every version of menu requires intl
  <4.0.0.

    So, because root depends on both menu >=1.0.0 and intl >=5.0.0,
  version solving failed.
https://medium.com/@nex3/pubgrub-2fb6470504f


PHP's dependency manager, Composer, uses this approach too.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: