← Back to team overview

fuel-dev team mailing list archive

Re: Process improvements revisited

 

On 12/17/2013 01:05 PM, Victor Denisov wrote:
Guys,

I came across your conversation accidentally and I think I have my two cents to add to it. I went through the hell of branching strategy set up in my previous company - I guess I have something useful to say.

First of all, I see, when you have a bugfix for 3.2.1 you do two commits one to master and one to 3.2 fixes branch,
you don't event cherry pick - this is lame.
Fixes should be introduced to the oldest branch and then this branch should be merged into all branches where this commit should go to.

I would recommend to review these two documents before introducing any new branching model:
http://nvie.com/posts/a-successful-git-branching-model/
https://www.kernel.org/pub/software/scm/git/docs/gitworkflows.html

Thanks,
Victor.

---------- Forwarded message ----------
From: *Mike Scherbakov* <mscherbakov@xxxxxxxxxxxx <mailto:mscherbakov@xxxxxxxxxxxx>>
Date: 2013/12/16
Subject: Re: [Fuel-dev] Process improvements revisited
To: Roman Alekseenkov <ralekseenkov@xxxxxxxxxxxx <mailto:ralekseenkov@xxxxxxxxxxxx>> Cc: "fuel-dev@xxxxxxxxxxxxxxxxxxx <mailto:fuel-dev@xxxxxxxxxxxxxxxxxxx>" <fuel-dev@xxxxxxxxxxxxxxxxxxx <mailto:fuel-dev@xxxxxxxxxxxxxxxxxxx>>


We did. Bugs can be picked up by anyone to help.

Also, please take a look at bugs with Fuel Python Team or UI Team assignees, it is simply a group - so you can also take a look there and re-assign on yourself.

Regards,


On Mon, Dec 16, 2013 at 9:50 PM, Roman Alekseenkov <ralekseenkov@xxxxxxxxxxxx <mailto:ralekseenkov@xxxxxxxxxxxx>> wrote:

    Team,

    Thank you for the call. Let's keep doing this.

    Mike,

    As discussed, please unset assignee for the bugs your team is not
    actively working on. So they can be picked up by the US
    engineering team.

    Thanks,
    Roman


    On Monday, December 16, 2013, Mike Scherbakov wrote:

        Dmitry,
        thank you for bringing this up in a constructive manner with
        proposed changes. With the additional stuff, discussed on the
        call - let me provide our agreements.

        Before going into every point, we agreed that we are following
        OpenStack development model and would like to stick with it as
        far as we can, and reuse all the existing tools, such as
        OpenStack Infra, Gerrit, github.com/stackforge
        <http://github.com/stackforge>, launchpad. The closer we are
        with OpenStack flows, the easier life for both newcomers into
        Fuel from OpenStack community and Fuel developers.

        *1. Branch management for maintenance releases*

          * We had 3.2-fixes branch created, it worked good unless
            minor issues with a few forgotten commits which were not
            proposed to master at the same time as they were proposed
            to master.
          * We will create stable/4.0 branch right before the code
            freeze announcement, which will include all required links
            / information
          * git whatchanged can not be used to compare branches: it
            sees merges as another commits. Current situation is all
            required fixes were proposed and merged to master from
            3.2-fixes - verified by Dmitry Pyzhov (fuel-main,
            fuel-astute), Vladimir Kuklin (fuel-library) and Tatyana
            Leontovich (fuel-ostf)
          * I fully agree that core reviewers must not accept code
            into stable branch unless it is merged into master or
            patchset has a description why it should be only in stable
            branch. In the long run, we need to see if it is possible
            to configure Jenkins to automatically "-1" such requests
            to stable branches.
          * Let's keep following existing workflows as far as we can
            go with them:
            https://wiki.openstack.org/wiki/StableBranch
            https://wiki.openstack.org/wiki/GerritJenkinsGit

        *2. Management and code review of feature development branches*

          * > reject changes that are too large and/or contain messy
            revision history - all agree on this. All core reviewers -
            please keep an attention.
          * Code is unreviewed for a long time
            As we moved away from Kanban board - it is harder and
            harder for leads to keep an eye on every patchset.
            Instead, as we agreed - let's evangelize to follow another
            approach - as a developer, my work is not complete unless
            my code is merged into master and bug / blueprint is
            closed. So, team lead's job here is to control if
            developers push hard enough to make their code reviewed
            and merged. Dear Team Leads, please take a careful look at
            those patchsets which are not updated for more than a few
            days - and ping developers. Dear Developers, please don't
            wait to be pinged or punished, don't leave your code for
            abandonment :)
          * > when going through reviews, start with fixes for critical
            bugs - With you here, my ++
          * > Don't merge a review request if there's an older review
            request that can also be merged - With you here too, ++


        *3. Bugs triage*
        My suggestion is simply to follow:
        https://wiki.openstack.org/wiki/Bugs and
        https://wiki.openstack.org/wiki/BugTriage.
        I have to admit though that some additional notes are required
        to make it easy to set appropriate status, and may be for
        triaging as well. For example, if one OSTF test fails because
        of test itself - it should never be Critical, but if whole
        OSTF doesn't work - I believe it should. As we use OSTF for
        OpenStack deployment verification, including system tests, we
        can easily miss the point when we break something else.
        Please do not hesitate to propose additions to the links above
        specific for Fuel only.


        Some other questions raised:
        *WIP branches *should* be maintainable despite on anything*
        I believe we should not have such branches despite on anything
        :) Let's discuss every situation when it is needed, and see if
        there is anything we can do.
        I do not want to see such branches, as it will be always hard
        to merge and review later. So, if possible, it should be split
        on several pieces which could be merged independently, even if
        many parts are stubbed / not even enabled (with corresponding
        comments of course).

