AST-powered software repository analytics and visualization for Java.
Just try make
and see what happens! If not, ensure you have the
following:
typescript
and typings
(npm install -g typescript typings
)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
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
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.
To compute the AST diff of a repository.
test "$TYPEV_PATH" != '' && ./project_stats.sh path/to/git/repo > ast-output.out
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/.
Either use make watch
in www/js
or use an editor such as
atom-typescript to automatically build index.js
on save.
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.