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)