I'd like to quote from https://www.kernel.org/pub/software/scm/git/docs/gitworkflows.html

"Topic Branches: Any nontrivial feature will require several patches to implement, and may get extra bugfixes or improvements during its lifetime.

Committing everything directly on the integration branches leads to many problems: Bad commits cannot be undone, so they must be reverted one by one, which creates confusing histories and further error potential when you forget to revert part of a group of changes. Working in parallel mixes up the changes, creating further confusion."

Typical R&D topic branch's history could be rewrited multiple times (changing methods, redisgning, reimplementing, workarounds, stubs and monkey patches etc.) I believe such commits should never appear in master branch, its history should be linear and never changed.




        *Core reviewers*
        As we agreed on the core reviewers/management meeting - Dmitry
        Borodaenko is added to the team of core reviewers. Congrats! :)

        Bogdan D. - on your question about branches creation, please
        talk to Dmitry Pyzhov.

        Thanks!


        On Wed, Dec 11, 2013 at 5:55 PM, Bogdan Dobrelya
        <bdobrelia@xxxxxxxxxxxx> wrote:

            On 12/11/2013 03:42 PM, Vladimir Kuklin wrote:
            or git review <branch_name> if you are requesting change
            to another branch than master

            Yes, I already have a forks for most of main fuel repos, I
            use them for storing my WIP branches, because I cannot
            create any branches at main repo, and
            *that* was the 1st subject of discussion for long running
            R & D activities.
            And the 2nd subject was addressed to "long-lived feature
            branches with many commits and thousands of lines"

            (Yet another thing that everyone seems to agree on is that
            huge

            long-lived feature branches with many commits and
            thousands of lines
            worth of changes are evil and dangerous. Luckily, the move
            to Gerrit
            will make it hard enough to maintain and merge
            multi-commit branches,
            and will push people towards committing and merging
            changes in smaller
            self-sufficient chunks.)

            So, I was initially asking to elaborate, what if such WIP
            branches *should* be maintainable despite on anything, and
            how (what is the best practice for now?)




            On Wed, Dec 11, 2013 at 5:37 PM, Miroslav Anashkin
            <manashkin@xxxxxxxxxxxx> wrote:

                And do not use push, use `git review` without parameters


                On Wed, Dec 11, 2013 at 5:36 PM, Miroslav Anashkin
                <manashkin@xxxxxxxxxxxx> wrote:

                    Please fork stackforge repo to your account first
                    and use the forked version


                    On Wed, Dec 11, 2013 at 4:57 PM, Bogdan Dobrelya
                    <bdobrelia@xxxxxxxxxxxx> wrote:

                        On 12/11/2013 01:35 PM, Oleg Gelbukh wrote:
                        Looks like fuel.config already have this
                        configuration actually:

                        https://git.openstack.org/cgit/openstack-infra/config/tree/modules/openstack_project/files/gerrit/acls/stackforge/fuel.config#n5

                        Did you check if you actually can create a
                        branch?
                        Yes,

        Mike Scherbakov
        #mihgen




--
Mike Scherbakov
#mihgen

--
Mailing list: https://launchpad.net/~fuel-dev <https://launchpad.net/%7Efuel-dev> Post to : fuel-dev@xxxxxxxxxxxxxxxxxxx <mailto:fuel-dev@xxxxxxxxxxxxxxxxxxx> Unsubscribe : https://launchpad.net/~fuel-dev <https://launchpad.net/%7Efuel-dev>
More help   : https://help.launchpad.net/ListHelp







--
Best regards,
Bogdan Dobrelya,
Researcher TechLead, Mirantis, Inc.
+38 (066) 051 07 53
Skype bogdando_at_yahoo.com
Irc #bogdando
38, Lenina ave.
Kharkov, Ukraine
www.mirantis.com
www.mirantis.ru
bdobrelia@xxxxxxxxxxxx


References