-
Notifications
You must be signed in to change notification settings - Fork 6
Speed up sources download #13
Comments
It might be possible to make shallow clones of submodules with It could be an upstream enhancement (relevant lines):
Though I am new to flatpak. |
flatpak-builder should make shallow-clones by default when possible (there is an option to disable it explicitly). Do you think it might be not using it for submodules? |
I think it isn't but I a not familiar with the codebase and the shallow submodules are an extra setting from |
As far a I understand, flatpak-builder doesn't clone git repos with submodules, but instead extracts submodules list from the main repo and mirrors each submodule individualy. So any recursion options should be irrelevant in this case. Yet I can be wrong. |
@barthalion My local tests suggest that running |
Not really sure. Sources are pre-downloaded, but build machines have also local cache – what happens if requested commit is not available in the local clone? |
I'm not sure what the local cache is in this context. Aren't sources are downloaded anew on each build? If so, how requested commit could be unavailable? |
I've looked at this again and yes, sources are being downloaded as a separate step but on a mirror node, not runners. So passing |
This is getting worse over time as new components are being added to Proton (increasing the modules number in this flatpak). @barthalion Can we run |
I know we talked about it, but I still fail to understand what exactly
How is |
|
But it's still going to take a significant amount of time to execute --download-only, doesn't it? |
Yeah, just re-checked that and it seems like it. So, my proposal to run |
But still, maybe we could run builds with |
Proton is a git repository with numerous git modules, some of which are huge (namely wine and gstreamer). And we have many flatpak-builder modules (two for each Proton component).
flatpak-builder fetches the whole Proton repo with all git submodules for each module, what results in heavy I/O and incredibly long download/checkout times (in fact, on Flathub checkouts take even more time than actual compilation).
We should do something about it. The only solution I see is splitting single git source into multiple archive sources. Does anyone has other ideas?
The text was updated successfully, but these errors were encountered: