mdfeist / TypeV

Apache License 2.0
0 stars 0 forks source link

TypeV

AST-powered software repository analytics and visualization for Java.

Installing

Just try make and see what happens! If not, ensure you have the following:

AST Diff

Web Server

Web Application

Installing the AST Diff

Type make in the repository root. Test with make test.

You will need to export $TYPEV_PATH as the directory where this repository is located. If you're using Bash on OS X, you can simply do this to export the environment variable when you open up a new terminal:

echo "export TYPEV_PATH=$(pwd)" >> ~/.bash_profile

To let Git know how to use the AST Diff, add this to ~/.gitconfig:

[difftool "gumtree_cmp"]
cmd = bash $TYPEV_PATH/ast.sh cmp $LOCAL $REMOTE

Installing the server

The Python server requires Flask. It's recommend to use a virtualenv (if you already have experience with virtualenvs), but it's easy enough to install Flask globally as well:

make get-deps

or:

pip install -r requirements.txt

Building the web application

With TypeScript and Typings installed, go in to the www/js/ directory and simply type make. This will create typings/ and compile the application to a single JavaScript file called index.js in the www/js/ directory.

Usage

AST Diff

To compute the AST diff of a repository.

test "$TYPEV_PATH" != '' && ./project_stats.sh path/to/git/repo > ast-output.out

Web Server

Ensure you've activated the proper virtualenv (if you're using virtualenv) and simply type:

python server.py

This will start the web server listening on http://localhost:5000/.

Developing

Web Application

Either use make watch in www/js or use an editor such as atom-typescript to automatically build index.js on save.

License

The Python server, the web frontend, the modifications made to Spoon-GumTree, and all associated scripts are under the following license:

 Copyright 2016 Michael D. Feist, Eddie Antonio Santos, Ian Watts,
 Abram Hindle.

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.