/
IDEAS
290 lines (170 loc) · 6.93 KB
/
IDEAS
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
build virtualenv in as command
xmlrpc api + examples
retrieve package name from setup.py for Python packages
clean up client stuff!
tagset documentation
one super-client that can detect setup.py, run tests/communicate results, etc.
---
datastore stuff/archival:
- get all tagsets
- get all updates by tagset
- 'flush tagset'?
everything else can be "within last month"
some sort of history ("8 of last 8 succeeded") + flush history
- keep (configurable) 1 month on display?
---
organize reports with FAILURES at top (unless marked otherwise)
concatenated output, etc? for GitClone?
a conf.d?
client logfile that's communicated back to server @ end.
file upload/download?
integrate TAP?
authentication ^^^ for results submission
separate? authentication for thru-Web configuration
make is_building, request_build flags persistent
crashing client still needs to report, esp with is_building
nose plugin to report? + setup.py test and nose config => users.
test client code!
periodic breakage => tests get rerun ever hour until it works:
masks stochastic errors...
move check code into client.
hierarchical tree of reports, instead of list-of-lists? (think git stuff)
client scripts should be much friendlier about one-script-for-multiple-machines.
a directory of public pony-build master servers URLs built-in...? or
retrievable via XML-RPC from my server? or available via a file? with
short names?
subprocess incremental reporting.
test swarm!! (jacob)
http://ejohn.org/blog/test-swarm-alpha-open/
"top builders" view.
http://www.simile-widgets.org/timeline/ (grig)
pygame inspired stuff (ilume):
- send test results back to server from install runs
- include tests in installed package, of course
at what point does my stupid database model stop scaling? ;)
latest results for main page
Things To Look At (for main page)
auto remove stale builds after a certain amount of time?
allow setting builds that SHOULD ALWAYS BE DISPLAYED, even if out of
date/stale/no results/etc.
quickstart guide
architecture diagram
relative times, or times in viewer timezone, or ...?
importable client/API improvement (pbc)
JSON format (both client output AND server output)
sort on column in various summary views.
database schema should include package name and time submitted.
switch to python3?
look at http://codespeak.net:8099/summary
http://build.chromium.org/buildbot/waterfall/console
test pony build client on python2.3 and 2.2? import for inclusion in software.
refactor BaseCommand => ShellCommand for variable replacement, etc.
maybe have groupcommand?
command to report on versions of installed Python packages
group views/composite views
selenium results repost script?
separate control channel for "generic" Python package building, etc.
post VCS to server as part of tagset, if available; or have server use
it, if it's available. obviates tags like 'experimental' for pygr...
time/date on submissions
package name on submissions
get submissions by machine
raw text display; hierarchy; cool js.
"next record with this tagset", "previous record", "history"
---
http://seanmcgrath.blogspot.com/2009/08/software-application-architecture.html
A software variation on a theme by Antoine de Saint Exupéry:
"A software application architecture is finished when there is nothing left to take out. A software application design is finished when there is nothing left to add."
"opinionated software"
---
static URLs that point to the most recent result for a particular machine type?
Web hooks:
http://code.google.com/p/support/wiki/PostCommitWebHooks
http://github.com/guides/post-receive-hooks
http://bitbucket.org/help/ServiceIntegration
david bolen:
"""
I don't know if it's possible but it would be great if the buildbot
master could send an email to a buildbot maintainer if it thinks a
buildbot is down. There have actually been times in the past when
from the perspective of my buildbot things were just dandy, but the
master showed it as down. Stopping and restarting the buildbot,
forcing it to reconnect, cleaned things up, but I have to monitor the
web status page which is a manual process.
"""
kill children before exit?? persistent process ugliness.
pythoscope foo - integrate pythoscope reporting
also integrate Virtual mem reporting for processes under linux?
--
before release:
- set a better default server url
---
url download/install
pypi/setup.py integration
django
+ need hg
+ virtualenv integration
+ coverage info
+ unittest (junitxml?)
client example & discussion
screencast!!
---
also provide protocol/setuptools ext/setup.py info for pony-build
---
http://twitter.com/jessenoller/status/4892960090 jessenoller I've got
an itch: A Rest-Based, pony-build backed package index.
jessenoller In my "pypackage" app, I want cool little boxes like
github has for "install this" or "get the source" - semi transparent
"pip install foo"
Subject: [Python-Dev] People want CPAN :-) -- ssteiner on python-dev
---
integrate jacob's virtualenv fix.
tests for build steps?
add "stale notify" RSS feed
feed for all builds?
move to a multithreaded web server?
triggered builds/based on commits
generic feeds for specific tagsets, duh
RESTish interface
show how to integrate with buildbot
document pbc expected values
coverage return?
config.rc file for server
rotating file repo with max size limit
put a red flag next to builds that have failed within last 24 hrs
http://chris.prather.org/everybody-wants-some--cpan.html
http://www.rhonabwy.com/wp/2009/11/04/setting-up-a-python-ci-server-with-hudson/
two clients, one lite one heavy?
files visible flag
'latest' magic component, 'latest='tags magic component
'latest files' magic component, also with tags (so, latest egg from win32)
try out http://github.com/stefanv/scikits.image
tagtranslator
directorycopy
Context vs TempDirContext problems
notify next-time-run
fill in unfilled project details from e.g. github webhook notify?
separate upload, etc stuff to WSGI & mount
allow people (auth?) to annotate, post-hoc tag build results -> search
SEARCH
brett:
@ctitusbrown Like the concept of a (cached)"prove it" link for
packages to show they actually run under the OS/version pairs listed
on PyPI.
@ctitusbrown Trust ring is good idea, but might get tricky if PyPI
alts pop up, making proving identity tough. Might need OpenID for
this.
---
a (hierarchical?) list of projects w/config info, e.g.
python/cpython2-trunk - svn, co from here, run these commands
so that you can refer via a nice name and not have to configure stuff
yourself? make it an SHA-signed, downloadable file...? or servered?
make it a SEPARATE, or can-be-included, server from the straight
pony-build server?
gae version of pony-build?
---
"standard" setup: test a package under 23, 24, 25, 26, 27b, 31, etc.?
---
auto-spawn EC2 instance to test from a snapshot?
--
http://www.freesoftwaremagazine.com/columns/keeping_score_test_driven_development_python_pylint_unittest_doctest_and_pyrate