[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