You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mynewt.apache.org by Sterling Hughes <st...@apache.org> on 2016/04/15 02:00:07 UTC

committer policy

actually... Greg's mail sparked me to think about this a bit more, and I 
wanted to discuss our committer policy in a broader context, because I 
think having a long-term idea of where we want to go is valuable.

Here are some thoughts, they rely on an understanding of how newt works, 
which is available here:

http://mynewt.apache.org/os/tutorials/arduino_zero/

The plan (technically) with Mynewt is to eventually break it into a 
smaller set of components that are tested, and can be linked together / 
are compatible.  So, right now apache-mynewt-core contains our Bluetooth 
stack, flash filesystem, etc.  Because, when people download it, we 
don't want them to download a 100 repositories, and manage those 
together.  Especially as a v0.8-b2 product, as it's way too much for us 
to even manage :-)

However, in my mind, eventually we'll have a scenario where we have:

apache-mynewt-core: OS, HAL, BSP infrastructure, Device Driver Interfaces

apache-mynewt-nimble: The Bluetooth stack

apache-mynewt-newt: The Newt build & package management tool, which can 
work for any project.

apache-mynewt-nffs: The Neutron Flash File System

And each of these will have different sets of people who have the commit 
bit flipped.  I think we'll want to have the apache-mynewt-core project 
to have very FEW committers, as its the base of the dependency tree, and 
we want stability/all patches to be submitted and discussed before they 
are accepted.

Whereas parts of the OS that are either less heavily relied upon, 
require more code, or less stable, will likely want to have more 
committers/attract more developers.

The group of all these various sub-projects will eventually have to 
agree on a consistent and unified release train, and make sure that this 
works, as we'll be release Apache Mynewt as an OS, where all the various 
components, you know, need to work together. :-)

My proposal for how the governance on this works, although it's really 
intended more as a basis for discussion:

- Eventually, Mynewt will become a TLP.

- There will be a set of sub-projects of Mynewt, that will share a PMC. 
These sub-projects will represent things like the Bluetooth stack, or 
the flash filesystem

- Committers will vote on the PMC, and all (together) discuss the 
release train.  i.e. dev@mynewt.apache.org will be where lots of 
decisions get made.

- HOWEVER, commit access will only be granted to certain areas, and the 
community will VOTE on what's appropriate.  I.e. as a community we may 
decide we only want 1-2 people with commit access to the core kernel.

Does this seem sane?  Is there a better / more Apache way to organize this?

I really worry about development not scaling, unless we can control the 
number of people actually merging in patches/making decisions on 
core/stable areas.  That doesn't mean they shouldn't be subject to the 
larger community, but practically speaking, I don't want 100 people with 
commit access to our core kernel.  I want 2-3, who answer to the 100 
people who have commit access to the various parts of Mynewt.

Thoughts?

Sterling