On Jun 4, 2015, at 7:32 PM, Ryan Schmidt <[email protected]> wrote:

> I agree setup procs are not the best.

I also don't like that the semantics of the arguments are not obvious. We might 
know from experience what the different components of

    github.setup foo bar 1.0 foo-

mean, but it doesn't lend itself to being understood. And then each portgroup 
with a setup proc uses different arguments.

> But how would you implement the github portgroup differently to avoid it?
> 
> I think portgroups that don't do anything by default are best, as this makes 
> it easier for portgroups to be combined or enabled only in subports for 
> example; there must be some command or option that triggers the portgroup to 
> do its thing. For example in the python 1.0 portgroup, setting 
> python.versions is the trigger, and in the php 1.1 portgroup, setting 
> php.branches is.

Agreed, although I think it's fine for portgroups to set defaults for certain 
metadata options, like homepage, master_sites, livecheck.type, etc., because 
ports can easily override them.

Certain other behaviors are not easily undone (e.g., creating new subports, 
pre/post-phase scripts, variants), so they should definitely require a trigger.

> So what would be the trigger for a hypothetical new github portgroup, if not 
> github.setup? . . . After a bit of consideration, perhaps setting 
> github.author would make sense.

That sounds reasonable. The portgroup would need some logic to make sure that 
github.project and github.version are also set, but that's not without 
precedent.

vq
_______________________________________________
macports-dev mailing list
[email protected]
https://lists.macosforge.org/mailman/listinfo/macports-dev

Reply via email to