Package: grimoirelab
GrimoireLabGrimoireLab is aCHAOSStoolset for software development analytics. It includes a coordinated set of tools
to retrieve data from systems used to support software development (repositories), store it in databases,
enrich it by computing relevant metrics, and make it easy to run analytics and visualizations on it.You can learn more about GrimoireLab in theGrimoireLab tutorial,
or visit theGrimoireLab website.Metrics available in GrimoireLab are, in part, developed in the CHAOSS project. For more information regarding CHAOSS metrics, see the latest release at:https://chaoss.community/metrics/Getting startedTo ease the newcomer experience we are providing adefault setupto analyze git activity for this repository. For this set up, there are several options to run GrimoireLab:Usingdocker-composeRequirements:Software:git,docker clientanddocker compose. An example of working configuration:root@test-68b8628f:~#git--versiongit version 2.17.1root@test-68b8628f:~#docker--versionDocker version 19.03.1, build 74b1e89root@test-68b8628f:~#docker-compose--versiondocker-compose version 1.22.0, build f46880feHardware: 2 CPU cores, 8GB memory RAM andenough virtual memory for ElasticsearchSteps:Clone this project:foo@bar:~$gitclonehttps://github.com/chaoss/grimoirelabGo todocker-composefolder and run the following command:foo@bar:~$cdgrimoirelab/docker-composefoo@bar:~/grimoirelab/docker-compose$docker-composeup-dYour dashboard will be ready after a while athttp://localhost:8000. The waiting time depends on the amount of data to fetch from a repo, for small repositories you can expect your data to be visible in the dashboard after 10-15 minutes.More details in thedocker-compose folder.Usingdocker runRequirements:Software:gitanddocker client. An example of working configuration:root@test-68b8628f:~#git--versiongit version 2.17.1root@test-68b8628f:~#docker--versionDocker version 19.03.1, build 74b1e89Hardware: 2 CPU cores, 8GB memory RAM and setElasticSearch and Kibana up and running.SortingHat up and runningSteps:Clone this project:$gitclonehttps://github.com/chaoss/grimoirelabGo to the project folder and run the following command:foo@bar:~$cdgrimoirelabfoo@bar:~/grimoirelab $dockerrun--net=host\-v $(pwd)/default-grimoirelab-settings/projects.json:/home/grimoire/conf/projects.json \-v $(pwd)/default-grimoirelab-settings/setup-docker.cfg:/home/grimoire/conf/setup.cfg \-t grimoirelab/grimoirelabYour dashboard will be ready after a while athttp://localhost:8000. The waiting time depends on the amount of data to fetch from a repo, for small repositories you can expect your data to be visible in the dashboard after 10-15 minutes.More details in thedocker folder.GrimoireLab componentsCurrently, GrimoireLab toolkit is organized in the following repositories:Data retrieval related components:Perceval: retrieval of data from data sourcesPerceval (bundle for OPNFV)Perceval (bundle for Mozilla)Perceval (bundle for Puppet)Perceval (bundle for Weblate)Graal: source data analysis with external toolsKingArthur: batch processing for massive retrievalData enrichment related components:GrimoireElk: storage and enrichment of dataCereslib: generic data processorSortingHat: identity managementData consumption related components:Kibiter: dashboard, downstream version of KibanaSigils: visualizations and dashboardsKidash: visualizations and dashboards managerManuscripts: reportingPlatform management, orchestration, and common utils:Mordred: orchestrationGrimoireLab Toolkit: common utilitiesBestiary: web-based user interface to manage repositories and projects for MordredThere are also somecomponents built by the GrimoreLab community,
which can be useful for you. Other related repositories are:GrimoireLab TutorialGrimoireLab as a whole(this repository)Contents of this repositoryThis repository is for content relevant to GrimoireLab as a whole. For example:Issues for new features or bug reports that affect more than one GrimoireLab module. In this case, let's open an issue here, and when implementing the fix or the feature, let´s comment about the specific tickets in the specific modules that are used. For example, when supporting a new datasource, we will need patches (at least) inPerceval,GrimoireELKand panels. In this case, we would open a feature request (or the user story) for the whole case, an issue (and later a pull request) inPercevalfor the data retriever, same forGrimoireELKfor the enriching code, and same forpanelsfor the Kibiter panels.Release notes for most GrimoireLab components (directoryreleases).Docker container for showcasing GrimoireLab (directorydocker).
Includes a Dockerfile and configuration files for the GrimoireLab containers
that can be used to demo the technology, and can be the basis for real
deployments. See more information in thedocker README.md file.If you feel more comfortable withdocker-compose, thedocker-composefolder includes instructions and configuration files to deploy GrimoireLab usingdocker-composecommand.Source code of the GrimoireLab components is available insrc. Each directory is a
Git submodule, so its contents will not be available after cloning the repository. To
fetch all the data, and get the latest version, you can run the following command:$gitsubmoduleupdate--init--remoteHow releases of GrimoireLab are built and tested:BuildingCitationIf you use GrimoireLab in your research papers, please refer toGrimoireLab: A toolset for software development analytics:APA style:Dueñas S, Cosentino V, Gonzalez-Barahona JM, del Castillo San Felix A, Izquierdo-Cortazar D, Cañas-Díaz L, Pérez García-Plaza A. 2021. GrimoireLab: A toolset for software development analytics. PeerJ Computer Science 7:e601 https://doi.org/10.7717/peerj-cs.601BibTeX / BibLaTeX:@Article{duenas2021:grimoirelab,
  author = 	 {Dueñas, Santiago and Cosentino, Valerio and Gonzalez-Barahona, Jesus M. and del Castillo San Felix, Alvaro and Izquierdo-Cortazar,  Daniel and Cañas-Díaz, Luis and Pérez García-Plaza, Alberto},
  title = 	 {GrimoireLab: A toolset for software development analytics},
  journaltitle = {PeerJ Computer Science},
  date = 	 {2021-07-09},
  volume = 	 7,
  number = 	 {e601},
  doi = 	 {10.7717/peerj-cs.601},
  url = 	 {https://doi.org/10.7717/peerj-cs.601}}ContributingContributions are welcome, please check theContributing Guidelines.