-
Notifications
You must be signed in to change notification settings - Fork 175
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
Upgrade to Kotlin 1.5.0 #441
Conversation
Sounds good to me? Are there likely downsides? Also, I wonder if there's any chance we could try to test Kotlin module against 1.4.x and 1.5 in separate project -- assuming both could work? I assume 1.4.x should still work in short term. |
Kotlin releases are pretty solid…but they have made a few API changes in 1.5.0. @cowtowncoder How hard is it to cut a snapshot release once I get this fixed up? |
@dinomite snapshots are easy, just |
@cowtowncoder Oh, I meant a snapshot published to Sonatype, is that do-able? I'd like that so we can get it used in some real-world cases. |
Yes, that's what mvn deploy does (as opposed to mvn install). Not sure if you need separate credentials with access... probably yes. So I can do it, and Travis job can (since I created the token being passed). |
Ahh, I think I had removed the |
The build is failing because of a binary change—the overidden I'll look more into this but would appreciate any ProTips™ others can offer. |
That looks like a failure due to recently added binary-compatibility checker plug-in. Not sure if that is legit or not -- could be the case where old variant should have been left with |
We were testing using Kotlin 1.5.0 with Jackson and found an issue related to type reification and In kotlin 1.4.x the following code worked
And now it fails on
I'm aware that this might not be related to jackson-module-kotlin. I wonder though, does this module use |
@miensol Reproduction of the issue with |
Re: ABI breakage that I mentioned previously—It's because name mangling suffix generation changed in Kotlin 1.4.30 (k-m-k currently uses 1.4.21 and this PR brings it up to 1.5.0). I think the real solution here is to make the Thanks to @marshallpierce for helping me look at the bytecode and finding the name mangling change. |
@efenderbosch Since you did #419 would you check me here and make sure I'm not missing anything? I made all of the |
Actually, it might be a good idea to leave those unsigned number (de)serializers exposed (not internal). Otherwise people will likely have to write their own that's basically identical. Unfortunately, those (de)serializers only work in isolation, if a POKO has a UInt member, then you still need some sort of ctor/JsonCreator/Deserializer for that POKO that will take an Int and parse it as a UInt correctly. |
@efenderbosch Ahh, ok, I feel like we might have talked about this at the time of that PR. That usage sounds pretty esoteric—do you think it'd be ok to leave them public, but not enforce API strictness to them (that is, they're public but we don't make guarantees that they'll be stable)? |
Barring any complaints I'm going to merge this and make Jackson 2.13+ use Kotlin 1.5.0. |
Cool! I am trying to speed up release process of 2.13 by dropping plans for more major features (... property introspection rewrite in particular). |
I've prepared one here https://github.com/FasterXML/jackson-module-kotlin So far it seems like a change in Kotlin. |
No description provided.