Skip to content

niyaton/kenja

Repository files navigation

Current Status

Kenja currently only support the feature of historage converter in Python3.

Requirements

for General

  • python 3.7

  • git (confirmed versions)

    • 2.23.0

for Java

  • Java

for CSharp

Windows

  • .NET Framework

Mac or Linux

  • Mono

Dependencies

Kenja needs following libraries.

Installation

python setup.py install

Installation (for developers)

sh install.sh

If you cannot

How to use

Convert your git repository to historage

kenja.historage.convert <your_repository_path> <path_of_historage_directory> <path_of_syntax_tree_directory>
  • Use path of empty directory for <path_of_historage_directory>
    • Historage (a Git repository) will be created here.
    • Kenja will make this directory automatically if you give non-existing directory.
    • use --disable-python, --disable-csharp or --disable-java option to avoid handling .py, .cs or .java files.

Store syntax trees infromation [for DEBUG]

kenja.historage.convert --syntax-trees-dir=<path_of_syntax_tree_directory> <your_repository_path> <path_of_historage_directory> 
  • Information of syntax trees will be stored in the <path_of_syntax_tree_directory>
  • We recommend you to provide path of empty dir for <path_of_syntax_tree_directory>
    • Kenja will make a lot of files which contains syntax information to construct a historage.
    • Kenja will make this directory automatically if you give non-existing directory.

Detect extract method from your historage

Output as CSV format

kenja.detection.extract_method all <historage_path>

Output as JSON format

kenja.detection.extract_method --format json all <historage_path>

Detect pull up method from your historage

kenja.detection.pull_up_method all <historage_path>

Development

Install latest version of kenja

use install.sh

sh install.sh

Requirements

Apache Maven 2 or 3

Notes

  • The Historage which converted by kenja is case sensitive, because Git is case sensitive too.
  • Your local file system should use case sensitive file system when you construct Historage by kenja.