Re: [Python-Dev] Buildbot questions

2006-01-11 Thread Brian Warner
  Ah, but that would require changes to the slaves, right? I would
  prefer a solution that avoids that.
 
 I don't think so. In my little test setup I didn't have to make any
 change to the slave.

The update and clobber mode parameters are implemented on the slave side.
Trent's patch changes which mode setting is used on the master side before
anything is sent to the slaves, so the slaves don't have to know anything
about it.

In general there is as little slave-side code as possible, to reduce the need
to upgrade or change the code on that side. The VC checkout/update operations
are an exception, since they may do several operations in a row (which would
mean a lot more latency to do them without support from code on the slave
side), and because I'm lazy and prefer to implement the algorithms in Python
instead of in Bourne shell :).

 -Brian

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Buildbot questions

2006-01-06 Thread Anthony Baxter
On Friday 06 January 2006 18:39, Martin v. Löwis wrote:
 I would like to do this in buildbot, but I'm not sure how to
 (i.e. wipe the build occasionally, but not every time).

 For example, I could imagine completely cleaning the build
 directory every time the build number % 10 == 0. Still, what the
 precise buildbot incantation would be, I don't know.

At least with the way Twisted is set up, the buildbot also sits in an 
IRC channel and sends updates there. It can also be controlled from 
there. Is this worth doing? A 'force clean build' command could be 
added...

Anthony
-- 
Anthony Baxter [EMAIL PROTECTED]
It's never too late to have a happy childhood.
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Buildbot questions

2006-01-06 Thread Trent Mick
[Martin v. Loewis wrote]
 I would like to do this in buildbot, but I'm not sure how to
 (i.e. wipe the build occasionally, but not every time).
 
 For example, I could imagine completely cleaning the build directory
 every time the build number % 10 == 0. Still, what the precise
 buildbot incantation would be, I don't know.

(Still learning my buildbot mojo.) One idea would be to do what
Mozilla's Tinderbox does: they have one set of builds that are
incremental and one set that are full. Actually looking around on
tinderbox.mozilla.org I could only find incremental builds so I'm not
sure what they are doing.

To wipe out the build occassionally you could (presumably) add a
starting step to the Python 'builder' (in the build master.cfg) to 
rm -rf $builddir
every, say, Sunday night.


Trent

-- 
Trent Mick
[EMAIL PROTECTED]
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Buildbot questions

2006-01-06 Thread Martin v. Löwis
Trent Mick wrote:
 (Still learning my buildbot mojo.) One idea would be to do what
 Mozilla's Tinderbox does: they have one set of builds that are
 incremental and one set that are full. Actually looking around on
 tinderbox.mozilla.org I could only find incremental builds so I'm not
 sure what they are doing.

I know how to set up full vs. incremental *builders*; they would
appear in different lanes in the Waterfall, and they would operate
on different build directories. I don't think I want additional
lanes to the Waterfall.

 To wipe out the build occassionally you could (presumably) add a
 starting step to the Python 'builder' (in the build master.cfg) to 
 rm -rf $builddir
 every, say, Sunday night.

Sure, that would be the idea. How to formulate it?

Regards,
Martin
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Buildbot questions

2006-01-06 Thread Martin v. Löwis
Anthony Baxter wrote:
 At least with the way Twisted is set up, the buildbot also sits in an 
 IRC channel and sends updates there. It can also be controlled from 
 there. Is this worth doing? A 'force clean build' command could be 
 added...

The problem with irc-enabling (or web-enabling) such things is that
there is a potential for abuse. Of course, in this case, we could wait
for the abuse to happen.

Regards,
Martin
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Buildbot questions

2006-01-06 Thread Trent Mick
  To wipe out the build occassionally you could (presumably) add a
  starting step to the Python 'builder' (in the build master.cfg) to 
  rm -rf $builddir
  every, say, Sunday night.
 
 Sure, that would be the idea. How to formulate it?

I think I'm part of the way there with the following. I've subclassed
the SVN source build step to add support for new source mode:
update_and_clobber_occassionally. Basically it (hackily) changes the
source type btwn update, which we usually want, and clobber, which
we sometimes want.

The current problem with this is that I don't know if the build step
objects have access to a local data store -- so it could, say, count how
many builds have been done to know to clobber every tenth one. The
current code just chooses to clobber for any build on Sunday. Not a very
satisfying solution.

Brian,
Is there a way for build steps to maintain some state?


 clipped from the build master's master.cfg -
...
class SVNEx(step.SVN):
A SVN Source build step that adds the ability for the Source
mode to be a combination of update and clobber. This is useful if
your general just want to update the source tree from source code 
control,
but occassionally want to clobber and start fresh.

