Hi Everyone, I hope you all had a lovely holiday period.
>

Thank you David and Caleb for your continuous work dealing with the
practicalities involved in getting the merge to happen!  And thank you
Benedict for starting the thread – it is an important topic for us to
continue as CEPs and feature branches become a thing!

Reading the thread I see some quite distinct perspectives, and it's making
it difficult to have as constructive a dialogue as we should wish for.  As
is usual we see this balanced by the  productive collaboration happening
but hidden in the jira tickets.

I want to raise the following points, not as things to solve necessarily
but to help us appreciate just how different our PoVs are and how easy it
is for us to be talking past each other. If you immediately disagree with
any of them I suggest you read below how my PoV gets me there.

1. Work based on a notion of meritocracy. If you do the work, or have done
the work, your input weighs more.
2. Promote teamwork and value an inclusive culture.
3. Where the work is, or has been committed to, can be considered
irrelevant (in the context of this thread).
4. There are different types of reviews. We want to embrace them all.
5. We gate on either CI (not only circleci). Do not trash or reduce parity
in the other.
6. A feature branch != release branch/trunk.
7. The cep-15-accord was not ready to merge, this thread helped smoke out a
number of minor things.
8. Merging of feature branches should be quick and light team-work.


Going into these in more detail…

1+3)
If a patch from a pmc engineer has been reviewed by two other pmc
engineers,  CI has been run,  and they are about to merge,  a new reviewer
interjecting late can expect very little to happen pre-merge.  If there's
something serious it needs to be explained quickly.  We value people's
time, productiveness, and expertise.

This applies everywhere in the project: from tickets with patch files to
CEP work and feature branches.

2)
The more eyes the better.  Everything we do is transparent, and we should
always be receptive and by default open to new input regardless of where in
the process we are and where it comes from.  First be receptive and hear
people out, afterwards make the "now, or later" decision.  Take the time to
explain why a "we'll do it later" decision – it might not be obvious to
everyone, it helps newcomers understand the project dynamics, and it sets
project precedence.  Use (1) as needed.

4)
A lot of the thread has focused on reviews of Accord and its technical
components.  There are other types of reviews.  Examples are docs (internal
and external), the build system, our CIs and integrations, releases and ASF
policies.  Henrik pointed out that it is wasteful for these reviews to
happen early in the review window.  In addition, they are quite small in
comparison to initial technical reviews and equally quick to address. The
larger the patch the more we can expect others stepping in with these types
of tail-end reviews.

If we think of the review process as promoting teamwork and an inclusive
culture, we can also think of reviews akin to pair-programming that help
mentor those less knowledgeable in an area of the code.  This needs to be
time-boxed ofc, but IMHO we should keep an open mind to it – these types of
reviews do surprisingly lead to bug fixes and improvements with the
reviewer acting as a rubber-duck. This type of review we would want early,
not late.

There's also another type of review here.  If the author of another CEP has
another feature branch about to merge, they may want to review the branch
to get ahead of possible incoming conflicts.  This is a review that cares
nothing about Accord itself.  Their evaluation is if there's any
project-wide ROI if some changes happen before the merge.  Again, teamwork.

5)
It's been mentioned "always shippable trunk according to circleci".  That's
not true: we are always shippable according to *either* CI.  There are folk
just using ci-cassandra for our pre-commit gateway.  It is important that
you don't trash the other CI system, particularly when it comes to parity
of the tests that we run.  If you introduce new tests in one CI it is on
you to introduce it to the other CI, and therefore run both CI pre-merge.
This does not imply a merge is blocked on green ci-cassandra.a.o

6)
It's been mentioned that code committed to a feature branch can be
considered finalised, i.e. the review window is closed.  I don't buy this.
We don't cut releases off feature branches and don't have a policy of
"always stable feature-branch".  Both (4) and (5) help illustrate this.
Thinking about the different types of reviews and concerns we have on trunk
was my background to presuming the review window is open until the final
atomic commits to our release branches.  And our stable trunk agreement and
efforts is my presumption that trunk is to be treated like a release
branch. This supports (3), it makes no difference if the work could be in a
patch or in a feature branch, if we honour (2) and practice (1).

7+8)
This would not have happened without Benedict starting this thread, or
without Caleb and David.  Work is happening in tickets, I'm very grateful
for it.  We want the final phase to be quick and light team-work.  The
thread demonstrates the need to have a better process/precedent around this
for feature branches.  What we have as a bar for committing patches should
be re-used, appreciating that the size of the work correlates to the
benefits of more eyes and the number of concerns it touches. IMHO we should
also keep this discussion evolving over a few feature branch merges, as
each may shed light on different challenges.

I am keen and will have more time to help next week. It looks like it's
down to only a few topics we can solve quickly: docs, CI, submodules,
build+release, and whether they are done pre-merge or post-merge we can
leave to those doing it.

I hope that we can focus on fostering an inclusive culture, balancing it
with meritocracy and pragmatism. I'm also up to organising a zoom/meet for
folk that want to discuss this further, to help us connect together so many
distinct PoVs.  In a call together it is much easier.

cheers.

Reply via email to