Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement 4.0 test comments for readme #44

Closed
arosenbe opened this issue Apr 21, 2017 · 2 comments
Closed

Implement 4.0 test comments for readme #44

arosenbe opened this issue Apr 21, 2017 · 2 comments
Assignees

Comments

@arosenbe
Copy link
Contributor

The goal is to make the readme more user-friendly, see here.

@arosenbe arosenbe self-assigned this Apr 21, 2017
@arosenbe
Copy link
Contributor Author

@lboxell, @stanfordquan, @M-R-Sullivan

Have a look at the new readme below and let me know if you have any suggestions, if you'd like

Click for readme

GSLab Template

The GSLab Template is a minimum working example of the tools and organization used by projects in the GSLab. We use SCons and a few custom builders to execute scripts and track dependencies in a portable and flexible manner.

Prerequisites

You'll need the following to run the template. Homebrew for mac, Linuxbrew for linux, and pip make this easier.

  • Windows cmd.exe, Mac OS X bash, or Linux bash. Most users will have these standard.
  • Python 2.X for windows, mac or linux.
    • gslab_python version 4.0.0 or later of our python module with custom scons builders.
    • PyYAML a python module for parsing yaml files.
  • SCons. We recommend version 2.4 or later, but any will do.
  • git for version control.
    • git-lfs for versioning large files.
    • You'll need both git and git-lfs to clone the repository.
  • LyX (with instructions for LaTeX) the document processor.
  • Stata a proprietary data analysis software.
    • Add Stata to your PATH for windows, mac, and linux.
    • yaml a Stata ado file for parsing yaml files. FIX THIS URL.

Getting started

  1. Open up a shell, clone the repository and navigate to its root.
    git clone https://github.com/gslab-econ/template.git
    cd template
    
  2. You're ready to go. We'll prompt you to enter any information necessary and store it in user-config.yaml as your scripts run.
    • To build everything that has been modified or with dependencies in the repository that have been modified.
      scons
      
    • To build everything in a single directory of targets that has been modified and all of their dependencies that have been modified.
      scons build/path/to/directory
      
    • To build a single target that has been modified and all of its dependencies that have been modified.
      scons build/path/to/file.ext
      

Copying the template

If you want to create a repository with the same structure as this template you can fork it. If you want a repository without any of our git history, follow these instructions.

  • Create an empty repository in GitHub and clone it.
  • Copy the contents of this template into the empty repository. Make sure to exclude the .git folder, but include the .gitattributes and .gitignore files.
  • Create a user-config.yaml file and run scons.
  • Commit the changes and push to the new repository.

FAQ

What is user-config.yaml?

Each user is allowed to have different local specifications: We don't put any restrictions on where you keep large files, what you call your executables, or how you manage shared directories. We do need to find these things, and that's what user-config.yaml is for. Each user maintains an unversioned yaml file with these sorts of specifications. Each script uses its associated yaml-parsing module to read these specifications each time the script is run.

What do I put in user-config.yaml?

There's no "default" for user-config.yaml because it depends on system specifications and user preferences. Two things we do recommend keeping in user-config.yaml are the name of your Stata executable—which we'll prompt you to enter if necessary—and the location of a SCons cache directory—if you have one. An example where Example_User is running a factory-fresh StataMP and has local access to a directory named cache/template on Dropbox would be

stata_exec: statamp # StataMP-64.exe on windows
cache: /Users/Example_User/Dropbox/cache/template
Can I only use Stata for data analysis?

Nope, we have custom builders for Python and R, and you can use them with the same syntax as the Stata builder. If you're using R, make sure it's been added to your PATH and that you have a yaml-parsing package, such as yaml.

Can I write in LaTeX?

We don't have a custom builder for latex. You can still write in it, but you will have to specify the commands in SCons on your own.

Can I release to GitHub?

Yes, see here for directions on making a release.

License

The MIT License (MIT)

Copyright (c) 2017 Matthew Gentzkow, Jesse Shapiro

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

arosenbe added a commit that referenced this issue Apr 21, 2017
arosenbe added a commit that referenced this issue Apr 26, 2017
arosenbe added a commit that referenced this issue Jun 1, 2017
qlquanle pushed a commit that referenced this issue Jun 1, 2017
* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Pull request for #40: Add .sconsign.dblite to git ignore (#41)

