DEVELOPING SASVIEW < 3.1 WITH ECLIPSE and SVN
Steve King, March 2014, Rev 6.1
NOTE: These instructions are outdated as of Feb 2015 (code camp III) when the code based was migrated from SVN at sourforge to git at Github. These may still be useful if trying to edit source code from versions prior to 3.1 which are on sourceforge SVN. For instructions on setting up a developer environment with the current code visit the Easy Developer Setup on Windows Using Anaconda page
Installation & Setup
Download & install the Eclipse SDK (eg, eclipse-SDK-4.3.2-win32) to a folder of your choice Eclipse name their versions:
- 4.3.1
- Ganymede
- 4.3.2
- Kepler
- 4.4
- Luna
Do not install a version of Eclipse earlier than 4.3.1 Note that there are some subtle variations in the menu trees between versions! Most of this document was originally written whilst using Ganymede.
Setting Proxy
If your internet access is normally via a proxy server, locate and edit your C:\Users\userid\AppData?\Roaming\Subversion\servers file and add under the "global" section:
http-proxy-host = site_proxy_server_address http-proxy-port = site_proxy_server_port
To see if you use a proxy server, and to get it’s address, open Internet Explorer, then go Tools → Internet Options → Connections → LAN Settings and look to see if you are using an automatic configuration script. If so it will probably be configured to use port 8080. If in doubt, contact your IT Support.
Installing PyDev
Start Eclipse and open: File → Switch Workspace → Other… → Select a workspace (the default is drive:\path\Eclipse_workspace)
Window → Open Perspective → Other → PyDev
If PyDev is not listed as a perspective it will be necessary to install it:
Help → Install New Software… and in the Work With: drop-down select the PyDev? Update Site. Let the list of available software refresh.
Check the box next to PyDev and click Next. The plug-in will install.
If this doesn’t work:
Download the PyDev certificate from http://pydev.org/pydev_certificate.cer and install it (in Windows, just right-click and select Install certificate)
Now get PyDev from http://sourceforge.net/projects/pydev/files/
If you have Java 7 installed, you must install PyDev 3.4.1 or later. Extract the zip file to the Eclipse dropins folder and re-start Eclipse
Installing Subversive
For SVN access it is necessary for Eclipse to have the Subversive plug-in installed. Earlier versions of Eclipse (e.g. 4.3.1) seemingly incorporated an SVN plug-in in the default distribution. Later versions (e.g. Kepler) do not.
To install Subversive:
- (Help → Install New Software… and in the Work With drop-down select the site for the Eclipse
release you are using. Let the list of available software refresh.
- Scroll down the list of available software and locate Subversive SVN Team Provider Sources (or similar). Check the box next to it and click Next. The plug-in will install.
- Restart Eclipse.
- Window → Preferences → Team → SVN → SVN Connector
- Check the drop-down. If present, select JavaHL (for Windows x86). If this is not present it will be necessary to install the connector.
To install the Subversive Connector:
- Help → Install New Software
- Alongside the Work With drop-down, click Add and enter a URL in the Location box, e.g: http://community.polarion.com/projects/subversive/download/eclipse/3.0/kepler-site/ (or visit http://www.polarion.com/products/svn/subversive/download.php for links to earlier versions of Subversive for Eclipse)
- Let the list of available software refresh.
- Scroll down the list of available software and locate a JavaHL Binaries plug-in appropriate to your OS. Check the box next to it and click Next. The plug-in will install.
- Restart Eclipse.
Checking out Sasview Trunk
File → Import → SVN → Checkout Projects from SVN → Next
IF no_SVN_repository_shown: Check ‘Create a new repository location’ → Next → Enter a URL for a SVN repository → Next
If Eclipse fails to download the trunk, try repeating the import process but this time using an existing repository (see below).
ELSE: Check ‘Use existing repository location’ → Select a SVN repository from the list shown → Next
The SasView SVN repository is hosted by SourceForge at: https://svn.code.sf.net/p/sasview/code
For commit access aspiring developers need (read-only checkout is public):
- to be registered with Source Forge, and
- authorised by Paul Butler
Eclipse will attempt to download the trunk. In the process it may be necessary to enter your SourceForge? login details several times (because you are required to authenticate at each level of the repository) so check the ‘Save details’ box to speed up the authentication process.
Enter a Workspace Location
This can be any name you like, but will be the name given to your local trunk, and the name of the folder it is stored in; ie, drive:\path\Eclipse_workspace\workspace_location
If you want you can also give this location a custom label. Do not change any of the other default settings on this dialog box!
Click OK
Preparing to Build SasView?
NB: THIS MAY NOT WORK PROPERLY IF YOU ARE BEHIND A FIREWALL BECAUSE THE BUILD MAKES USE OF PYTHON EASY_INSTALL WHICH DYNAMICALLY DOWNLOADS PACKAGES FROM THE WEB
In Windows Explorer: Navigate to drive:\path\Python2x\lib\site-packages and delete any existing sasview.egg file
Back in Eclipse: Window → Preferences → General → Editors → Text Editors
Check ‘Insert spaces for tabs’
Check ‘Show print margin’ and set the ‘Print margin column’ to 80
Check ‘Show line numbers’
Click OK
Installing Python
The official version of Python for building SasView is 2.7
Install NumPy, SciPy, and the additional Python site packages for building SasView
NB: if you are using a Win64 version of Python ensure you also download and install a Win64 version of wxPython compatible with your Python 2.x installation!
Window → Preferences → PyDev → Interpreter – Python
If no Python interpreter is shown, click ‘New…’, enter a name for your Python installation and ‘Browse…’ to its python.exe file
Click OK
In the PyDev Package Explorer pane:
Navigate to the sansview folder within the trunk
Right-click on sansview.py → Run As → Python Run
If this fails with an error message in the console pane it means that there is no existing SasView build – which is what you want! If, on the other hand, SasView starts up, search for a sasview .egg file!
Then repeat this test.
Locate setup.py in the top level of the trunk
Right-click on run.py → Properties → Run/Debug Settings
IF no_launch_configuration shown:
- New → Enter a name for the launch configuration
- Select the ‘Main’ tab → Under ‘Project’, browse to the name of your trunk
- Select the ‘Arguments’ tab → Type ‘install’ (without the quotes) in the box marked ‘Program arguments’
- Click OK
Building SasView? the First Time
Right-click on setup.py → Run As → Run Configurations…
Or highlight your_trunk_project setup.py and then choose Run → Run As → Python Run
SasView should build from your local trunk. If the build fails it will most likely be because a Python package has not installed, in which case install it manually (eg, using easy_install)
If you get an error about msvcr90.dll or msvcr90d.dll not being found, copy these from the Visual C++ Redistributable installation (if present) or from a reputable website and put in your MinGW/bin folder.
Re-building SasView? after Development
Navigate to the setup.py within the trunk
Right-click on setup.py → Run As → Python Run
SasView should build!
The locally-built version of SasView should appear in drive:\path\Eclipse_workspace\workspace_location\dist as something similar to sasview-3.0.0_r0-py2.7-win32.egg
Running SasView? from Eclipse
Navigate to the run.py within the trunk
Right-click on run.py → Run As → Python Run
SasView should start up!
NB: This is running SasView from compiling and building the Python/C/C++, it is not installing SasView
NB: If you run SasView at this point it may stop an Installer application from building, so if you want an Installer application, create that first (see below)!
Creating a SasView Installer Package
NB: You would not normally need to do this because that is the function of the Build Server! Navigate to the sansview folder within the trunk
Right-click on setup_exe.py → Run As → Python Run
This should create a file SasView.exe in the sansview\dist folder of the trunk
Double-click on installer.iss to bring up the Inno Setup Compiler
Click the green ‘play’ button to build a SasView installer
This should create a file setupSasView.exe in the sansview\Output folder of the trunk
Running Unit Tests
Locate an appropriate unit test in your_trunk_project\module\test
Right-click on the utest_test-name.py file → Run As → Python unit-test
NB: unit tests operate on the last built version of SasView, so if you have modified any modules or unit tests you must re-build SasView first!
The unit test your_trunk_project\test\utest_sansview.py executes all the unit tests
NB: you must have previously installed unittest_xml_reporting (eg, easy_install unittest_xml_reporting)
Also see the section on ‘Checking the Build Server Tests’ below
Committing Code Changes to the SVN Server
NB: run appropriate unit tests first!
Save your changes to file.py
Right-click on file.py → Team → Update (just in case someone has done something to the same file!)
Right-click on file.py → Team → Commit
Add a comment to describe your changes
To See/Compare Code Changes
Either:
Right-click on file.py → Compare with → Revision… / Local History…
Or:
Go to Source Forge
Login
Projects → SasView → Code
NB: if you haven’t been coding for a while, right-click on the top level of the trunk and do Team → Update
Checking the Build Server Tests
The Build Server automatically runs the unit tests as part of the build process, and reports the success/failure
See, for example: http://build.sasview.org/job/SasView_Ubuntu12.04_Py2.7/
If a build has failed unit tests the ‘ball’ will be red
Click on the date/time string next to the ball to get a view of what changes were committed to that build and what tests failed
Click on a failed test link to see more detail about why a test failed
Branches
Long-term code development projects, or modifications carrying a significant risk of breaking the code, should not be committed to the trunk, but conducted in a branch of the trunk instead Note that a branch is not simply a sub-folder of trunk
The top-level of the SasView code repository contains:
- Web
- the sasview.org web pages
- Trunk
- the code in the current development build
- Releases
- the code in the current official release build
- Branches
- copies of trunk being used for special development projects
Only when branches are debugged, working and tested should they be merged back into the trunk.
NB: developers using branches should be aware that their branch copy of trunk will naturally fall behind the current trunk and should therefore periodically update their branch copy of trunk
To create a branch in Eclipse:
- Right-click on your_trunk_project → Team → Branch/Tag
- Modify the URL shown by adding /branches/name_of_branch
- Click Next
- Select the HEAD Revision
- Click OK
To check if a branch has been created/exists:
- Switch to SVN view (top right corner of the Eclipse screen)
To work with a different branch:
- In PyDev view, right-click on the top-level of the current trunk → Team → Switch to another
- Branch/Tag/Revision…
- Modify the URL shown to point to the appropriate branch
- Click OK
Attachments (1)
-
Developing SasView with Eclipse.pdf
(565.3 KB) -
added by smk78 11 years ago.
Tips on configuring & using Eclipse to develop SasView?
Download all attachments as: .zip