To use this functionality use mode=update_and_clobber_occassionally.
To control when occassionally is now override the should_clobber
method. The default implementation is currently hardcoded to
every Sunday. (This is a HACK. Perhaps there should be constructor
options to clobber every Nth time or to have cron-like arguments -- see
Nightly in scheduler.py. I don't know if steps have access to a 
local
data store to be able to do this -- e.g. keep a counter.)

Ideally this would be an option of the base Source class in
buildbot/process/step.py.

def __init__(self, **kwargs):
if kwargs.has_key(mode) \
   and kwargs[mode] == update_and_clobber_occassionally:
self.update_and_clobber_occassionally = True
kwargs[mode] = update
else:
self.update_and_clobber_occassionally = False
step.SVN.__init__(self, **kwargs)

def should_clobber(self):
from datetime import date
is_sunday = date.today().weekday() == 6 # it is Sunday
from twisted.python import log
log.msg(should_clobber? %s, (is_sunday and yes or no))
return is_sunday

def startVC(self, *args, **kwargs):
if self.update_and_clobber_occassionally:
if self.should_clobber():
self.args[mode] = clobber
else:
self.args[mode] = update
step.SVN.startVC(self, *args, **kwargs)


python_factory = factory.GNUAutoconf(
s(SVNEx, svnurl=http://svn.python.org/projects/python/trunk;,
  mode=update_and_clobber_occassionally),
test=[make, test],  # use `make testall`?
)

# Then use python_factory as something like so:
#c['builders'] = [
#{'name': linux-x86,
#  'slavename': ...,
#  'builddir': python,
#  'factory': python_factory,
#  },
#...
#]
 clipped from the build master's master.cfg -



Cheers,
Trent

-- 
Trent Mick
[EMAIL PROTECTED]
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Buildbot questions

2006-01-06 Thread Martin v. Löwis
Trent Mick wrote:
 I think I'm part of the way there with the following. I've subclassed
 the SVN source build step to add support for new source mode:
 update_and_clobber_occassionally. Basically it (hackily) changes the
 source type btwn update, which we usually want, and clobber, which
 we sometimes want.

Ah, but that would require changes to the slaves, right? I would
prefer a solution that avoids that.

Regards,
Martin
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Buildbot questions

2006-01-06 Thread Trent Mick
[Martin v. Loewis wrote]
 Trent Mick wrote:
  I think I'm part of the way there with the following. I've subclassed
  the SVN source build step to add support for new source mode:
  update_and_clobber_occassionally. Basically it (hackily) changes the
  source type btwn update, which we usually want, and clobber, which
  we sometimes want.
 
 Ah, but that would require changes to the slaves, right? I would
 prefer a solution that avoids that.

I don't think so. In my little test setup I didn't have to make any
change to the slave.

Trent

-- 
Trent Mick
[EMAIL PROTECTED]
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Buildbot questions

2006-01-06 Thread Anthony Baxter
On Saturday 07 January 2006 10:01, Martin v. Löwis wrote:
 The problem with irc-enabling (or web-enabling) such things is that
 there is a potential for abuse. Of course, in this case, we could
 wait for the abuse to happen.

That would be my vote. Worst comes to worst, we lock it down to a list 
of known users. 

Anthony

-- 
Anthony Baxter [EMAIL PROTECTED]
It's never too late to have a happy childhood.
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] Buildbot questions

2006-01-05 Thread Morel Xavier
I currently have a (quite weak) computer that mostly sits idle (shares 
the web connection), Tbird 750; 640Mb RAM; Windows Server 2003 Standard 
Edition.

Since the computer sits there doing nothing, I could probably put a 
buildbot on it if needed (since the python-dev thread states that many 
windows flavour would be appreciable and that Win2003 may not be 
extremely common), but i'd like to know how often it'll try to build, 
and how long the build itself may take on such a platform.

Morel Xavier
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Buildbot questions

2006-01-05 Thread skip
Morel but i'd like to know how often it'll try to build, and how long
Morel the build itself may take on such a platform.

It should build every time there's a checkin on trunk or the 2.4 branch.  As
for performance, take a look at

http://www.python.org/dev/buildbot/

to see how long some of the other build bots take and extrapolate from that.

Skip

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Buildbot questions

2006-01-05 Thread Anthony Baxter
FWIW, I have an older box running Ubuntu 05.10 that spends most of 
it's days pining for stuff to do (at the moment, it does DHCP and DNS 
for the house. Yes, I know I have too many damn computers here). I 
can set up a buildbot on it easily enough. It's something like a 
600MHz P3 or something. Is it going to be useful to have this in the 
mix? 

Heck, there's a pile of 500MHz P3s sitting here that I could drop a 
random free unix onto if someone wants to nominate something that's
 
a) useful
b) not a total pain in the clacker to install. 

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Buildbot questions

