Note

Preliminary instruction is written by (qiuruizju@gmail.com) and edited by Jihun Park (jhpark@se.kaist.ac.kr)


Introduction

Chime is a software code change history investigation tool that can help developers to find out relevant information on change facts.
Our prototype now includes two parts. One part is Chime core. Another part is a user interface as an Eclipse view.

Setup

Since in program analysis Chime uses Partial Program Analysis (PPA) to generate abstract syntax tree (AST) for programs, we need to have PPA first to run Chime.
In development of Chime we used to use PPA's source code and unfortunately PPA can only run in Eclipse Helios (3.6).

See the following website at:
a) Visit the website holding the previous version at: http://www.eclipse.org/downloads/index-helios.php
b) Select the version for the Plugin development -- Eclipse 3.6 Classic

I tried to change source code of PPA to make it run on other versions of Eclipse. Now it seems to work on Eclipse Juno (the newest version) and Eclipse Indigo. But due to some JDK library issues it might not be very stable. So if you want to have a slightly better environment, you can use Helios. (Chime is just a prototype so that means there will be a lot of potential bugs or issues. We will figure out those things as we proceed.)



Create Chime Graph

1. Install PPA plugin. Use normal ways to install Eclipse plugin in the menu Help -> Install New Software. The update URL is http://www.sable.mcgill.ca/ppa/site_1.2.x. You can also take a look at their website http://www.sable.mcgill.ca/ppa/.

2. Download the source code of Chime project. You can download it form Assembla and the project name is ChimeGraph. ( https://www.assembla.com/code/chimegraph )
Right click on the project and select "Run as…". Then select "Eclipse Application" and it will run with a new Eclipse instance.
(If you find an error with manifest file, you should edit dependencies. MANIFEST.MF --> Dependencies --> Add --> Find 'ppa' --> select 'cs.mcgill.cs.cwevo.ppa.ui' --> Delete 'cs.mcgilll.cs.swevo.ppa.ui_Modified')
AddPlugin.png
3. In the new Eclipse instance, there will be a new menu called "Chime". In Chime Menu, there are four options. The fist one "Setting" is to set the relevant directories and configurations. Click on that you will get a dialog named "Chime Setting". Here is some explanation for each setting:
CHIMEMenu.png

CHIMEsetting.png

  • SVN URL : input the target SVN repository URL you want to analyze here.
  • User name and password: user name and password to access that URL
  • Start Rev.: the starting revision of the repository that you want to analyze.
  • End Rev.: the ending revision in the repository that you want to analyze. You can input -1 to represent that you want to analyze all revisions of the repository.
  • Report path: you can set which directory you want to store all the results of Chime.
  • Report name: input the name of the files that will contain the results. You can give any legal file names you want here.

4. After set these configurations, you can press "OK" and these configuration will be stored in your runtime workspace. Now since it is the first time you are creating a ChimeGraph, you can click "Create ChimeGraph" in "Chime" menu. Then creating process will begin.
5. After creating the ChimeGraph, the results will be stored in the directory you specified in "Setting". There will be a txt file containing logic
facts in the generated ChimeGraph and xml files representation of the graph.


The following part is just temporal note for configuration for update and porting menu.

Update Chime Graph

1. Select 'xml' file which is generated from 'Create Chime Graph' menu.
2. Currently, 'Last Stored Revision' is come from file name. (e.g., temp_report-graph_12.xml --> '12'), but it is not working. I changed it to '1' (hard coding, 204 line of 'chimegraph.ui.UpdateUI.java')

Porting Chime Graph

1. You should change 23 line of 'chimegraph.importer.SubClassFinder.java' file. Path should be changed to /path/to/your/workspace/bin/chimegraph/importer",