-
Notifications
You must be signed in to change notification settings - Fork 984
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
nix: make fetching Gradle dependencies more generic #17161
Conversation
Jenkins BuildsClick to see older builds (31)
|
ad20022
to
1ba7714
Compare
Here's the difference in sizes of the Gradle dependencies derivation: Before
After
Which is not horrible. Out of the new files most are the This is annoying because as far as I can tell only one package actually requires 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.
Tested locally and it works.
My benchmarks for single runs :
make nix-update-gradle
~ 18 minsmake run-android
~ 13 mins
I think I can make the blacklist more strict. I believe we only need ASC files for AARs - of which there is only 32 - for builds. |
8feac89
to
4c32c43
Compare
That's better:
A |
Before what we did was essentially guess what files might exist for any given package. This approach mostly works, but not entirely. This is especially problematic when dealing with weird edge case packages like `react-native`, which you can read about here: react-native-community/discussions-and-proposals#508 https://github.com/react-native-community/discussions-and-proposals/blob/4a06fc64/proposals/0508-out-of-npm-artifacts.md#the-react-native-android-archive In order to avoid as much the guessing aspect of fetching Gradle dependencies we are using both HTML listsings of files and `artifact-metadata.json` files that exist for more recent packages. This way we can avoid having to add special edge cases that have been found out when working on React Native 72 upgrade in: #17062 Signed-off-by: Jakub Sokołowski <jakub@status.im>
6779803
to
83f622d
Compare
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Before what we did was essentially guess what files might exist for any given package. This approach mostly works, but not entirely. This is especially problematic when dealing with weird edge case packages like
react-native
, which you can read about here:In order to avoid as much the guessing aspect of fetching Gradle dependencies we are using both HTML listsings of files and
artifact-metadata.json
files that exist for more recent packages.This way we can avoid having to add special edge cases that have been found out when working on React Native 72 upgrade in: