[darcs-users] let's try to keep darcs build system logic out of buildbot
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
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
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.
More information about the darcs-users