Having gone through the release process, I have a couple of git drawings to
share. Currently the release process looks like this (you'll have to view
in fixed width font if it is stripped by the mail manager).

-----X---------------------------- master
   \
    ---Y-----a------b-------c----- release-2.10.0

*   X: commit that updates master from 2.10.0-SNAPSHOT to 2.11.0-SNAPSHOT
(Python calls it 2.10.0dev, etc per lang, and we wrote a script for it)
*   The release branch starts the release branch from parent of X
*   Y: changes Python version to 2.10.0 (no dev) and you'll see why
*   On release branch, version is still 2.10.0-SNAPSHOT for Java
*   a, b, c: the gradle release plugin commits a change for Java to 2.10.0
then reverts it, and tags with RC1, RC2, RC3, etc. If the RC fails you have
to force reset and delete the tag.
*   The release script also builds from fresh clones, so this is all pushed
to GitHub. It can really clutter the history but is otherwise probably
harmless. Because of issues with scripting and gpg set up I had to build
maybe 10 "RCs" to roll RC2.

I think git can make this simpler. I would propose:

-----X---------------------------- master
   \
    ----------------------- release-2.10.0
         \      \      \
          a      b      c

*    X: same
*    Y: gone
*    On release branch, both Java and Python are -SNAPSHOT or dev, etc.
(and it could be release-2.10 that advances minor version in the commit
after a succesful RC)
*    To build an RC, add the commits like a, b, c which remove -SNAPSHOT
and tag; we have a bash script that collects all the places that need
editing, the one that built commit X.
*    Whether to push the commit and tag first or build the RC first doesn't
matter that much but anyhow now it is off the history so it is fine to push.

Have I missed something vital about the current process?

Kenn



On Thu, Jan 31, 2019 at 8:49 PM Thomas Weise <t...@apache.org> wrote:

