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

Help popular annotation processors adopt incremental processing #5277

Open
oehme opened this Issue May 5, 2018 · 38 comments

Comments

Projects
None yet
@oehme
Member

oehme commented May 5, 2018

Please feel free to suggest others we should get in touch with!

@dimsuz

This comment has been minimized.

dimsuz commented May 5, 2018

Toothpick: Open issue

@Javernaut

This comment has been minimized.

Javernaut commented May 5, 2018

Realm: Open issue

@technoir42

This comment has been minimized.

technoir42 commented May 7, 2018

Glide: Open issue

@simtel12

This comment has been minimized.

Contributor

simtel12 commented May 8, 2018

In addition to Room's compiler, mentioned by @TWiStErRob, Lifecycle has a compiler too
https://developer.android.com/topic/libraries/architecture/lifecycle (android.arch.lifecycle:compiler)

LoganSquare: https://github.com/bluelinelabs/LoganSquare
AutoValue extensions: rharter/auto-value-gson#179, rharter/auto-value-parcel#131

@masc3d

This comment has been minimized.

masc3d commented May 11, 2018

Requery: Open issue
Parceler: Open issue

@tprochazka

This comment has been minimized.

tprochazka commented May 12, 2018

Butterknife is already implemented but we need some feedback for the implementation ;-)

@tprochazka

This comment has been minimized.

tprochazka commented May 15, 2018

evernote/android-state#48 is missing on your list

@cckroets

This comment has been minimized.

cckroets commented May 30, 2018

GreenRobot's EventBus: Open issue

@pjakubczyk

This comment has been minimized.

pjakubczyk commented Jun 5, 2018

@oehme Re Glide:
Linked ticked is Closed
please use bumptech/glide#2983

@ngattusohw

This comment has been minimized.

ngattusohw commented Jun 13, 2018

@oehme Hi -- I am currently having this issue where I want to enabling compile avoidance for my project, but I am using the gradle hibernate ORM plugin with annotations, and it recompiles my entire project everytime (takes 15+ minutes to build) .. wondering if anyone could help me out. I am unsure if the hibernate ORM plugin supports compile avoidance or not, as I couldn't find it in their documentation
found here ... http://docs.jboss.org/hibernate/orm/5.1/userguide/html_single/Hibernate_User_Guide.html#BytecodeEnhancement-enhancement-gradle

Thanks!

@jjlueck-tock

This comment has been minimized.

jjlueck-tock commented Jun 13, 2018

I am also interested in where Hibernate is with moving over to an annotation processor jar that will inform the gradle incremental compilation process. I haven't found them on any list of projects that are in the works for patching.

Think they'll accept a community-driven PR over at https://github.com/hibernate/hibernate-orm/pulls
?

@oehme

This comment has been minimized.

Member

oehme commented Jun 13, 2018

@jjlueck-tock @ngattusohw As far as I can see, Hibernate doesn't do annotation processing, but post-processes the classes after compilation. I don't know why that would cause compilation to rerun. A reproducible example project would probably help them. How about you open an issue for them and ask them to improve the situation?

A terminology sidenote: Compile avoidance is a different feature from incremental compilation. Compile avoidance is always on and means that only API changes will lead to recompilation of downstream projects.

@tprochazka

This comment has been minimized.

tprochazka commented Jun 18, 2018

I asked Google team about DataBinding support
https://issuetracker.google.com/issues/110061530
Sadly it is planned for 3.3

@masc3d

This comment has been minimized.

masc3d commented Jun 18, 2018

@tprochazka it can be mitigated by using instant run, except if you <include> more than one databinding layout, then it's triggering https://issuetracker.google.com/issues/79362720

@ngattusohw

This comment has been minimized.

ngattusohw commented Jun 18, 2018

I just noticed this in my build.gradle output... "All input files are considered out-of-date for incremental task ':Web:compileJava'." .. where my build.gradle compileJava looks like this
compileJava {
doFirst {
apply plugin: 'org.hibernate.orm'

	hibernate {
		enhance {
			enableLazyInitialization= true
			enableDirtyTracking = true
			enableAssociationManagement = true
		}
	}
}

}

@oehme Any direction appreciated, thanks

@oehme

