Yup, big +1's on both points: the versioning schema (thanks a bunch for
digging it up, Brane!) and sticking to a stricter compatibility rules.
Integers are cheap and abundant, but conveying the clear message that say 2.0
isn't compatible with 1.4 because of XYZ in hadoop module is important. It is
a far clearer than "2.0 and 1.4 are fine, except that hadoop module isn't
because of XYZ".

Regards,
  Cos

On Wed, Aug 26, 2015 at 07:35PM, Branko Čibej wrote:
> On 26.08.2015 15:56, Vladimir Ozerov wrote:
> > One more important thing here - distinction between overall compatibility
> > and module compatibility. We may face serious bugs which severely affects
> > single module/subsystem and fix will break backward ocmpatibility only on
> > of that module.
> > E.g. currently in IGFS file might be locked for write forever in case of
> > abrupt shutdown of a node from which this write were initiated. The only
> > way to fix this reliably is to change an object which travels over a wire,
> > what might break backward compatibility.
> >
> > May be we should be able to relax compatibility requirements on module
> > level sometimes?
> 
> It's better to have the same kind of versioning rules for the wire
> protocol, too; a capability discovery can tell you when you can use a
> new kind of message.
> 
> I don't know how important this kind of compatibility is for Ignite;
> it's extremely important in Subversion, because it allows independent
> updates/rollbacks of servers and clients.
> 
> Or you can avoid the compatibility issue by calling the fixed protocol
> Ignite 2.0. :)
> 
> -- Brane
> 
> 
> On Wed, Aug 26, 2015 at 10:40 AM, Branko Čibej <br...@apache.org> wrote:
> >> On 26.08.2015 08:54, Alexey Goncharuk wrote:
> >>> This particular change does not break the compatibility (a new method is
> >>> being added to the public API), however I am +1 for adding these
> >> principles
> >>> to the dev documentation.
> >> Way back when Ignite was still a podling I pointed out this:
> >>
> >>     http://apr.apache.org/versioning.html
> >>
> >>
> >> http://subversion.apache.org/docs/community-guide/releasing.html#release-compat
> >>
> >> As I did then, I suggest we either refer to these docs directly, or copy
> >> over essentially the same principles to our docs.
> >>
> >> -- Brane
> >>
> >>
> >>> 2015-08-25 23:44 GMT-07:00 Konstantin Boudnik <c...@apache.org>:
> >>>
> >>>> Reading this I thought it would be a good idea to articulate some of the
> >>>> possible challenges that we will face in the future.
> >>>>
> >>>> Say, how we add/release incompatible changes like API modifications,
> >>>> deprecations, etc. Say, introduction of incompatible changes shouldn't
> >> be
> >>>> done
> >>>> in minor release of a project: Scala "transition" 2.9 -> 2.10 comes to
> >>>> mind as
> >>>> a biggest screw-up of the kind. Hence, to avoid being a laughing stock
> >> of
> >>>> the
> >>>> world's developers it would makes perfect sense to have some of these
> >>>> seemingly obvious principles either written or referred among other
> >>>> development resources.
> >>>>
> >>>> Thoughts?
> >>>>     Cos
> >>>>
> >>>> On Tue, Aug 25, 2015 at 11:17PM, Alexey Goncharuk wrote:
> >>>>> Ken, I added comments to the pull request on GitHub.
> >>>>>
> >>>>> I would prefer another committer to review this pull request as well
> >>>> since
> >>>>> public API is being changed (Dmitriy, Yakov?)
> >>>>>
> >>>>> --
> >>>>> AG
> >>>>>
> >>>>> 2015-08-25 22:53 GMT-07:00 Ken Cheng <kcheng....@gmail.com>:
> >>>>>
> >>>>>> Hi Devs,
> >>>>>>
> >>>>>> Anybody can help me to do a code review for PR
> >>>>>>
> >>>>>> https://github.com/apache/ignite/pull/35
> >>>>>>
> >>>>>> Thanks,
> >>>>>> kcheng
> >>>>>>
> >>
> 

Reply via email to