Skip to content

Upgrade to Jackson 3 #1258

Open
Open

Description

@gaeljw

As per the title.

There's definitely no urgency in doing it but it'll be good to help the ecosystem move forward.

Jackson 2.x and 3.x can co-exist, so I don't think there's a reason for play-json to wait. Users will still be able to use other libraries relying on Jackson 2.x.

Maybe this is something we can include in the next minor release?

Migration notes

I'll be happy to work on a PR for this.

Activity

  1. MahogaWeerasinghe commented on Nov 11, 2025

    @MahogaWeerasinghe

    Yes, when you guys are updating, please include the Scala 2 (e.g., 2.10.x) supported versions as well. At least, if you can use the LTS version of Jackson (I think 2.18.0), that would be good.

  2. gaeljw commented on Nov 12, 2025

    @gaeljw
    MemberAuthor

    Yes, when you guys are updating, please include the Scala 2 (e.g., 2.10.x) supported versions as well. At least, if you can use the LTS version of Jackson (I think 2.18.0), that would be good.

    I don't understand what you mean by "Scala 2 supported version". Jackson is a Java library.

    Play JSON is available for Scala 2.12, 2.13 and 3.

    And there's no such thing as a LTS for Jackson.

  3. MahogaWeerasinghe commented on Nov 12, 2025

    @MahogaWeerasinghe

    I meant the Scala 2 supported version, please update the Jackson version on the 2.10.x branch as well, since that branch supports Scala 2 versions. Not just the play-json 3.0.x branch, which supports Scala 3, right?

    And regarding the “LTS for Jackson” comment — I noticed in the release notes here that they mention something like that: https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.18

    Image
  4. gaeljw commented on Nov 12, 2025

    @gaeljw
    MemberAuthor

    Scala 2 is still supported with Play JSON 3.x as well.

    Regarding the Jackson LTS, thanks for the information, I was not aware of that even though it seems to be a proposal at this stage (JSTEP), not sure if they really committed to it.

    Anyway, Play JSON is already on Jackson 2.20 and it won't downgrade to 2.18. Plus, for maximum compatibility with Jackson 3 users (if we still are on Jackson 2), it's better to be on 2.20 as there's one artifact (annotations) that is still versioned as 2.20 in Jackson 3 "group of artifacts".

  5. MahogaWeerasinghe commented on Nov 12, 2025

    @MahogaWeerasinghe

    But I have a problem, when we use play-json version 2.10.8, its dependency tree shows Jackson version 2.14.3, as defined in the build.sbt file on the 2.10.x branch (link).

    Image

    However, the main branch contains Jackson version 2.20.1 (link).

    Interestingly, the play-json 3.0.x branch build.sbt file also contains Jackson version 2.14.3 (link).

    Can you explain why the main branch has a newer Jackson version, while both 2.10.x and 3.0.x branches are still using 2.14.3?

  6. mkurz commented on Nov 12, 2025

    @mkurz
    Member

    Can you explain why the main branch has a newer Jackson version, while both 2.10.x and 3.0.x branches are still using 2.14.3?

    Because the main branch is the dev branch which always is newer than any current stable branch.

  7. mkurz commented on Nov 12, 2025

    @mkurz
    Member

    And regarding the “LTS for Jackson” comment — I noticed in the release notes here that they mention something like that: https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.18

    Regarding the Jackson LTS, thanks for the information, I was not aware of that even though it seems to be a proposal at this stage (JSTEP), not sure if they really committed to it.

    fyi: The wiki was updated only 2 weeks ago (Oct. 28th) to add the details about 2.18 being an LTS: https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.18/_compare/a1176ccbff328edfcfd6182f0c9376980592a5fa...836acecea4e33805d6a8c926939c20dadf9afee3
    So this is very new.

    Discussions:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions