A tool for exploring the history of a project (e.g. getting API entities that were available at a given commit)
# Clio [](https://github.com/olekscode/Clio/actions/workflows/test.yml) [](https://coveralls.io/github/olekscode/Clio?branch=master) [](https://raw.githubusercontent.com/olekscode/Clio/master/LICENSE) **Clio** is a tool for exploring the history of a project (e.g. getting API entities that were available at a given commit) In Greek mythology, [Clio](https://en.wikipedia.org/wiki/Clio) is the muse of history. ## How to install it? To install `Clio`, go to the Playground (`Ctrl+OW`) in your [Pharo](https://pharo.org/) image and execute the following Metacello script (select it and press `Do-it` button or `Ctrl+D`): ```Smalltalk Metacello new baseline: 'Clio'; repository: 'github://olekscode/Clio/src'; load. ``` ## How to depend on it? If you want to add a dependency on `Clio` to your project, include the following lines into your baseline method: ```Smalltalk spec baseline: 'Clio' with: [ spec repository: 'github://olekscode/Clio/src' ]. ``` If you are new to baselines and Metacello, check out the [Baselines](https://github.com/pharo-open-documentation/pharo-wiki/blob/master/General/Baselines.md) tutorial on Pharo Wiki. ## How to use it? ```st collector := ClioDataCollector new repositoryName: 'PolyMath'; repositoryOwner: 'PolyMathOrg'; baselineName: 'PolyMath'; oldVersion: 'v1.0.3'; newVersion: '46ffd24'; yourself. collector cloneRepository; loadPackages; extractCommits. ``` Then you can inspect `colector > data` or export it to the JSON file: ```st dir := '/Users/oleks/Documents/Research/Experiments/DepMiner2' asFileReference. file := dir / (collector data repositoryName, '.json'). collector data saveToJsonFile: file. ClioData readFromJsonFile: file. ```