Batteries Included Policy
Jordan K. Hubbard
jkh at apple.com
Sat Jun 21 21:03:05 PDT 2008
On Jun 21, 2008, at 6:41 PM, Landon Fuller wrote:
> I would like to propose a policy for general consideration. I
> believe it could save everyone energy and brain-cycles; let's call
> it "batteries included":
> As a general rule, ports should enable all standard features/
> functionality that may be useful to an end-user.
I think you're on the right track, and may even be unconditionally
right for a certain number of cases where a larger functional default
seems "sensible."
There are, however, a non-trivial number of ports which will pull in
the most expensive or weirdest crap (sometimes both) if given half a
chance, and in those cases the user is going to end up paying a much
higher price than would meet the "sensible test" for all but a small
segment of the population. We need to figure out how to deal with
those cases too.
One solution would be to borrow a page from FreeBSD and use a
consistent, front-loaded configuration interface that pops up when the
port is being built interactively, asking which optional features to
enable. An advantage of this is one of "discovery" - the user does
not have to read and understand an often cryptic and strange Portfile
in order to know what optional wonderfulness the port if prepared to
offer.
The "cons" of this solution are also obvious: If you're building
packages or even just batchmode port builds, you're no longer
interactive and this stops being a solution of any sort - you're no
further ahead in your quest to determine "sensible defaults" if the
user cannot help. If the user is also one of our hypothetical future
users who always install packages, we're also back to square one with
the build-time options.
My intuition tells me we still need some sort of configuration
mechanism to augment a pragmatic "batteries included" strategy, but I
don't know what it is yet. In short, I'm not really arguing with
you, I just think we need your plan + some extra secret sauce to
really achieve nirvana. Anyone have any suggestions?
- Jordan
More information about the macports-dev
mailing list