Ticket #14796 (pike): please commit

Jordan K. Hubbard jkh at apple.com
Mon Mar 31 21:46:17 PDT 2008


On Mar 31, 2008, at 7:32 PM, Guido Soranzio wrote:

> There is no coherency in how the dependencies are expressed in  
> MacPorts at the moment: some ports lists all the dependencies  
> recursively while other ones limit to list only their direct  
> dependencies, as garnome and jhbuild do the right way.
>
> This is a mess. If we had some simple tools like a buildbot or some  
> "bulk" scripts like NetBSD's pkgsrc, the committers could  
> automatically upload a report listing the packages that they already  
> succeeded in building and the broken ones that they couldn't upload  
> into their open repository.

Well, let's also be careful not to conflate multiple, desirable goals  
here - that only increases the size of the task and the attendant risk  
of seeing nothing happen.   History suggests that people tend to run  
away from large problems in this project. :-)

First goal:
Make it possible to batch build the entire ports collection, port by  
port, on a carefully configured machine, spitting out consistent  
(machine-parseable) diagnostics along the way.

Metrics for success:
Someone with a comparatively beefy XServe and attached RAID system is  
able to build the entire ports collection from top to bottom and  
deliver an initial matrix report of what ports failed and why.

Second goal:
Do a "lessons learned" assessment of the first goal and use it to  
polish the batch build infrastructure to the point where it can be  
moved to a more official buildbot machine.

Metrics for success:
Buildbot is up and running, with one or more automated web status  
pages providing concise summaries of overall "port collection health"  
as well as individual results for each port, similar in scope to http://portsmon.freebsd.org 
  and http://pointyhat.freebsd.org but hopefully more concise.

Third goal:
Extend the buildbot slightly to generate full packages (of some  
variety) as a side-effect of the now already scheduled runs.  Add some  
automation to scrape the resulting packages into some globally  
accessible location and extend the port machinery to make it possible  
to satisfy dependencies via package as well as via port install.

Metrics for success:
MacPorts now boasts a packages collection, similar in size and scope  
to that of other projects, which can also be used transparently by  
both users and developers.  The "port install" target no longer  
actually installs bits on the target system, but rather becomes the  
internal equivalent of  "port destroot foo; port package foo;  package- 
install foo"
A suitable command-and-control GUI should also exist by this point  
which provides a convenient interface to the packages collection.

So, here's the deal.  If you'd like to tackle the first goal, I can be  
the guy with the XServe + RAID to run the results on until the metrics  
for success have been achieved. :-)

- Jordan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-dev/attachments/20080331/65c29456/attachment.html


More information about the macports-dev mailing list