You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by Vladimir Ozerov <vo...@gridgain.com> on 2016/12/07 09:23:34 UTC

What branch to use for Apache Ignite 2.0 development?

Igniters,

We are moving towards Apache Ignite 2.0. This release will contain lots of
changes which break compilation on user side and change internal binary
protocols. The question is - where to continue development of 2.0 features?

We can do that in master branch. But what if we decide to release Apache
Ignite 1.9 at some point? In this case we cannot use master branch because
it will contain incompatible API changes. As alternative we can create
separate branch for 2.0 and merge all breaking changes there. But it will
complicate development process.

Probably we can continue all development in *master*, and in case if we
decide to release another 1.x release, then create branch from ignite-1.8
tag and cherry-pick required fixes there.

Please share your thoughts.

Vladimir.

Re: What branch to use for Apache Ignite 2.0 development?

Posted by Alexey Goncharuk <al...@gmail.com>.
+1 to have a separate branch for 2.0 and keeping master clean from breaking
changes. I think 2.0 should be merged to master only after first 2.0
release, when it really becomes the main development branch.

2016-12-07 12:36 GMT+03:00 Sergi Vladykin <se...@gmail.com>:

> I think it is good idea to be able to continue releasing 1.X versions. It
> may take quite some time to make Ignite 2.0 stable enough. Thus I'm for
> keeping changes targeted exclusively to 2.0 in a separate branch for now.
>
> Sergi
>
> 2016-12-07 12:23 GMT+03:00 Vladimir Ozerov <vo...@gridgain.com>:
>
> > Igniters,
> >
> > We are moving towards Apache Ignite 2.0. This release will contain lots
> of
> > changes which break compilation on user side and change internal binary
> > protocols. The question is - where to continue development of 2.0
> features?
> >
> > We can do that in master branch. But what if we decide to release Apache
> > Ignite 1.9 at some point? In this case we cannot use master branch
> because
> > it will contain incompatible API changes. As alternative we can create
> > separate branch for 2.0 and merge all breaking changes there. But it will
> > complicate development process.
> >
> > Probably we can continue all development in *master*, and in case if we
> > decide to release another 1.x release, then create branch from ignite-1.8
> > tag and cherry-pick required fixes there.
> >
> > Please share your thoughts.
> >
> > Vladimir.
> >
>

Re: What branch to use for Apache Ignite 2.0 development?

Posted by Vladimir Ozerov <vo...@gridgain.com>.
Folks,

IMHO the most important argument in favor of separate branch for 2.0 I
heard is that if we start breaking API in master right now, users will not
be able to easily build binaries from master and plug them into their app.
Makes perfect sense to me.

I created the branch *ignite-2.0 *from master. I propose to merge all
breaking changes to *ignite-2.0*, and the rest to *master*. Master should
be merged to ignite-2.0 on regular basis. Please let me know if you have
any concerns on this approach.

Vladimir.

On Thu, Dec 8, 2016 at 11:06 AM, Pavel Tupitsyn <pt...@apache.org>
wrote:

> I agree with Denis.
> Next planned release is 2.0, so let's work in master. No extra branches, no
> confusion.
> Working in a separate branch is an inconvenience that will turn out
> unnecessary if there is no 1.9.
>
> On Thu, Dec 8, 2016 at 12:55 AM, Denis Magda <dm...@apache.org> wrote:
>
> > What’s bad about this approach?
> >
> > Probably we can continue all development in *master*, and in case if we
> > decide to release another 1.x release, then create branch from ignite-1.8
> > tag and cherry-pick required fixes there.
> >
> > Personally, it looks much more flexible to me. We can develop everything
> > directly in master preparing it for 2.0 and avoiding management of
> several
> > branches.
> >
> > Imagine that we’ve already released 2.0 and the master became 2.0 only
> > after that event. But later on the community decides to release 1.9, 1.10
> > or other version and we will have to branch from 1.8 rather than from the
> > master. So, it’s not feasible to predict everything but if we’re agreed
> > that the next version will be 2.0 then it’s ok to develop in the master
> > since there is 1.8 branch that can be used for unpredictable situations.
> >
> > —
> > Denis
> >
> >
> >
> > > On Dec 7, 2016, at 2:04 AM, Yakov Zhdanov <yz...@apache.org> wrote:
> > >
> > >> Master must be periodically merged to 2.0. Looks simple enough, no?
> > >
> > > This may not be always possible and may require to re-implement some
> > > features. However, I vote for this approach until it causes problems.
> > Once
> > > we start to spend more time on merging, master should become 2.0
> > > development branch immediately.
> > >
> > > --Yakov
> >
> >
>