2006-01-05 Thread Tim Peters
[Morel Xavier]
 I currently have a (quite weak) computer that mostly sits idle (shares
 the web connection), Tbird 750; 640Mb RAM; Windows Server 2003 Standard
 Edition.

 Since the computer sits there doing nothing, I could probably put a
 buildbot on it if needed (since the python-dev thread states that many
 windows flavour would be appreciable and that Win2003 may not be
 extremely common), but i'd like to know how often it'll try to build,
 and how long the build itself may take on such a platform.

A problem for Windows buildbot slaves is that they need an appropriate
compiler.  Does this machine have MS VC 7.1 installed?  If not, it
can't compile the code.  The Windows Python would also like to build
several other packages (like bz2 and Tcl/Tk).

An update style of slave does an svn update rather than a full
checkout, and that usually goes very fast after the first time. 
Likewise compiling if binaries are left behind across runs.

For the rest, open a DOS box on this machine, cd to root of a Python
2.4.2 installation, and time

python Lib\test\regrtest.py -uall

That's about how long it will take on that machine to run all the
tests from the current trunk too.  Really thorough tests take 8x as
long (with and without purging .pyc/.pyo files first, with and without
-O, and under release and debug builds: 2*2*2 = 8).
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Buildbot questions

2006-01-05 Thread John J Lee
On Thu, 5 Jan 2006, Tim Peters wrote:
[...]
 A problem for Windows buildbot slaves is that they need an appropriate
 compiler.  Does this machine have MS VC 7.1 installed?  If not, it
 can't compile the code.  The Windows Python would also like to build
 several other packages (like bz2 and Tcl/Tk).

Might a buildbot running this setup of David Munman's (free MS compiler +
NAnt interpreting the MS project file) be useful?

http://groups.google.co.uk/group/comp.lang.python/browse_frm/thread/226584dd47047bb6/1e33ad19197bee20


(I'm not offering a buildbot myself, just pointing out the possibility of
using this tool)

There always the chance it gets something wrong or falls over while trying
to interpret the project file, of course.  That in itself would be
beneficial, though, if there's a committer willing to fix it when it
breaks -- I currently have access to MS compilers, but I remember many
happy :-/ hours as a graduate student trying to compile Fortran and C
extensions on win32 with free compilers.


 An update style of slave does an svn update rather than a full
 checkout, and that usually goes very fast after the first time. 
 Likewise compiling if binaries are left behind across runs.
[...]

Much though I like SVN, it seems its working copy management still leaves
a little to be desired:  Even quite recently (fairly sure it was client
version 1.2.*, on Win XP) and with read-only checkouts used only for
builds, I've still seen it end up in an incorrect state.  I suspect 'svn
switch' or 'svn up -r x' was the culprit, though, so perhaps it's not
a problem if exactly 'svn up' is the only svn command ever executed on the
checkout.  Still, perhaps it's wise to wipe the checkout every so often?


John
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Buildbot questions

2006-01-05 Thread Martin v. Löwis
Anthony Baxter wrote:
 FWIW, I have an older box running Ubuntu 05.10 that spends most of 
 it's days pining for stuff to do (at the moment, it does DHCP and DNS 
 for the house. Yes, I know I have too many damn computers here). I 
 can set up a buildbot on it easily enough. It's something like a 
 600MHz P3 or something. Is it going to be useful to have this in the 
 mix? 

With the gentoo installation, I think we have enough linux for the
moment. Somebody noticed that the Waterfall view of buildbot quickly
becomes unreadable if there are too many builds.

 Heck, there's a pile of 500MHz P3s sitting here that I could drop a 
 random free unix onto if someone wants to nominate something that's
  
 a) useful
 b) not a total pain in the clacker to install. 

For a), I think one of the BSDs might be useful. Whether they qualify
for b), I don't know.

Regards,
Martin
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Buildbot questions

2006-01-05 Thread Martin v. Löwis
John J Lee wrote:
 Might a buildbot running this setup of David Munman's (free MS compiler +
 NAnt interpreting the MS project file) be useful?

I feel that any contribution here takes quite some time initially, so
somebody making that offer should accept some pain until it really
works self-contained. I would need to know the exact sequence of
commands that are necessary for the build; I assume the autoconf
builder would be useless.

Regards,
Martin
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Buildbot questions

2006-01-05 Thread Anthony Baxter
On Friday 06 January 2006 07:44, Martin v. Löwis wrote:
 With the gentoo installation, I think we have enough linux for
 the moment. Somebody noticed that the Waterfall view of buildbot
 quickly becomes unreadable if there are too many builds.

