-
Notifications
You must be signed in to change notification settings - Fork 10
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
feat(git-lfs): use Git LFS for /cache and /generated folders #364
base: main
Are you sure you want to change the base?
Conversation
What are the impacts on using LFS? |
ce8a406
to
fb3c8d0
Compare
640dc5b
to
a36671d
Compare
It should improve the git command times (
Once configured, it should be the same, but if you don't configure a contributor won't be able to review it locally. I would like the maintainer to test in their local before merging this, so we make sure we are all happy with the changes (the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Better to wait to hear from the full-time maintainers. They will have more insights into Git LFS plans
Converted back to draft as I still want to run some experimentation |
Hey @oscard0m, I love that you're thinking of and walking through process optimizations like this - especially with this particular repo. While I don't particularly like the idea of adding another tool dependency to be able to work with Octokit, sometimes, as you've pointed out - it's beneficial. You and @wolfy1339 bring up good points about the Octokit org needing to support LFS and having a more expanded storage quota - those are things @kfcampbell, and I can chase down if/when needed. You made me wonder if there are other options we should entertain to approach this problem - such as:
Notably, this problem is only going to get worse as we lean into versioning the dotcom schemas - so I am happy you're on top of this. My gut tells me this might be a good move for us. The hosted file aspect of LFS is not much of a concern here for owners and contributors - unless working disconnected. I would like to investigate the options above as well. Just to oversimplify the problem space here: Pros:
Potential cons:
@kfcampbell and I briefly chatted about this on Friday. We've got a strange week with the US holidays and other days out - but we plan to round out the conversation on Wednesday.
Based on that comment, please let us know if you need any help or if you run into anything interesting - we want to make sure we are supporting you in any way possible! Thank you both again for making what we have here so much better! ❤️ |
Thanks for the kind words and detailed follow-up on this @nickfloyd @kfcampbell. I have this experimentation on-hold due to some personal issues, but I would love to get deeper and arrive at some conclusions. I agree adding an extra tool would be an extra barrier, so I will check other options and possibilities. Thanks for doing the exercise of oversimplifying the problem space, very useful. I'll get back to this ASAP. |
This is getting especially relevant now,
|
Resolves #ISSUE_NUMBER
Behavior
Before the change?
Before this change, when someone was cloning this repository or fetching changes, all the files under folders
/cache/
and/generated/
were downloaded too.352Mb
511Mb
This impacts at CI level when
actions/checkout
runs:~23s
everytime it runsI run a benchmark by removing the last commit from
main
branch in my local machine and pulling:I'm not sure if this is a fair test, but the timings are significantly slower.
After the change?
After this change, when someone clones/fetches repository changes, all the files under folder
/cache/
and/generated/
take less time to clone/fetch.This impacts at CI level when
actions/checkout
runs:~7s
everytime it runsI plan to collect some numbers of a clone/fetch with and without these changes:
I'm not sure if this is a fair test, but the timings are significantly slower.
Other information
git lfs
installed. This is especially important because, nowadays, GitHub Web is not capable of rendering diffs of these huge files, so checking them on our local machines is still essential.git lfs migrate
to Git History, but this will need coordination from maintainers. Would you like to experiment with that? Right now the.git
folder is~4GB
, which is causing this performance issue when running git operations locally:*I will experiment with a
fork
later to see the real benefits.Additional info
Pull request checklist
Tests for the changes have been added (for bug fixes / features)Do not applyDoes this introduce a breaking change?
Type: Breaking change
label)I'm assuming this would not be a BREAKING CHANGE, only for contributors without
git lfs
installed but that's not a breaking change, right?Pull request type
Type: Maintenance