@Mentors

We are discussing creating a “hotfix” branch from which we will merge into 
development as well as master.

These hotfixes are an agile way to fix serious problems in the master where we 
maintain a stable non-SNAPSHOT version. I did not see this as a release with a 
tarball into the nexus-verse. The key thing about these is that we do not put 
experimental “SNAPSHOT” code into master as do many other Apache projects. So 
merging hotfixes into master would give users a way to retrieve a fairly stable 
fix with none of the more experimental code in develop. 

So keeping the context in mind I would imagine recommending people upgrade to 
the hotfix version, otherwise why put it in master—given our care about keeping 
master stable.

This is not an academic question because we now have at least one serious bug 
fix waiting for the hotfix part of the process. It is not enough to trigger a 
full merge of the develop branch since develop is not ready yet and is too 
serious to wait for a full release.

To see the process we’d like to follow please have a look at: 
http://nvie.com/posts/a-successful-git-branching-model/ This model has a great 
deal to recommend it and has been used in PIO for some time. We have already 
agreed to follow this model, now we are discussing logistics.


On Dec 5, 2016, at 9:03 AM, Donald Szeto <don...@apache.org> wrote:

I am okay with reserving patch for official releases, and use suffix that
have something with an increasing numerical in it.

We will probably need a dedicated page or micro site in the doc for these
kind of unofficial tar balls. It is against ASF policy to mark anything as
release and encourage people to use without the formal voting process. They
also cannot be sync to ASF distribution.

On Thu, Dec 1, 2016 at 10:25 AM Pat Ferrel <p...@occamsmachete.com> wrote:

> But the downside is we never touch major, or haven’t in all the years of
> PIO. So in effect all releases will be minor number changes and so far we
> have only touched that 10 times in all the years of PIO. We could skip many
> patch numbers and only fully release on important ones. But Semantic
> Versioning 2.0 allows a lot of other encoding of minor information in the
> hyphen extension like dot numbers, beta, RC, incubating etc.
> http://semver.org/#spec-item-9 <http://semver.org/#spec-item-9> They
> account for things as crazy as 1.0.0-x.7.z.92.
> 
> I guess I’m ok with either skipping a lot of patch numbers per actual
> release and only using patch numbers to denote hotfixes or adding something
> to the hyphen extension but limiting release numbers to something as course
> grained as major and minor seems problematic.
> 
> And yet if everyone likes this so be it.
> 
> On Dec 1, 2016, at 10:05 AM, Donald Szeto <don...@apache.org> wrote:
> 
> Yes. I was suggesting to use 0.10.1-incubating. The upside of this is that
> our end users know which one has included all the latest fix instead of
> tracking different JIRA ticket numbered suffices. We can limit real
> releases to touch only major and minor version parts.
> 
> On Mon, Nov 28, 2016 at 10:26 AM, Pat Ferrel <p...@occamsmachete.com>
> wrote:
> 
>> Good point (reliable building). An extension of strict semantic
> versioning
>> allows an extension like -incubating, this could include a Jira # too so
>> the full artifact name might be:
>> 
>> org.apache.predictionio-0.10.0-incubating-jira-255 and this would be
>> tagged jira-255 in either hotfix of master branches.
>> 
>> This allows the docs to remain unchanged because the version 0.10.0 does
>> not change, which we might reserve for real releases. Donald are you
>> suggesting a new 0.10.1-incubating for each hotfix?
>> 
>> 
>> On Nov 28, 2016, at 10:18 AM, Donald Szeto <don...@apache.org> wrote:
>> 
>> We should also talk about how we proceed with versioning these patch
>> releases. We follow semantic versioning, so naturally we could use major
>> and minor portions for official releases, and the patch portion for
>> micro-releases / hotfixes. This way, even though Maven artifacts won't be
>> published to the central repository, users will not get tripped with
>> different cached versions of the artifacts.
>> 
>> On Mon, Nov 28, 2016 at 10:14 AM, Donald Szeto <don...@apache.org>
> wrote:
>> 
>>> Pat's link is the best description of the Git development model that
>>> PredictionIO has been using since the beginning. I also support the use
>> of
>>> hotfix branches that will merge into both master and develop branches.
>>> 
>>> Branching for different sets of external dependencies, in my opinion,
>>> should be the last resort. We can try to work our build system to
>>> accommodate.
>>> 
>>> When we have a conclusion we should update http://predictionio.
>>> incubator.apache.org/community/contribute-code/
>>> 
>>> On Sat, Nov 26, 2016 at 10:00 AM, Pat Ferrel <p...@occamsmachete.com>
>>> wrote:
>>> 
>>>> This is a better description of how we should be managing code and git
>>>> branches than I have every seen: http://nvie.com/posts/a-succes
>>>> sful-git-branching-model/ <http://nvie.com/posts/a-succe
>>>> ssful-git-branching-model/> It includes the use of develop, a stable
>>>> master branch, and hotfixes to master. I also like more than one
> release
>>>> branch because I imagine once we support two versions of Elasticsearch
>> or
>>>> Spark that require code changes, a branch is the natural way to
> assemble
>>>> the code.
>>>> 
>>>> The post is worth a read and discussion. My other Apache git based
>>>> project could use this approach too.
>>>> 
>>>> In this case I’m only proposing that major bug fixes (hotfixes) be
>>>> allowed into master and be tagged. The post gives good rationale for
>> this.
>>>> 
>>>> 
>>>> On Nov 25, 2016, at 11:30 PM, Paul-Armand Verhaegen <
>>>> paularmand.verhae...@gmail.com> wrote:
>>>> 
>>>> 
>>>> Great proposal. I certainly agree with the needs in the community and
>>>> associated benefits for fast bug fixes in master.
>>>> If I may suggest to hotfix against master with merge towards
>> development.
>>>> Merges can be cumbersome when dev and master diverge.
>>>> It can become very difficult if the fixes (from dev) cannot be applied
>> to
>>>> master, and additional commits need to be made, that has messed up my
>> head
>>>> before.
>>>> Although more or less the same work, I believe it to be less of an
> issue
>>>> if we end up messing up dev.
>>>> I'm also in favor of using a well-documented approach such as gitflow,
>>>> since I often forget the exact workflows of different projects.
>>>> 
>>>>> On 25 Nov 2016, at 18:57, Pat Ferrel <p...@actionml.com> wrote:
>>>>> 
>>>>> Our dev process includes edge/snapshot code being kept in the develop
>>>> branch until release time. I like this process because it allows us to
>> keep
>>>> master clean and stable. So imagine that we have a major bug fix. To
> get
>>>> this to users we could do a release but this can’t happen soon enough
>> if a
>>>> user has discovered it and already needs the fix. We could point to a
>>>> commit in develop but that branch is a little wild until release time.
>>>>> 
>>>>> I’d like to propose we allow some commits to master, to fix critical
>>>> bugs, and tag these with the Jira # describing the bug. The fix would
>> also
>>>> go in develop so at merge time there would be nothing to merge.
>>>>> 
>>>>> At present we have a source only release so this would work fairly
>>>> well, even with a binary release it would be safer and easier to
>> document
>>>> than suggesting a build of the develop branch.
>>>>> 
>>>>> Opinions? If no one objects there was a critical bug fixed recently
> and
>>>> I’ll do the above to get the fix in master.
>>>> 
>>>> 
>>>> 
>>> 
>> 
>> 
> 
> 

Reply via email to