Looks like a good improvement.

It makes sense to have the snapshot version on the release branch and only change it to a proper version before creating the RC.

Do we still revert a, b, c after creating the RC? Otherwise the bash script which replaces "-SNAPSHOT" won't work correctly.

-Max

On 06.02.19 20:21, Kenneth Knowles wrote:
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 <mailto: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
    <mailto: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
        <mailto: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 <mailto: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 <mailto: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 <mailto: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
                        <mailto: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
                            <mailto: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
                                <mailto: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
                                    <mailto: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
                                        <mailto: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
                                            <mailto: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>
                                                 >
                                                <mailto: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>>
                                                 >      >
                                                <mailto: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