My only concern is that it's gentoo, not just linux. I know that for a 
couple of my other open source projects I usually don't spend too 
long debugging bizarrely broken apparent bugs, because it ends up 
being some strange build flag or some such on the gentoo box in 
question. On the other hand, this box is unlikely to have been built 
with a selection of gcc flags that Neal just selected randomly from 
the gcc manual wink so it's probably going to be better than that.

  Heck, there's a pile of 500MHz P3s sitting here that I could drop
  a random free unix onto if someone wants to nominate something
  that's
 
  a) useful
  b) not a total pain in the clacker to install.

 For a), I think one of the BSDs might be useful. Whether they
 qualify for b), I don't know.

Anyone else have an opinion on the ease of installation for the 
various BSDs? Last time I tried one (which was several years ago) it 
was Not Very Good. 

Anthony

-- 
Anthony Baxter [EMAIL PROTECTED]
It's never too late to have a happy childhood.
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Buildbot questions

2006-01-05 Thread Bob Ippolito

On Jan 5, 2006, at 1:08 PM, Anthony Baxter wrote:

 On Friday 06 January 2006 07:44, Martin v. Löwis wrote:
 With the gentoo installation, I think we have enough linux for
 the moment. Somebody noticed that the Waterfall view of buildbot
 quickly becomes unreadable if there are too many builds.

 My only concern is that it's gentoo, not just linux. I know that for a
 couple of my other open source projects I usually don't spend too
 long debugging bizarrely broken apparent bugs, because it ends up
 being some strange build flag or some such on the gentoo box in
 question. On the other hand, this box is unlikely to have been built
 with a selection of gcc flags that Neal just selected randomly from
 the gcc manual wink so it's probably going to be better than that.

 Heck, there's a pile of 500MHz P3s sitting here that I could drop
 a random free unix onto if someone wants to nominate something
 that's

 a) useful
 b) not a total pain in the clacker to install.

 For a), I think one of the BSDs might be useful. Whether they
 qualify for b), I don't know.

 Anyone else have an opinion on the ease of installation for the
 various BSDs? Last time I tried one (which was several years ago) it
 was Not Very Good.

FreeBSD and OpenBSD are painless these days, assuming that you're  
comfortable reading text during installation.  No experience with  
NetBSD.

-bob

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Buildbot questions

2006-01-05 Thread John J Lee
On Thu, 5 Jan 2006, John J Lee wrote:
 Might a buildbot running this setup of David Munman's (free MS compiler +
 NAnt interpreting the MS project file) be useful?

s/Munman/Murmann/


John
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Buildbot questions

2006-01-05 Thread Martin v. Löwis
Anthony Baxter wrote:
 My only concern is that it's gentoo, not just linux. I know that for a 
 couple of my other open source projects I usually don't spend too 
 long debugging bizarrely broken apparent bugs, because it ends up 
 being some strange build flag or some such on the gentoo box in 
 question.

For buildbot, failures to build are good (if they are reproducable);
if it succeeds for gentoo, but fails on some other system on which
it ought to work, then adding this system as a build slave would be
useful.

Regards,
Martin

P.S. That's assuming we get in a state where the tests usually
pass, of course.
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Buildbot questions

2006-01-05 Thread Tim Peters
[John J Lee]
 Might a buildbot running this setup of David Munman's (free MS compiler +
 NAnt interpreting the MS project file) be useful?

 http://groups.google.co.uk/group/comp.lang.python/browse_frm/thread/226584dd47047bb6/1e33ad19197bee20

No comment from me about that (don't know anything about it, and don't
have time to learn).

Someone who wants to see a platform exercised needs to volunteer that
platform themself (and realize that every stinkin' little step has to
be so well defined that the people running the buildbot _master_ can
send the exact steps needed to the slave).

 ...
 Much though I like SVN, it seems its working copy management still leaves
 a little to be desired:  Even quite recently (fairly sure it was client
 version 1.2.*, on Win XP) and with read-only checkouts used only for
 builds, I've still seen it end up in an incorrect state.  I suspect 'svn
 switch' or 'svn up -r x' was the culprit, though, so perhaps it's not
 a problem if exactly 'svn up' is the only svn command ever executed on the
 checkout.

I doubt anyone slings more svn projects, branches and tags than Zope
Corp, and I've had no problems with svn on WinXP there except when a
project switches from making copies of externals to getting them via
svn:externals instead -- and then everyone has problems, regardless of
platform.  What I _have_ had problems with is PuTTY, and recently
discovered that all my months-long svn+ssh problems went away after
backing off to the older PuTTY 0.57 (and come back again immediately
upon switching to 0.58).

 Still, perhaps it's wise to wipe the checkout every so often?

I think it is.  And while I haven't seen this under MS VC7.1 yet, a
few times I caught VC 6.0  failing to recompile after a relevant
header file changed.  Certainly from-scratch checkout + build should
be done before a release.
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com