class Bundler::PubGrub::VersionSolver

def work

Returns true if there is more work to be done, false otherwise
def work
  return false if solved?
  next_package = choose_package_version
  propagate(next_package)
  if solved?
    logger.info { "Solution found after #{solution.attempted_solutions} attempts:" }
    solution.decisions.each do |package, version|
      next if Package.root?(package)
      logger.info { "* #{package} #{version}" }
    end
    false
  else
    true
  end
end