The biggest issue in an open source project in my opinion is to find
someone responsible for keeping these two branches in sync. And I don't
mean technically but in the sense of somebody who chases after the issues
that arise in that develop branch.

Looking at this situation today, we regularly have nightly tests and other
CI tasks which fail on the master. So far, they have been ignored pretty
much. I don't see how magically there would now be people which step up to
shepherd these things. In the end, we'd introduce a blocking method where
nobody feels responsible for unblocking it.

-Marco

Lausen, Leonard <lau...@amazon.com.invalid> schrieb am Do., 12. März 2020,
04:24:

> One open source project that uses such staging workflow is cmake. Consider
> the
> recent PR https://gitlab.kitware.com/cmake/cmake/-/merge_requests/4446
> They use a robot that understands "Do: test", "Do: stage", "Do: unstage"
> and
> "Do: merge". Nightly tests are run on all staged PRs. A similar bot may
> also be
> helpful for MXNet.
>
> For MXNet: Nightly tests will only fail if a commit introduced bugs. Having
> buggy commits on master affects development experience and makes bisecting
> issues harder. Staging PRs and running nightly tests on all staged PRs
> could
> address the problem. One requirement may be that the bot can identify
> which of
> the staged PRs broke the nighlty tests, if any.
>
> This may avoid the problems with the dual-branch model pointed out by
> Chris and
> it may not be too hard to understand for contributors. The main blocker
> could be
> finding ressources to implement it. I don't expect a ready-made solution
> to be
> available as plugin?
>
> On Wed, 2020-03-11 at 19:43 -0700, Chris Olivier wrote:
> > My $0.02
> >
> > We had this model dual-branch when I was at GE and it was problematic.
> > Among other things, the two branches would tend to diverge to a large
> > degree and you ended up just cherry-picking in stuff here and there,
> which
> > caused even more problems, as well as the model allows the secondary
> branch
> > to get pretty buggy -- human nature being what it is -- to the point
> where
> > it's difficult to merge it into master without freezing them both and
> > stabilizing, merging into master, then stabilizing again (small things
> > almost certainly went into master in the meantime -- hotfixes, critical
> > features, etc, while everything was on hold stabilizing the secondary
> > branch).  It just double the work in the end, is what I experienced.
> >
> > On Wed, Mar 11, 2020 at 5:47 PM Yuan Tang <terrytangy...@gmail.com>
> wrote:
> >
> > > Second to not introduce a dev branch. We should try to improve our
> release
> > > process instead and avoid another branch that may introduce confusion
> > > around the source of truth.
> > >
> > > On Wed, Mar 11, 2020 at 8:39 PM Tianqi Chen <tqc...@cs.washington.edu>
> > > wrote:
> > >
> > > > While the idea of staging seems to be reasonable.
> > > > Most OSS projects choose not to do so because having a complicated
> > > staging
> > > > will likely confuse the contributors, and increase the change of
> > > > divergence(between dev and master).
> > > >
> > > > Given that we have a release model, so in some sense the release
> itself
> > > > serves as a staging pt.
> > > > A good approach would simply setup the nightly if necessary strive
> to fix
> > > > regressions and make sure the formal release addresses the issues.
> > > >
> > > > TQ
> > > >
> > > > On Wed, Mar 11, 2020 at 5:32 PM Pedro Larroy <
> > > pedro.larroy.li...@gmail.com
> > > > wrote:
> > > >
> > > > > Hi
> > > > >
> > > > > I talk to some people about this and they thought it would be a
> good
> > > > idea,
> > > > > so sharing it here:
> > > > >
> > > > > I would propose to use a staging or "dev" branch into which
> nightly &
> > > > > performance tests are done periodically and then this branch is
> merged
> > > to
> > > > > master. The goal of this workflow would be to avoid having
> regressions
> > > > and
> > > > > nightly failures creeping into master. PRs would get merged into
> dev
> > > and
> > > > > dev promoted periodically / nightly into master.
> > > > >
> > > > > The names can be swapped as well, between dev and master, so PRS
> get
> > > > merged
> > > > > into master and it doesn't change the workflow, and staging is the
> > > branch
> > > > > where nightly changes are merged to.
> > > > >
> > > > > Have this been considered?
> > > > >
> > > > > Pedro.
> > > > >
> > >
> > > --
> > > Yuan Tang
> > > https://terrytangyuan.github.io/about/ <
> http://twitter.com/TerryTangYuan>
> > > <https://terrytangyuan.github.io/about/>
> > >
>

Reply via email to