Skip to content
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

The plugin does not support Configuration Caching #247

Open
stephanenicolas opened this issue Oct 13, 2020 · 27 comments
Open

The plugin does not support Configuration Caching #247

stephanenicolas opened this issue Oct 13, 2020 · 27 comments

Comments

@stephanenicolas
Copy link
Collaborator

stephanenicolas commented Oct 13, 2020

Dart & Henson is not actively maintained anymore. It's Gradle plugin does not support configuration caching.
We encourage users to switch to other solutions such as https://developer.android.com/guide/navigation.

Clarifies: #243

@markchristopherng
Copy link

markchristopherng commented Oct 19, 2020

Hi @stephanenicolas, if you don't want switch to Google's navigation library because its too much work do you have any other navigation libraries to recommend? The effort to move to Google's navigation library would probably takes months and we are looking for an option where we only have have spend 1 - 2 weeks to replace the dart henson library and I think Google's navigation component library is overly complex and requires too much configuration.

Its a pity this library isn't maintained now because I did some research and there are few navigation libraries out there but nothing that has anywhere near the star count as this library.

https://github.com/gaelmarhic/Quadrant
https://github.com/isaac-udy/Enro
https://github.com/jeziellago/FlowNav
https://github.com/hakobast/flowzard
https://github.com/aartikov/Alligator

Hopefully someone will fix this PR- #245 so it builds successfully and we get another official release so we can upgrade to higher versions of gradle.

@doniwinata0309
Copy link

Yeah it would be great if we have last official release that support gradle 6.6 and config cache. So we have more time on finding alternative library. My app not using fragment and single activity architecture so will need extra effort to adjust with google navigation library.
Recently I tried to make this lib supporting gradle configuration cache and upload on my local artifactory. But i am not that familiar with gradle plugin development. So if anyone willing to help or managed to fix the issue please share it here.

@doniwinata0309
Copy link

I created this PR to support config cache: https://github.com/f2prateek/dart/pull/248/files to solve build error. Please let me know if you have any feedback on it.

@gcpdroid
Copy link

I need this too, any updates? Google's nav component sucks, they need to simplify it how they added hilt to dagger.

@azure-architect-01
Copy link

Any news ?

@melbrider01
Copy link

The PR works fine - https://github.com/f2prateek/dart/pull/248/files any chance we can get an official release version?

@markchristopherng
Copy link

markchristopherng commented Jun 29, 2021

I created this PR to support config cache: https://github.com/f2prateek/dart/pull/248/files to solve build error. Please let me know if you have any feedback on it.

I created this PR to support config cache: https://github.com/f2prateek/dart/pull/248/files to solve build error. Please let me know if you have any feedback on it.

Hi @doniwinata0309, the project doesn't build with Gradle 7.1 any chance that you could do a new PR and fix the issue? Would be much appreciated if you have time.

@doniwinata0309
Copy link

@markchristopherng i'm not sure yet with 7.1. But I able to fix issue on gradle 7:
#248

I added new commit to support config cache: doniwinata0309@1248af9

I will try with gradle 7.1 later, but what kind of error you have with 7.1 ?

@markchristopherng
Copy link

markchristopherng commented Jun 29, 2021

I will try your new PR tomorrow with gradle 7.1 and let you know how it goes. Trying to make sure we can run the new version of Android Studio - Artic Fox.

Sadly, we haven't had time to get off this library and still might be on it for a while. Thanks for the new PR

@doniwinata0309
Copy link

yes we also not able to migrate it yet, do you have in mind which library that perfect to replace DH3 ?

@markchristopherng
Copy link

yes we also not able to migrate it yet, do you have in mind which library that perfect to replace DH3 ?

we are thinking about jetpack navigation component, but it could take 1 developer 3 months to do the whole migration and we would need a good business case to convince the product owner to green light it. I think we might be on this library for another 12 months, our options are pretty limited because i don't want to choose another library that stops being supported again like this one.

