Reviewboard Windows Installer

Review Request #1854 — Created Oct. 24, 2010 and discarded

Information

Win32 Installer

Reviewers

Windows Installer for Reviewboard, made with NSIS:

Updates and improves the Windows Installer for ReviewBoard. Currently this installer will install:
* Python 2.6 (if it's not already installed)
* GNU Patch (if it's not already on the PATH)
* Python Setup Tools
* PyCrypto
* PIL
* Reviewboard + dependencies (via easy_install)

It also optionally installs Memcached, and various Python bindings for databases and/or source control systems. These features are still under development.

Currently the installer basically calls several distutils installers and several easy_install commandline windows. It's a bit of a mess, but it works. It's also not using Macros appropriately-- I will be making the code neater as I'm clearer on what else needs to be added. It is documented reasonably well as far as I see.
I've installed it on a very clean Windows XP 32 bit VM. I've also tried it on my (not at all clean) 32 bit XP to check that it detects Python and Patch. I've been able to set up a working Review Board installation using Bitnami's WAMP stack, a download of mod_python, this installer, rb-site and a few modifications to the Apache config files.

Screenshots

chipx86
  1. In the future, to update an existing review request, use the -r parameter with the review request ID, so you won't have to create a new one and discard an old one.
  2. 
      
LA
LA
mike_conley
  1. Laila:
    
    First off, I've never worked with NSIS, so I'm really not qualified to comment on too much of the coding.  I can, however, make a few points/suggestions.
    
    1)  Wherever possible, alphabetize long lists of unordered items.  I've highlighted an example below.
    2)  Is it possible to constrict to 80 chars per line?  (Is that how we want to roll with this David / Christian?)
    3)  Wherever possible, it's Review Board, as opposed to Reviewboard or ReviewBoard.
    4)  There's some extraneous whitespace that can be chopped out.
    
    I'm unable to test this, since I've been unable to borrow a Windows machine for the job.  Hopefully this week I'll get a chance to try it out.
    
    Thanks for your work!
    
    -Mike
  2. install.nsi (Diff revision 2)
     
     
    Review Board, as opposed to ReviewBoard, I think.
  3. install.nsi (Diff revision 2)
     
     
    Yep - I guess this'll need to be bumped each time a new version gets released.
    
    This should probably be for 1.6?
  4. install.nsi (Diff revision 2)
     
     
    Should this be Review Board, or Beanbag Inc?
  5. install.nsi (Diff revision 2)
     
     
    should be http://www.reviewboard.org/
  6. install.nsi (Diff revision 2)
     
     
     
     
     
     
     
     
     
     
     
    This is an example of something you could alphabetize.
  7. install.nsi (Diff revision 2)
     
     
     
     
    There too, etc...
  8. install.nsi (Diff revision 2)
     
     
    Review Board
  9. install.nsi (Diff revision 2)
     
     
    ws
  10. install.nsi (Diff revision 2)
     
     
    ws
  11. install.nsi (Diff revision 2)
     
     
    ws
  12. install.nsi (Diff revision 2)
     
     
     
    ws
  13. install.nsi (Diff revision 2)
     
     
    ws - not going to mention the rest.
  14. 
      
mike_conley
  1. Laila:
    
    Hey - I finally hopped onto a Windows machine and got to try this out.  ;)
    
    Two notes - see below.  Thanks,
    
    -Mike
  2. install.nsi (Diff revision 2)
     
     
    Hm - how's this going to work?  Are we going to ask the user where we're going to download Review Board to?
    1. This is not for the user, this is for the person compiling the script to create an EXE file the user can run. This variable points to the location of the Review Board source of the person compiling it. I've changed it to be "../.." (a typical relative location of the reviewboard/reviewboard relative to reviewboard/rb-win32-installer dirs). Obviously if the user is able to download the Review Board source, they can create their own installer, but I thought the use case would run more along the lines of a developer compiling the installer and posting it online for users to download. Is this correct?
  3. install.nsi (Diff revision 2)
     
     
    For some reason, this fails for me - I get:
    
    Installing Python Pytz module...
    Pytz failed to install: error
    An essential part of the installation, Pytz, failed to install.  Aborting installation.
    
    Can't see why - from a DOS prompt, easy_install pytz runs just fine.
    1. This was working for me, then suddenly stopped when I tested it after your review, then worked again... basically it's inconsistent. I did some research and apparently the PATH updating that I had trouble with before was still not working properly. Anyway it should work now. I've tested it 5-6 times on a clean VM and it seems to be stable.
  4. 
      
LA
LA
LA
LA
Review request changed
Status:
Discarded