Date: October 10 2020
Summary: DrWatson is a strong tool for encouraging reproducible science and enforces good project management.
Keywords: ##zettel #julialang #project #management #reproducible #science #archive
Today, I spent some time learning about DrWatson.jl. I have always wanted to use the project and now I finally have a reason to work with it! I enjoyed the default layout provided by DrWatson - here are some general thoughts on the matter.
The project directory provided by DrWatson is automatically setup. The defaults are quite nice and I did not change anything except for ignoring the data files:
│projectdir <- Project's main folder. It is initialized as a Git │ repository with a reasonable .gitignore file. │ ├── _research <- WIP scripts, code, notes, comments, │ | to-dos and anything in an alpha state. │ └── tmp <- Temporary data folder. │ ├── data <- **Immutable and add-only!** │ ├── sims <- Data resulting directly from simulations. │ ├── exp_pro <- Data from processing experiments. │ └── exp_raw <- Raw experimental data. │ ├── plots <- Self-explanatory. ├── notebooks <- Jupyter, Weave or any other mixed media notebooks. │ ├── papers <- Scientific papers resulting from the project. │ ├── scripts <- Various scripts, e.g. simulations, plotting, analysis, │ │ The scripts use the `src` folder for their base code. │ └── intro.jl <- Simple file that uses DrWatson and uses its greeting. │ ├── src <- Source code for use in this project. Contains functions, │ structures and modules that are used throughout │ the project and in multiple scripts. │ ├── README.md <- Optional top-level README for anyone using this project. ├── .gitignore <- by default ignores _research, data, plots, videos, │ notebooks and latex-compilation related files. │ ├── Manifest.toml <- Contains full list of exact package versions used currently. └── Project.toml <- Main project file, allows activation and installation. Includes DrWatson by default.
I started DrWatson up in my Julia REPL and ran the following as I already had a git repo set-up and files in the repo:
using DrWatson initialize_project("NeuriViz"; authors = ["Jacob Zelko", "Zachary P Christensen"], force = false, git = false, placeholder = true)
It set up the structure I needed and was quite easy to use. DrWatson was created by George Datseris.
Zelko, Jacob. DrWatson.jl. https://jacobzelko.com/10262020033701-drwatson-pkg. October 10 2020.