Basie Blog

A Lightweight Software Development Portal in Django

How To Install Basie On Windows XP

without comments

Hi everyone. Here are the instructions for how to install Basie on Windows XP. They are a work in progress, so please leave comments with suggestions/feedback. Thanks.

NOTE: I know that this seems like a daunting process at first, but it is absolutely worth the effort. The basic outline is: 1. install dependencies, 2. set up the development environment, 3. download and configure Basie. The entire process should take about 20 minutes. Hopefully in the future this will be replaced by a Windows Installer (MSI).

ALSO NOTE: These instructions are for installing the current SVN version of Basie on a clean install of Windows XP. Additional changes may be required for different versions or setups.

Basie Windows XP Install Instructions:

1. The Basie installation process relies heavily on binaries being accessible via the system path. As such, it is advised that you write down the location where each dependency is installed (e.g. “Python 2.5.4 installed to C:\Python25″). You will need this information later, so you can save time and hassle by writing it all down as you go.

Section 1: Installing Dependencies

2. Install Python 2.5.4
   -Python Website: http://www.python.org
   -Release Website: http://www.python.org/download/releases/2.5.4/
   -direct links:
     -x86: http://www.python.org/ftp/python/2.5.4/python-2.5.4.msi
     -Win64-Itanium: http://www.python.org/ftp/python/2.5.4/python-2.5.4.ia64.msi
     -Win64-AMD64: http://www.python.org/ftp/python/2.5.4/python-2.5.4.amd64.msi

3. Install Setuptools for Python 2.5
   -package website: http://pypi.python.org/pypi/setuptools
   -direct link:
     -http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c11.win32-py2.5.exe#md5=cb0cd7b844bed5106aeb0d4583848b1f

4. Install Subversion 1.6.6
   -Subversion website: http://subversion.apache.org/
   -Tigris Binaries for Apache 2.2: http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100
   -direct link:
     -http://subversion.tigris.org/files/documents/15/46906/Setup-Subversion-1.6.6.msi

5. Install Subversion 1.6.6 Bindings for Python 2.5
   -direct link:
     -http://subversion.tigris.org/files/documents/15/46889/svn-python-1.6.6.win32-py2.5.exe

6. Install Subversion Development Libraries
   -direct link:
     -http://subversion.tigris.org/files/documents/15/46887/svn-win32-1.6.6_dev.zip
   -Extract ZIP to a permanent location (recommended location: your Subversion install directory, default: “C:\Program Files\Subversion”)

7. Install Subversion Berkeley DB Binaries (similar to above)
   -direct link:
     -http://subversion.tigris.org/files/documents/15/32472/db-4.4.20-win32.zip
   -Extract ZIP to a permanent location (recommended location: your Subversion install directory, default: “C:\Program Files\Subversion”)

8. Install Subversion Libintl Binaries (similar to above)
   -direct link:
     -http://subversion.tigris.org/files/documents/15/20739/svn-win32-libintl.zip
   -Extract ZIP to a permanent location (recommended location: your Subversion install directory, default: “C:\Program Files\Subversion”)

9. Install MinGW 5.1.6
   -MinGW Website: http://www.mingw.org/
   -direct link:
     -http://downloads.sourceforge.net/project/mingw/Automated%20MinGW%20Installer/MinGW%205.1.6/MinGW-5.1.6.exe

10. Install GetText 0.14.4 for Windows
    -GNUWin32 Website: http://gnuwin32.sourceforge.net/
    -GetText Website: http://gnuwin32.sourceforge.net/packages/gettext.htm
    -direct link:
      -http://downloads.sourceforge.net/project/gnuwin32/gettext/0.14.4/gettext-0.14.4.exe

11. Install Junction
    -Sysinternals website:
    -direct link:
      -http://download.sysinternals.com/Files/Junction.zip 
    -Extract ZIP to a permanent location (recommended location: your %windir%\system32 directory, default: “C:\Windows\System32″)

Section 2: Setting Up Development Environment

12. Ensure that all of the following directories are on the system path:
      -Python (default: “C:\Python25\”)
      -Subversion Bin (default: “C:\Program Files\Subversion\bin”)
      -MinGW *Bin* (default: “C:\MinGW\bin”)
      -GnuWin32 Bin (for gettext; default: “C:\Program Files\GnuWin32\bin”)
      -Junction (if not system32 directory)
    Recommended Steps:
      -Right click My Computer and go to properties
      -On the Advanced tab, click Environment variables
      -Under System Variables, double-click Path
      -Add any of the above directories that may be missing without quotation marks to the end of the path, seperated by semicolons
      -For example, appending: “C:\Python25\;C:\Program Files\Subversion\bin;C:\MinGW\bin;C:\Program Files\GnuWin32\bin”
      -Note: The exact directories must be specified for this to work.

