Skip to content

Prototyping a Quality Assessment Tool with Parameterized Quality Models

License

Notifications You must be signed in to change notification settings

parameterIT/tool

Repository files navigation

Quality Tool

Setup

Make sure you have Poetry >= 1.2.0 installed. You can then get started by running:

poetry install

Code duplication - cpd

As of this moment, we are using copy paste detector to find duplicate code. This requires you to download cpd and place the bin/ and lib/ folder (and their files) in a cpd subfolder in metrics (metrics/cpd/<cpd folders goes here>).

You can download cpd from the following link (check if there is a newer release): https://github.com/pmd/pmd/releases/tag/pmd_releases/6.54.0

Programming Language Detection - GitHub Linguist

To detect the programming languages of source code files we use GitHub linguist by running it in a docker container. Make sure you have Docker >= 23.0.4 installed. You will also need to pull the docker image for GitHub Linguist:

docker pull toffernator/linguist

Running, Testing, and Formatting

This is all done using poetry. To run:

poetry run core <path/to/source/code> <Quality_model>

e.g.

poetry run core . code_climate

To see supported languages please refer to: byoqm/source_coordinator/languages.py

Optional values can be gotten by running:

poetry run core --help

To test:

poetry run test

To format:

poetry run black .

Building Tree-Sitter Grammars

Make sure you have a build/ and grammars/ folders in the root of the project:

mkdir build grammars

Clone the python grammar into grammars/:

cd grammars && git clone --depth 1 https://github.com/tree-sitter/tree-sitter-python && git clone --depth 1 https://github.com/tree-sitter/tree-sitter-c-sharp && git clone --depth 1 https://github.com/tree-sitter/tree-sitter-java && cd -

Build the grammar file:

poetry run python core/build_treesitter.py

About

Prototyping a Quality Assessment Tool with Parameterized Quality Models

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •