Page MenuHomeFreeBSD

Make it clear that a port's dependencies should not be minimal.
ClosedPublic

Authored by mat on Sep 19 2019, 2:21 PM.

Diff Detail

Repository
rD FreeBSD doc repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

mat created this revision.Sep 19 2019, 2:21 PM
swills accepted this revision.Sep 19 2019, 2:23 PM
swills added a subscriber: swills.

LGTM

This revision is now accepted and ready to land.Sep 19 2019, 2:23 PM
mat updated this revision to Diff 62311.Sep 19 2019, 2:25 PM
  • Expand a bit.
This revision now requires review to proceed.Sep 19 2019, 2:25 PM
bapt accepted this revision.Sep 19 2019, 2:29 PM
This revision is now accepted and ready to land.Sep 19 2019, 2:29 PM
mat updated this revision to Diff 62312.Sep 19 2019, 2:40 PM
  • Rework a bit.
This revision now requires review to proceed.Sep 19 2019, 2:40 PM
rene requested changes to this revision.Sep 19 2019, 2:42 PM
rene added a subscriber: rene.
rene added inline comments.
en_US.ISO8859-1/books/porters-handbook/makefiles/chapter.xml
5473 ↗(On Diff #62311)

"When software" (remove 'a')

5477 ↗(On Diff #62311)

"dependencies" (insert missing 'n')

5479 ↗(On Diff #62311)

Replace "The dependencies .. extra dependencies" by "The goal is not to include every dependency possible."

This revision now requires changes to proceed.Sep 19 2019, 2:42 PM
bdrewery accepted this revision.Sep 19 2019, 4:46 PM
bdrewery added a subscriber: bdrewery.

I like it. But it still comes down to a bikeshed/opinion. Anyway it's a good guidance.

adamw added a subscriber: adamw.Sep 20 2019, 1:00 PM

Ok. So, my concern here is that (a) I don't know what an "extra dependency" looks like, and (b) sometimes the configuration that would benefit the most people is the minimal or maximal set.

Maybe try:

When a port is capable of building with a variety of dependencies, the correct dependency list is the one that provides the most benefit to the most users. The goal should not be the minimum set that lets the port build, nor should it be the set that includes every possible dependency.  Allow the "right" set to change over time as users provide feedback about features they need or features they never use.

Ok. So, my concern here is that (a) I don't know what an "extra dependency" looks like, and (b) sometimes the configuration that would benefit the most people is the minimal or maximal set.
Maybe try:

When a port is capable of building with a variety of dependencies, the correct dependency list is the one that provides the most benefit to the most users. The goal should not be the minimum set that lets the port build, nor should it be the set that includes every possible dependency.  Allow the "right" set to change over time as users provide feedback about features they need or features they never use.

This sounds fine, but what we're really talking about here is dependencies which enable optional features. As an example, a port may have a pulseaudio option which enables it to support pulseaudio output and is of interest to some users, but probably not many, so that might be off by default unless a number of people ask for it. Or a port may support http but not https unless an optional dependency on an ssl support package is enabled. Most users would probably expect to be able to make https requests when they can make http requests, so that would be something that would benefit most users to be on by default. Let's find the right wording and get this committed.

adamw added a comment.EditedSep 24 2019, 10:57 PM

Ah okay. I thought this was separate from OPTIONS.Then maybe:

The right set of OPTIONS is the one that provides the most benefit to the most users. The goal should not necessarily be the minimum that lets the port build, nor should it necessarily be enabling every possible option. The same holds true for ports that are capable of building with a variety of dependencies. Allow the “right” set to change over time as users provide feedback about features they need or features they never use.”

Ah okay. I thought this was separate from OPTIONS.Then maybe:

The right set of OPTIONS is the one that provides the most benefit to the most users. The goal should not necessarily be the minimum that lets the port build, nor should it necessarily be enabling every possible option. The same holds true for ports that are capable of building with a variety of dependencies. Allow the “right” set to change over time as users provide feedback about features they need or features they never use.”

It may be OPTIONS, it may not be. Doesn't really matter. The point is the default packages should most usable for most users, not as minimal as possible or just everything.

This revision was not accepted when it landed; it landed in state Needs Revision.Oct 3 2019, 8:51 PM
This revision was automatically updated to reflect the committed changes.
adamw added a comment.Oct 4 2019, 12:38 AM

The committed version is a little weird. Sometimes the minimal dependency set is the ideal set, so saying it should never be it is misleading. Also, the last sentence isn't a sentence.