13. Create SVN system environment variables for the following variables and directories (without quotation marks):
      -”SVN_DEV” = Subversion Development Libraries Directory (default: “C:\Program Files\Subversion\svn-win32-1.6.6″)
      -”SVN_BDB” = Subversion Berkeley DB Binaries Directory (default: “C:\Program Files\Subversion\db4-win32-4.4.20″)
      -”SVN_LIBINTL” = Subversion Libintl Binaries Directory (default: “C:\Program Files\Subversion\svn-win32-libintl”)
    Recommended Steps:
      -Right click My Computer and go to properties
      -On the Advanced tab, click Environment variables
      -Under System Variables, click New.
      -Add (without quotation marks) a variable named “SVN_DEV” with value “C:\Program Files\Subversion\svn-win32-1.6.6), etc.

14. Create a file named “distutils.cfg” in your pythondir\Lib\distutils (e.g. “C:\Python25\Lib\distutils\distutils.cfg”), containing the following:
    “[build]
    compiler=mingw32″

Section 3: Installing and Configuring Basie

15. Checkout Basie:
      -Open the command prompt (start->run->cmd)
      -cd to the directory where you would like to put basie
      -run svn co https://basieproject.org/stable/svn/basie/trunk basie

16. Fix Linkmedia:
      -Open basie/apps/linkmedia/management/commands/linkmedia.py in wordpad/IDLE
      -Replace “os.symlink(src,dst)” (~line 54) with:
        os.system(”junction \”" + dst + “\” \”" + src + “\”")

17. Fix SVN repository access: 
      -Open basie/apps/vcs/views.py in wordpad/IDLE
      -add “import platform” to the top (near line 6)
      -replace “active_repo = repo.Repo(django_repo.path)” (near line 32) with:
        if (platform.system() == “Windows”):
          active_repo = repo.Repo(django_repo.path.replace(”\\”,”/”).replace(”file://”,”file:///”))
        else:
          active_repo = repo.Repo(django_repo.path)

18. Run the bootstrap script:
      -From the comment prompt,
        -cd to the basie directory
        -run python bootstrap.py

19. Finish the install:
      -From the command prompt,
        -cd to the basie/bin directory
        -run:
          buildout.exe -v -c “c:\basie\buildout.dev.cfg”
          django syncdb
          django linkmedia
          django compilemessages

20. You’re done! You may now start the Basie Development Server by running “django runserver” from the basie/bin directory in the command prompt.

NOTE: If you have run into any errors along the way, please ensure that they are not due to character encodings. Wordpress tends to replace certain symbols (” and – in particular) with expected equivalents for literature, i.e. directional quotation marks and long dashes. There may be other substitutions that I am unaware of. If you’re still having trouble, feel free to send me an email: chadcogar[at symbol]hotmail[dot]com.

Written by chad

March 10th, 2010 at 1:20 pm

Veronica Wong – Status Report

with one comment

Status

Roadblocks

Currently without Internet at home if you’ve been trying to reach me via gTalk outside my work hours. Please send an email.

Points for discussion?

  • Is there a value for keyword search in History? When you want to track an item’s history, would you (a) go to the content-type (e.g. wiki), run a search (e.g. for the specific wiki), click on the item detail to see its history, or (b) go to History, run a search for the item (e.g. the specific wiki), click on the item detail to see its history.
  • History: Calendar View mockup

Next Steps

Written by veronica

March 9th, 2010 at 10:38 am

Posted in Status Report

Jackie Huynh – Status Report

with one comment

Status:

  • Review submitted: error messages for adding/editing Milestones.
  • Unfortunately, there is no easy way to get inline error messages.

Road blocks:

  • None

Next Steps:

  • Some changes needs to be made as mentioned in review by Chris.
  • Once review is good, I will commit and move on to adding/editing tickets.

Written by jackie

March 9th, 2010 at 5:34 am

Posted in Uncategorized

Alex Le – Status Report

without comments

Status

  • Worked on a timezone implementation with Zuzel. Although after finishing found out that the implementation will not work afterall. Concurrent user access will result in timezones switching unexpectedly between users.
  • Posted another implementation of timezones on review board, which seems to solve our problem
  • Almost ready to post a final version of timezones on reviewboard

Roadblocks

  • None unless something screws up royally

Next Steps

  • Finally commit timezones
  • Review Dave’s Code Review tool
  • timezone migration tool

Written by alex

March 9th, 2010 at 3:02 am

Posted in Uncategorized

Chad Cogar – Status Report

with 2 comments

Status

  • Ripped out the calendar (committed).
  • Posted a new fix for the IE ‘form caching’ bug, which is really an AJAX-caching bug, on the reviewboard.
  • Figured out how to get Basie running perfectly on Windows XP using only freely-available tools in <15 mins. Linkmedia and the SVN viewer even work :D . I’ve written up the instructions and am just waiting on Greg’s approval due to questions over licensing agreements.
  • Found a Django app for attachments, but haven’t been able to get it working with Basie yet.
  • Found a bug in the dashboard code and reviewed the rapidly-posted fix :)

Roadblocks

  • Incredibly busy with other work until Thursday :(

Next Steps

  • Post Windows XP instructions for review.
  • Continue trying to integrate django-attachments into Basie.

Written by chad

March 9th, 2010 at 12:13 am

Posted in Status Report

Nikita Pchelin – Status Report

without comments

Bonjour, je m’appelle Nick, et cette semaine j’ai fait rien.

On a good note, I finished my work and study term at UofT so I got 9h/week back and some of them will go back to Basie.

Status/Next Steps:

  • Still working on tagging. Narrowed digging to milestones/tickets, because those are the problematic ones. I figured a way to update/create/load tags using the existing framework (big thanks to John who directed me the right way). I have met some problems abstracting what I’ve done. E.g. JS code that does load of  tags for a ticket lives in tickets.js and not in apps/tags which is bad. I feel like I am really close, but I also feel like I haven’t put anything on the review board for a while, so I will put what I have tomorrow (Tuesday). The plan is to get milestones/tickets working (with the code in right places).
  • Been around reviewing / commenting on things.
  • Tania has the final draft of “getting started” document for Basie that she wrote and I reviewed several times to answer her questions. I am sending her instructions now on how to create a diff file so that she can put it on the review board for everyone else to see.

Roadblock:

  • None

Written by Nikita Pchelin

March 9th, 2010 at 12:03 am

Posted in Status Report

Chris Van – Status Report

without comments

Status

  • Worked more on Trac-to-Basie migration tool — adding tags for tickets fields, users mapping, messages and logging using the logging module
  • Committed Dashboard optimizations+fixes, followed by further optimizations+fixes
  • Cleaned up Basie project homepage (now validates!) and added columns to Screenshots page
  • Reviewed Chad’s Calendar removal
  • Reviewed Greg’s Screenshots page
  • Reviewed Guillaume and François’ Selenium testing foundation
  • Reviewed Pierre’s work on the Chat Log redesign (great work!)

Next Steps

  • Continue working on trac2basie:

    • ticket change history
    • wiki pages
    • revisions
    • convert Trac wiki syntax to WikiCreole

Roadblocks

  • None yet

Written by chris

March 8th, 2010 at 11:39 pm

Posted in Status Report

François – Status Report

with one comment

Status

  • Created Selenium Tests for the Mail application;
  • Worked with Guillaume in the creation of the selenium Tests for the Wiki application.

Next

  • Continue to work on Selenium Testing

Roadblocks

  • Guillaume has mentionned it in his status report, but I just want to add more information about the Unix issues. It is a problem with the function self.set_speed(). We should not have to use it, but when I do not use it, I have some weird errors like this button (like Edit this page) is not found. So, if you test it on Unix, can you try it with and without this line “self.selenium.set_speed(75)” and tell me if it works on your system without this line, thank you !!

Written by francois

March 8th, 2010 at 11:25 pm

Posted in Uncategorized

Guillaume – Status report

without comments

The reading week is over, half of the semester to go ! Found an apartment and an internship. Basie will be getting a lot more time !

Status

  • Created the Selenium tests for the about page ( waiting for review )
  • Created the Selenium tests for the wiki page ( waiting for review )

Next

  • Work on tests for the next application

Roadblocks

  • I’d appreciate if someone who never worked on Selenium tests reviewed our current available tests. I’d like to know if everything works on various systems ( we’ve had some weird issues on some Linux Firefox versions )

Written by guillaume

March 8th, 2010 at 7:56 pm

Posted in Uncategorized

Two Things To Read (Or Three, If You’re Keen)

without comments

#1: Jon Udell’s description of Atul Gawande’s new book The Checklist Manifesto. (You should listen to Atul’s talk, too: any simple technique that cuts surgical fatalities that dramatically is worth knowing about.)

#2: Christopher Groskopf’s Python/Django development checklist.

Written by gvwilson

March 4th, 2010 at 2:20 pm

Posted in Uncategorized