Add a Windows installer for RBTools.

Review Request #6690 — Created Dec. 11, 2014 and submitted

Information

RBTools
master
ff84907...

Reviewers

This introduces the Windows installer that we'll be shipping with
official RBTools releases, starting in 0.7. It's based upon Bruce Cran's
installer work, which makes use of WiX and Portable Python to produce a
standalone RBTools install independent of any system installs of Python.

This change extends Bruce's work to automate the building of the installer
and to isolate the build environment from the system. There's a
build-installer.bat file that handles the installation of Portable Python
(guiding the user through a Minimal installation on the first build),
stripping it, installing RBTools and its dependencies, and building the
WiX installer.

This must run on a Windows install, and does not run automatically when
we perform builds. It must instead be run manually within a suitable
Windows build environment. That environment does not need Python installed
up-front, but does need WiX and MSBuild.exe (part of Visual Studio or
MS Build Tools, though currently only tested with the former).

Built a package with a 0.6.9 version number (for testing). Saw it installed.
Re-ran the installer and saw that it said it was already installed, giving me
the option to repair or uninstall.

Saw the version in Add/Remove Programs. Uninstalled it without problems.

Re-installed 0.6.9, then built an installer for 0.7. Installed that, and saw
that it upgraded.

Tried to install 0.6.9 with 0.7 installed, and saw it say that a newer version
was already installed.

Uninstalled 0.7 without problems.

Re-installed 0.7. Used that to post this change.

Description From Last Updated

This should use from __future__ import print_function

daviddavid

You might want to define a default value for $(Version) up in the top PropertyGroup, otherwise I think builds through …

BC bcran

Ditto with the $(Version).

BC bcran
reviewbot
  1. Tool: Pyflakes
    Processed Files:
        contrib/installers/windows/scripts/get-version.py
    
    Ignored Files:
        contrib/installers/windows/wix/files/rbt.cmd
        contrib/installers/windows/wix/rbtools.sln
        contrib/installers/windows/wix/files/favicon.ico
        .gitignore
        contrib/installers/windows/wix/files/logo.png
        contrib/installers/windows/build-installer.bat
        contrib/installers/windows/wix/rbtools.wixproj
        contrib/installers/windows/wix/bundle.wxs
        contrib/installers/windows/wix/bootstrapper.wixproj
        contrib/installers/windows/wix/product.wxs
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        contrib/installers/windows/scripts/get-version.py
    
    Ignored Files:
        contrib/installers/windows/wix/files/rbt.cmd
        contrib/installers/windows/wix/rbtools.sln
        contrib/installers/windows/wix/files/favicon.ico
        .gitignore
        contrib/installers/windows/wix/files/logo.png
        contrib/installers/windows/build-installer.bat
        contrib/installers/windows/wix/rbtools.wixproj
        contrib/installers/windows/wix/bundle.wxs
        contrib/installers/windows/wix/bootstrapper.wixproj
        contrib/installers/windows/wix/product.wxs
    
    
  2. 
      
chipx86
BC
  1. 
      
  2. Show all issues

    You might want to define a default value for $(Version) up in the top PropertyGroup, otherwise I think builds through Visual Studio will fail.

    1. There's no default version that would really make sense though. We certainly don't want to worry about having to edit this file every release.

      We won't be doing builds through Visual Studio. This will in time all be automated and driven by the batch file. Given that, is there really any need to worry about Visual Studio builds?

    2. I normally set the default to something like 1.0 or 0.1; it never gets used except in development.
      Personally, I like to keep builds through Visual Studio minimally functional because it makes testing during development a bit easier.
      It's not a big deal though, so let's drop the issue for now.

  3. Show all issues

    Ditto with the $(Version).

  4. 
      
david
  1. 
      
  2. Show all issues

    This should use from __future__ import print_function

  3. 
      
chipx86
reviewbot
  1. Tool: Pyflakes
    Processed Files:
        contrib/installers/windows/scripts/get-version.py
    
    Ignored Files:
        contrib/installers/windows/wix/files/rbt.cmd
        contrib/installers/windows/wix/rbtools.sln
        contrib/installers/windows/wix/files/favicon.ico
        .gitignore
        contrib/installers/windows/wix/files/logo.png
        contrib/installers/windows/build-installer.bat
        contrib/installers/windows/wix/rbtools.wixproj
        contrib/installers/windows/wix/bundle.wxs
        contrib/installers/windows/wix/bootstrapper.wixproj
        contrib/installers/windows/wix/product.wxs
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        contrib/installers/windows/scripts/get-version.py
    
    Ignored Files:
        contrib/installers/windows/wix/files/rbt.cmd
        contrib/installers/windows/wix/rbtools.sln
        contrib/installers/windows/wix/files/favicon.ico
        .gitignore
        contrib/installers/windows/wix/files/logo.png
        contrib/installers/windows/build-installer.bat
        contrib/installers/windows/wix/rbtools.wixproj
        contrib/installers/windows/wix/bundle.wxs
        contrib/installers/windows/wix/bootstrapper.wixproj
        contrib/installers/windows/wix/product.wxs
    
    
  2. 
      
david
  1. Ship It!
  2. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to master (e8485ba)