-- 
Vladimir Ozerov
Senior Software Architect
GridGain Systems
www.gridgain.com
*+7 (960) 283 98 40*

Re: What branch to use for Apache Ignite 2.0 development?

Posted by Pavel Tupitsyn <pt...@apache.org>.
I agree with Denis.
Next planned release is 2.0, so let's work in master. No extra branches, no
confusion.
Working in a separate branch is an inconvenience that will turn out
unnecessary if there is no 1.9.

On Thu, Dec 8, 2016 at 12:55 AM, Denis Magda <dm...@apache.org> wrote:

> What’s bad about this approach?
>
> Probably we can continue all development in *master*, and in case if we
> decide to release another 1.x release, then create branch from ignite-1.8
> tag and cherry-pick required fixes there.
>
> Personally, it looks much more flexible to me. We can develop everything
> directly in master preparing it for 2.0 and avoiding management of several
> branches.
>
> Imagine that we’ve already released 2.0 and the master became 2.0 only
> after that event. But later on the community decides to release 1.9, 1.10
> or other version and we will have to branch from 1.8 rather than from the
> master. So, it’s not feasible to predict everything but if we’re agreed
> that the next version will be 2.0 then it’s ok to develop in the master
> since there is 1.8 branch that can be used for unpredictable situations.
>
> —
> Denis
>
>
>
> > On Dec 7, 2016, at 2:04 AM, Yakov Zhdanov <yz...@apache.org> wrote:
> >
> >> Master must be periodically merged to 2.0. Looks simple enough, no?
> >
> > This may not be always possible and may require to re-implement some
> > features. However, I vote for this approach until it causes problems.
> Once
> > we start to spend more time on merging, master should become 2.0
> > development branch immediately.
> >
> > --Yakov
>
>

Re: What branch to use for Apache Ignite 2.0 development?

Posted by Denis Magda <dm...@apache.org>.
What’s bad about this approach? 

Probably we can continue all development in *master*, and in case if we
decide to release another 1.x release, then create branch from ignite-1.8
tag and cherry-pick required fixes there.

Personally, it looks much more flexible to me. We can develop everything directly in master preparing it for 2.0 and avoiding management of several branches. 

Imagine that we’ve already released 2.0 and the master became 2.0 only after that event. But later on the community decides to release 1.9, 1.10 or other version and we will have to branch from 1.8 rather than from the master. So, it’s not feasible to predict everything but if we’re agreed that the next version will be 2.0 then it’s ok to develop in the master since there is 1.8 branch that can be used for unpredictable situations.

—
Denis



> On Dec 7, 2016, at 2:04 AM, Yakov Zhdanov <yz...@apache.org> wrote:
> 
>> Master must be periodically merged to 2.0. Looks simple enough, no?
> 
> This may not be always possible and may require to re-implement some
> features. However, I vote for this approach until it causes problems. Once
> we start to spend more time on merging, master should become 2.0
> development branch immediately.
> 
> --Yakov


Re: What branch to use for Apache Ignite 2.0 development?

Posted by Yakov Zhdanov <yz...@apache.org>.
> Master must be periodically merged to 2.0. Looks simple enough, no?

This may not be always possible and may require to re-implement some
features. However, I vote for this approach until it causes problems. Once
we start to spend more time on merging, master should become 2.0
development branch immediately.

--Yakov

Re: What branch to use for Apache Ignite 2.0 development?

Posted by Sergi Vladykin <se...@gmail.com>.
Vladimir,

Plans tend to change over time :) It is a good practice to avoid locking
ourselves and be flexible enough to tolerate any possible changes.

For me it is clear that everything related to a new storage model
(PageMemory and stuff) as well as other breaking changes have to go to 2.0.
Everything else goes to the current master. Master must be periodically
merged to 2.0. Looks simple enough, no?

Sergi

2016-12-07 12:44 GMT+03:00 Vladimir Ozerov <vo...@gridgain.com>:

