develooper Front page | perl.perl5.porters | Postings from July 2010

smoke-me/* beta

George Greer
July 26, 2010 16:18
smoke-me/* beta
Message ID:
I finally got around to writing a wrapper for Test::Smoke that will look 
for any smoke-me/* branches in the official perl git repository and smoke 
them.  Probably some day Test::Smoke should learn how to do this itself, 
but in the meantime, enjoy the smoke signals.

How it works:

- It might not.  If so I'll fix it. :)

- Winner is the oldest most recent commit on a branch that hasn't been 
smoked. (In other words: who has the oldest branch tip?)

- E-mail is sent to and the e-mail address of the 
most recent committer on the branch, whether pass or fail.  I also get a 
Bcc: for QA purposes.  If the committer doesn't have an e-mail address... 
so sorry, but see below.

- Reports are (will be) available at A. Berry/ (for example), 
using the name of the most recent comitter to each branch.  I considered 
using the branch name but thought this may be easier for bookmarking 
purposes.  Feel free to evangelize.

- I'd like to have some way of specifying a "smoke set", like 
"smoke-me/dual:fast" gets the "fast" configuration set while 
"smoke-me/dual:g++" gets only a "g++" test set or "smoke-me/dual:thorough" 
gets as many tests as possible.  I haven't actually implemented that 
though.  Currently my smokes will get whatever I'm using for blead on my 
Linux smoker at the time (~18 hour cycle).

- Only one 'smoke-me' branch will run at a time.  There is no delay 
between smokes when it is behind but it will sleep for one hour if it has 
nothing yet to do.

- If my desktop's wireless decides to take a nap and my 5-minute cron job 
doesn't kick it back awake fast enough, the smoke-me script will probably 
die from a no-DNS error. I'll restart it whenever I'm 
awake/home/paying-attention in that case.

- Currently, up-to-date is determined by comparing git's remote branch 
head versus my smoker's git repository local tracking branch head. 
Downside is that it has to advance the local head before it can do the 
smoke so dying in the middle may prevent a smoke.  I'll try to whack the 
local branch if I notice this happen.

- My smoke-me script does "git remote prune" before every cycle so if you 
change your mind you may be able to remove the branch before it gets 

I'll release the script if there is interest, after I make it use 
Test::Smoke's config hash rather than having a bunch of hard-coded 'my' 
variables at the top.

George Greer Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About