The spojitŘ (spojit řízení) tool and workflow engine assists in creating trace links between development artifacts stored in issue tracking systems (ITS) and version control systems (VCS). The current implementation specifically targets the combination of git as VCS and Atlassian Jira as ITS, but the underlying spojit library is independent of particular tools.
You can watch an introduction video on youtube: https://www.youtube.com/watch?v=-zwN6p4Q0jo
Further, we created an interactive demonstration within a docker container to get a first impression about spojitŘ and its capabilities.
SpojitŘ intelligently tags git commit messages with a jira issue identifier. This creates a navigable trace link from the jira issue to the commit and vice versa. Tagging is a commonly applied practice and the Apache Software Foundation even mandates it in its contribution guidelines. Once trace links are established, they can be used to quickly identify code locations where a particular issue is implemented. On the other hand, on a commit level, the link answers why a certain code change was made by referring to an issue. However, manually managing, i.e. looking up ids in Jira, and adding the issue ids is tedious and prone to errors. Developers make (spelling) mistakes when entering the ids or simply forget to do so. SpojitŘ tries to solve these problems and intelligently automates the tagging process.
SpojitŘ uses a git hook to extend the usual git workflow.
Whenever a developer performs a commit, spojitŘ analyzes this commit and allows to link it to one of the issues present in the issue tracking system.
Therefore it recommends the three most likely issues ids and asks the user to pick the appropriate one.
The recommendation is build on a machine learning algorithm provided by the spojit package.
This algorithm is trained on previously performed commits and improved with every new one.
Before installing spojitŘ on your local machine, consider to try it within docker (see also respective section in the demo). Use a docker volume mount to access your project checkout within the container.
# build container (see docker_build.sh)
docker build . --tag spojitr
# run container
docker run -it -v <your checkout>:/code/ spojitrSpojitr depends on the following 3rd party tools and libraries:
- git
- Java Runtime environment (JRE) >= 8.0
- python >= 3.6
- spojit
- Weka >= 3.8
- Weka run helper
requirements.txt contains the list of required python packages that are available via pip and can be installed using pip3 install -r requirements.txt.
-
Clone the spojitr repository and copy th folder
spojitr_installfolder to your desired installation location -
Install
spojitgit clone https://github.com/michaelrath-work/spojit.git cd spojit python3 setup.py bdist_wheel pip3 install dist/spojit-*.whl
-
Install
weka run helpergit clone https://github.com/michaelrath-work/weka-run-helper.git
Copy the
run_weka.pyfile to the yourspojitr_install/3rdfolder (see step 1) -
Copy the
weka.jarfile of the weka installation to yourspojitr_install/3rdfolder (see step 1) -
Install additional NLTK data files from within a python shell
>>> import nltk >>> nltk.download("stopwords") >>> nltk.download("word_tokenize") >>> nltk.download("punkt")
-
Run
install.pywithin yourspojitr_installfolder (see step 1) to export theSPOJITRPATHvariable and register thespojitrtools in your shell (bash) environment
In a terminal, type spojitr -h to get a list of the available commands and options.
The material presented in quick start, especially the interactive demonstration and the video shows how to use spojitŘ.