> Sergi,
>
> The problem is that all current changes target 2.0, because we do not have
> 1.9 in plans at the moment. So it is not clear how to distinguish them.
> If 1.x is ever will be planned, most likely it will be bug-fix release. IMO
> it is better to continue all development in master and branch out of
> *ignite-1.8* tag for 1.x release if needed.
>
> On Wed, Dec 7, 2016 at 12:36 PM, Sergi Vladykin <se...@gmail.com>
> wrote:
>
> > I think it is good idea to be able to continue releasing 1.X versions. It
> > may take quite some time to make Ignite 2.0 stable enough. Thus I'm for
> > keeping changes targeted exclusively to 2.0 in a separate branch for now.
> >
> > Sergi
> >
> > 2016-12-07 12:23 GMT+03:00 Vladimir Ozerov <vo...@gridgain.com>:
> >
> > > Igniters,
> > >
> > > We are moving towards Apache Ignite 2.0. This release will contain lots
> > of
> > > changes which break compilation on user side and change internal binary
> > > protocols. The question is - where to continue development of 2.0
> > features?
> > >
> > > We can do that in master branch. But what if we decide to release
> Apache
> > > Ignite 1.9 at some point? In this case we cannot use master branch
> > because
> > > it will contain incompatible API changes. As alternative we can create
> > > separate branch for 2.0 and merge all breaking changes there. But it
> will
> > > complicate development process.
> > >
> > > Probably we can continue all development in *master*, and in case if we
> > > decide to release another 1.x release, then create branch from
> ignite-1.8
> > > tag and cherry-pick required fixes there.
> > >
> > > Please share your thoughts.
> > >
> > > Vladimir.
> > >
> >
>
>
>
> --
> Vladimir Ozerov
> Senior Software Architect
> GridGain Systems
> www.gridgain.com
> *+7 (960) 283 98 40*
>

Re: What branch to use for Apache Ignite 2.0 development?

Posted by Vladimir Ozerov <vo...@gridgain.com>.
Sergi,

The problem is that all current changes target 2.0, because we do not have
1.9 in plans at the moment. So it is not clear how to distinguish them.
If 1.x is ever will be planned, most likely it will be bug-fix release. IMO
it is better to continue all development in master and branch out of
*ignite-1.8* tag for 1.x release if needed.

On Wed, Dec 7, 2016 at 12:36 PM, Sergi Vladykin <se...@gmail.com>
wrote:

> I think it is good idea to be able to continue releasing 1.X versions. It
> may take quite some time to make Ignite 2.0 stable enough. Thus I'm for
> keeping changes targeted exclusively to 2.0 in a separate branch for now.
>
> Sergi
>
> 2016-12-07 12:23 GMT+03:00 Vladimir Ozerov <vo...@gridgain.com>:
>
> > Igniters,
> >
> > We are moving towards Apache Ignite 2.0. This release will contain lots
> of
> > changes which break compilation on user side and change internal binary
> > protocols. The question is - where to continue development of 2.0
> features?
> >
> > We can do that in master branch. But what if we decide to release Apache
> > Ignite 1.9 at some point? In this case we cannot use master branch
> because
> > it will contain incompatible API changes. As alternative we can create
> > separate branch for 2.0 and merge all breaking changes there. But it will
> > complicate development process.
> >
> > Probably we can continue all development in *master*, and in case if we
> > decide to release another 1.x release, then create branch from ignite-1.8
> > tag and cherry-pick required fixes there.
> >
> > Please share your thoughts.
> >
> > Vladimir.
> >
>



-- 
Vladimir Ozerov
Senior Software Architect
GridGain Systems
www.gridgain.com
*+7 (960) 283 98 40*

Re: What branch to use for Apache Ignite 2.0 development?

Posted by Sergi Vladykin <se...@gmail.com>.
I think it is good idea to be able to continue releasing 1.X versions. It
may take quite some time to make Ignite 2.0 stable enough. Thus I'm for
keeping changes targeted exclusively to 2.0 in a separate branch for now.

Sergi

2016-12-07 12:23 GMT+03:00 Vladimir Ozerov <vo...@gridgain.com>:

> Igniters,
>
> We are moving towards Apache Ignite 2.0. This release will contain lots of
> changes which break compilation on user side and change internal binary
> protocols. The question is - where to continue development of 2.0 features?
>
> We can do that in master branch. But what if we decide to release Apache
> Ignite 1.9 at some point? In this case we cannot use master branch because
> it will contain incompatible API changes. As alternative we can create
> separate branch for 2.0 and merge all breaking changes there. But it will
> complicate development process.
>
> Probably we can continue all development in *master*, and in case if we
> decide to release another 1.x release, then create branch from ignite-1.8
> tag and cherry-pick required fixes there.
>
> Please share your thoughts.
>
> Vladimir.
>