09. Clarify intent of 'recommends' and add 'suggests'

Proposal:

The 'recommends' flag is not equivalent to Debian recommends.  The intent
should be made clear for authors and the toolchain.  If the Debian
definitions are adopted to better match usage by packagers, a 'suggests'
field should be added as well. (Adam Kennedy)

* C.f.
  [http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
  Debian definitions]

Comments:

* The current recommends field is ignored, which makes it actually work
  like "suggests".

* If we redefine the actual meaning to match Debian, recommends changes to
  mean "install unless you say otherwise". This would result in a massive
  install dependency explosion in most cases. (AdamKennedy)

* 'recommends' or 'suggests' they both imply (to me) they list optional
  dependencies. Perhaps we could have both, where 'suggests' implies the
  toolchain should ask whether the user wishes to install listed
  dependencies, and 'recommends' simply remains a data-point of
  dependencies that can be used by the distribution, but are not necessary
  for its operation after installation. (Barbie)

* That would be opposite of Debian, with our 'recommends' more like their
  'enhances' (Dagolden)

* Most of the time, the user has less of an ability to answer any "do you
  want feature blah" questions than the author is. "Asking the user" about
  anything implies perfect knowledge on the part of the user, as they will
  need to know the answer not only for the module they are trying to
  install, but know the answer for all domains of knowledge in all their
  dependencies recursively -- AdamK

* In Debian, suggestions are handled by just showing users what packages
  are suggested. It doesn't do any sort of prompting, though it does give
  savvy users the chance to install those packages as well. (jawnsy)

* The "install unless you say otherwise" of Debian is configurable. We
  consider Recommends to really mean, "The module you're installing is
  usually found with (recommended modules)" -- though if one wants to be
  minimalistic they can exclude them. This is precisely our rationale for
  defaulting to installing them even though the user didn't ask for it. One
  should ask themselves: "will users consider it strange if X is installed
  without Y?" (jawnsy)

Reply via email to