[darcs-users] let's try to keep darcs build system logic out of buildbot

zooko zooko at zooko.com
Fri Oct 24 18:19:48 UTC 2008


On Oct 24, 2008, at 12:11 PM, zooko wrote:

> It would be nice if the darcs makefile (or cabal system, or  
> franchise system, or whatever) had a command called "darcs binary- 
> dist" which would copy the darcs executable, the docs, etc. into a  
> directory, tar (on unix) or zip (on Windows) that directory, and  
> then name the resulting tar/zip file with the current version  
> number.  Wouldn't that be cool?  That's what "./setup.py bdist"  
> does on Python, and since cabal seems to be somewhat similar to the  
> Python packaging system, hopefully cabal or a future version of  
> cabal will provide such a feature.

Hm..  This reminds me of a general principle: the buildbot config  
scripts are not a great place for functionality that developers want  
to share with each other.  For example, suppose someone wants to know  
how to make a "binary distribution" of darcs which has a version  
number and the docs included?  If that is done by code in the  
buildbot config scripts, this person is likely to not even know that  
the code exists, and if they do know that it exists, it will be hard  
for them to acquire it, read it, edit it, and make patches to share  
with others.

GNUmakefile in the darcs repo is a reasonable place to put such  
functionality so that everyone will find it sitting there and know  
how to edit it, submit patches to it, etc.

Shell scripts in the darcs repo, e.g. the test scripts, are a  
reasonable place.

Maybe Haskell code in the darcs repo would be even better, I don't  
know.  It would certainly be more portable to Windows than either  
GNUmake or Bourne shell.

Maybe even the functionality of "create a binary distribution of this  
package so that end users can download it and install it and run it  
on their operating system" would be best not in the darcs repo at  
all, but mostly in some external tool such as cabal.

So anyway, I think my ideal buildbot config script just says  
something like "darcs build system: build darcs!" and then "darcs  
build system: run the tests!" and then "darcs build system: run the  
benchmarks!" and then "darcs build system: create the binary  
distribution!", and then "scp dist/* $SERVER".

That way, people who want to execute or edit those bits of  
functionality can do so without learning about buildbot config.

Regards,

Zooko


More information about the darcs-users mailing list