-
-
Notifications
You must be signed in to change notification settings - Fork 419
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
Problems with new Gradle Plugin #490
Comments
@rubengees fun fact: it actually solves correctly https://github.com/google/brotli/blob/master/java/org/brotli/pom.xml#L10 Yeah the plugin does not make a difference about parent and child as there is no chance for the lib to detect if it is actually 2 different libraries or just the same with different modules. I suppose there may be great if we could merge them somehow. I suppose. but in addition you should not have leak canary in your production app :O |
Hmm, interesting. I'll report an issue in the brotli repository (I thought all the time this was Yes, some merging or deduplication would be great! :) I do not have Leak Canary in the |
luckily we are prepared for such cases with: https://github.com/mikepenz/AboutLibraries/blob/develop/library-definitions/src/main/res/raw/custom_name_mappings.prop :D but that would be a manual process :D the screenshots above, where they from the release build? |
I can confirm the brotli thing for 8.1.2, see https://forums.bitfire.at/post/12856 And thanks for all your efforts :) |
@rfc2822 Btw. for the meantime you can for example overwrite the name of brotli doing this: Just use its identifier created by the gradle plugin. (you can get it via the Hope this helps. Beste Grüße. |
Regarding deduplication: When using the Gradle plugin and if an entry is found for a library that also has an internal definition one of the definitions can be safely omitted, can't it? For dependencies which have the same content (not sure if that's the case for the leakcanary dependencies), only one can be shown I guess? You are right, that was a debug build and leakcanary is on the classpath there. |
The entries are not duplicated because of internal definitions. those are no longer showing up anyways :) they are basically deprecated and most likely I plan to remove them at some point. From legal perspective all dependencies have to be shown. So I am not sure how accurate it is to "magically" merge similar ones. |
Ah great, you are right! I investigated the LeakCanary case further and found that these are indeed various submodules with slightly different names. Couldn't see that because of the truncated titles, but I also remember you said that showing the title multiline is no option somewhere so I guess there is nothing to be done here. |
hmmm the latest version offers a new minimal UI which is not as verbose. but regardless. I will have to think of a "clever" way to merge libraries some way. or at least link them in some way. also having multi license support. but that is something for v9 :D |
This is a workaround until mikepenz/AboutLibraries#490 has been resolved.
What was the fix for deduplication exactly? I've updated a library I'm using to use the plugin, and I'm keeping my main app with a manual include list as the list gets too populated (#520). I'm getting duplicated cards for libraries used in both projects. Is the main fix to migrate my main app to use the plugin? I'm looking for more of a whitelist filter as opposed to a blacklist one |
For now the approach was via the exclusion list which was deeper included in the plugin so you can have a simple list there to drop libs. I am still thinking of a good approach to introduce a intelligent "merge" mechanism which would be an optional choice. Note neither excluding nor a specific allow list is generally suggested as all libs should retrieve their attribution. |
I think that's fair, but currently a lot of the entries are not really dependencies, but subcomponents of a main dependency. I'm also not sure if it's pulling all dependencies in the project or just the ones added by the project |
On that note, I am still curious about the "I'm getting duplicated cards for libraries used in both projects." As this kind of seems strange to me. the plugin will generate the same resource Ids so they overwrite each other. Could it be that it's possibly a bug due to your manual inclusion list? |
My main project uses the old method where I define the Libs + packages. I'm guessing that isn't the supported method and I'd be fine with switching over, but the alternative lists way too many libraries. It's not that I don't want to give credit to everything, but I believe that the list of that size makes it harder for other developers to identify the direct dependencies I'm using. Looking at it again, I think it's listing items for every dependency recursively |
@AllanWang yes the library lists all dependencies. E.g. things which are getting pulled into your project and are required for your project to compile. MaterialDrawer for example uses FastAdapter. MaterialDrawer won't work without FastAdapter so both get credits. But similar principle for all the jetpack libs. it kind of needs those deps to serve the features you are using in the end, so it seems correct from that point of view as far as I can say. And yeah it might be a mix of both versions of the lib. v8 allows you to have an exclusion list if something is to verbose in dependencies, shouldn't be the case for anything though. Let's see if we can come up (the other ticket you opened) with a proper merging strategy which shall help with your requirement :) |
About this issue
I am in the process of migrate my app to latest
materialdrawer
,iconics
andaboutlibrares
. The new Gradle Plugin works great, but produces some odd things which I wanted to report.okhttp-brotli
iconics
LeakCanary
okhttp-brotli
seems to not resolve the name correctly (POM).leakcanary
s ObjectWatcher shows up many times (Not sure if these are multiple dependencies, but can't see because of the truncated title).Usage
Details
8.1.1
appcompat 1.2.0-beta01
6.3
4.0.0-beta03
Checklist
The text was updated successfully, but these errors were encountered: