-
Notifications
You must be signed in to change notification settings - Fork 36
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
Review current implementation #9
Comments
@z-y-huang @jcconway @danielagonzalez Here are some small to dos I would propose. With these as with everything else on this thread you should holler if you disagree with any of these changes.
|
Here are some more major to dos to consider.
|
Note: in (4) above, I realize we can actually omit the
In parsing this we should make sure we're being friendly about whether you include leading or trailing /'s. I.e., all of the following should work fine
|
Note: (1) above might be a nice place to use git submodules. We'd just want to make sure doing so doesn't add too much complexity or create scope for extra bugs. |
Thoughts about the changes:
(1): Agree that this would probably be more user-friendly. It looks like we can specify submodules to point to a specific commit, which removes the burden of documentation. Would require more git mastery, but that seems like a small cost. (2): I prefer having users install software libraries on their machines just because these quickly add up and some libraries can be very large. Extreme example, but just Tensorflow alone is ~500 MB. This can also be burdensome for R, where the typical user is using at least a dozen packages per script. |
Great. I'm fine with setup->install for the directory, but we don't want to name scripts e.g. Let's keep tab delimiters then. It makes the files a lot easier to read than with '|'. Let's do (1) but skip (2) then. @z-y-huang Does this mean you're OK with all the items on my list? Any other to dos you want to add based on your review? @jcconway, @danielagonzalez Let us know your reactions. |
Yep! I'm still thinking about (6) more, but everything else makes sense. To-dos I'd like to add (though these are lower priority)
In terms of timeline, I know our goal was to have something shippable by winter break and then continue working on long-term to-dos afterwards. What are we currently imagining the version in a couple of week to look like? Do we want to focus on implementing as many of the to-dos as possible, or to have a completely stand alone product by then (so something stable with complete documentation). |
Great. I agree about your to dos. I think we can be at the mark we want for winter break if we:
We could then release this as v0.1.0. We may want to solicit feedback from a wider group of people in parallel with executing some of the longer-term to dos. |
@gentzkow and @z-y-huang, I agree with the discussion on the minor to-dos above, with @z-y-huang's additional to-dos, and generally with the major to-dos. I'd also add to our to-do list that we take another pass through the unit tests, ideally before asking a wider group to test. Two thoughts on a couple of these major to-dos:
|
Thanks @jcconway. The submodule question is a good one. I think we should start with just hard-committing the gslab_make library, see how that goes, and then consider switching to the submodule approach if we see a benefit. I share the concern that that could add an unneeded layer of complexity / another failure point. On /external/, I think the usual case will be that if there are many external files the target will be an entire directory so that will work fine. If we encounter a lot of cases where we wish we could create subdirectories we can consider adding that functionality. |
Great, I agree with both suggestions above. Flagging this gslab_make/submodule point for @z-y-huang as well. |
Played around with (1) Where to install the submodule So given a clean clone of the parent repository: To update (3), you go the submodule directory, check out the (submodule) commit you would like the submodule to point to, then go back to the parent directory and stage the change. Where So if we're just using submodule so that users can easily import a version-specific |
@z-y-huang thanks for looking into |
Thanks both. Other potential advantages of git submodule
I'll leave it to you guys to decide which we want to try first. |
Would we actually want users to be able to change something in their local version of By simpler dependency system, I think your quote is probably referring to using some variation of |
@z-y-huang, I agree we don't want people changing their local version of |
Just to check, when you want external.txt to have its own /external/ directory, do you want it to have its own logging files as well? |
I thought about this and I lead toward not having separate logging files. So long as the logs are ordered so it's easy to see which are inputs.txt and which are externals.txt I don't see much cost to having them combined. The reality is we'll probably look at these only rarely (when we're trying to run down some unexpected change in results, for example) and the extra cost in those cases of having to sort through a longer log file doesn't seem significant. |
@gentzkow @z-y-huang @jcconway Sorry for the delay in responding, but these to-dos all sound good to me! |
Great. @z-y-huang: Can you take charge of converting our to do list from this thread into new issue(s) for the things we want to do by Dec as well as a longer-term to do list on the outline? Then you can go ahead and close this tread. Note that it's fine to bundle many smaller to dos into one or more issues. |
@gentzkow, can do! |
@gentzkow, @jcconway, @danielagonzalez: General status update and summary, the following to-dos I already completed last week:
To-dos that we want to finish by winter break that I will make into new issues:
These include some of the to-dos that were previously in the long-term list, but that I think are feasible to finish by the deadline. Remaining long-term to-dos have been moved to the project outline. @danielagonzalez: I know you're currently working on making some additions to the unit tests. I was thinking you could continue working on that as well as make changes to the unit tests accordingly as we update @jcconway: I think I can probably finish up the remaining to-dos tomorrow (I have my metrics final today unfortunately) and I'm not sure how efficient it is to split them given that they're all related to linking. Maybe you could start on documentation and something on the long-term to-do list? Open to thoughts on how we can best coordinate. |
@z-y-huang, thanks for the great work and good luck on the metrics final! I currently have some pressing work on other projects and with my own finals week, and so I don't think I'll get to anything on the long-term to-do list this week. I'm thinking that you might be able to write the documentation more efficiently given that you're more familiar with how you implemented (1), but I'll plan to check back in at the end of this week or early next week to see where things stand and where I can be most helpful. |
@jcconway, sounds good! Good luck with finals! |
@z-y-huang: Is this task ready to close? |
…emplate accordingly (#12) * Begin updating config and analysis make.py for #8 * Update make.py scrips for #8 * Add functionalities to config for #8 * Clean up config for #8 * Change to requirements.txt for #8 * Add gslab_make submodule for #9 * Update gslab_make submodule to track issue8_update_template * Test git submodule * Test git submodule * Test git submodule * Change config to setup for #9 * Separate input and external folders for #9 * Implement linking changes for #10 * Clean up code * Add to setup documentation * Make local import more robust * #10 Correct files inadvertenly committed directly instead of as LFS pointers * #10 Bug fixes in setup_repository.py * Bugfix setup_repository.py for #10 * Removed submodule for #10 * Commit gslab_make, update template for new external.txt formatting * Bugfix gslab_make commit * Fix formatting for input.txt and external.txt for #10 * Add *external/ to .gitignore and organize lib directory for #10 * #10 Update .gitignore * #10 Fix LFS pointer error for gslab_make/tests/input/zip_test_file.zip * #10 Fix LFS pointer errors for paper_slides PDFs * #10 Add input directories to .gitignore * Update path to look for gslab_make for #10 * Reorder error checking for bugfixing * Escape special characters in path for run_stata for #10 * #10 Remove input directories -- will be ignored by git going forward * #10 Correct format of external and input in .gitignore * Fix typo * Update documentation for #10
Review our current implementation of the template + gslab_make, and discuss next steps.
The goal is to figure out how to make the template as simple, intuitive, and robust / bug proof as possible.
The text was updated successfully, but these errors were encountered: