Mercurial > hg > autobot
comparison README.txt @ 210:6606238e2b07
finish first-draft documentation, i think
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Fri, 04 Feb 2011 17:40:45 -0800 |
parents | 98e3594f2928 |
children | ef7d67448344 |
comparison
equal
deleted
inserted
replaced
209:98e3594f2928 | 210:6606238e2b07 |
---|---|
235 ``project`` is the name of the project and ``output``, if specified, | 235 ``project`` is the name of the project and ``output``, if specified, |
236 is the path of the file to create. If output is not specified, it | 236 is the path of the file to create. If output is not specified, it |
237 will find its way to a directory named for the project under | 237 will find its way to a directory named for the project under |
238 ``autobot.projects``. | 238 ``autobot.projects``. |
239 | 239 |
240 Several factories (``BuildFactory`` descendents) are in | |
241 ``autobot.process`` to make building a new project easier: | |
242 | |
243 * ``SourceFactory``: as described above, this processes the sources | |
244 and gives a method (``checkout()``) for downloading them. | |
245 ``master.cfg`` looks in each factory and gleems its needed | |
246 repository from its ``sources`` attribute (if any) in the internal | |
247 storage mechanism of ``SourceFactory`` and sets up schedulers | |
248 accordingly. | |
249 | |
250 * ``VirtualenvFactory``: inherits from ``SourceFactory``. creates a | |
251 python virtualenv and provides build properties ``%(virtualenv)s``, | |
252 ``%(python)s``, and ``%(scripts)s`` (location of ``bin`` on unix or | |
253 ``Scripts`` on windows with respect to the virtualenv. It also has | |
254 a ``findScript()`` method which accepts the unix-style script name | |
255 (no extension) and returns the path to the script on the platform. | |
256 | |
257 * ``PythonSourceFactory``: inherits from ``VirtualenvFactory``. It | |
258 treats *all* (for now, can be changed) sources as sources of python | |
259 packages. In addition to checking them out in | |
260 ``%(virtualenv)s/src``, it will also install them (using | |
261 ``%(python)s setup.py install``) | |
262 | |
263 * ``FirefoxDownloaderFactory``: downloads and unpacks a Firefox | |
264 bundle, using | |
265 `GetLatestTinderbox <http://hg.mozilla.org/automation/getlatest-tinderbox>`_ . | |
266 It also provides three properties: ``%(firefox_url)s``, | |
267 ``%(firefox_bundle)s``, and ``%(firefox)s`` -- the last, and most | |
268 interesting, being the absolute path to the Firefox executable. You | |
269 (currently) *must* pass a ``platform`` argument with | |
270 ``platform['os']`` set to "linux", "win", or "mac" in order for | |
271 ``FirefoxDownloaderFactory`` to figure out what to do with the thing | |
272 that it downloads (though see TODO, in the future it should/could | |
273 use MozInfo or guess the OS from the bundle extension...maybe). | |
274 Currently, mac is *NOT* supported, though its on my list of things | |
275 to do (I'd love advice/help!). | |
276 | |
277 See the ``autobot.process.factory`` file for more details. These | |
278 classes are intended as mix-ins (not my favorite pattern, but it seems | |
279 to basically be what buildbot wants you to do). More work needs to be | |
280 done to provide for the breadth of use-cases, but what exists now is | |
281 considered a "good start" versus a "final form". More factories may | |
282 be added per necessity. | |
283 | |
240 | 284 |
241 Is your autobot being feisty? | 285 Is your autobot being feisty? |
242 ----------------------------- | 286 ----------------------------- |
243 | 287 |
244 Let me know! I'd like to make autobot a solution that works for all | 288 Let me know! I'd like to make autobot a solution that works for all |
250 TODO | 294 TODO |
251 ---- | 295 ---- |
252 | 296 |
253 No software of any size is ever finished. Here are a few things I | 297 No software of any size is ever finished. Here are a few things I |
254 would like to add: | 298 would like to add: |
299 | |
300 * get FirefoxDownloaderFactory working on Mac with .dmg files! | |
255 | 301 |
256 * singular checkout of repos on slaves: the slaves should have a | 302 * singular checkout of repos on slaves: the slaves should have a |
257 singular master repo that is checked out once for each repo URL, | 303 singular master repo that is checked out once for each repo URL, |
258 branch pair. It is then updated as the slaves need and (e.g.) | 304 branch pair. It is then updated as the slaves need and (e.g.) |
259 cloned from there. This should effectively minimize fetch time. | 305 cloned from there. This should effectively minimize fetch time. |