README.md

History of Objects for R

| CRAN version | Travis build status | AppVeyor | Coverage | | :-------------: |:---------------------:|:--------:|:--------:| | CRAN version | Build Status | AppVeyor Build Status | codecov|

chronicler implements the concept of history of objects. It is different from R's standard history of commands in that alongside each command it stores all objects that it creates, together with the information about their lineage. (Lineage of an object is the tree of its parent objects.)

The best way to learn about chronicler and see how history of objects can be helpful in data analysis, see "introduction" vignette. If you wish to give it a try in a pre-installed and pre-configured run-time environment, see "running the examples" vignette.

chronicler is in fact an umbrella-package: it comes with just a little code to organize the work of a number of lower-level packages. chronicler declares a dependency on storage, repository, ui, browser, search, defer and utilities.

Vignettes

Other documentation

Components (dependencies of chronicler)

Other packages implementing the repository of artifacts: * repository - middle layer with "business logic" * storage - store of R objects * defer - building and processing closures of R functions and data * ui - text-based user interface * browser - graphical artifact browser, implemented as an RStudio add-in * search - match artifacts against arbitrary files (data and plots) * utilities - a set of shared utility functions

FAQ

What is the use case for the repository of artifacts?

The goal is to build a generic mechanism to store artifacts of data analysis and to search and browse such repository. Effectively, this will extend R's history mechanism (see ?utils::history) to contain not only commands but also objects, data sets, plots, printouts, etc. Thus, there is no domain-specific use case other than extending a basic mechanism with the hope that users will adopt it according to their personal preferences and working styles.

What are the key aspects of the repository of artifacts?

  1. Store evey artifact present in any of the R sessions within a data analysis project.
  2. Provide a search mechanism to narrow the selection of artifacts and identify the artifact of interest.
  3. Provide an interactive artifact browser to recall the context of any given artifact.

My estimate is that the current implementation covers 60% of the first point, 45% of the second point, and about 10-15% of the third one. See the work plan for further information.



lbartnik/chronicler documentation built on May 23, 2019, 8:21 p.m.