Zac Medico posted on Wed, 12 Oct 2011 08:09:56 -0700 as excerpted: > On 10/12/2011 07:10 AM, Rich Freeman wrote: >> The defaults should be [safe] and the options should [flexibly >> allow less safety where judged necessary]. >> >> In my thinking the most conservative options right now are either >> emerge -uDN world or emerge -uDN --with-bdeps=y world. >> >> I'd almost prefer to see that -D, -N, and --with-bdeps go away, and >> that instead we add options like --shallow, --ignoreusechanges [...]
>> I just think about Debian where you tell people run "apt-get update" >> and then "apt-get upgrade" and that is it. Their typical behavior is >> not specifying anything and you get everything updated. With Gentoo >> the equivalent is "emerge world" but when you do that you potentially >> miss a lot of stuff. >> >> (And I realize the --with-bdeps part of this is debatable.) I've privately thought similarly for quite some time, but rationalized it, as I expect many have, with the "gentoo isn't and never has been about babysitting" thing. We expect, even essentially demand, that our users actively assertively their own choices in such matters by choosing the options that make sense for them, because otherwise, there's basically no point to running the distro. But that doesn't mean we can't create a simple default that "just works" and is secure without all the arcane options. > How about if we add a `emerge --upgrade` target that is analogous to > `apt-get upgrade`? If we hide the new defaults behind a target like > --upgrade, rather than change the defaults globally, then it allows > people's existing scripted and habitual emerge commands to continue to > work in a backward compatible manner. This was exactly the point and suggestion that I expected Zac to make, and that I agree with just as strongly. Don't break existing working assumptions and scripts with new defaults, but do take advantage of the opportunity presented by this discussion to create a single sensible option that "just works" and does so safely. =:^) Meanwhile, Zac, if I may, another suggestion. In the manpage and other documentation of this option, specifically note that the intended purpose is a single option that "just works", and that as such, specific behavior of the option may change as portage itself changes. Thus, for scripts, etc, where unchanging specific behavior is intended, the individual specific options are recommended, instead. That way, a half decade or whatever down the line, when portage's best defaults have again changed, we won't be faced with the problem of creating a new "best single default option" to avoid breaking existing assumptions, because the explicit assumption about this option is that it will always do what's considered best, even if that changes its behavior over time, and people have the option of picking either unchanging behavior with individual options, if that's desired, or a single option that's always intended to give the best behavior, even if that changes over time. In that regard, perhaps call the option --best, or some such, so it can be used for upgrades, fetches, or whatever, and can be suggested for EMERGE_DEFAULT_OPTS, where --upgrade might not always be appropriate. Also, make it possible to override what --best might otherwise do with later options. So a command including --best --with-bdeps=n in that order would do what --best would do, except --with-bdeps=n would override it for that specific option. (Conversely, --with-bdeps=n --best would ignore the bdeps option since best overrode it.) -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman