Package: varats
VaRA Tool SuiteProject Statusbranchbuild statusvaravara-devUsing VaRA with VaRA-TSVaRA is a variability-aware framework to analyze interactions between code regions that convey a semantic meaning for the researcher, e.g.,CommitRegionsrepresent blocks of code that belongs to the same commit.
Our tool suite allows the researcher to automatically run analyses provided by VaRA on different software projects.
For this, we provides different preconfigured experiments and projects.
Experiments abstract the actions that should be taken when analyzing a project, e.g., build, analyze, generate result graph.
Projects describe how a software project should be configured and build, e.g.,gzipprovides all necessary information to checkout, configure, and compile the project.Setup Tool SuiteInstall dependenciesTo use the VaRA Tool Suite, make sure you have the necessary packages installed.
For ubuntu, you can use the following command to install them (your system has to
have at leastpython3.6):sudoaptinstallpython3-devpython3-tkpython3-psutilpsutilsninja-buildpython3-pipautoconfcmakerubycurltimelibyaml-devgit
sudoaptinstallpython3-venv# If you want to install VaRA-TS in a python virtualenvInstallation from PyPIpip3installvaratsInstallation from sourceAdditional packages are required to build VaRA from source.sudoaptinstalllibsqlite3-devlibcurl4-openssl-devlibboost-all-devlibpapi-devgoogletestlibxml2-devThe easiest way to install VaRA is to use thevara-buildsetuptool. You can find more information
about this tool in itsdocumentation.Running experiments and analyzing projectsVaRA-TS provides different preconfigured experiments and projects.
In order to execute an experiment on a project we use BenchBuild, an empirical-research toolkit.Setup: Configuring BenchBuildFirst, we need to generate a folder with a configuration file for BenchBuild in the vara root directory, this is done with:vara-gen-bbconfigRunning BenchBuild experimentsSecond, we change into the benchbuild folder and run an experiment that generatesCommitReportsfor provided projects, in this case we usegzip.cd $VARA_ROOT/benchbuildbenchbuild -vv run -E GenerateCommitReport gzipThe generated result files are place in thevara/results/$PROJECT_NAMEfolder and can be further visualized with VaRA-TS graph generators.Using CaseStudy and paper configsReproducing results for different projects and experiments is important. To help with reproducing results, VaRA-TS proposes the concept of aCaseStudyand paper configs. Each case study specifies which revision of a project needs to be analyzed. Paper configs then group together a set of case studies that belong to the same paper, allowing the user to precisly specify which revisions of what project need to be analyzed to regenerate the results for a specific paper.
For more information visit ourdocumentation.VaRA developer toolsVaRA-TS provides different tools to ease VaRA development.vara-developvara-develop, shortvd, is a helper to interact with the different VaRA project repositories when working on VaRA.
The tool provides commands for showinggit status, creatingnew-branchorcheckoutexisting branches.
Furthermore, commands topull/pushthe current branches and to show currently developed feature branchesf-branches.
It can be used on a set of projects simultaneously.
A command like:> vd new-branch f-FooBar vara clang llvmwill create the branchf-FooBaron all three repositories.Showing the current status of the listed projects can be done with:> vd status clang vara#################################################################################Project:clang#################################################################################On branch vara-80-devYour branch is up to date with 'origin/vara-80-dev'.nothing to commit, working tree clean#################################################################################Project:VaRA#################################################################################On branch f-InstrumentationVerifierYour branch is up to date with 'origin/f-InstrumentationVerifier'.nothing to commit, working tree cleanThecheckouttool helps you to checkout the same branch on different projects, if one exists.
Furthermore, it can easily switch all projects tovara-devorvaraby just typing:vd checkout vara-devTo get a full overview of the tool usevd -handvd {sub_command} -h.Extending the tool suiteVaRA-TS allows the user to extend it with different projects, experiments, and data representations.BenchBuild ProjectsVaRA-TSdefines a set of projects that can be analyzed withbenchbuild.benchbuild└── projectsBenchBuild ExperimentsVaRA-TSdefines a set of projects that can be analyzed withbenchbuild.benchbuild└── experimentsRunning testsRunning all python tests:pythonsetup.pytestRunning all test with coverage:pythonsetup.pytest--addopts"--cov=varats --cov-report term-missing"