Skip to content

Jackson Work in Progress

Tatu Saloranta edited this page Dec 7, 2024 · 2079 revisions

2024-03-31: Out-of-Date / Deprecated


Jackson & Friends W-I-P

This page is a "living document" of on-going work, mostly by @cowtowncoder (Tatu), although other committers are welcome to update it as well.

Note that there is also a complementary set of things core developers may eventually work on but that may be better tackled by other contributors: New Contributor Friendly Issues

Contents are divided in multiple sections, first in a few kinds of actionable (*) things. Specific breakdown varies but is along lines of:

  • Things to evaluate -- haven't yet had a chance to fully grok
  • Actively worked on -- items to start work on (or being worked on)
  • Urgent to fix -- security problems, correctness (corruption), reliability (threading/concurrency)
  • Simple to fix -- low(er) hanging fruits that are likely relatively easily fixable (and important enough to include here)
  • Important to fix -- things that important strategically, or highly "voted", but that are more involved to fix/implement.

and then one other theoretically-actionable category:

  • Things to contemplate (not easy to fix and not even sure if behavior should change and/or if attempting to fix is worth the hassle or even possible), divided into
    1. May revisit
    2. Unlikely to revisit

as finally the "Recently Completed" addendum. Plus, I try to give "safe harbor" style guesstimate on timing of next minor (and in case of 3.0, major) releases.

Note that this page does NOT contain "Big Ideas" for Jackson 3.0: these are covered on separate JSTEP page.

(*) actionable meaning, in general, that progress is only/mostly limited by time available and not by inherent difficulty, or lack of design or ideas of how to tackle the need.

Last updates

(updated on daily basis so only some of major updates mentioned)

  • 31-Mar-2024, tatu: Another minor clean up
  • 13-Feb-2023, tatu: Minor clean up; haven't been updating recently
  • 04-Oct-2022, tatu: Had a quick look after 2.14.0-rc1 release (no changes)
  • 01-Oct-2021, tatu: Clean up after 2.13.0 release
  • 01-Dec-2020, tatu: Clean up after 2.12.0 release
  • 26-Apr-2020, tatu: Clean up after 2.11.0 release
  • 26-Sep-2019, tatu: 2.10.0 (final) released: clear up "recently completed" entries
  • 29-Oct-2018, tatu: Create the initial version

When will 2.19 and 3.0 be out?

Over time the goal of getting 3.0 out has been moving along with 2.x work. Now that Jackson 2.18 is out and FINALLY did teh Major Property Introspection rewrite, we can and need to focus again on making 3.0 a near future thing.

With that, the hope is that:

  • 3.0: limited progress during Q3/2024, so far in Q4/2024, but ideally 3.0.0-rc1 out during Q1 2025. Maybe even by end of January 2025

Immediate tasks to be scheduled

To Evaluate

Possible work for 2.x, evaluate

On-going 3.0 work

Possible 2.x work still

pre-2.18 that did not make it

2.x, Misc/non-Jackson

To work on

2.x / databind

2.x, XML

Important

Other

Other/Misc

Important Things

3.0

  • Finish partial rewrite of JsonFormat.Shape handling to support ALL changes (POJO to/from non-POJO), for types AND properties
  • https://github.com/FasterXML/jackson-core/issues/485: Add vanilla version for generators, to optimize handling
    • f.ex. one with no PrettyPrinter, using standard quoting
  • (databind) Introspection callbacks ("json schema"): simplify String-type callbacks etc

Simple Things

3.0

Deferred

These entries have been evaluated but not solved (either worked without full solution, or deemed unlikely to be solved and no attempt made)

Big Ideas

Documentation

(NOTE: need to include in some better way, but for now just need a place to add ideas)

Another dimension of things to work is... documentation.