Re: [BuildStream] Proposal: spreading responsibility and maintainership [Was: 1.4 Release timeline]



Hi,

Late to the party...

On Tue, Dec 11, 2018 at 12:06 PM Tristan Van Berkom <tristan vanberkom codethink co uk> wrote:
Hi Sander,

Forked reply for this one...

Thanks for that, should raise some more attention.

On Mon, 2018-12-10 at 13:13 +0100, Sander Striker wrote:
> Hi Tristan,
>
[...]
> > I am honestly not sure what the best answer to this is and hope we can
> > have an open and productive conversation and find a better approach.
>
> I think that for this cycle it's honestly mostly you and me butting
> heads over how a feature should work (specifically: build trees).

I've been wanting to make a statement about this for a number of weeks,
and I suppose this is as good a place as any.

We need to fix this so that this mailing list is not just a venue for
you and I to be butting heads,

I think it's already more than that.  
 
and I think that getting more
contributors involved in the hard conversations is our highest priority
right now.

I would welcome that.  I am of the mind though that who cares, speaks up.  We can't force anyone to speak up.  I don't think we have a hostile environment on our hands where people don't dare to speak up.  Actually, I do see more opinions appearing on the list. 
 
I do have a plan for improving this situation, I want to set it in
motion, and only fear upsetting some people in the process, I am not
sure where to go from here but let's start by just putting it on the
table.

I'm coining this as a "proposal" to get people's attention, but I think
people are aware that this has been coming for a while, and I want to
put it all down in one place so that people understand the intentions
and hopefully have input on how we can do this well.


The Goal
~~~~~~~~
I want the project to be self sustaining and run by the individuals who
contribute to it, and I want that to happen without the project losing
a strong sense of leadership.

I.e. what we need is for more individuals who contribute to the
project, to step up and become leaders.

And for current leaders to leave enough room for others to step up.

Ideally, I would like for our charter to be agreed upon in order to
ensure that our founding principals are respected and valued in the
long run, but if we cannot achieve that, or if the project's priorities
veer in directions that I don't like, then so be it.


How to get there from here
~~~~~~~~~~~~~~~~~~~~~~~~~~
I think there are a few essential factors which are standing in the way
of getting to a place with a more healthy community, where the barrier
of entry is as low as possible, and the road to becoming a maintainer
and decision maker is clear and fair enough.


Here is an outline of what I think we should do:

   Proceed with the committer policy change proposal
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   There was discussion on this before, and I formally proposed
   this back in September, and have been holding back.

     https://mail.gnome.org/archives/buildstream-list/2018-September/msg00044.html

   I like the subversion approach Sander suggested, and would perhaps
   only amend it to not require a private/archived mailing list for
   the communications of existing maintainers to vet new ones.
 
Having a private archived list serves a few purposes:
- it ensures that none of the existing maintainers are missed in the discussion
- it reminds people to remain civil and respectful, as their words may be read by the person that is considered to join the group of maintainers
- allowing [new] maintainers to understand if a person was under consideration before, and whether anything has changed

For those reasons I would prefer we do find a way to host a private list.  That list should _not_ be used for any technical discussions.

   This would be in the interest of progress, so as not to block on
   fussing about setting up such a mailing list and deciding where
   it would be hosted and all of that.

   This is an essential step towards spreading maintainership I think,
   as we need to have an official place where maintainership status is
   tracked.

   Coincidentally, gitlab.com has grown a "codeowners" feature that
   might be suitable for this:

     https://docs.gitlab.com/ee/user/project/code_owners.html

   Would it be a good idea to use this feature ? I personally feel that
   we don't need to strictly police the people we trust to commit to a
   given area of software, and that we can just trust them to only do
   what they have permission to do.

I agree.  I prefer a social convention over a strict permission system.  The time where you decide someone can be trusted with commit access is when you consider adding them as a maintainer.
 
   Optimize the feedback loop, get contributors involved

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   We need a way
to subscribe to the project level general
   notifications, and this
notification stream needs to be digestible
   and not overwhelming.

   For contributors to feel involved, they need to be included in
   the feedback loop, they need to be notified of bugs discovered
   in the field, and of merge requests which touch upon areas of
   their specific interest so that they can comment meaningfully
   without needing to be explicitly asked.

   I think that *at least* everyone who works full time on this
   project and initiative, should be subscribed to the general
   ongoings of the project - and that it really should only mean
   a stream of 5 or 10 emails a day maximum.

     o Movement on issues

       This includes:
       - Notification of new issues
       - Notification of closed issues
       - Notification of *meaningful progress* on issues

     o Movement on merge requests

       This should be only for merge requests which are really ready
       to be reviewed to merge.

   To achieve this, I think we should:

   - Only ever self-assign issues; an issue is only ever assigned to
     the person writing the code, not the reviewer, or the person you
     asked a question to.

     These generate notifications, and nobody else is interested in
     receiving notifications about an assignee ping pong game.

   - Only file merge requests when you are actually ready to request
     a merge.

     Remember that everyone is watching this notification channel,
     we dont want to spam everyone with every push you make to your
     work in progress branch.

I believe we have some means of filtering these per other posters on this thread.
 
   - Remove the status / priority labeling of issues

     This bleeds into my third point below, but also relevant here
     because assigning a label to an issue again generates
     notifications.

     It is enough for everyone to receive a notification about the
     initial labelling of how severe an issue is, or categorization
     as a documentation issue or a performance related issue; we don't
     additionally need to receive notifications about the status and
     priority of every issue.

Agree.  I would also really really like us to revisit the -commits@ list idea, which would exclusively receive code diffs.
 
   Dispel the corporate image, reduce visible micro management
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I think this is overstating it.  I don't think there is much of a corporate image.  I do agree that we can do away with some of the public project management aspects by parts of the community.
 
   Currently I feel that the way we have structured things in the
   past year has led to a micro managed workflow.

   Because we purport to classify priorities and track the status
   of each and every issue, this has led us to a state of affairs where
   issues get escalated and then assigned back down a food chain of
   sorts.

   In this state of affairs, developers are not doing the dictating
   of what needs to be done, and I think this works against us if
   we want developers to have a sense of ownership and have the
   opportunity (or desire, even) to grow into maintainers.

   From a project perspective, we can at least improve the situation
   by putting the onus on the individuals contributing, and removing
   the public bookkeeping of status and priorities from gitlab.

I agree that we don't need to use gitlab to do project management across a subset of the contributors.  And I don't have any expectations that all contributors will use the same project management structures.

Do other people have ideas of what we could do to improve the community
aspects of this project ?

I think we've been improving in this area, but I'd like to stress that the mailinglist is a valuable place to have discussions about features, approaches, things you are unsure about, etc.  Capturing everything in issues may seem attractive, but I do see things getting missed there.  I think that everyone that participates in the project should definitely be subscribed to the list, and look for messages of interest on a regular basis.  Depending on your client you can always "mute" threads that you're not interested in following.
One last thing on mailinglist behavior.  I think we're sometimes falling into a pattern where we leave little time for others to chime in on a thread, which effectively results in a few individuals dominating a thread.  I've also seen people hold back on replying when say Tristan or me already replied to it.  I'll try to better in that respect, but will admit that I'm replying partially based on my own time availability.

Cheers,
    -Tristan

Cheers,

Sander 
--

Cheers,

Sander


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]