Skip to content

Conversation

@eduardbosch
Copy link

Hi 👋

I've took some time to try to migrate the library to KSP2 with the help of Claude Code, as I didn't had much experience with KSP before.

My process was:

  1. Update all the dependencies, including Kotlin, KSP2, and xProcessor.
  2. Fix the compiler errors in DeepLinkProcessor.
  3. Run the tests and fix the DeepLinkProcessor to make the test pass.
  4. Test the sample app.
  5. Test the new app version at Job&Talent.

Everything looks good so far, but let me know is something should be changed.

This PR should fix #369

I saw there's another PR (#371) trying to update to KSP2, I'm not sure which one is better, but this one is up to date with the main branch and everything looks ready.

cc @rossbacher

- Add namespace.
- Configure java version.
- Update Gradle.
Use the configureKsp function to initialize KSP.
KAPT does not add the parent class while KSP does
KSP shows values in different order than KAPT and it makes some tests to
fail. Ensure we have the same output for all processors.
Type elements can become invalid after PSI changes so it's safer to
query them when we need them.
Update also to a compatible Gradle version
Gradle versions higher than 8.14 require JDK 17, thus it makes jitpack
to fail as it uses JDK 11 by default
@eduardbosch eduardbosch mentioned this pull request Dec 20, 2025
Copy link
Contributor

@elihart elihart left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this looks pretty good overall, thanks!

Since this PR is newer and seems complete I think we should take it over the earlier PR

}?.annotationValues
?.any { annotationValue ->
annotationValue.value.toString() == deepLinkParamType.toString()
annotationValue.value.toString() == deepLinkParamType.toAnnotationValue()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm wondering if we can do this comparison in a safer way. I can try to explore it

kotlinCompileTestingVersion : '0.6.0',
kspVersion : '2.0.21-1.0.28',
xProcessorVersion : '2.6.0-alpha01',
kotlinCompileTestingVersion : '0.11.0',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there is a newer release https://github.com/ZacSweers/kotlin-compile-testing/releases/tag/0.12.1

Suggested change
kotlinCompileTestingVersion : '0.11.0',
kotlinCompileTestingVersion : '0.12.1',

kspVersion : '2.0.21-1.0.28',
xProcessorVersion : '2.6.0-alpha01',
kotlinCompileTestingVersion : '0.11.0',
kspVersion : '2.3.3',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
kspVersion : '2.3.3',
kspVersion : '2.3.4',

@@ -0,0 +1,2 @@
jdk:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you explain this? I don't believe we use jitpack at all

@elihart elihart mentioned this pull request Jan 8, 2026
Closed
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

Successfully merging this pull request may close these issues.

Request: KSP2 Support

2 participants