forked from buildbot/buildbot
-
Notifications
You must be signed in to change notification settings - Fork 1
/
ChangeLog
9270 lines (7161 loc) · 379 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2008-07-24 Brian Warner <warner@lothar.com>
* buildbot/__init__.py (version): Releasing buildbot-0.7.8
* docs/buildbot.texinfo: same
2008-07-24 Brian Warner <warner@lothar.com>
* README: update dependencies, tested against twisted-8.1.0
* NEWS: update for 0.7.8 release
* buildbot/steps/shell.py (Test.getText): include summary text
from the parent class (so 'test' or 'running tests' or whatever),
and don't add anything if there weren't any test results.
* buildbot/status/web/build.py (StatusResourceBuild.body): don't
show more than 500 characters of a property value, since the
got_revision property for Darcs checkouts can be 10kB or more.
Also HTML-escape everything, so <> in the value doesn't confuse
the resulting page.
* buildbot/process/buildstep.py (BuildStep.setProperty): provide a
default value for source=, to accomodate custom buildsteps that
don't otherwise provide one
* buildbot/master.py (DebugPerspective.perspective_requestBuild):
fix variable-name collision that broke the debugclient's 'force
build' button
* buildbot/clients/debug.py (DebugWidget.err): print errors
* buildbot/test/test_bonsaipoller.py
(TestBonsaiPoller.testParserWorksAfterInvalidResult): increment
the .lastPoll timestamp between calls to _process_changes,
otherwise the test fails on a machine with low-res time.time()
* setup.py: reduce the setuptools-visible dependency on Twisted to
be >=2.0.0 (rather than >=2.4.0), since we can handle older
Twisteds without problems.
* NEWS: update with recent changes in preparation for the upcoming
release
2008-07-21 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/status/web/waterfall.py (BuildTopBox): show summary
even if there were no test results, patch from Pike
(BuildTopBox): use the right statistic name, 'tests-failed'
instead of just 'failed'
* buildbot/status/tinderbox.py: fix regression, patch from Axel
Hecht
2008-07-23 Brian Warner <warner@lothar.com>
* buildbot/status/web/build.py (StatusResourceBuild.stop): fix
failure due to typo, caught by pyflakes
* buildbot/steps/shell.py (Test.setTestResults): set statistics
with names like "tests-total" instead of just "total".
(Test.getText): same
* buildbot/test/test_steps.py (PerlModuleTest): use
getStatistic (with "tests-total") instead of getProperty, and call
it on the step_status, not the step itself. This pair makes the
PerlModuleTest pass again
* docs/buildbot.texinfo: update node names and menus
* .darcs-boring: resurrect this file after it was accidentally
deleted
2008-07-21 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/steps/shell.py (WarningCountingShellCommand): add
warning count to the 'warnings' statistic
(Test.setTestResults): count stats
(Test.getText): include stats in summary text
(PerlModuleTest): use setTestResults
2008-06-25 Dustin J. Mitchell <dustin@zmanda.com>
* docs/buildbot.texinfo: Patch by Albert Hofkamp to use step
instances universally in the documentation. (#305)
* buildbot/status/builder.py: Upgrading from version 2 to 3
of BuildStatus had an incorrect call to properties.update.
Closes #295.
* buildbot/status/builder.py (BuildStepStatus): introduce
'statistics': counters of things that happen a build that
aren't better expressed as logfiles or properties. Examples
include the number of tests that pass/fail/skip.
(BuildStepStatus.hasStatistic)
(BuildStepStatus.getStatistic): accessor methods
(BuildStepStatus.setStatistic): setter
(BuildStatus.getSummaryStatistic): method to summarize stats,
using a caller-provided sum() function
* buildbot/test/test_status.py (StepStatistics): test it
* buildbot/status/web/waterfall.py (BuildTopBox): use stats instead
of sumStepProperty
2008-06-13 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/status/web/grid.py (GridStatusResource): Sort the
builders in the grid display (#300)
2008-06-01 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/status/web/slaves.py (BuildSlavesResource): short patch
by Ben Hearsum to make the /buildslaves WebStatus? page a little
more useful. It does do things: 1) bolds the 'slave is NOT
connected' line to make it more visible 2) shows whether each
slave is busy (building) or not (#278)
* buildbot/buildslave.py (BuildSlave.updateSlaveStatus): notify
the SlaveStatus monitor each time we start or finish a build
* buildbot/status/builder.py: same
* buildbot/process/base.py: call updateSlaveStatus at start/finish
* buildbot/test/test_slaves.py (SlaveBusyness): test it
2008-05-26 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/steps/shell.py (PerlModuleTest): Patch by Neil Hemingway
<nhemingway@googlemail.com> to add a PerlModuleTest step (#228)
* buildbot/process/factory.py (CPAN): use PerlModuleTest, not Test
* buildbot/status/web/waterfall.py (BuildTopBox): include count of
failed tests in top text, along with 'failed' or 'passed'.
* buildbot/test/test_steps.py (PerlModuleTest): test it
* docs/buildbot.texinfo (PerlModuleTest): docs
2008-05-19 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/changes/dnotify.py: Patch by Gianluca Sforna
<giallu@gmail.com> to remove unnecessary shebangs about which
rpmlint complains. (#282)
* buildbot/clients/base.py: same
* buildbot/clients/debug.py: same
* buildbot/clients/gtkPanes.py: same
* buildbot/dnotify.py: same
* buildbot/test/emit.py: same
* buildbot/test/emitlogs.py: same
* buildbot/test/sleep.py: same
2008-05-17 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/test/test_vc.py: Configure username and email in
case the user running trial does not have git config in their
home directory. (#281)
2008-05-16 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/changes/svnpoller.py: Patch by Neil Hemingway
<neil.hemingway@googlemail.com> that has svnpoller checking
whether the change reported by SVN is a branch deletion. If it is,
a buildbot Change is not created. (#261)
* buildbot/test/test_svnpoller.py: test it
2008-05-15 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/status/words.py (Contact.command_NOTIFY): Patch by Neil
Hemingway <nhemingway@googlemail.com>: allow the IRC daemon to
notify users on build events, either via private messages or
channel messages. (#171)
(IRCContact.command_JOIN, IRCContact.command_LEAVE): new commands
to tell the buildbot to join or leave irc channels.
* buildbot/test/test_status.py (ContactTester): test it
* docs/buildbot.texinfo: docs
2008-05-14 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/steps/shell.py (SetProperty): A buildstep that is
similar to ShellCommand, except that it captures the output of the
command into a property. (#232)
* buildbot/test/test_properties.py (Run.testSetPropertySimple): same
* docs/buildbot.texinfo (SetProperty): same
2008-04-29 Brian Warner <warner@lothar.com>
* buildbot/slave/commands.py (SourceBase.doCopy): use 'cp -RPp'
instead of 'cp -rp': this fixes freebsd-vs-svn-vs-symlinks, and
should work with both POSIX and GNU cp. Thanks to Pete Curry for
the patch. Closes #86.
* buildbot/steps/source.py (Source.__init__): update docstring
* buildbot/scripts/sample.cfg: fix comment, thanks to 'ludovic'
for the catch. Closes #193.
* buildbot/changes/bonsaipoller.py: apply fixes from Ben Hearsum,
closes #216.
* buildbot/test/test_bonsaipoller.py: same
* buildbot/status/mail.py (MailNotifier): add mode="passing",
thanks to 'matisse' for the patch, closes #169.
* buildbot/status/tinderbox.py (TinderboxMailNotifier): add
useChangeTime= argument, from Ben Hearsum, closes #213.
* buildbot/changes/svnpoller.py (SVNPoller.checksvn): fix missing
argument, thanks to 'thatch' for the catch.
* buildbot/status/tinderbox.py (TinderboxMailNotifier): fix scope
of logEncoding, patch by Ben Hearsum. Closes #214.
* docs/buildbot.texinfo (IRC Bot): fix typo, patch by Christian
Theune. Closes #231.
2008-04-28 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/status/web/xmlrpc.py: Change xmlrpc_getStatus to
xmlrpc_getLastBuildResults as Brian suggested (#195)
2008-04-24 Brian Warner <warner@lothar.com>
* setup.py (setup_args): apply patches from zooko: prepare
setup.py for optional setuptoolsification
(entry_points): zooko's other patches: if setuptools is available,
create an executable via 'entry_points', and declare a dependency
upon twisted
* bin/buildbot: apply patch from zooko: use /usr/bin/env in shbang
* README (REQUIREMENTS): we handle twisted-8.0.1 just fine.
2008-04-21 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/process/base.py: Patch by Ben Hearsum
<bhearsum@wittydomain.com>: delay status notification
about build start until _startBuild_2 (after a lock has
been acquired) (#107)
2008-04-20 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/status/web/baseweb.py: Patch by Ben Hearsum
<bhearsum@wittydomain.com>: don't appear to be able to control
builds when you can't (#246)
2008-04-15 Brian Warner <warner@lothar.com>
* buildbot/__init__.py (version): bump to 0.7.7+ while between
releases
* docs/buildbot.texinfo: same
2008-04-15 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/process/properties.py
buildbot/test/test_properties.py docs/buildbot.texinfo:
Add support for shell-style substitutions, e.g.,
%(propname:-replacement)s and %(propname:+replacement)s (#234)
2008-04-14 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/process/properties.py buildbot/status/web/build.py
buildbot/steps/shell.py buildbot/steps/source.py: Display
build properties in the build status page.
* docs/buildbot.texinfo: Add properties to the documentation,
along with a nontrivial reorganization of the scheduler
section of the documentation. (#124)
2008-04-13 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/buildset.py buildbot/clients/debug.py
buildbot/master.py buildbot/process/base.py
buildbot/scheduler.py buildbot/scripts/runner.py
buildbot/scripts/tryclient.py buildbot/status/web/builder.py:
Remove custom properties, which are now largely redundant,
and on which the properties interface was modeled. (#124)
2008-04-13 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/buildset.py buildbot/interfaces.py
buildbot/process/properties.py buildbot/scheduler.py
buildbot/steps/trigger.py buildbot/test/runutils.py
buildbot/test/test_properties.py buildbot/test/test_run.py:
Make the scheduler classes actually provide properties to
the buildsets they submit. Triggerable schedulers also do
a nice job of configurably propagating properties from the
triggering build. (#124)
2008-04-12 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/master.py buildbot/process/base.py
buildbot/process/properties.py buildbot/test/runutils.py
buildbot/test/test_properties.py: Support global properties,
defined with c['properties'] = {} in master.cfg (#124)
2008-04-12 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/buildset.py buildbot/buildslave.py
buildbot/process/base.py buildbot/process/builder.py
buildbot/process/properties.py buildbot/scheduler.py
buildbot/steps/trigger.py buildbot/test/runutils.py
buildbot/test/test_properties.py: Arrange for properties to
come down from schedulers, via BuildStep and BuildRequest
objects. custom_props are still present, in parallel, but
will go eventually. Triggered builds no longer propagate
custom props. (#124)
2008-04-12 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/process/properties.py
buildbot/test/test_properties.py: Change Property.getProperty
to just return the property value, since having getProperty
return different things on different objects is confusing. (#124)
2008-04-12 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/process/base.py buildbot/process/buildstep.py
buildbot/process/properties.py buildbot/status/builder.py
buildbot/steps/python.py buildbot/steps/shell.py
buildbot/steps/source.py buildbot/steps/transfer.py
buildbot/test/test_properties.py buildbot/test/test_steps.py
buildbot/test/test_vc.py: Add and use a Properties class,
refactor the way properties are rendered, and update unit
tests accordingly. (#124)
2008-04-12 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/master.py buildbot/status/builder.py: Remove unused
and undocumented customBuildProperties config. This did not
allow users to specify global properties; rather, it specified
descriptions for properties that were not used anywhere in
the codebase. (#124)
2008-04-11 Dustin J. Mitchell <dustin@zmanda.com>
* docs/buildbot.texinfo: fix typo (thanks to Christian Theune)
2008-04-04 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/clients/debug.py buildbot/master.py
buildbot/process/base.py: Patch by gward to teach
DebugPerspective and debugclient about custom build properties
(#87)
2008-04-03 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/buildset.py buildbot/master.py
buildbot/process/base.py buildbot/scheduler.py
buildbot/scripts/runner.py buildbot/scripts/tryclient.py
buildbot/status/builder.py buildbot/status/web/builder.py
buildbot/steps/shell.py buildbot/steps/trigger.py: Patch
by Paul Gain, Roch Gadson <rochester.gadsdon@bakbone.com>,
and Aaron Maxwell <amax@snaplogic.org> to implement "custom
properties": build properties that can be specified when the
build is initially created, e.g., by a scheduler. (#87)
2008-04-03 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/status/web/base.py: Patch from Aaron Maxwell
<amax@snaplogic.org>. Refactor OneLineMixin.make_line(),
splitting in into two methods: one that gathers all the data
needed for a build (get_line_values), and one that takes that
data, and renders it into an HTML line (make_line). (#145)
2008-04-03 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/slave/commands.py: Patch from Aaron
Maxwell <amax@snaplogic.org>: introduce a method
SVN.getSvnVersionCommand() that returns the shell command used
to determine the svn version. Useful for subclassing. (#140)
2008-04-03 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/buildset.py buildbot/process/base.py
buildbot/scheduler.py buildbot/test/test_properties.py: Patch
by Dossy Shiobara <dossy@panoptic.com>: It is useful to know
the name of the scheduler that initiated a build request,
i.e., to conditionally FileUpload the results of a Nightly
scheduled build. This patch passes the Scheduler along the
BuildRequest chain so that Build can setProperty("scheduler",
self.scheduler.name) in Build.setupStatus(). (#227)
* docs/buildbot.texinfo: docs for same
2008-03-29 Brian Warner <warner@lothar.com>
* buildbot/__init__.py (version): Releasing buildbot-0.7.7
* docs/buildbot.texinfo: same
2008-03-29 Brian Warner <warner@lothar.com>
* NEWS: update with all changes since the last release. I left the
bugs-fixed section somewhat terse, but there's a link to the Trac
page with more details.
* CREDITS: update
* buildbot/status/web/waterfall.py (WaterfallStatusResource):
accept category= arguments in the query-arg portion of the URL.
These behave like the builder= queryargs: if any category=
queryargs are present, we'll only show Builders that fit into one
of the specified categories. Using multiple category= arguments
will show more Builders. Thanks to Jerome Davann (hollowman) for
the idea and the patch. Closes #117.
* docs/buildbot.texinfo (Buildbot Web Resources): document it
* buildbot/changes/svnpoller.py (SVNPoller.create_changes): pass
revision as a string, not an int. This fixes a problem in
MailNotifier, which expects a string. Thanks to Dan Locks for the
patch, and Dustin Mitchell for the test fixups. Closes #208.
* buildbot/steps/source.py (Source.commandComplete): treat
got_revision as a string too.
* buildbot/test/test_svnpoller.py: update test to match
* buildbot/test/test_vc.py: same
2008-03-27 Brian Warner <warner@lothar.com>
* buildbot/scripts/runner.py (doCheckConfig): patch from Ben
Hearsum to implement 'buildbot checkconfig': validate that your
master.cfg is good without actually touching the buildmaster.
Closes #37. Thanks!
* buildbot/scripts/checkconfig.py: same
* docs/buildbot.texinfo (Testing the Config File): document it
2008-03-22 Brian Warner <warner@lothar.com>
* buildbot/test/test_vc.py (Mercurial.serveHTTP): another attempt
to make Mercurial.testCheckoutHTTP not fail on heavily loaded
machines: avoid overlapping poll() calls.
* NEWS: preliminary list of changes for the upcoming release.
Needs editing and explanations.
* buildbot/status/web/base.py (make_stop_form): add a label=
argument so that the button says "Stop Builds" or "Stop Build" as
appropriate. It used to say "Stop Builder", which was wrong.
* buildbot/status/web/baseweb.py (OneLinePerBuild.body): same
(OneBoxPerBuilder.body): same
* buildbot/process/builder.py (Builder): use self.old_building to
track Builds from a previous version of this Builder and are still
running. This makes it possible for IBuilderControl to get at
them, allowing the "Stop Build" button to work after a
Builder-replacing reconfig. Closes #22.
(Builder.consumeTheSoulOfYourPredecessor): grab weakrefs from the
old Builder's self.building attribute, instead of strongrefs,
since there's no good place to explicitly forget about them.
(Builder.getBuild): factor this out of BuilderControl
* buildbot/process/buildstep.py (LogLineObserver.setMaxLineLength):
new method to override the default 16KiB line length. Lines that
are longer than this will cause the rest of the log file to be
ignored. Thanks to Greg Ward for the patch. Closes #201.
* buildbot/test/test_buildstep.py: new tests for log observers
* docs/buildbot.texinfo (Adding LogObservers): document it
* buildbot/slave/commands.py (ShellCommand): record more
information in the 'header' section: how much we write into stdin,
do we close stdin, are we using a PTY. There are lingering
problems with PTYs and with closing stdin (see #198 and #158).
This doesn't fix those problems, but it should provide more
information to developers.
* buildbot/status/client.py: hush pyflakes, log.msg vs log
* buildbot/status/mail.py: same
* buildbot/locks.py (debuglog): hush pyflakes
* buildbot/steps/source.py (SVN.__init__): fix pyflakes: it
doesn't like a variable named 'warnings' that shadows the import
* buildbot/test/test_web.py: fix some pyflakes warnings, caused by
having a variable name shadow a top-level import
* buildbot/test/test_run.py (Disconnect.testBuild2): fix old
cut-and-paste typo that was causing us to run the wrong callback
* Makefile (pyflakes): sort+uniqify, since newer pyflakes isn't
smart enough to do this on its own
* buildbot/test/runutils.py (myGetProcessOutputAndValue): move this
method out from test_vc.py, hush pyflakes complaints
* buildbot/test/test_vc.py (Mercurial.serveHTTP): wait for the 'hg
serve' command to be ready, by polling with twisted.web's
client.getPage . Unfortunately mercurial doesn't flush its stdout
at startup, so we can't just wait for the 'listening at..' line to
be printed. This should fix the sporadic "connection refused" test
failures I've seen on the metabuildbot when the buildslave is
overloaded and 'hg serve' takes a while to start up.
* buildbot/steps/python_twisted.py (TrialTestCaseCounter): modify
regexp to count "Doctest:" lines as well as normal tests. Thanks to
Martin Geisler for the patch. Closes #196.
2008-03-20 Brian Warner <warner@lothar.com>
* buildbot/status/web/waterfall.py (CurrentBox.formatETA): apply
patch from TedMielczarek to display hours/minutes/seconds in the
ETA display. Thanks Ted! Also make 'next build starts in' box use
the same format. Closes #95.
* buildbot/process/buildstep.py (render_properties): more cleanup:
rename 'render' to 'render_properties'.
* buildbot/steps/shell.py: same
(ShellCommand._interpolateProperties): tolerate None in the value,
clean up the isinstance checks, stop using the 'types' module
* buildbot/steps/transfer.py (FileUpload.start): same, other cleanups
* buildbot/steps/shell.py (render): oops, remove redundant
definition that probably crept in during a merge conflict
* buildbot/scheduler.py (Triggerable): cleanup: wrap docstring
* buildbot/steps/trigger.py (Trigger): cleanup: rename schedulers=
to schedulerNames=, make updateSourceStamp=True by default, tolerate
missing got_revision property (i.e. if updateSourceStamp=True but
there was no checkout/update step run), add TODO notes for further
cleanup.
* buildbot/test/test_run.py (Triggers): update to match
* docs/buildbot.texinfo (Build Dependencies): same
* buildbot/slave/commands.py (SVN.doVCFull): merge Dustin's patch:
add --no-auth-cache option to svn invocations to avoid caching
buildbot's credentials. This also helps when users run a
buildslave from their personal account, to keep the buildslave
from clobbering their manually-provided svn password. Closes #188.
(SVN.doVCUpdate): do it for 'svn update' too.
* buildbot/steps/shell.py: merge Greg Ward's patch (via Dustin):
refactor WithProperties handling, allow WithProperties in more
places. Closes #115.
* buildbot/process/buildstep.py: same
* buildbot/steps/transfer.py: same, allow WithProperties in filenames
* buildbot/steps/trigger.py: remove unused imports to hush pyflakes
* docs/buildbot.texinfo (Build Properties): fix up nodes+menus
2008-03-19 Brian Warner <warner@lothar.com>
* buildbot/status/web/xmlrpc.py (XMLRPCServer.xmlrpc_getAllBuilders):
merge Etienne Pierre's patch (via Dustin): add new XMLRPC methods.
(XMLRPCServer.xmlrpc_getStatus): same
(XMLRPCServer.xmlrpc_getLastBuilds): same, returns the last N
completed builds for a given Builder
* buildbot/test/test_config.py (ConfigTest.setUp): merge Dustin's
patch: suppress DeprecationWarnings in our tests of deprecated
features that aren't scheduled for removal quite yet. In the long
run, we'll remove the old features and the tests.
* NEWS: add a deprecation schedule
* buildbot/changes/freshcvsmail.py: remove this file, it was
replaced by mail.FCMaildirSource in the previous release.
* buildbot/test/runutils.py: set usePTY=False everywhere we aren't
explicitly testing =True, to avoid SIGHUP-based failures that I
now see about 10% of the time.
* buildbot/scheduler.py (Triggerable): merge Dustin's patch: add
"Triggerable" Schedulers, to start builds at specific phases of
other builds rather than in response to source code changes or
periodic timers. These phases are marked by "Trigger" steps, which
are configured with a list of Triggerable schedulers that they
should fire. Closes #56.
* buildbot/steps/trigger.py (Trigger): buildstep to match
* buildbot/test/test_run.py (Triggers): test for it
* docs/buildbot.texinfo (Build Dependencies): document it
(Triggering Schedulers): same
2008-03-18 Brian Warner <warner@lothar.com>
* buildbot/interfaces.py (ISourceStamp.getAbsoluteSourceStamp):
merge patch from Dustin to add "absolute source stamps": just like
normal SourceStamp instances except that they have a .revision
attribute copied out of the got_revision property of a build. If
the input SourceStamp says .revision=None (i.e. HEAD), and the
build is done when the tree is at r1234, then the "absolute"
SourceStamp should have .revision=1234 .
* buildbot/sourcestamp.py (SourceStamp.getAbsoluteSourceStamp): same
* buildbot/status/builder.py (BuildStatus.getSourceStamp): add
absolute= argument
* buildbot/test/runutils.py (SetTestFlagStep): test utility class,
adding 'flags' that can be set by specific buildsteps. This makes
it easier to write tests that detect whether certain buildsteps
have been reached or not. Patch by Dustin Mitchell.
* buildbot/test/test_run.py (TestFlag.testTestFlag): test for it.
* buildbot/buildslave.py (BuildSlave.__repr__): protect against
.botmaster being empty, to allow pretty-printing of configuration
files before the twisted reactor starts. Patch from Dustin
Mitchell.
* docs/buildbot.texinfo (Shutdown): make it clear that 'buildbot
reconfig' (which uses SIGHUP) doesn't work on windows. Acknowledge
the occasional failures in reconfig (and suggest 'buildbot
restart' as a fallback). Closes #105.
* buildbot/steps/shell.py (ShellCommand._interpolateProperties):
apply patch from Albert Hofkamp to allow WithProperties in
environment variables and the workdir= argument. Closes #52.
* buildbot/test/test_properties.py (Interpolate.testCustomBuildStep):
remove this test, it was pretty weird and didn't work with the
new _interpolateProperties approach.
* buildbot/test/test_vc.py (VCBase.connectSlave): turn off usePTY
for all slave commands: I'm seeing 'cp' and 'rm' fail with SIGHUP,
probably when we close stdin. This happens on my debian/sid
system, but not on older unixes, so I suspect some change in
behavior in the kernel or glibc or something similar.
2008-03-12 Dustin J. Mitchell <dustin@zmanda.com>
* buildbot/status/web/grid.py: Use "absolute" instead
of "specific" sourcestamps; thanks to Ivan Chelyubeev
<ivan.chelubeev@gmail.com> for providing the patch. (#72)
2008-02-17 Dustin J. Mitchell <dustin@zmanda.com>
Bug #72: the grid display
* buildbot/status/web/grid.py: new 'grid' display to complement waterfall
* buildbot/status/web/baseweb.py: add link to grid
* buildbot/status/web/build.py: add footer, fix redirects
* buildbot/status/web/builder.py: same
* buildbot/status/web/classic.css: grid styles
* buildbot/status/web/index.html: link to grid
* buildbot/status/web/waterfall.py: fix footer
2008-02-05 Brian Warner <warner@lothar.com>
* buildbot/buildslave.py (BuildSlave._missing_timer_fired): add a
To: header to the email message we're composing. Oops. Thanks
to Zandr Milewski for the catch.
* buildbot/test/test_slaves.py (BuildSlave.test_mail_on_missing):
test for it
2007-12-31 Brian Warner <warner@lothar.com>
* buildbot/test/test_transfer.py (Upload.testLotsOfBlocks): remove
the short timeouts, these can cause false test failures on slow
systems, and were only needed while developing the recent patch
(Download.testLotsOfBlocks): same
* buildbot/scripts/reconfig.py (Reconfigurator.run): if we're on
windows, make 'buildbot reconfig' emit a warning message (since
there's no SIGHUP to be had) rather than just hanging. Addresses
#105, but we still need to document this somewhere. Thanks to
Ben Hearsum for the patch.
* buildbot/slave/commands.py (SlaveFileUploadCommand.start):
rewrite the main loop to avoid tail recursion, since Deferreds
don't optimize those out. Without this, at the end of the transfer
we'd hit a stack depth of about two or three frames per block
transferred, and for large transfers this would run into a "stack
depth exceeded" error. Closes #106.
(SlaveFileDownloadCommand.start): same, for downloads.
* buildbot/test/test_transfer.py (Upload.testLotsOfBlocks): test it
(Download.testLotsOfBlocks): same
2007-12-22 Brian Warner <warner@lothar.com>
* buildbot/steps/shell.py (TreeSize): This never worked properly.
Fix it. Also, stash the tree size in a build property named
'tree-size-kb'. Note that this records size in KiB (1024 bytes),
not KB (1000 bytes), because that's what du will give us. This
closes #47.
* docs/buildbot.texinfo (TreeSize): document it
* buildbot/test/test_steps.py (TreeSize.testTreeSize): test it
* buildbot/steps/shell.py (WarningCountingShellCommand): utility
subclass which uses a regular expression to count warning messages
in the output. This also puts warning messages in a new 'warnings'
logfile, sets the 'warnings-count' build property with the total
count, and marks the step results as WARNINGS if there are any
warnings. Thanks to Roch Gadsdon (rochg) for the patch. Closes
#74.
(Compile): derive from WarningCountingShellCommand
(Test): same
* docs/buildbot.texinfo (Compile): document it
* buildbot/test/test_steps.py (Warnings): test it
* buildbot/slave/commands.py (ShellCommand._chunkForSend): don't
send more than 128kB of stdout/stderr/logfile text in a single PB
string, since PB has a hardwired limit of 640kB. This should fix
crashes that occur when the test process generates output very
very quickly. Patch by chops@demiurgestudios.com, thanks! I
haven't been able to reproduce this locally, but the potential bug
is clear. This should close #129.
2007-12-21 Brian Warner <warner@lothar.com>
* buildbot/scripts/startup.py (start): check to see if there's a
buildbot.tac before doing anything else. This improves the error
message when you do 'buildbot start' in the wrong directory.
* buildbot/scripts/logwatcher.py (LogWatcher.start): rewrite to
spawn /usr/bin/tail to follow the target's twistd.log . It turns
out that OS-X file EOF semantics are different, and the naive
read-then-read-again approach I was using doesn't work (the first
EOF we hit is sticky). tail gets it right, so rely upon it instead
of reimplementing the wheel. This should make 'buildbot start'
correctly follow the logfile on OS-X, thus closing #141.
2007-12-14 Brian Warner <warner@lothar.com>
* buildbot/steps/shell.py (ShellCommand.__init__): stash the
RemoteShellCommands args too, so things like 'workdir' and 'env'
and 'timeout' are preserved. This ought to fix #150.
* buildbot/test/test_steps.py (Steps.testClone): test it
2007-12-11 Brian Warner <warner@lothar.com>
* buildbot/scripts/startup.py (launch): use twisted.__version__,
rather than twisted.version, since the latter didn't appear until
Twisted-2.4.0 . This unbreaks 'buildbot start' on older Twisteds.
2007-12-08 Brian Warner <warner@lothar.com>
* docs/buildbot.texinfo (Git): document the fact that we require
Git 1.2.0 or later, and that the one shipped in dapper is too old.
* buildbot/scripts/startup.py (launch): twisted-2.5.0 and later
doesn't need twisted.scripts._twistw.run; instead, it uses
twisted.scripts.twistd.run on all platforms. Closes #53.
2007-11-30 Brian Warner <warner@lothar.com>
* buildbot/status/builder.py (BuilderStatus): small docs patches
from Greg Ward.. thanks!
* buildbot/process/base.py (Build): same
2007-11-29 Brian Warner <warner@lothar.com>
* buildbot/slave/commands.py (Mercurial._maybeFallback): add an
_abandonOnFailure call to the fallback, to skip the 'update' step
if the checkout fails.
(Mercurial._maybeFallback): More fixes: look for error messages
generated by every version of hg from 0.7 to the current 0.9.5,
including development versions as of rev 92991422a847. Also make
sure to return the exit code of non-fallbackable errors so that
other steps can attempt a workaround.
2007-11-28 Brian Warner <warner@lothar.com>
* buildbot/slave/commands.py (Mercurial._maybeFallback): improve
hg fallback so that it works when the client hg is new and the
server hg is old (the error message is different in this case).
2007-11-27 Brian Warner <warner@lothar.com>
* buildbot/test/test_p4poller.py: hush pyflakes warning
* buildbot/slave/commands.py (Mercurial._maybeFallback): when hg
is doing a 'clone' operation, to a remote repository (e.g. over
HTTP), and either the server or the client is hg-0.9.1 or older,
'hg clone' cannot accept a --rev argument: instead, you have to
clone the tip and then update back to the desired revision. Added
code to detect this failure mode and fall back to the clone+update
scheme. Closes #122 and #103.
(ShellCommand.__init__): add a keepStderr= flag to support this
* buildbot/test/test_vc.py (VCBase._do_vctest_clobber_2): add a
test that does a checkout to a specific version, to exercise the
mercurial limitation workaround.
(Mercurial.serveHTTP): add code to test hg checkout over HTTP,
using mercurial's built-in 'hg serve' command. Because of
limitations in hg, this code uses a randomly-selected TCP
port (rather than claiming a free one), so every once in a while
this test is going to fail because of a port-number collision.
* buildbot/test/test_vc.py (GitHelper.capable): skip Git tests if
the version of Git installed is older than 1.2.x . Git 1.1.3
doesn't accept 'git init' (it wants 'git init-db' instead) and the
branch tests fail. I know that Git 1.5.3.6 works. I don't know
what the dividing line is.. if someone can figure it out, please
update this check. Also, if someone can make buildbot's git
support handle older versions, please do that too! Addresses #130.
2007-11-21 Brian Warner <warner@lothar.com>
* lots: improve Git support, AMAZING patch from Haavard
Skinnemoen, complete with unit tests and docs, thanks! Closes #130.
* buildbot/scripts/tryclient.py (GitExtractor): add 'try' support
* buildbot/slave/commands.py (Git): accept branch and revisions,
and use 'git' instead of the 'cogito' wrapper
* buildbot/steps/source.py (Git.__init__): same
* buildbot/test/test_vc.py (BaseHelper.runCommand): offer control
over env=
(BaseHelper.do): same
(BaseHelper.dovc): same
(Git): unit tests for Git support. Wow!
* docs/buildbot.texinfo (Git): docs for Git support. Double Wow!
* contrib/git_buildbot.py: commit-hook script for git
* buildbot/changes/p4poller.py (P4Source._finished): don't let a
failure cause us to stop polling. Thanks to John Backstrand for
the patch. Closes #135.
* buildbot/test/test_p4poller.py (TestP4Poller.testFailedChanges):
change this to match
(TestP4Poller.testFailedDescribe): same
* buildbot/status/web/waterfall.py (WaterfallStatusResource.body):
fix timezone calculation, we were always emitting DST, even in
winter. Thanks to Charles Lepple and John Saxton for the patch.
Closes #137.
* buildbot/test/test_web.py (Waterfall.test_waterfall._check1): same
* lots: a whole batch of patches from Benoit Sigoure, referenced
in ticket #138. Thanks!
* buildbot/master.py (BuildMaster.loadConfig): builder names that
begin with an underscore are now reserved, so prohibit them from
appearing in the config file.
* NEWS: announce this change.
* buildbot/status/web/base.py: add buttons (to one_line_per_build
and one_box_per_builder) to force/stop builds on all Builders at
once.
* buildbot/status/web/baseweb.py: same
(OneBoxPerBuilder.body): add links to the per-Builder page
* buildbot/status/web/builder.py: same
* buildbot/status/web/builder.py (StatusResourceBuilder.body):
factor out force/stop form generation
* buildbot/status/web/base.py: same
* buildbot/status/web/build.py: same
* buildbot/status/web/builder.py (StatusResourceBuilder.force):
simplify some 'if' statements
(StatusResourceBuilder.build_line): add a 'Stop Build' button next
to the 'Force Build' button, so you can start and stop a build
from the same place.
(StatusResourceBuilder.force): redirect back to the waterfall,
rather than the index page
(StatusResourceBuilder.ping): same
* buildbot/status/web/build.py (StatusResourceBuild.stop): same
* buildbot/slave/bot.py (Bot.remote_setBuilderList): don't
consider the 'info' directory as a leftover directory. Patch from
Benoit Sigoure, ticket #138.
(others): remove trailing whitespace
2007-11-01 Brian Warner <warner@lothar.com>
* buildbot/status/web/builder.py (StatusResourceBuilder.build_line):
if there's no current step, don't try to display its description.
Same crash as in #96, this time in the web page. Closes #111.
* buildbot/status/web/base.py (OneLineMixin.make_line): tolerate
results == None (i.e. when the build hasn't finished yet);
previously this code exploded when trying to find a CSS class for
that results value. Patch from Greg Ward. Closes #118.
* buildbot/status/client.py (RemoteBuildStep.remote_getLogs):
IBuildStepStatus.getLogs() returns a list, not a dict. Patch from
Fabrice Crestois. Closes #121.
2007-10-31 Brian Warner <warner@lothar.com>
* buildbot/status/words.py (Contact.emit_status): if there's no
current step, don't try to display its description. This should
fix the crash when asking the irc bot about builds which are
waiting for a build-wide Lock. Closes #96.
* buildbot/status/tinderbox.py (TinderboxMailNotifier): add
'columnName' argument, from a patch by Ben Hearsum. Closes #120.
2007-10-16 Brian Warner <warner@lothar.com>
* buildbot/status/web/slaves.py (BuildSlavesResource.body): fix
timestamp, I was using %M (minutes) where I meant to be using
%b (abbreviated month name). Closes #109.
2007-10-13 Brian Warner <warner@lothar.com>
* README (COPYING): make it clear that buildbot is distributed under
the GPL (version 2)
* COPYING: add a copy of the GPLv2 to the source tree
* MANIFEST.in: .. and to the source distribution too
2007-10-10 Brian Warner <warner@lothar.com>
* buildbot/status/builder.py (Status.getURLForThing): update this
to match new URL layout, I completely forgot about it. Closes #112.
* buildbot/test/test_web.py (GetURL): add unit tests
* buildbot/status/web/build.py (BuildsResource.getChild): fix
silly typo which prevented the Build page from ever offering
control options like 'Stop Build'. Thanks to Aaron Hsieh for the
catch. Closes #114.
* buildbot/test/test_webparts.py (Webparts._do_page_tests): it'd
be nice to test this
* buildbot/__init__.py (version): bump to 0.7.6+ while between
releases
* docs/buildbot.texinfo: same
2007-09-30 Brian Warner <warner@lothar.com>
* buildbot/__init__.py (version): Releasing buildbot-0.7.6
* docs/buildbot.texinfo: same
2007-09-30 Brian Warner <warner@lothar.com>
* NEWS: small updates, remove duplicate items from the 0.7.5 notes
* setup.py: install all test files from buildbot/test/mail/* . Also
update URL to point at buildbot.net
* MANIFEST.in: update with new files
* buildbot/status/web/baseweb.py (WebStatus.setupSite): ugh, yes
auto-create an empty public_html directory, otherwise we get
internal server errors instead of 404s.
* README: reference buildbot.net, remove CVSToys section (does
anyone still use it?)
* buildbot/status/web/baseweb.py (WebStatus): emit a useful log
message when public_html/ is missing (indicating that you should
probably run 'upgrade-master'), and don't auto-create an empty
directory in that case.
* contrib/darcs_buildbot.py: refactor internals a bit, make it
possible to use as an importable module (to make it easier to
write some unit tests for it)
* buildbot/status/web/baseweb.py (Waterfall.__init__): add a
DeprecationWarning for Waterfall, advising users to switch over to
WebStatus instead.
* NEWS: update with user-visible changes since the last release
* buildbot/status/web/waterfall.py
(WaterfallStatusResource.get_reload_time): if the suggest a
reload time of less than 15 seconds, give them 15 seconds instead
of ignoring their request entirely, because that'd be confusing.
* buildbot/steps/source.py (Mercurial.computeSourceRevision): log a
warning if we must invoke the last-change-is-most-recent guess
* buildbot/status/web/baseweb.py (Waterfall.__init__): if an old
Waterfall is running in an upgraded master (which is the usual
case for folks who have followed the instructions to run
'upgrade-master' but who have not yet resolved all the
DeprecationWarnings), prefer the buildbot.css from public_html/
rather than the one passed in on the buildbot= argument.
Otherwise, the resulting pages don't quite use CSS right..
sometimes it works, sometimes it doesn't, and I don't know why.
Sites that are using custom CSS will see the default CSS until
they modify public_html/buildbot.css to include their
customizations.
* docs/buildbot.texinfo (WebStatus): explain robots.txt a bit more
* buildbot/status/web/robots.txt (Disallow): update to cover all
dynamically-generated pages
* buildbot/status/web/base.py (map_branches): when we see 'trunk',
include both 'trunk' and None in the output list, since some VC
systems (SVN, frequently) refer to trunk as 'trunk'.
* buildbot/status/web/waterfall.py (WaterfallStatusResource):
point the 'welcome' link explicitly at index.html, rather than
'.', so that old Waterfall users can reach it and discover all the
new pages.
* buildbot/status/web/base.py (OneLineMixin.make_line): add the
build's text to the end of the line, without a CSS class so it
remains uncolored.
* buildbot/interfaces.py (IStatus.generateFinishedBuilds): add a
'max_search=' argument, to limit the number of builds that are
examined while trying to find ones that match the other criteria.
This helps to limit the work we do, since otherwise we might have
to trawl through all history.
(IBuilderStatus.generateFinishedBuilds): same
* buildbot/status/builder.py (Status.generateFinishedBuilds): same
(BuilderStatus.generateFinishedBuilds): same
* buildbot/status/web/base.py (OneLineMixin.make_line): stringify
our got_revision before checking its length: SVN (at least) still
reports numeric values for this.
* buildbot/status/web/build.py (StatusResourceBuild.body): same
* buildbot/status/web/xmlrpc.py
(XMLRPCServer.xmlrpc_getAllBuildsInInterval): same, also stop
serving a completely fake revision
* buildbot/scripts/runner.py (Maker.check_master_cfg): prepend
basedir to sys.path, to mimic what a real buildmaster would have
access to, since it is common for master.cfg to import helper
classes from .py files in the buildmaster directory, and we want
config-file checking to accomodate this.
* buildbot/status/web/base.py (map_branches): when referring to
branches through WebStatus (i.e. by appending ?branch=FOO query
arguments to the URL), make "trunk" mean trunk, by mapping it to
None before passing it to generateFinishedBuilds() and the like.
* buildbot/status/web/baseweb.py (OneLinePerBuild.body): same
(OneBoxPerBuilder.body): same, also improve display of branches in
the HTML a bit
* buildbot/status/web/waterfall.py (BuildTopBox.getBox): same
(WaterfallStatusResource.buildGrid): same. Note that this filters
Changes as well as Builds.
* docs/buildbot.texinfo (Buildbot Web Resources): remove the
caveat about trunk branches, now that it's fixed
* buildbot/status/web/base.py (OneLineMixin): refactor, move this
from builder.py, use it on the Builder page too
* buildbot/status/web/builder.py (StatusResourceBuilder): same
* buildbot/status/web/baseweb.py (OneLinePerBuild): display branch
names, add some CSS classes