SpaDES module repositories
A ‘module repository’ is simply a web site that serves files using a particular directory structure (the same directory structure used in a local SpaDES module repo).
Our module repo is at https://github.com/PredictiveEcology/SpaDES-modules
This is the default repo in SpaDES.
- it's public
- it's easily accessible using `downloadModule()`
getOption('spades.moduleRepo') ## default url prefix is GitHub.com
## [1] "PredictiveEcology/SpaDES-modules"
 
Other SpaDES module repositories
Anybody can create their own repository as well (R has CRAN, Rforge, BioConductor and many lesser used ones)
downloadModule() has a repo argument.
 
Our SpaDES module repository
- Initially, most SpaDESmodules will not be there
- 
e.g., SpaDES-LBM (SpaDES – Landis Biomass Succession) is not there yet (we would like to publish it first)
 
What is GitHub?
Github.com is a free* code archive and hosting service.
Allows hosting of public and private code repositories, build around git version control software.
GitHub provides:
- code archiving/distribution
- version control
- publication (code, html pages, and others)
- collaboration
- bug tracker
- user friendly web interface and desktop client
 
Using GitHub for collaboration
We, and many others, use GitHub extensively for all our group’s work
- Like Dropbox, in the sense that there is a cloud version, and potentially many local copies all over the place
- Unlike Dropbox, the copies on people’s computers are not automatically there
- Requires manual intervention
 
GitHub Client
- For your local copy of the files, you need an extra piece of software on your computer (like the “Dropbox client”) 
- 
gitand GitHub both require a bit of learning:
 
- 
There are many other great gitclients:
 
 
shiny apps
- Massively powerful
- Allows the process of data wrangling, data visualization, data analysis, etc. to be made into interactive web (and mobile) apps
- By moving the web app development into R (instead of taking R outputs and putting them into a web development kit), means that the analysis power can be at the interactive stage
- Also, data analysts can be making web pages
 
shine function
SpaDES.shiny (on GitHub) has a simple function that takes any simList and makes a web app from it:
Try it!
 
Themes
- Lots of developers making shiny themes
- Often they are wrappers on javascript code
- So your look can be easily modified without many web development skills
 
Data sources
Data sharing
- We have shown a way to specify default data sources
Where was that?
- We have shown a way to specify default data manipulations and data preparations of those default data
Where was that?
 
If there are complex data sets?
- And from many sources?
- Can still use sourceURLindefineModuleand create an.inputObjectsfunction which will do all the manipulations
 
How to adequately describe data?
- It is clear that there is not enough information contained in the metadata to fully describe everything about the required dataset(s) type(s)
- 
Use the .Rmd file to describe more for human eyes
- It is very difficult to algorithmically define data in a generic way
- There are standards, but SpaDESdoesn’t tap into those (yet!)
 
Overriding default datasets
- If a user passes an object that a module requires (in ‘defineModule’ metadata) 
- The default data will not be used 
- checksums 
- externally hosted data 
- include data with your module code