This comment has been minimized.

Member

oehme commented Jun 18, 2018

As mentioned before, this is not annotation processing related. Hibernate uses bytecode enhancement. Please file a bug for their plugin.

@ngattusohw

This comment has been minimized.

ngattusohw commented Jun 18, 2018

@oehme okay thank you. Sorry for bothering and thank you for your responsiveness!

@jnehlmeier

This comment has been minimized.

jnehlmeier commented Jun 25, 2018

EclipseLink: Open Issue

@khaidinh

This comment has been minimized.

khaidinh commented Jul 1, 2018

@farrault

This comment has been minimized.

farrault commented Jul 12, 2018

Hi @oehme,
FYI : Lombok 1.16.22 and 1.8.0 fail with Gradle 4.8 in incremental mode : see rzwitserloot/lombok#1716

It seems to be corrected but not released yet.

@oehme

This comment has been minimized.

Member

oehme commented Jul 12, 2018

I see, they were a little too closely coupled to the Filer class hierarchy. The change looks good, much more robust. I pinged them for a release.

@oehme

This comment has been minimized.

Member

oehme commented Jul 12, 2018

@khaidinh Can you please open an issue for immutables that I can reference here?

@betorcs

This comment has been minimized.

betorcs commented Jul 16, 2018

PermissionsDispatcher: Open issue

@khaidinh

This comment has been minimized.

khaidinh commented Jul 23, 2018

@jnehlmeier

This comment has been minimized.

jnehlmeier commented Aug 8, 2018

@oehme created a second issue for EclipseLink as they are now also on Github.

eclipse-ee4j/eclipselink#211

@bingranl

This comment has been minimized.

bingranl commented Aug 30, 2018

Should we add Android Room Persistence Library here?

@simtel12

This comment has been minimized.

Contributor

simtel12 commented Sep 4, 2018

Does kapt support annotation processors that are incremental, or would adding an incremental processor via kapt still result in a full compile?

@tinsukE

This comment has been minimized.

tinsukE commented Sep 4, 2018

@simtel12 I don't think KAPT supports it yet, check out this issue, which has been upvoted by the likes of Jake Wharton (or some user with his name):
https://youtrack.jetbrains.com/issue/KT-23880

@matejdro

This comment has been minimized.

matejdro commented Sep 12, 2018

Dagger seems to have added support: google/dagger@6baf304

@autonomousapps

This comment has been minimized.

Member

autonomousapps commented Sep 19, 2018

@matejdro that seems correct, but they haven't had a release since August 7. Maybe we can encourage them to release sooner than later? cc @oehme

@bingranl

This comment has been minimized.

bingranl commented Oct 29, 2018

Created an issue for auto value extensions: Open issue

@matejdro

This comment has been minimized.

matejdro commented Oct 29, 2018

What is going on with the Room? I know it says that it is unlikely to get incremental, but unlike every single other item on the list, it does not have an issue open on their issue tracker (at least there is no link in the first post). Instead it just links to the Room docs page.

@matejdro

This comment has been minimized.

matejdro commented Nov 12, 2018

On Android Developers "What's New With The Android Gradle Plugin" talk, Googlers said they are working on making both Room and Databinding incremental.

https://youtu.be/GlwvVJNWlWg?t=1226

@basmastr

This comment has been minimized.

basmastr commented Nov 14, 2018

Created an issue for querydsl

@davidburstromspotify

This comment has been minimized.

davidburstromspotify commented Nov 16, 2018

com.google.auto.factory.processor.AutoFactoryProcessor in com.google.auto.factory:auto-factory:1.0-beta6 also seems to be non-incremental.

@davidburstromspotify

This comment has been minimized.

davidburstromspotify commented Nov 16, 2018

Opened google/auto#679 on AutoFactory

@gunnarmorling

This comment has been minimized.

gunnarmorling commented Nov 21, 2018

Regarding Hibernate, there are two annotation processors:

  • The Hibernate ORM AP for generating type-safe meta-models (this is unrelated to entity enhancement as dicussed above, but creates literal types for referencing entity properties in a safe way when using the Criteria API)
  • The Hibernate Validator API for checking correct placement of Bean Validation constraints (filed HV-1665 for this)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment