← Back to team overview

bzr-windows team mailing list archive

Re: Better Windows installer(s) - volunteers needed

 

Ian Clatworthy wrote:
> Assuming everyone who wanted to voice an opinion on what installers are
> required has done so, the time has come IMO for some follow-up action.
> Here are the next steps I'd like to see happen:
> 
> 1. Someone volunteers to summarise the consensus and list any
>    outstanding issues to be decided or further investigated.
> 

 * Continue with Inno Setup for installer
   * Explore demand for MSI installer
 * Make plugins selectable subcomponents of the installer
   * Hierarchical component trees seem possible according to help
 * Don't install TBZR by default
 * Consider bundling
   * bzr-explorer
   * bzr-xmloutput
 * Explore per-user install option as well as default per-system
 * Stick with 32-bit for now (32-bit works well on win64)
   * Except for TBZR shell extension (64-bit version gets bundled in
current installer if I'm reading the ISS script right)
 * Continue to offer exe, and Python installers
   * Python installers are smaller (6MB vs 14MB) and required for
recommended IIS smart webserver config
   * Python installer is probably best "server and CLI nut" installer
 * Examine impact of deflating library.zip instead of just using store
   * Shrinks from 16MB to around 6MB - effect on installer size?
   * Slower or faster startup?
 * Almost certainly also worth enabling solid compression option in Inno
Setup script (off by default)
 * Avoid cygwin (it is rather large and slightly clunky)

Documentation

 * CHM is still supported up to Vista, despite it's problems
   * CHM is essentially a website-in-a-box, only it's not as tightly
sandboxed as the browser, hence the security risks
   * The obsolete format is WinHelp (*.HLP), which is RTF based and has
no reader on Vista
   * CHM is being deprecated in favour of MAML on Vista
   * Not sure what MAML support on pre-Vista is!
   * Two-Stage view pattern would be best - generate required output
from richer sources.
 * Help 2 is only really used for MSDN documentation and Office 2007
   * Needs Document Explorer to read it and that's usually installed
with MSDN (1.9GB download)
   * The Office 2007 help reader won't read other help - presume this
means it only reads signed help files to mitigate the security risks.

 * Easiest is PDF of the user docs and reference
 * CHM would be a more functional option properly paginated and indexed.
   * Take as a benchmark the excellent TSVN help module.

> 2. We select the installer technology. (InnoSetup seems a popular choice
>    though I'm not sure if it can build msi-style installers or just
>    stand-alone exe ones.)

Inno Setup cannot build MSI databases and is unlikely to start doing so.

Windows could probably live with MSI only, and maybe a self-extractor or
a straight archive for the unprivileged users. The choice method of
building MSI files would be using WiX. Which is easier than the older
ways, but still fiddly.

Since there's already a working Inno Setup script, the main argument for
building an MSI is to make Windows sysadmins happier. The primary
audience of Bazaar is software developers and they tend to have admin
rights ; they don't necessarily care what their sysadmins think. I'd be
inclined to stick with Inno Setup, certainly until 2a.

> 
> 3. Someone volunteers to build an initial cut.

I've managed to build it before ; the most challenging part on Windows
is building bzr-svn which requires a little dedication to get the build
environment working ; but I'm presuming that many of these problems have
been solved since then, and that the recommended (and the distributed)
builds are using MinGW. Building the core C-extensions is easy enough.

It's not an onerous task ; it doesn't even take very long, once you have
an environment.

I've not tried 64-bit builds - 32-bit apps run just fine under Win64
(better experience than Linux IMHO). The only bit that needs to be 64
bits is the TBZR shell extension, and I think that already gets handled.

> 
> 4. We have a co-ordinated testing effort to validate it on multiple
>    OS versions.

I could provide testing environments on Window 98 (if I can find the
disk!), Windows 2000, Windows XP, and Windows 7, but I'd rather limit
that to running `bzr selftest` and maybe hacking something together to
detect deltas in the list of failing tests. Probably best to limit
testing to XP and Vista / 7 as well.

What I don't have is time to perform extensive or even simple UI
testing. What would be ideal is a VM for each OS running a continuous
integration server that you can just push-and-go on. A VM of Windows XP
isn't too bad, but Windows 7 would have a whopping footprint (install
eats around 15GB) and I'd probably just test it on my desktop. And I'm
not sure what Windows integration servers support Bazaar for version
control.. but it's worth a look. CruiseControl.NET seems to have a
Bazaar plugin in LP, so there's a start.

> 
> 5. Someone volunteers to maintain it.
> 

I'll be on holiday the last two weeks of August ; but my laptop is going
with me and the locations I'll be staying at at least claim they have
internet access. This should actually give me more time, paradoxically.

> We only have a few weeks before 2.0 ships so I think (1) and (2) need to
> be done this week. If you can help, please do so. Volunteering for any
> particular step doesn't imply a commitment to doing the others. It would
> be nice if someone stepped forward and said "I'll do the lot" but it's
> equally fine if multiple people pitch in where the can.
> 
> I'm happy to co-ordinate things, including #4, to keep everything moving.
> 
> Ian C.
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~bzr-windows
> Post to     : bzr-windows@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~bzr-windows
> More help   : https://help.launchpad.net/ListHelp




Follow ups

References