* #40 Add .sconsign.dblite to git ignore

* #40 Delete .sconsign.dblite

* Pull requeset for #38: Readme clarity edits (#39)

* #38 Edits

* #38 Fixed statement regarding homebrew

* #38 Small edit

* #44 update readme.

* #46 #44 respond to PR

* #46 #44 grammar in readme.

* Update README.md
@arosenbe
Copy link
Contributor Author

arosenbe commented Jun 1, 2017

Pulled at #46. Summary comment:

  • Makes the readme more user friendly.
  • updates the readme with new gslab_python/template functionality.

qlquanle pushed a commit that referenced this issue Jul 27, 2017
* Update README.md

* gslab-python/#28 merge commit

* Revert "gslab-python/#28 merge commit"

This reverts commit bb30bc8.

* Pull request for gslab_python/#28: gslab_scons restructure (#27)

* gslab-python/#28 separate Source and Assets in sconscript

* #28 run with new log format

* gslab-python/#28 update start_log()

* gslab-python/#28 template formatting PR response

* gslab-python/#28 rework logging

* gslab-python/issue28_restructure respond to PR

* gslab-python/#28 restructure

* gslab-python/#28 restructure

* gslab-python/#28 merge commit

* Revert "gslab-python/#28 merge commit"

This reverts commit f4082c1.

* Delete online_appendix.pdf

* re-run after delete

debugging git-lfs issue on Windows

* delete output folder, rerun after delete

debugging git-lfs issue

* Pull request for gslab_python/#57: Fix stata bug in Windows (#37)

* gslab_python/#57 refactor check_stata()

* #57 split commands in check_stata_packages()

* gslab_python/issue57-winstata allow stata_flavor to be empty in the yaml file

* gslab_python/issue57-winstata fix percent sign error

* #37 Commits git-lfs

* Pull request for gslab-econ/gslab_python#59: Size warnings (#42)

* gslab-econ/gslab_python#59: Added size warnings to template

* #42: Added .sconsign.dblite to .gitignore

* #42: removed .sconsign.dblit

* #42: ran directory after deleting .sconsign.dblite

* Pull request for #43: Implements 4.0 release comments (#45)

* #43 Preliminary edits

* #43 More edits

* #43 Further edits

* #43 Edits gitlfs check

* #43 Small edits

* #43 Implements PR comments

* #43 Migrates configuration tests

* #43 PR comment edits

* #43 Implements prelim PR comments

* #43 Fixes commented out line

* #45: Misc. edits

* #45: Out-of-date error message

* #45: Edited comment on NoCache() for state of repo

* #45: updated version number

* #45: Changing to stata_executable

* #45: Updated readme

* Pull request for #44: Implement 4.0 test comments for readme (#46)

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Pull request for #40: Add .sconsign.dblite to git ignore (#41)

* #40 Add .sconsign.dblite to git ignore

* #40 Delete .sconsign.dblite

* Pull requeset for #38: Readme clarity edits (#39)

* #38 Edits

* #38 Fixed statement regarding homebrew

* #38 Small edit

* #44 update readme.

* #46 #44 respond to PR

* #46 #44 grammar in readme.

* Update README.md

* README format

* gslab-econ/divergence#11: added .lyx.emergency to .gitignore (#47)

* Pull request for gslab_python#68: Remove Google Drive from default in release.py (#48)

* #68 change import of load_yaml_value from  to

* #68 output commit for release

* #68 another fake release

* #68 move state_of_repo.log to atexit

* #68 rm NoCache

* #68 movecheck_and_expand_path to misc, add  to cache and release names

* #50 remove debug flags

* #50 add traceback default 1000

* Pull request for gslab_python#77-logext: Replace <*> with <source file name> in <sconscript_*.log>  (#51)

* gslab_python#77-logext

* gslab_python#77 rm python example script

* #53 add logging and cl_arg to readme (#54)

* #52 CacheDir fix

* Pull request #52: improve documentation in README (#57)

* #52 improve documentation in README

* #52 wording changes in readme for PR

* #52 lowercase StataMP in readme

* Update README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant