Skip to content

Jackson Work in Progress

Tatu Saloranta edited this page Aug 21, 2022 · 2079 revisions

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)

  • 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.14 and 3.0 be out?

Jackson 2.13.0 was released on September 30th, 2021. After this initial 2.x focus will be on 2.13.x patches. Probably after 2.13.1 it may be time to create 2.14 branch.

Question of priority between 3.0 and 2.14 is still open:

  • For 3.0, changing Java/Maven packages is probably the next big task, to prepare for "2.x vs 3.x" co-existence.
  • For 2.14 there are a few focus areas:
    • Specialized Feature sets for to replace use of DeserializationFeature/SerializationFeature for "too-specific" (not cross-cutting) features
      • NodeFeature (JsonNode read/write variations)
      • DateTimeFeature (or -Config) for general Date/Time configuration
      • EnumFeature?
    • Rewrite Property introspection (esp. to help with Creator properties) -- did not get into 2.13
    • (if time permits) Processing limits for Streaming API

But, currently I think that:

  • 2.14: no estimate of completion -- at earliest during 2022/Q2
  • 3.0: limited progress during mid-2021, similarly, unlikely to proceed before 2022/Q2

Bigger 2.14 features

  • JSTEP-7: DataTypeFeature
    • Core implemented, add dynamically new features

Immediate tasks to be scheduled

Waiting:

Ready for triage:

Triaged, tricky but hoping to resolve

Performance issues, pending

(possibly security-related as well: most likely targeting 2.14)

To Evaluate

Work for 2.14, planned / on-going:

Work for 2.13(.2), planned

Possible work for 2.13.x/2.14, evaluate

On-going 3.0 work

Possible 2.13.x work still

2.13 that did not make it

2.13/2.14, Misc/non-Jackson

To work on

2.14 / core

2.14 / databind

2.14, XML

Important

Other

Other/Misc

Important Things

3.0

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)

Deferred - hope to revisit (when time permits)

Deferred - for now

Deferred - unlikely to revisit

Big Ideas

Note: many Big Ideas now included on JSTEP page.

But a scratchpad for stuff can be retained...

  • Add new JsonToken type for "Native Object Id Reference", mostly for YAML?

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.


Recently completed

Here are things since 2.13.3 (14-May-2022)

2.13 (2.13.4+)

No new additions

2.14

3.0

Other

Clone this wiki locally