It might be better to create a Wiki page for Jackson project, although perhaps we could do both: issue(s) for discussion, Wiki page as a draft document of current thinking.
-+ Tatu +- On Tue, Oct 25, 2016 at 7:17 AM, Lovro Pandzic <lovro.pand...@gmail.com> wrote: > Can we formalise all of this in form of github issues? > FYI JSON B public draft (https://java.net/projects/jsonb-spec/pages/Home) > contains some pretty good insight in terms of Java 8 Time/Date/Optional > handling etc. (no parameter names module functionality though). > > On Tuesday, October 18, 2016 at 5:25:49 PM UTC+2, Tatu Saloranta wrote: >> >> On Tue, Oct 18, 2016 at 6:46 AM, Lovro Pandzic <lovro....@gmail.com> >> wrote: >>> >>> Ok, I agree. >>> >>> Regarding parameter names, in 3.0.0 I suggest that the default behaviour >>> for single param constructors (delegating creator) changes so we can cover >>> everything with parameter names by default. >> >> >> This is possible, and should be considered. Perhaps coupled with addition >> of a `MapperFeature` to choose (to allow legacy usage support) this would >> make sense. >> >>> >>> >>> Regarding Java 8 time, in 3.0.0 I suggest that this should be aligned >>> with Date behaviour regarding ISO-8601 handling (offset/timezone) - >>> https://github.com/FasterXML/jackson-datatype-jsr310/issues/79. Current >>> behaviour is inconsistent with Date behaviour. >> >> >> Yes, I think this would be good time to align this, and other cases >> (java.sql.Date) for date/times. And I think there may be couple of other >> similar cases where datatype modules differ. >> >> -+ Tatu +- >> >>> >>> >>> On Friday, October 14, 2016 at 9:11:41 PM UTC+2, Tatu Saloranta wrote: >>>> >>>> It should support language features (parameter names) for sure. >>>> I think it should support optional types as well, relatively small. >>>> >>>> And despite the additional size, yes, I think it should also support >>>> full Java8 date/time value type set. >>>> >>>> So we could simplify the long-running discussion on best way to support >>>> Java 8 features. >>>> >>>> -+ Tatu +- >>>> >>>> >>>> On Fri, Oct 14, 2016 at 8:02 AM, Lovro Pandzic <lovro....@gmail.com> >>>> wrote: >>>>> >>>>> Will 3.0 only be Java 8 baseline or will it also include Java 8 Jackson >>>>> features? >>>>> >>>>> On Saturday, October 8, 2016 at 1:51:18 AM UTC+3, Tatu Saloranta wrote: >>>>>> >>>>>> Ah ok. Just wanted to make sure as it makes a big difference. :) >>>>>> >>>>>> There would still be room for plenty of discussion on exact changes to >>>>>> make, limits and so on. >>>>>> >>>>>> -+ Tatu +- >>>>>> >>>>>> >>>>>> On Tue, Oct 4, 2016 at 10:39 PM, Christopher Currie >>>>>> <ch...@fasterxml.com> wrote: >>>>>>> >>>>>>> Sorry, editing mistake, that should have been *not* necessary, and in >>>>>>> fact not desired. StringTemplate 4 changed co-ordinates as a patch >>>>>>> release >>>>>>> (from 4.0.2 to 4.0.3) causing headaches in class paths and eventually >>>>>>> needing to use the dependency plugin's "banned dependencies" feature. >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Tue, Oct 4, 2016 at 10:14 PM Tatu Saloranta <ta...@fasterxml.com> >>>>>>> wrote: >>>>>>>> >>>>>>>> On Tue, Oct 4, 2016 at 6:53 PM, Christopher Currie >>>>>>>> <chris...@currie.com> wrote: >>>>>>>>> >>>>>>>>> I think that if Jackson doesn't take the opportunity to cull the >>>>>>>>> dead API weight at version 3, it will never happen. I support the >>>>>>>>> proposal >>>>>>>>> to make the Java 8 update in version 3, and shed the API as needed. I >>>>>>>>> also >>>>>>>>> agree that changing the Maven co-ordinates is necessary. >>>>>>>> >>>>>>>> >>>>>>>> I was actually thinking & suggesting not changing Maven >>>>>>>> co-ordinates, due to that significantly slowing uptake of 3.x. As of >>>>>>>> now, >>>>>>>> Jackson 2.x is only about 2x as widely used as 1.x, after 4 years. >>>>>>>> >>>>>>>> Question of Maven coordinates is tied to the question of Java >>>>>>>> package as well. If only Maven group id was changed, upgrade could >>>>>>>> still be >>>>>>>> simple -- only pom change needed. The big difference is with Java >>>>>>>> package, >>>>>>>> as changing that will require sizable (if very mechnical, at least >>>>>>>> with 1.x >>>>>>>> -> 2.x) changes. >>>>>>>> >>>>>>>> But if only changing Maven coordinates, there's the nasty >>>>>>>> possibility of classpath clashes; in fact, this can be worse than not >>>>>>>> changing Maven package. So I guess it's both Maven and Java package, or >>>>>>>> neither. Just one does not make as much sense. >>>>>>>> >>>>>>>> Anyway. I don't feel huge need to make drastic API changes so it is >>>>>>>> quite possible to go 3.0 but only really base that on JDK baseline >>>>>>>> change, >>>>>>>> and not on public API change. That is one of options. >>>>>>>> >>>>>>>> -+ Tatu +- >>>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Christopher >>>>>>>>> >>>>>>>>> On Tue, Oct 4, 2016 at 10:22 AM Tatu Saloranta >>>>>>>>> <ta...@fasterxml.com> wrote: >>>>>>>>>> >>>>>>>>>> Based on feedback, I think that going Java 8 should indeed be >>>>>>>>>> signalled with major version upgrade. >>>>>>>>>> But unlike with 1.x -> 2.x, I think this can and should be done >>>>>>>>>> without changing Maven/Java-package coordinates. This would allow >>>>>>>>>> behavior >>>>>>>>>> similar to minor-version update for users who are already on Java 8 >>>>>>>>>> (which I >>>>>>>>>> suspect is vast majority); but signal other users that there is >>>>>>>>>> something of >>>>>>>>>> _potential_ compatibility problem. >>>>>>>>>> >>>>>>>>>> Now: from that point, we have two choices wrt API changes: >>>>>>>>>> >>>>>>>>>> 1. Consider 2.9 -> 3.0 a minor change, and keep even @deprecated >>>>>>>>>> public API (internal, non-public api is not guaranteed to stay with >>>>>>>>>> minor >>>>>>>>>> releases, but we try to give at least one minor version grace-period >>>>>>>>>> for >>>>>>>>>> those) >>>>>>>>>> 2. Take the opportunity to do little more changes. Most likely: >>>>>>>>>> - Remove deprecated (at least by 2.8) public methods -- there >>>>>>>>>> are some that date back to 2.0, esp. in `JsonFactory` >>>>>>>>>> - Change some of the defaults. For example: >>>>>>>>>> o Seems like majority of users prefer >>>>>>>>>> `FAIL_ON_UNKNOWN_PROPERTIES` to be `false` (1.x and 2.x have it as >>>>>>>>>> `true`) >>>>>>>>>> - Make minor changes to public API that really make sense (that >>>>>>>>>> is, similar to bug fix) but that are not binary or source >>>>>>>>>> compatible; mostly >>>>>>>>>> to Tree Model (JsonNode): >>>>>>>>>> o Existing `void` methods that ought to be chainable; add >>>>>>>>>> `this` return type >>>>>>>>>> o Existing methods that do not declare exceptions but >>>>>>>>>> should: some JsonNode methods >>>>>>>>>> >>>>>>>>>> My personal leanings would be towards (2), with some or all of >>>>>>>>>> proposed changes; but I do not assume all users agree. Resulting >>>>>>>>>> breakage is >>>>>>>>>> nasty if you are hit by it; especially so for transitive >>>>>>>>>> dependencies. >>>>>>>>>> >>>>>>>>>> Now: if and when 2.9 will proceed with Java 7, no changes would be >>>>>>>>>> made until end of the year (that is, at earliest january 2017 for >>>>>>>>>> master). >>>>>>>>>> But I would create a Wiki page to collect plans for changes to make, >>>>>>>>>> so that >>>>>>>>>> for once these may be discussed a priori. I also plan to send update >>>>>>>>>> summaries when significant changes/additions are made. >>>>>>>>>> >>>>>>>>>> Thoughts? >>>>>>>>>> >>>>>>>>>> -+ Tatu +- >>>>>>>>>> >>>>>>>>>> ps. Anyone with insight on Android's Java 8 plans would be very >>>>>>>>>> welcome to share those. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>>> Groups "jackson-dev" group. >>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>>> send an email to jackson-dev...@googlegroups.com. >>>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>> >>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "jackson-dev" group. >>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>> send an email to jackson-dev...@googlegroups.com. >>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>> >>>>>>>> -- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "jackson-dev" group. >>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>> send an email to jackson-dev...@googlegroups.com. >>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "jackson-dev" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to jackson-dev...@googlegroups.com. >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "jackson-dev" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to jackson-dev...@googlegroups.com. >>>>> For more options, visit https://groups.google.com/d/optout. >>>> >>>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "jackson-dev" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to jackson-dev...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >> >> > -- > You received this message because you are subscribed to the Google Groups > "jackson-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to jackson-dev+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "jackson-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to jackson-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.