@markchristopherng
Copy link

@markchristopherng i'm not sure yet with 7.1. But I able to fix issue on gradle 7:
#248

I added new commit to support config cache: doniwinata0309@1248af9

I will try with gradle 7.1 later, but what kind of error you have with 7.1 ?

Hi @doniwinata0309, it works with Gradle 7.1 and I was able to run it with the beta version of Artic Fox. Thanks for this PR much appreciated.

@doniwinata0309
Copy link

yes i just updating my project to 7.2 and seems working fine.
by the way, so you already starting migrating to jetpack navigation component ? does it works for you @markchristopherng ?

@markchristopherng
Copy link

Yeah its working for me thanks. There is no time at the moment to migrate to jetpack navigation component. Hopefully this fix can last another 12 months :)

@doniwinata0309
Copy link

ah i see, same condition here. thanks for your info :D

@markchristopherng
Copy link

markchristopherng commented Feb 16, 2023

Hi @doniwinata0309 I am not sure if you are stilling using this library however Gradle 8.0 came out this week and I got the following error when running with the new version of Gradle. The failure is due to the UnionFileCollection now taking a TaskDependencyFactory.
I don't have any experience writing Gradle plugins just wondering if passing either null or this would be okay.

DefaultProject defaultProject = DefaultProject.class.cast(project);
TaskDependencyFactory taskDependencyFactory = defaultProject.getTaskDependencyFactory();

I tried null and its seems to work but not sure if I would run into any issues later on.

Screen Shot 2023-02-15 at 11 09 11 am

@doniwinata0309
Copy link

hi @markchristopherng
https://github.com/doniwinata0309/dart/blob/gradle-8/henson-plugin/src/main/java/dart/henson/plugin/internal/GenerateHensonNavigatorTask.java#L89

i already try to use gradle 8 on plugin. This seems to be work but got another fail on jar files.
but you can try to fix that error by replace that with plus()

@doniwinata0309
Copy link

I will let you know if able to solve all error for gradle 8, there still some error during the task execution where jar not properly generated. still not sure which one causing the issue. But we actually in progress removing this library, but still need this to support gradle 8 as migration take times.

@markchristopherng
Copy link

Hi @doniwinata0309 thanks for that, we were able to build successfully because we don't use configuration caching but when you do get it all working please share the code. Also are you replacing this library with any particular framework?

@doniwinata0309
Copy link

doniwinata0309 commented Feb 16, 2023

@markchristopherng i just push new commit to fix jar, probably now work perfectly. I think i will use this version for now. No i dont replace it, just make sure henson plugin works and just doing minor fix without adding more libs.

you can check that branch for gradle 8
https://github.com/doniwinata0309/dart/tree/gradle-8/henson-plugin

@doniwinata0309
Copy link

henson-plugin.jar.zip
this is the jar, or if u want to run just run ./gradlew henson-plugin:assemble and copy the jar

@doniwinata0309
Copy link

For our DH3 replacement, we just use simple kotlin classes to handle intent extras, so no more library in our case to handle extras

@markchristopherng
Copy link

we were thinking about doing the same

For our DH3 replacement, we just use simple kotlin classes to handle intent extras, so no more library in our case to handle extras

We were thinking about doing the same.

@markchristopherng
Copy link

henson-plugin.jar.zip this is the jar, or if u want to run just run ./gradlew henson-plugin:assemble and copy the jar

Thanks alot saves me from cloning the projects and building it myself.

@doniwinata0309
Copy link

sure, let me know if you have some issue. actually i dont test that yet on runtime 😄

@markchristopherng
Copy link

Hi @doniwinata0309, when i turned on configuration caching I got the following issues with the prebuilt jar. The jar works if we don't use configuration caching though

Configuration cache problems found in this build.

66 problems were found storing the configuration cache.

@doniwinata0309
Copy link

yes I think I messed up with config cache when refactoring some field. will let you know if I find solution for it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants