Writing directly into the repository was certainly the wrong thing at the wrong time since I was tasked to maintain the repository.  But I relinquish both the task of personally reviewing and managing the flow all changes.  So now it is a fair thing to be address.  Now I would say what committers do in the repositories is up to the PPMC.  I am completely out of the loop other than as a voting PPMC member.

I think the first question would be: Are the repositories a free-for-all where anyone with the write bit can do anything they want?  Or are their limitations are what they can and cannot do.  I hope that there are limitations or we are doomed.  I understand that the only "punishment" of disobeying the rules is social, technically, any committer can do anything they want: git rm -r *?

Assuming that committers don't have carte blanche to do whatever they want in the repositories, the next question would be: Do committers have a different work flow than contributors outside of the project?  Would we need  document a separate workflow for committers?  Or would we annotate the work flow to indicate the alternative things you can do if you are one of the chosen?

I would personally prefer that there is only one workflow and that that all contributors, regardless of of their privilege must follow.  Why?  Because we much be in touch with our end users.  We must experience everything exactly as the end-user experiences, and not optimize things just to make things simpler for ourselves.  We are both committers and members of the same contributing community.  We are not special with regard to contributions.  We cannot just optimize the path for the chosen, we will just lose touch with the users of NuttX.  This is often referred to as "eating your own dogfood" and I think that each of us should dish ourselves up a healthy portion.

Greg

On 12/22/2019 6:29 AM, David Sidrane wrote:
TLDNR; But you really should. Because I will ask for some discussion and votes 
on the subject matter.

We all come from different places in the world. We all have had different 
experiences. We all have learned different things. We all have learned in 
different ways. We all have different communication styles. We all have 
different skills, abilities and deficits.

Therefore I wonder if we have a different understanding of what a software 
Community is

Here we are in this new environment, trying to build a community.  I spent time 
looking at the definition of community. The English dictionary was not much 
help when it comes to describing a software community.

I am sure that as, we all have, I have picked up things concepts, tools etc over the 
years. I like to share them when they help me. I recently posted a topic of "Are you 
failure with the HAM Story?" [0],
Anyways I digress, but I want to give this community some insight into my 
thought process and why the hell dyslectic would spend 4.25 hours writing this. 
Okay maybe it was the insomnia and expresso :) But I tend to want to understand 
the root cause of things, discuss them and get feedback on them. So here goes.

I tend to be very eclectic. This comes from a combination of my skills and limitations. I 
best categorize myself as an "LC with an LD" ([1,2] ,[3]) and therefore I am 
king of typos - Thank God for Nathan!
Given that this is an Apache Project (podling) and we will be using GitHub I tasked Google with “what is an Apache software community” and “how does GitHub Define community” to provide me a place to start.

For Apache I found this:

“Mission: The Community Development project creates and provides tools, 
processes, and advice, to help open source software projects improve their own 
community health.”

hmm ok, “Hey Google site:apache.org community health”   It lead me to this:
Community Development and Mentoring. It had a link  Project Community Health 
Tips that required a password - My Apache ID worked Cool!
Results we, well How do I express this? hmmm...Disappointing.

It appears the condition to judge the health of an Apache project is the amount 
of email. The number of releases, the number of additions to DLAP  and the 
number of invitations to new committers.

So from an Apache standpoint based on our email alone - NuttX is rocking it. :)

“Hey Google: how does GitHub Define community”  lead me to [4] lead me to
"GitHub Community Guidelines"

  Building a strong community

“The primary purpose of the GitHub community is to collaborate on software 
projects. We want people to work better together. Although we maintain the 
site, this is a community we build together, and we need your help to make it 
the best it can be.”

Collaborate!

How do we Collaborate?

Is this endless stream of emails collaboration? Personally I think not. Don't 
get me wrong there are some real Gems:Great ideas and thoughts, but because of 
the nature of the tools we are using there's not a “lot of babies in this bath 
water[6]”.

Is it imperative that we document discussions and decisions for ASF In the 
open?  Yes.

But since we are all members of GitHub now. We do not need to be receiving 
duplicate emails for the purpose of fulfilling the archives requirement of ASF 
or project health.

[Needs discussion & a vote]  A simple way to fulfill our requirements is to 
have github's issues and pull requests forwarded to a set of lists. Issues, pr, and 
commits. I think this was already suggested by some of the PPMC.

Personally I will not be subscribing to any of them. I get the emails from 
GitHub one copy and the benefit of directed filtering (use the @) is enough.

[Needs discussion & a vote]   Do we want to use  @NuttxPMC or @<username>  to 
get attention?

On the github organizations (aka projects) I have been a member of, we 
collaborate via github tools and in the repository.

Recently ,I had a long debate with a colleague about using branches in an 
organization’s project repository. I was also scolded for doing this. But in my 
github experiences it is not wrong, but encouraged to promote collaboration.

I believe that the mindset of how to use Version Control has been influenced by 
the evolution of Version Control systems [5], corporate policy and peoples 
experience with them in the era they started. using them.  I will not start 
back at paper tapes nor 8 inch floppy disks being kept in the fireproof file 
cabinet.  Nor will I address IP protection.

SCCS ->RCS->CVS->perforce->SVN->git

In the Github organizations that I have been involved in, the members of the 
community are relatively young (I am not) and started in the git era.

These organizations give admin rights to the core dev team (PPMC) and write 
access to committers.

The members do create branches in the repository to share and collaborate on. 
There are many reasons to do this: Some of them are social. Some of them are 
about trust, Some of them are about how we perceive our community but mostly it 
is about collaboration.

Yes it is true that we can all do PR from are own github forks. But why should 
act as a collection of outside contributors and do that?

How do we collaborate at the coding level with our fellow PPMC members and 
committers?

Comments (even the GH suggested changes) on a PR only get you so far, 
discussion and the ability to push commit makes collaboration complete.

This type of collaborative committing is exactly the relationship we had used 
with Greg. But it was not community collaboration. It was peer-to-peer and a 
lot of times done in private. I was only public for discussion after it hit 
master.

I agree with this way of adding value to contributions: Use the subject matter 
experts to maximize value, but I feel we should expand on it.
I don't agree with doing this on master. Branches and PRs can only be effectively worked on collaborative in the project repo - otherwise it is a Fork and we will be forced to have N way peer-to-peer. relationships with our PMC and committers. Why force that if we want to collaborate?

I believe we should build an effective efficient and productive workfkow and 
our team. Otherwise the project will implode as a result of the amount of 
effort required on our parts will exceed our available time to accomplish 
quality work. (Hats off to Greg - it is amazing what you have accomplished)

[Needs discussion & a vote]  PRs are on branches in the project repo.
[Needs discussion & a vote]  branches support a naming convention.

[0] https://lists.apache.org/list.html?dev@nuttx.apache.org:lte=1M:HAM
[1] 
[https://www.goodreads.com/quotes/7778966-i-divide-my-officers-into-four-classes-as-follows-the
[2] 
https://news.clearancejobs.com/2019/10/08/the-four-classes-of-military-officers-or-office-workers-clever-diligent-stupid-and-lazy/

[3] http://www.ldonline.org/ldbasics/whatisld

[4] https://help.github.com/en/github/site-policy/github-community-guidelines
[5] 
https://www.lynda.com/ALMTFS-tutorials/history-version-control/106788/115979-4.html
[6] https://en.wikipedia.org/wiki/Don%27t_throw_the_baby_out_with_the_bathwater


Reply via email to