← Back to team overview

bzr-windows team mailing list archive

[RFI] Windows packaging/installers

 

Hi and welcome to the Bazaar Windows mailing list!

To get the ball rolling, I'd like to hear everyone's thoughts on how
Bazaar ought to be packaged on Windows. I think we should start by
thinking about an ideal outcome. We can worry about reality - installer
size, toolset + compilers, time remaining until 2.0 ships - after we
have some agreement about what we're aiming for.

Here are some "degrees of freedom" to consider:

* OS version: XP vs Vista vs 7 vs 2003, etc.
* 32 vs 64 bit
* multiple languages
* different audiences: gui vs command line as preferred interface
* bundled documentation format: Windows Help vs HTML vs PDF
* admin rights: some users will have them and others may not
* bundled python vs not
* cygwin vs standard shell

Also, what do we bundle vs install separately:

* plugins?
* GUI apps: TortoiseBzr, Explorer or both?
* 3rd-party tools? (e.g. for ssh, 3-way GUI merging, etc.)

Here's *my* initial brain dump. Firstly, some design principles ...

(a) When it comes to installers, "1" is the divine number. Thou may
count to "2" but numbers larger than that are sinful. Yes, some
adventurous folk may require "3" or more but it is best to promote "1",
acknowledge the existence of "2" and tell those looking for "3" to chat
to us behind closed doors.

(b) When 2 installers are offered, the second one should offer a
superset of the first, not require one installer be run, then another,
then another, etc.

Secondly, some suggested bundling ...

(c) The recommended installer ought to have everything necessary for a
great experience included. This bundle might be called something like
"Bazaar Desktop x.y" and might contain ...

 * Bazaar Explorer
 * TortoiseBzr
 * QBzr
 * Qt and PyQt
 * Documentation in Windows Help format. The docs ought to cover the
   core bzr tool + some docs on the GUI tools
 * popular plugins (e.g. bzr-svn)
 * libraries/binaries supporting those plugins
 * core bzr
 * Python
 * any required 3rd-party tools for networking via ssh

This installer needs to be available in many languages. If documentation
has been localised for a given language, we bundle that instead of the
English docs.

(d) For hard-code command line folk and server-only usage, a "core"
installer is offered. This bundle might be called something like "Bazaar
Core x.y" or "Bazaar CLI x.y" and might contain ...

 * core bzr
 * Python
 * any required 3rd-party tools for networking via ssh

It's fair to assume that the people choosing this installer are system
administrators or hackers who know what they're doing. The build-in help
system ought to be sufficient for them. If not, they can always download
the documentation in their preferred format from
http://doc.bazaar-vcs.org/en/. This installer might be available in
multiple languages one day but it's not a requirement.

Thirdly, some thoughts on construction of the above installers ...

(e) The "core/cli" installer ought to be managed as part of the bzr core
project. It should be easy to automatically build and only require
freely available tools to make.

(f) The "desktop" installer could be managed as part of the bzr core but
is arguably better handled as a separate project. It's quite feasible
that we'll ship a "Bazaar Desktop 2.n Release 2" 2-3 months into the 6
month development cycle for Bazaar 2.n+1 because we may want to offer:

* the latest stable core
* upgraded and/or more plugins
* a new version of TortoiseBzr say
* better and/or more localised documentation.

It therefore makes sense IMO to make that installer a separate project
with its own small code base, bugs, translations, etc.

And finally ...

(g) Everything is up for debate. (a)-(f) are just an *example* of the
sort of input I'm hoping others will provide. While I've spent most of
the last 15 years shipping products where Windows was the primary
audience, I use Ubuntu almost exclusively these days. That doesn't
prevent me from having an opinion on Windows-related stuff: it just
isn't necessarily an educated one. ;-)

Ian C.



Follow ups