> Either looks fine to me. Same content, different label :)
>
>
> On Thu, Jan 31, 2019 at 6:32 PM Michael Luckey <adude3...@gmail.com>
> wrote:
>
>> Thx Thomas for that clarification. I tried to express, I d slightly
>> prefer to have branches
>>
>> 2.7.x
>> 2.8.x
>> 2.9.x
>>
>> and tags:
>> 2.7.0
>> 2.7.1
>> ...
>>
>> So only difference would be to be more explicit on the branch name, i.e.
>> that it embraces all the patch versions. (I do not know how to better
>> express, that '2.7.x' is a literal string and should not be confused as
>> some placeholder.)
>>
>> Regarding the versioning, I always prefer the explicit version including
>> patch version. It might make it easier to help and resolve issues if it is
>> known on which patch level a user is running. I spent lot of lifetime
>> assuming some version and realising later it was 'just another snapshot'
>> version...
>>
>> Just my 2 ct... Also fine with the previous suggestion.
>>
>>
>>
>> On Fri, Feb 1, 2019 at 3:18 AM Thomas Weise <t...@apache.org> wrote:
>>
>>> Hi,
>>>
>>> As Kenn had already examplified, the suggestion was to have branches:
>>>
>>> 2.7
>>> 2.8
>>> 2.9
>>> ...
>>>
>>> and tags:
>>>
>>> 2.7.0
>>> 2.7.1
>>> ...
>>> 2.8.0
>>> ...
>>>
>>> Changes would go to the 2.7 branch, at some point release 2.7.1 is
>>> created. Then more changes may accrue on the same branch, maybe at some
>>> point 2.7.2 is released and so on.
>>>
>>> We could also consider changing the snapshot version to 2.7-SNAPSHOT,
>>> instead of 2.7.{0,1,...}-SNAPSHOT.
>>>
>>> With that it wouldn't even be necessary to change the version number on
>>> the branch.
>>>
>>> Thanks,
>>> Thomas
>>>
>>>
>>>
>>> On Thu, Jan 31, 2019 at 5:59 PM Michael Luckey <adude3...@gmail.com>
>>> wrote:
>>>
>>>> Ah, sorry, I misread that.
>>>>
>>>> I slightly prefer the branch to have that '.x' suffix, as it is
>>>> slightly more explicit. But technically there will be no difference.
>>>>
>>>> On Fri, Feb 1, 2019 at 2:55 AM Chamikara Jayalath <chamik...@google.com>
>>>> wrote:
>>>>
>>>>> Sorry, what I meant was branches+tags for each minor version release
>>>>> and adding updates and tags to the same branch for patch releases. Name of
>>>>> the branch can be release-2.X for minor version release 2.X.0 as Thomas
>>>>> mentioned.
>>>>>
>>>>> - Cham
>>>>>
>>>>> On Thu, Jan 31, 2019 at 5:46 PM Michael Luckey <adude3...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Maybe we should not go so far to name branches 2.x. This will
>>>>>> probably make it difficult to support more than 1 LTS. Don't know, 
>>>>>> whether
>>>>>> we ever intent to do so, but supporting 2.7 and 2.13 on a 2.x branch 
>>>>>> seems
>>>>>> difficult?
>>>>>>
>>>>>> A more explicit 2.7.x with tags 2.7.1, 2.7.2 etc might be better? If
>>>>>> we are going to support a second LTS later on, we could just add that
>>>>>> 2.??.x branch.
>>>>>>
>>>>>> michel
>>>>>>
>>>>>> On Fri, Feb 1, 2019 at 2:37 AM Chamikara Jayalath <
>>>>>> chamik...@google.com> wrote:
>>>>>>
>>>>>>> +1 for 2.x branches and tags for 2.x.y releases.
>>>>>>>
>>>>>>> Also, I think we should integrate the dependency upgrade
>>>>>>> https://issues.apache.org/jira/browse/BEAM-6552 to 2.7.1 which
>>>>>>> fixes a rare but critical bug.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Cham
>>>>>>>
>>>>>>> On Thu, Jan 31, 2019 at 12:17 PM Kenneth Knowles <k...@google.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> It makes sense to me that 2.7 is a branch and just tags for 2.7.0,
>>>>>>>> 2.7.1, etc.
>>>>>>>>
>>>>>>>> On Thu, Jan 31, 2019 at 11:43 AM Thomas Weise <t...@apache.org>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> How about naming the branches release-X.Y and use them as base for
>>>>>>>>> all the X.Y.Z releases? We already have the X.Y.Z tags to refer to the
>>>>>>>>> actual release.
>>>>>>>>>
>>>>>>>>> On Thu, Jan 31, 2019 at 11:23 AM Charles Chen <c...@google.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> I would be in favor of keeping the old 2.7.0 release branch / tag
>>>>>>>>>> static so that referring to it will always get the right 2.7.0 code.
>>>>>>>>>>
>>>>>>>>>> On Thu, Jan 31, 2019 at 10:24 AM Kenneth Knowles <k...@apache.org>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> I have waffled on whether to have release-2.7 and only branch
>>>>>>>>>>> release-2.7.1 when starting that release. I think that whenever we 
>>>>>>>>>>> release
>>>>>>>>>>> 2.7.n the branch for 2.7.(n+1) should start from exactly that 
>>>>>>>>>>> point, no? Or
>>>>>>>>>>> perhaps on release-2.7 branch the hardcoded version strings could be
>>>>>>>>>>> 2.7.1-SNAPSHOT/dev and remove the SNAPSHOT/dev when cutting the new 
>>>>>>>>>>> release
>>>>>>>>>>> branch? I guess I think either one is fine. I think starting the 
>>>>>>>>>>> branch now
>>>>>>>>>>> is smart, so that you can accumulate cherrypicks of backports.
>>>>>>>>>>>
>>>>>>>>>>> Kenn
>>>>>>>>>>>
>>>>>>>>>>> On Thu, Jan 31, 2019 at 7:55 AM Maximilian Michels <
>>>>>>>>>>> m...@apache.org> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> 2.10.0 will be done when its done. Same goes for 2.7.1, which
>>>>>>>>>>>> is likely going to
>>>>>>>>>>>> be done later since we are focusing on 2.10.0 at the moment.
>>>>>>>>>>>>
>>>>>>>>>>>> I've created the release-2.7.1 branch because there is no other
>>>>>>>>>>>> place for fixes
>>>>>>>>>>>> of future versions. It would be helpful to have a minor version
>>>>>>>>>>>> branch (e.g.
>>>>>>>>>>>> release-2.7) which can be continuously updated.
>>>>>>>>>>>>
>>>>>>>>>>>> More generally speaking, we should dedicate time for LTS
>>>>>>>>>>>> releases. What is the
>>>>>>>>>>>> point otherwise of having an LTS version?
>>>>>>>>>>>>
>>>>>>>>>>>> -Max
>>>>>>>>>>>>
>>>>>>>>>>>> On 31.01.19 16:28, Thomas Weise wrote:
>>>>>>>>>>>> > Since you were originally thinking of 2.9.x as target, 2.10.0
>>>>>>>>>>>> seems closer both
>>>>>>>>>>>> > in time and upgrade path.
>>>>>>>>>>>> >
>>>>>>>>>>>> > I see no reason why a 2.7.1 release would materialize any
>>>>>>>>>>>> sooner than 2.10.0.
>>>>>>>>>>>> >
>>>>>>>>>>>> > Or is the intention is to just stack up fixes in the 2.7.x
>>>>>>>>>>>> branch for a
>>>>>>>>>>>> > potential future release?
>>>>>>>>>>>> >
>>>>>>>>>>>> > Thomas
>>>>>>>>>>>> >
>>>>>>>>>>>> >
>>>>>>>>>>>> > On Thu, Jan 31, 2019 at 5:03 AM Maximilian Michels <
>>>>>>>>>>>> m...@apache.org
>>>>>>>>>>>> > <mailto:m...@apache.org>> wrote:
>>>>>>>>>>>> >
>>>>>>>>>>>> >     I agree it's better to take some extra time to ensure the
>>>>>>>>>>>> quality of 2.10.0.
>>>>>>>>>>>> >
>>>>>>>>>>>> >     I've created a 2.7.1 branch and cherry-picked the
>>>>>>>>>>>> relevant commits[1]. We could
>>>>>>>>>>>> >     start collecting other fixes in case there are any.
>>>>>>>>>>>> >
>>>>>>>>>>>> >     -Max
>>>>>>>>>>>> >
>>>>>>>>>>>> >     [1] https://github.com/apache/beam/pull/7687
>>>>>>>>>>>> >
>>>>>>>>>>>> >     On 30.01.19 20:57, Kenneth Knowles wrote:
>>>>>>>>>>>> >      > Sounds good to me to target 2.7.1 and 2.10.0. I will
>>>>>>>>>>>> have to re-roll RC2
>>>>>>>>>>>> >     after
>>>>>>>>>>>> >      > confirming fixes for the latest blockers that were
>>>>>>>>>>>> found. These are not
>>>>>>>>>>>> >      > regressions from 2.9.0. But they seem severe enough
>>>>>>>>>>>> that they are worth
>>>>>>>>>>>> >     taking
>>>>>>>>>>>> >      > an extra day or two, because 2.9.0 had enough problems
>>>>>>>>>>>> that I would like
>>>>>>>>>>>> >     to make
>>>>>>>>>>>> >      > 2.10.0 a more attractive upgrade target for users
>>>>>>>>>>>> still on very old versions.
>>>>>>>>>>>> >      >
>>>>>>>>>>>> >      > Kenn
>>>>>>>>>>>> >      >
>>>>>>>>>>>> >      > On Wed, Jan 30, 2019 at 5:22 AM Maximilian Michels <
>>>>>>>>>>>> m...@apache.org
>>>>>>>>>>>> >     <mailto:m...@apache.org>
>>>>>>>>>>>> >      > <mailto:m...@apache.org <mailto:m...@apache.org>>>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>> >      >
>>>>>>>>>>>> >      >     Hi everyone,
>>>>>>>>>>>> >      >
>>>>>>>>>>>> >      >     I know we are in the midst of releasing 2.10.0,
>>>>>>>>>>>> but with the release
>>>>>>>>>>>> >     process
>>>>>>>>>>>> >      >     taking its time I consider creating a patch
>>>>>>>>>>>> release for this issue in the
>>>>>>>>>>>> >      >     FlinkRunner:
>>>>>>>>>>>> https://jira.apache.org/jira/browse/BEAM-5386
>>>>>>>>>>>> >      >
>>>>>>>>>>>> >      >     Initially I thought it would be good to do a 2.9.1
>>>>>>>>>>>> release, but since we
>>>>>>>>>>>> >      >     have an
>>>>>>>>>>>> >      >     LTS version, we should probably do a 2.7.1 (LTS)
>>>>>>>>>>>> release instead.
>>>>>>>>>>>> >      >
>>>>>>>>>>>> >      >     What do you think? I could only find one Fix
>>>>>>>>>>>> Version 2.7.1 issue in JIRA:
>>>>>>>>>>>> >      >
>>>>>>>>>>>> >
>>>>>>>>>>>> https://jira.apache.org/jira/issues/?jql=project%20%3D%20BEAM%20AND%20fixVersion%20%3D%202.7.1
>>>>>>>>>>>> >      >
>>>>>>>>>>>> >      >     Best,
>>>>>>>>>>>> >      >     Max
>>>>>>>>>>>> >      >
>>>>>>>>>>>> >
>>>>>>>>>>>>
>>>>>>>>>>>

Reply via email to