> Agreed as far as having staging branches vetoed by CI goes. Less sure about > the edit-commit-in-place part as said above.
Right. That’s just an implementation detail (in place vs. extra fix up commits). The latter is less annoying for the team in general, let’s do that instead. > If we do this, we should really automate that last part (have the CI > environment merge the staging branch to the non-staging ones on success). This would be nice, but would require a bot with commit access, wouldn’t it? -- AY On May 7, 2015 at 16:12:31, Sylvain Lebresne (sylv...@datastax.com) wrote: > If one of them breaks, we go and edit the _staging branch in place to correct > the problem, and let CI run again. I would strongly advise against *in place* edits. If we do it, we'll end up in weird situations which will be annoying for everyone. Editing commits that have been shared is almost always a bad idea and that's especially true for branch that will have some amount of concurrency like those staging branches. Even if such problems are rare, better to avoid them in the first place by simply commit new "fixup" commits as we currently do. Granted this give you a slightly less clean history but to the best of my knowledge, this hasn't been a pain point so far. > wait for CI; all clear > > git checkout cassandra-2.0; git merge cassandra-2.0_staging > git checkout cassandra-2.1; git merge cassandra-2.1_staging > git checkout trunk; git merge trunk_staging > > This does introduce some extra steps to the merge process If we do this, we should really automate that last part (have the CI environment merge the staging branch to the non-staging ones on success). > It seems if we want an "always releasable" set of branches, we need something > along these lines. Agreed as far as having staging branches vetoed by CI goes. Less sure about the edit-commit-in-place part as said above. > I certainly break tests by mistake, or the build itself, with alarming regularity. I agree running tests is painful, but at least for the build, this should be the responsibility of the committer to build before merging. We all forget it from times to times and that's ok, but it's not ok if it's "alarmingly regular". -- Sylvain