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