kai.ā.ulu n.
- Community, neighborhood, village. ʻOia nō kekahi o nā kānaka waiwai nui a kūʻonoʻono ma iā mau kaiāulu, he was one of the wealthiest and most prosperous persons of these communities.
Kaiaulu is an R package and common interface that helps with understanding evolving software development communities, and the artifacts (gitlog, mailing list, files, etc.) which developers collaborate and communicate about. You can read more Kaiaulu's motivation and architecture in our paper's pre-print.
Kaiaulu provides:
- Parsers to tabulate and rename software artifacts (
R/parser.R
) - Filters to control the scope of analysis (
R/filter.R
) - Downloaders for both Issue Trackers, Pull Requests, and Mailing Lists (
R/download.R
,R/github.R
) - Networks to represent software communities as graphs (
R/network.R
,R/graph.R
) - Identity Matching to connect artifacts (
R/identity.R
) - Metrics commonly used in software research (
R/metrics.R
) - Extended Interface to third party tools for further analysis (
R/dv8.R
) - Reusable Analysis Notebooks which comprehensively present above features, and warn for threats and pitfalls known on research literature (
vignettes/
) - CLI Interface for server-side analysis on multiple projects (
exec/
) - Project Configuration Files that are readable, shareable, and enable reproducibility between both Notebooks and CLI (
conf/
) - A common and simple data model using tables and sane nomenclature to various resources which can be combined performing table joins.
Please ask questions on Discussions or open an issue on the issue tracker if you found a bug, or your answer can't be found in the documentation. A more comprehensive and ever growing list of features is available on the Project Wiki.
Kaiaulu has been tested on OS X and Ubuntu. For Windows and other OS users, try Virtualbox, VMware, or any other software to run virtual machines for Ubuntu.
- Clone this repo
- Open
kaiaulu.Rproj
using RStudio - Run the unit tests
devtools::test()
. If any fail, and you are not clear why, feel free to ask in Discussions - Build the documentation
devtools::document(roclets = c('rd', 'collate', 'namespace'))
. - Build Kaiaulu (Top right pane in RStudio -> Build tab -> Install and Restart)
- Run
vignettes/kaiaulu_architecture.Rmd
- See the Wiki's Third Party Tools Setup if you are using a Notebook that relies on them. These require very minimal overhead by downloading a binary file, and specifying their path on
tools.yml
(see example on the repository).
To get started, browse through the docs.
Social Smells | DV8 |
---|---|
- Read the NEWS file.
- See the CONTRIBUTING file for contributing questions, issues and pull requests.
If you are using Kaiaulu in your research, please cite the following work:
@InProceedings{Paradis:2022,
author="Paradis, Carlos and Kazman, Rick",
editor="Scandurra, Patrizia and Galster, Matthias and Mirandola, Raffaela and Weyns, Danny",
title="Building the MSR Tool Kaiaulu: Design Principles and Experiences",
booktitle="Software Architecture",
year="2022",
publisher="Springer International Publishing",
address="Cham",
pages="107--129",
isbn="978-3-031-15116-3",
doi = "10.1007/978-3-031-15116-3_6"
}
For a list of previous work that used Kaiaulu, see vignettes/kaiaulu_case_studies.Rmd
. If that's you, feel free to send a pull request modifying the Notebook with your work, and if possible, include a Bibtex record.