R Package Documentation on the Web:

Zelig use case

Current Setup

Homepage

About/

Community/

Etc

Package docs

Current Setup: Workflow

Sphyinx

OpenScholar

I want to update the Homepage/About/etc . . .

I want to update the package docs . . .

Roxygen

Login

Click on widget to edit

Save

Login (GitHub)

Update RestructuredText

Commit

Jenkins build

Login (GitHub)

Update LaTeX

Build

Commit/Push to CRAN

Current Setup: Workflow

Sphyinx

OpenScholar

I want to update the Homepage/About/etc . . .

I want to update the package docs . . .

Roxygen

Login

Click on widget to edit

Save

Login (GitHub)

Update RestructuredText

Commit

Jenkins build

Login (GitHub)

Update LaTeX

Build

Commit/Push to CRAN

Remember to keep in Sync (links, css)

Issues

  • Lots of overlapping technologies
  • Source is in three places (2 GitHub repos + OpenScholar)
  • Reproducible code/previous versions spread over 2 repos, some not reproducible/version controlled
  • Difficult for external contributions

Issues

  • Lots of overlapping technologies
  • Source is in three places (2 GitHub repos + OpenScholar)
  • Reproducible code/previous versions spread over 2 repos, some not reproducible/version controlled
  • Difficult for external contributions

Causes

  • Large error surface -> more errors
  • Hard to find error
  • Hard to fix errors
  • Not practicing what we preach
  • Not a model for others

Ways Forward

1. Closest Analoge
2. Most Streamlined
3. Min OpenScholar 

4. Max OpenScholar 

Possibilities

Key Question

How should Open Scholar fit into a "best practices" software documentation workflow?

(Possible) Decision Criteria

  • User friendly
  • Reproducible
  • Version controlled
  • Minimise technology overlap
  • Syncing updates across platforms
  • Cost effective (open source first)
  • Persistant

Closest Analogue

OpenScholar

I want to update the Homepage/About/etc . . .

I want to update the package docs . . .

Roxygen + pkgdown

Login

Click on widget to edit

Save

Login (GitHub)

Update rmarkdown

Build

Commit/Push to CRAN

Remember to keep in Sync (links, css)

Remaining Issues

  • Fewer, overlapping technologies
  • Source is in two places (1 GitHub repo + OpenScholar)
  • Reproducible code/previous versions spread over 1 repo, some not reproducible/version controlled
  • Difficult for external contributions

Most Streamlined

I want to change/add anything

IQSSdevtools (Roxygen + pkgdown)

Login (GitHub)

Update rmarkdown

Build

Site hosted on package's GitHub repo in docs/ with IQSS URL

 

OpenScholar link via Dataverse

Push to GitHub/ CRAN/Dataverse

Benefits

  • Minimal number of technologies
  • Source is in one place
  • Reproducible code
  • Full version control
  • All docs stay in sync
  • Easy for external contributions (pull request of R markdown changes)
  • General solution to advocate

Min OpenScholar 

I want to change/add anything

Roxygen + osdown

Login (GitHub)

Update rmarkdown

Build

Push to GitHub/ CRAN/Dataverse

Site hosted on package's GitHub repo in docs/ with IQSS URL

 

OpenScholar link via Dataverse

Min OpenScholar

I want to change/add anything

Roxygen + osdown

Login (GitHub)

Update rmarkdown

Build

Push to GitHub/ CRAN/Dataverse

osdown [OpenScholar-down]:

a fork of pkgdown with Open Scholar branding/best practices

Benefits

  • Minimal number of technologies
  • Source is in one place
  • Reproducible code
  • Full version control
  • All docs stay in sync
  • Easy for external contributions (pull request of rmarkdown)
  • Promotes OpenScholar

Costs

R + web development resources needed to create osdown  

Max OpenScholar

I want to change/add anything

Roxygen

Login (GitHub)

Update rmarkdown

Build

New OpenScholar Capability: Open Scholar listens to GitHub for changes to HTML files and renders the result using OpenScholar templates.

Push to GitHub/ CRAN/Dataverse

Benefits

  • Small number of technologies for users
  • Content source is in one place
  • Reproducible content code
  • Full version control of content
  • All docs stay in sync
  • Easy for external contributions (pull request of rmarkdown)
  • Promotes Open Scholar

Costs

Potentially very resource intensive to setup and maintain

 

  • Is OpenScholar WYSIWYG possible?
  • If so, would require GitHub integration, becomes less general.

1. Closest Analoge
2. Most Streamlined
3. Min OpenScholar 

4. Max OpenScholar 

Possibilities

r package docs on the web

By Christopher Gandrud

r package docs on the web

  • 1,179