[Buildbot-commits] [Buildbot] #971: Build a windows installer

Buildbot nobody at buildbot.net
Mon Jul 25 20:09:57 UTC 2011


#971: Build a windows installer
------------------------+-----------------------
Reporter:  dustin       |       Owner:  fatman2
    Type:  enhancement  |      Status:  accepted
Priority:  major        |   Milestone:  0.8.+
 Version:               |  Resolution:
Keywords:  windows      |
------------------------+-----------------------

Comment (by jollyroger):

 From today's conversation with Dustin on IRC:

  * Installer should install buildbot and its dependencies. Creating users,
 registering services and other similar operations are better performed
 with tools installed together with buildbot or by hand (untill such tools
 appear in the buildbot).
  * Dependencies are better installed by downloading and running
 correspondent installers rather than bundling into the installer itself.
 To achieve this, buildbot.net will host an INI file which contains
 download URLs for all needed dependencies for every supported platform.
 (Optionally) The downloads directory may be preserved after installation
 for future use.
  * Installer should be able to install buildbot for Python 2.x branch >=
 2.4 version (e.g. 2.4-2.7).

 I propose the following installer workflow:
  1. Detect available Python versions and buildbot's dependencies. List all
 possible Python versions and buildbot dependencies(listed as subsections
 to respective Python section). Note status of the dependencies for every
 Python section (installed/not installed). User selects Python versions
 where buildbot will be installed and goes to the next installation screen.
  2. The next step should be downloading dependencies and installing them.
 Installer downloads files and runs installations. If all dependencies are
 available, the step is skipped. If any of the dependencies' setup exited
 with failure, the users is asked wether to retry. After all installations
 finished successfully, we check again status of the dependencies(this is
 because some installations would allow to install Python packages to the
 several Python environments in one run) and notify user if those are not
 equal to what user requested. Here user may ask to install the forgotten
 dependencies or to drop buildbot installation for current Python section
 at all.
  3. Installing buildbot itself. This includes copying files and generating
 precompiled *.pyc files.
  4. Creating links and menu groups. Currently didn't go far into details.

 Currently I work on functions that will detect installed dependencies.
 These are needed anyway.

 Another question to discuss is the uninstaller. It is surely will be
 written, but I have doubts about where it should be located. Since we
 could install buildbot into several places at once, the uninstaller should
 have some common place or else we should generate uninstaller for every
 Python environment. The uninstaller's behavior is an open question though.
 Should it remove all installed files from all environments at once or just
 remove buildbot code from the corresponding Python environment? Ideas are
 welcome.

-- 
Ticket URL: <http://trac.buildbot.net/ticket/971#comment:23>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation


More information about the Commits mailing list