-
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
Test Github-Overleaf workflow #87
Comments
@ShiqiYang2022 Just acknowledging that this is still on my plate -- sorry to be slow to get to it! |
@ShiqiYang2022 I'm finally getting down to testing this. Some small notes that are not really specific to the Github-Overleaf workflow
If you could open appropriate issues to address (1) and (2) and just go ahead and fix (3) in |
@gentzkow Thanks! Sorry for the inconvenience. Replies to #87 (comment):
I believe this is an easy fix, so I implemented directly in b89a02f.
I re-cloned the repo and did the full run in branch (template) SIEPR-C02G50GUML86:github_folders shiqiyang$ git clone git@github.com:gentzkow/template.git
Cloning into 'template'...
remote: Enumerating objects: 2214, done.
remote: Counting objects: 100% (1098/1098), done.
remote: Compressing objects: 100% (564/564), done.
remote: Total 2214 (delta 633), reused 878 (delta 530), pack-reused 1116
Receiving objects: 100% (2214/2214), 9.46 MiB | 4.56 MiB/s, done.
Resolving deltas: 100% (1101/1101), done.
(template) SIEPR-C02G50GUML86:github_folders shiqiyang$ cd template
(template) SIEPR-C02G50GUML86:template shiqiyang$ git fetch origin
(template) SIEPR-C02G50GUML86:template shiqiyang$ git checkout issue87_workflow_test
branch 'issue87_workflow_test' set up to track 'origin/issue87_workflow_test'.
Switched to a new branch 'issue87_workflow_test'
(template) SIEPR-C02G50GUML86:template shiqiyang$ cp setup/config_user_template.yaml config_user.yaml
(template) SIEPR-C02G50GUML86:template shiqiyang$ git submodule init
Submodule 'lib/gslab_make' (https://github.com/gslab-econ/gslab_make.git) registered for path 'lib/gslab_make'
(template) SIEPR-C02G50GUML86:template shiqiyang$ git submodule update
Cloning into '/Users/shiqiyang/Documents/github_folders/template/lib/gslab_make'...
Submodule path 'lib/gslab_make': checked out 'c08d6254f94f259ebd6d0cad994979911ab578c6'
(template) SIEPR-C02G50GUML86:template shiqiyang$ python run_all.py
*************************
* Running module `data` *
*************************
{'root': '..', 'config': '/Users/shiqiyang/Documents/github_folders/template/config.yaml', 'lib': '/Users/shiqiyang/Documents/github_folders/template/lib', 'config_user': '/Users/shiqiyang/Documents/github_folders/template/config_user.yaml', 'input_dir': 'input', 'external_dir': 'external', 'output_dir': 'output', 'output_local_dir': 'output_local', 'makelog': 'log/make.log', 'output_statslog': 'log/output_stats.log', 'source_maplog': 'log/source_map.log', 'source_statslog': 'log/source_stats.log', 'versions_log': 'log/versions.log'}
Cleared: `output`
Cleared: `log`
Starting makelog file at: `/Users/shiqiyang/Documents/github_folders/template/data/log/make.log`
Input links successfully created!
External links successfully created!
Source logs successfully written!
Version logs successfully written!
Executing command: `python "/Users/shiqiyang/Documents/github_folders/template/data/code/merge_data.py" `
Executing command: `python "/Users/shiqiyang/Documents/github_folders/template/data/code/clean_data.py" `
Output logs successfully written!
WARNING! Certain files tracked by git exceed the config size limit (0.5 MB). See makelog for list of files.
Ending makelog file at: `/Users/shiqiyang/Documents/github_folders/template/data/log/make.log`
*****************************
* Running module `analysis` *
*****************************
Cleared: `output`
Cleared: `log`
Starting makelog file at: `/Users/shiqiyang/Documents/github_folders/template/analysis/log/make.log`
Input links successfully created!
External links successfully created!
Source logs successfully written!
Version logs successfully written!
Executing command: `python "/Users/shiqiyang/Documents/github_folders/template/analysis/code/analyze_data.py" `
Output logs successfully written!
Ending makelog file at: `/Users/shiqiyang/Documents/github_folders/template/analysis/log/make.log`
*********************************
* Running module `paper_slides` *
*********************************
Removed: `/Users/shiqiyang/Documents/github_folders/template/paper_slides/input`
Cleared: `output`
Cleared: `log`
Starting makelog file at: `/Users/shiqiyang/Documents/github_folders/template/paper_slides/log/make.log`
Input copies successfully created!
External copies successfully created!
Source logs successfully written!
WARNING! The following target files have been modified according to git status:
/Users/shiqiyang/Documents/github_folders/template/data/output/chips_sold.pdf
Version logs successfully written!
Executing command: `pdflatex -output-directory=../latex_auxiliary_dir "/Users/shiqiyang/Documents/github_folders/template/paper_slides/code/paper.tex"`
Executing command: `pdflatex -output-directory=../latex_auxiliary_dir "/Users/shiqiyang/Documents/github_folders/template/paper_slides/code/online_appendix.tex"`
Executing command: `pdflatex -output-directory=../latex_auxiliary_dir "/Users/shiqiyang/Documents/github_folders/template/paper_slides/code/slides.tex"`
Output logs successfully written!
Ending makelog file at: `/Users/shiqiyang/Documents/github_folders/template/paper_slides/log/make.log`
It would be great if those errors/problems addressed properly in branch |
@ShiqiYang2022 Here is the result of my testing. Manual OptionCreating a new project and uploading was quick and easy. The I also agree about the cons you had originally outlined here. Of these, I am not so worried about losing the granular commit history / attribution. That is more important for code than for I am more worried about the fact that you can't upload a whole directory to Overleaf (your Con number 4 here) E.g., if we have a new version of the
Mirror Repository OptionAll of the instructions worked well for me. The only thing I noted was that in this step: I needed to use the SSH address of the repo rather than the https address because I use SSH keys for authentication. My overall conclusion is that this is a creative and really neat solution, but that the costs it adds are too high for me to recommend it as a standard workflow. I think for my own work, at least, the manual approach will be faster. If we can solve the upload issue with Dropbox sync as above the only big loss to the manual approach is the granular commit history, which I'm not so worried about. My main concerns w/ the mirror repo approach are:
I'm therefore going to vote that we add the manual approach to the lab manual and archive the mirror repo approach. I don't think we want either of these permanently on the Possible Third Option?One other thought I had: For some projects, people may prefer to have a really Overleaf-centric workflow where there is a single Overleaf project per Github repo and everybody makes edits there simultaneously even if they're part of separate issues. This also allows using Overleaf features like commenting, version history, etc. I think we can allow this, if we follow something like the following:
The main loss of this relative to our main manual option is that the commits for one issue are going to get comingled with changes that are part of other issues. That's not great, but it seems a reasonable price to pay in cases where people feel strongly about using Overleaf in the "traditional" way. (Certainly better than what we currently do w/ the FB2020 projects where what is on Overleaf is never committed to the Github repo!) Curious to hear your thoughts on this. |
@ShiqiYang2022 Thanks for the fixes here. On (2), is there a reason we can't have I checked that everything works on the branch -- perfect! |
@gentzkow Thanks!
I agree we need to delete |
@gentzkow Thanks again for the detailed feedback. I went through and played with workflows in #87 (comment), attached is my thoughts. Manual OptionI agree and resonate with your perspective on losing the granular commit history / attribution of I played with Dropbox sync, and I think it is a good solution of uploading the whole directory in Manual Option!(and, thanks!) The only concern for this method is Dropbox Synchronization is a Overleaf premium feature. Overleaf premium is open for Stanford users, but I worry its accessibility of collaborators. While I played with manual option, another note arose in my mind when there's collaboration: Dropbox sync permits us to upload the whole directory, but it does not have a brake/warning for file conflicts. Suppose Alice made changes on A potential solution for this is, make sure (1) we always instantly update the changes in Mirror Option
Revisit of main concernsI agree with all, and I would like to add my two thoughts:
For decision: I agree to add manual and archive mirror. I propose to provide a link to the archived mirror in the lab-manual, suggesting that we use mirror if we expect the issue is long and big. Third Option (Overleaf-centric workflow)I think this is a feasible option. I think Overleaf-centric workflow will significantly fail only if there are two separate issues which both need big changes with respect to text(because it will scramble all the text edits). If there's only one issue that mainly focus on text improvement, I think the workflow works for me. Worst case scenario, we use this when we have more than one text edit issue. I think it would also not be a big problem, because people already feel strongly about using Overleaf in the "traditional" way, that means they implicitly accept the lost of potential mingle commits. I agree that we should include a draftable diff of the PDF as part of the final comment for all such issues. Also, I propose in such issues, we need to request the contributor for text edits in other issues to review the text changes in associated PR. Minor Replies
Thanks for the great catch! I updated this in the instructions. Thanks! |
Brilliant. Thank you @ShiqiYang2022! I agree w/ all points above. With that, I think you can close out this issue and we can wrap the work on Overleaf sync. Thanks for all your very hard work here!! |
@gentzkow Thanks! It's so nice to see we converged Overleaf sync. The next steps are: (1) Address the problems in I will implement those bullets listed next week. |
I am thinking an improve that might make the manual option easier to manage. Instead of creating a mirror Overleaf project for each issue, we create mirror For instance, for this issue #87, we create an auxiliary folder called The potential loss is, the collaborators might by mistake update Let me know your thought on this, thanks! |
Yes, great idea! Do we need to have main |
@gentzkow Thanks! I agree main What I have previously in mind is having a full copy of the github repo synced to Overleaf(using github sync), like we did in I think it's better to let all collaborators to follow the standard workflow, i.e. creating issues for text edits, so I agree main |
Great. I think given this workflow we should not use Github sync at all.
… Message ID: ***@***.***>
|
Per #87 (comment) and given all bullets in #87 (comment) is properly addressed, I am closing this issue. |
Summary + DeliverablesIn this issue(#87) we test the Github-Overleaf workflow proposed in #84 (comment), and revise the workflow according to #87 (comment) #87 (comment). This thread continued in the associated PR (#93). We added our workflow in lab-manual/wiki. The archived mirror option is mirror-repo-workflow.pdf. Merged to master in 1f2d868. |
The purpose of this issue(#87) is opened for @gentzkow to test the Github-Overleaf workflow proposed in #84 (comment), while @ShiqiYang2022 providing support and fix anything wrong/unclear iteratively. The instruction of the workflow can be found here. I suggest we can use this issue as the issue we want to sync to Overleaf.
@gentzkow: Hi Matt -- I did not provide any further details apart from this instruction, because I think we want to mimic the feeling of outside lab-users. But I am happy to provide more details if needed, thanks!
The text was updated successfully, but these errors were encountered: