-
Notifications
You must be signed in to change notification settings - Fork 35
Project Outline
- 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"