-
Notifications
You must be signed in to change notification settings - Fork 41
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
Get feedback from LinkedIn about the new plugin #77
Comments
Hey, can LinkedIn leave comments in this ticket? Or should LinkedIn create another issue? |
I think feedback here would be good @ymwang1984 |
Thanks @big-guy Unfortunately, the PoC from Play Team at the company left the team recently. So we are trying to sort out the replacement for now. Will have some update about it next week. Right now, we are trying to enable Gradle 5 for Play apps. There are some sample LinkedIn apps that can run Gradle 5 now (not many, though). Within the mass Gradle 5 migration in the company, we are now prioritizing Play applications. |
@ymwang1984 The general feedback here would be great. Feel free to also open specific issues in this repo. |
Thanks @pioterj I have not tried the plugin on a sample app. Here are two questions I have in mind after reading the doc only (I could be very wrong though...): (1) After the software model is gone (which is good for the long term), where will the existing setting go? Such as "custom twirl templates".
(2) Is the hot reload mechanism changed? Do we need to add "--continuous" to have it now? |
@bmuschko Could you answer the questions above? |
@ymwang1984 Find my answers below.
In the "old" plugin this is only documented in the Javadocs of the SourceSet and not the user guide. Looks like we don't have the same Javadocs documentation for this plugin. I'll create an issue for it. The new SourceSet implementation is org.gradle.playframework.sourcesets.TwirlSourceSet. Basically you do it as such:
There's also a test case that demonstrates the usage.
Continuous build is a cross-cutting concern. It will work the same as with the software model. You just add |
Thank you very much @bmuschko for the clear explanation. Do we have some sample apps in the repo to test it? I recall the sample apps in Gradle repo was quite helpful in learning, debugging and verification. |
@ymwang1984 You can find the samples here: https://github.com/gradle/playframework/tree/master/src/docs/samples. You can also find the link in the README.adoc. |
@ymwang1984 Note that you need to add the plugin version manually to make the samples work. See #76. |
Thank you! Very helpful information. I tried one or two samples today briefly, I saw bunch of Test compilation failure in "compileTestScala". Looks like the dependency for Specs2 or Play test fixtures are missing in the samples. Could you confirm? I can do some hot reloads, though. |
@ymwang1984 See #74. I believe they also fail in Gradle core right now. It's something we detected along the way. |
Thanks @bmuschko so it is expected. Is there ETA to fix that? Adding specs2 dependency still does not work for me locally. It is not blocking since I will still be able to verify some other stuff. Thanks. |
@ymwang1984 No ETA at the moment but I think soon. We were trying to gather as much feedback as possible to amount a big enough work package to keep a developer focused on the work for a couple of days at once. The more input you can give us the better. |
Is this issue fixed? gradle/gradle#6789 We also had a support request ticket: https://support.gradle.com/hc/en-us/requests/1937 |
@ymwang1984 I think it's best to follow up on this in the support ticket. |
Ok I will follow up with @big-guy on this. |
@ymwang1984 We fixed the sample code (failing test) you were asking about before and added more Javadocs documentation. Did you have a chance to test the plugin with some other projects in the meantime? |
Thanks for the fix! I will try to verify some time later this week. We are working on migrating Play applications to Gradle 5 at the moment, including the largest one (our Flagship product). They hit some issues and we are trying to resolve. I am still curious about the solution of this bug fix request: It's still not entirely clear where the fix would go. Should it go to the new plugin? cc @big-guy For LinkedIn, the issue is not really about the build time display. Multiple teams observed this behavior and would like to see the server up and running "the first time it is loaded". For a very large application, even if all steps are UP-TO-DATE the second round, it still adds quite some time to the development cycle. I'm happy to discuss with more details. @garylin (manager of Play team at LinkedIn) may also want to open an issue about Gradle unable to support "-Dhttp.port=disabled" Context: https://www.playframework.com/documentation/2.6.x/ConfiguringHttps#Turning-HTTP-off |
Today one team hit the annotation processor problem when they attempted to onboard Gradle 5. In the end, we have a workaround. The issue was documented in The issue for this plugin is documented in |
@ymwang1984 You should be able to work around the issue in #84 in a similar fashion. See my comment. |
@ymwang1984 Just letting you know that #84 has been fixed and a new version has been released. Did you have a chance to try out this plugin with one of your project? |
@bmuschko Great news! Currently we are still working on Gradle 5 upgrade for Play projects. Will update you once we have projects that try it with Lombok. So I assume (with Gradle core) we will still use the workaround mentioned in gradle/gradle#8378 ? |
OK, thanks.
That's correct. |
Sorry for the late reply since our team is still working on Gradle 5 upgrade. But good news is that now we've got sufficient number of applications using Gradle 5. We are testing it out with some of the apps. And we are hit with this slf4j binding problem: #90 Would appreciate if you could shed some light about how to work around this, thank you! |
This is Jie, working with @ymwang1984. @bmuschko The following is the stacktrace for our issue. It is pretty similiar with #90
|
@aaronlijie @ymwang1984 Thanks for reporting. Could you please put together a very simple project that reproduces the issue as requested here #90 (comment)? You likely have two different implementations of SLF4J on the classpath. My guess is that the worker API bleeds Gradle's dependencies into the classpath of the plugin. You can probably work around it by excluding the transitive SLF4J dependency. |
Hi
|
@aaronlijie Optimally, we'd trim down your example to minimal dependency that produces the issue. I have not seen the issue one some of the sample projects. Any chance you can put something together. @big-guy Any advice you can give from the Gradle core side of things? |
I tried to reproduce it (add dependencies) in the sample projects, but I couldn't. And our project is coupled with linkedin's settings a lot and not easy to decouple. Update: Let me updated something from my side. |
Here is a new issue:
It worked in the past and didn't work well with the new play gradle plugin. The stacktrace is
I think the issue is related to:
In the new plugin, it returns a unmodifiableSet. In the past I think the set is modifiable. |
@aaronlijie I opened a pull request for your issue with the IDEA plugin: #91. Could you please create completely new GitHub issues if you encounter a problem and then link to them from here? I will have to see if I can somehow reproduce your issue with SLF4J. |
@aaronlijie Regarding the SLF4J issue I added a longer comment to #90 which applies to you as well. Sounds like you could work around it in the meantime. |
@aaronlijie @ymwang1984 A fix for #91 has been release with version 0.5 of the plugin. Could you please give it a try? |
@bmuschko Can you push the |
@mkurz done |
I have tried and the issue is fixed. |
@aaronlijie @ymwang1984 Great, can you let us know as soon as you successfully adopted this plugin? |
@aaronlijie A fix for #95 has been released with version 0.6 of the plugin. |
@aaronlijie @ymwang1984 Is there anything left that needs to be addressed from our end until you can make a full transition to the new plugin? |
Hey @big-guy Thanks for the release and the fix! We noticed that it probably requires the latest Gradle 5.5. Is it true? Is it related to the latest fix in Worker API, etc? We'd like the upgrade of this plugin to be decoupled from the upgrade of Gradle, if possible. It (coupling) may make migration more difficult for applications. Hope that makes sense :) |
@ymwang1984 I bumped the plugin build to 5.5.1, but I don't believe there's anything that ties the plugin to 5.5. I've been able to run the build with 5.4.1. I didn't go any older than that, but there have been few changes to the plugin since ~5.2. |
Hi @big-guy
What went wrong:
I searched and found ObjectFactory.fileCollection() is available sicne 5.3 Hence I guess the following code caused the issues and required the gradle upgrade |
Hmm, if that's the only problem, we can probably make it work with 5.2.1 |
Hi @big-guy
So I think it is better to not couple with any specific version higher than 5.0. |
I've since left LinkedIn, but thought I'd provide some feedback anyway since I was previously working on this code:
|
No description provided.
The text was updated successfully, but these errors were encountered: