Skip to content

Project Outline

Matthew Gentzkow edited this page Jun 30, 2018 · 25 revisions
  • simplify make logging functions so log argument is passed explicitly to builders
  • errors in make.py not reported to stdout; program just stops working
  • change make.py so can be run from any directory -- just define directory root path at top

get_inputs

  • should delete any files in /input/ that are not in inputs.txt
  • create symlinks for repo files
  • use yaml paths for

setup.py

  • Install python tools
  • Set and check executables (issue warnings not errors)
  • GSLab Python version

config_global.yaml

  • program requirements

config_user.yaml

  • external storage locations

w/ Hunt

  • Dropbox
  • Issue scope

TO DO

  • Create revised RA manual
  • Write README
  • Create lib directory template
  • Scripts in more languages
  • Illustrate parameters file + temp directory
  • Update setup scripts
    • Check installed software
    • Install dependencies
    • Get external paths from user
    • Get local settings from user
  • Update gslab_make library
    • New get_inputs() command to create links
    • logging state of inputs
    • logging state of repo at end of make script
  • Release protocol

Overview

Tools and Setup

  • Github

  • Git LFS

  • Python

  • R

  • Stata

  • Lyx

  • Other tools

  • Checklist to confirm setup: Checking out template repo and running

Issues

  • Issue scope
  • Deliverables
  • Final comment
  • Github Projects

Workflow

  • Branch
  • Commit
  • Pull Request
  • Merge
  • Exceptions to Standard Workflow

Directory Structure

  • Scope (self contained; outside links)
  • Directories
  • Inputs and outputs
  • Build code
    • Make.py
    • inputs.txt
  • Standard Directories
    • data
    • analysis
    • paper_slides
    • lib
  • LFS and .gitattributes
  • .gitignore
  • SCONS

Coding Principles

Paper Production

Appendix A: Style Guides

Appendix B: SCONS

Appendix C: Stanford Computing Resources

  • Workstations
  • Storage
  • Dropbox
  • Clusters
  • IT Support

Appendix D: Legacy Tools


Misc notes

  • Github flow suggests using hyphens in branch names and making them long / descriptive

  • Consider switching workflow so pull reqeust itself is final comment on an issue; See gentzkow/template #3

  • Protocol for commits outside of issues:

  • Should explain use of .yaml files

  • To illustrate

    • Saving metadata separately from code; no hard coded constants emphasized in RA manual
    • Temp directory
  • Specify required gslab_python version

Workflow should be:

Pull request title is "PR for #XX: Original issue name" Pull request description is "Closes #XX" followed by instructions to peer reviewer if any Assigned to assignees of original issue Assignee chooses peer reviewers Merge commit message should be default Delete branch Final comment summarizes what was learned and links to deliverable; headed with "# Summary"

So simplest version is Pull request title is "PR for #XX: Original issue name" Pull request description is "Closes #XX" Assigned to assignees of original issue Merge commit message default Delete branch Final comment summarizes what was learned and links to deliverable; headed with "# Summary"

Clone this wiki locally