Hi,

I think 1, 2 and 4 are directly up to the project. I shared what other
ASF projects are doing (I'm thinking about Apache Beam, or Apache
Camel Karaf), it can help to see what we can do (updating .asf.yml for
instance).

Imho, 3 & 5 should be aligned with the foundation guidelines. I don't
see strong reasons to deviate here.

I think it would also be great to make a clear problem statement. I
think the intention is very valuable but I don't see exactly what
problem we are trying to solve here.

Regards
JB

On Tue, Jul 23, 2024 at 7:58 AM Micah Kornfield <emkornfi...@gmail.com> wrote:
>
> My 2 cents on this topic. I think we are getting bogged down in relatively 
> minor details/bureaucratic points. This is a reiteration of a previous 
> recommendation on the topic, but in the interest of making progress here, I'd 
> propose let's break this conversation down and focus on incremental 
> definitions/proposals.
>
> I've added a potential breakdown below. This is roughly ordered from 
> codifying day to day business, and extends to longer term concerns.  I would 
> aim for minimalism on each of these and add additional guidance when we need 
> it.  It is important to keep in mind that most decisions made on a day to day 
> basis are fairly easily reversible and more process/formalism can always be 
> added if some part of the process has bugs in it.
>
> 1.  Requirements to merge a PR (1 committer approval + X amount of time to 
> allow others to review?)
> 2.  Requirements major projects/features including spec changes
> 3.  Define roles/responsibilities and provide guidance on how members can 
> grow into those roles.  (Cover release manager, comitter, PMC member, 
> community member, with links as appropriate).
> 4.  Create guidelines on starting new revision to the specification (i.e. 
> when will the table V3 spec be considered closed?).
> 5.  People issues (if the community thinks this is still necessary).
>
> Thanks,
> Micah
>
> On Mon, Jul 22, 2024 at 10:05 AM Jack Ye <yezhao...@gmail.com> wrote:
>>
>> Just to follow up on the other topics, here are my comments, mainly to 
>> reconcile with what have been discussed in different threads, which could 
>> help formulating these multiple-choice questions:
>>
>> > What should the minimum voting period be?
>>
>> Do we decide a minimum voting period for all topics, or do we decide a 
>> different period for each topic? So far it seems like the ASF convention has 
>> different minimum periods defined, like 3 days for release [1], 7 days for 
>> new committers/PMC members [2].
>>
>> > I'd like to include a couple sentences about the different hats at Apache 
>> > and that votes should be for the benefit of the project and not our 
>> > employers.
>> > I'd like to propose that we include text to formally include censor and 
>> > potential removal for disclosing sensitive information from the private 
>> > list.
>>
>> Personally I am definitely +1 for this, but going back to the topic of 
>> Iceberg vs ASF bylaws/guidelines, I feel ideally this should also be a part 
>> of ASF general bylaws/guidelines that Iceberg simply just references.
>>
>> > Requirements for each topic
>>
>> I think this is also missing code modification and the improvement proposal 
>> votes. My impression so far after discussions in the initial bylaws doc [3] 
>> is that ASF definition of "code modification" is closer to a full design 
>> process and uses consensus approval. But in reality "merging PR" is a much 
>> more lightweight "vote" that typically requires just 1 committer approval of 
>> the PR. On the other hand, the Iceberg improvement proposal process is 
>> currently described to use the code modification consensus approval vote 
>> [4], but there are other options like 2/3 majority and majority vote that 
>> were proposed.
>>
>> > consensus, lazy consensus, lazy majority, lazy 2/3's
>>
>> In the initial bylaws doc [3] it was pointed out that the definition of 
>> "lazy consensus" is different in different documents. In general the 
>> definition is "no -1", but there is also the definition [5] of "at least 1 
>> +1, no -1". I ended up giving it a different name of "minimum consensus", 
>> and actually this has been the model used for merging pull requests. We 
>> might want to clarify that part first before voting for these options.
>>
>> [1] https://www.apache.org/legal/release-policy.html#release-approval
>> [2] https://community.apache.org/newcommitter.html#discussion
>> [3] 
>> https://docs.google.com/document/d/1S3igb5NqSlYE3dq_qRsP3X2gwhe54fx-Sxq5hqyOe6I/edit
>> [4] https://iceberg.apache.org/contribute/#how-are-proposals-adopted
>> [5] https://orc.apache.org/develop/bylaws/
>>
>> -Jack
>>
>> On Fri, Jul 19, 2024 at 2:29 PM Jack Ye <yezhao...@gmail.com> wrote:
>>>
>>> > specifically the discussion of the standard roles
>>>
>>> Yes, there are also other places with different definitions. For example 
>>> the default project guideline [1] has additional description of the PMC 
>>> member and chair responsibilities. There are a few other places like ASF 
>>> glossary [2] where these terms are defined, I cannot recall on the top of 
>>> my head, but I can try to dig those up later.
>>>
>>> > putting together a committer requirements/guidelines doc
>>>
>>> +1. For some context, the committer guideline discussion came from both 
>>> some initial feedback on devlist, as well as comments in the roles and 
>>> responsibilities section.
>>>
>>> Because I initially used the definition of Hadoop bylaws [3] for 
>>> committers, which writes: "The project’s Committers are responsible for the 
>>> project’s technical management." There were then multiple people pointing 
>>> out that committers are not necessarily technical. If we look into the 
>>> current definition in the link Owen provided: "A committer is a developer 
>>> who has write access to the code repository and has a signed CLA on file. 
>>> They have an apache.org mail address. Not needing to depend on other people 
>>> to make patches to the code or documentation, they are actually making 
>>> short-term decisions for the project." And in ASF Glossarsy: "An individual 
>>> who has the privilege to directly commit changes to an Apache codebase 
>>> (commit access)."
>>>
>>> Indeed it does not have a requirement for committers to be technical, but 
>>> it is arguably still centered around the right to commit code and merge 
>>> patches. And that sparked all the discussions of what exactly a committer 
>>> means, what are the criteria, do we limit committer rights to commit to 
>>> just sub-project, what about people that do not contribute code, etc. I 
>>> don't know if there could be a better definition though, maybe we could 
>>> discuss that in a separate thread that is visible to more Apache members 
>>> and people in other projects.
>>>
>>> I later raised the thread 
>>> https://lists.apache.org/thread/4fykr8316cw9lhvgq168tx5yj9zy7gc3 where you 
>>> can find more details about the discussions in the thread as well as in the 
>>> linked Google doc for committer guideline. Topics like minimum time 
>>> requirement and recency requirements were discussed there. Personally, I 
>>> included all those aspects in the draft because my main goal is to have an 
>>> open discussion about these topics so that we can potentially reach some 
>>> consensus, and eventually form a clear guideline. It would be nice if we 
>>> can do that as a part of this process and also moderated in the same way.
>>>
>>> -Jack
>>>
>>> [1] 
>>> https://cwiki.apache.org/confluence/display/INCUBATOR/Default+Project+Guidelines
>>> [2] https://www.apache.org/foundation/glossary
>>> [3] https://hadoop.apache.org/bylaws.html
>>>
>>>
>>> On Fri, Jul 19, 2024 at 11:54 AM Ryan Blue <b...@databricks.com.invalid> 
>>> wrote:
>>>>
>>>> Another thing that has come up is putting together a committer 
>>>> requirements/guidelines doc. I think it would be great to have a 
>>>> discussion about how we want to do that. Specifically, I'm against adding 
>>>> requirements for new committers (such as time-based minimums or recency 
>>>> requirements) that exclude people from consideration. I think it would be 
>>>> helpful to clarify the path to becoming a committer, though. To me, it's 
>>>> about building trust and that trust is recognized by a PMC vote.
>>>>
>>>> Ryan
>>>>
>>>> On Fri, Jul 19, 2024 at 11:00 AM Owen O'Malley <owen.omal...@gmail.com> 
>>>> wrote:
>>>>>
>>>>> I meant specifically the discussion of the standard roles (eg. users, 
>>>>> committers, pmc, pmc chair) that are well covered in 
>>>>> https://www.apache.org/foundation/how-it-works/#roles
>>>>>
>>>>> .. Owen
>>>>>
>>>>> On Fri, Jul 19, 2024 at 10:43 AM Jack Ye <yezhao...@gmail.com> wrote:
>>>>>>
>>>>>> Thank you Owen for moving this forward, we heard you were sick, hope you 
>>>>>> are fully recovered now!
>>>>>>
>>>>>> One point regarding "referring to the Apache documentation": I am 
>>>>>> totally for that, but during the initial investigation, I found out that 
>>>>>> the Apache documentations are scattered around, and also have 
>>>>>> conflicting information.
>>>>>>
>>>>>> For example, regarding a "vote for committer or PMC member":
>>>>>> - this new committer doc [1] writes that "A positive result is achieved 
>>>>>> by Consensus Approval: at least 3 +1 votes and no vetoes."
>>>>>> - the Apache voting process doc [2] writes that "Votes on procedural 
>>>>>> issues follow the common format of majority rule unless otherwise 
>>>>>> stated.", and when consulting a few Apache members, most of them 
>>>>>> consider voting for committer or PMC member a procedural issue.
>>>>>>
>>>>>> Similar situations were found for other topics like description of roles 
>>>>>> and responsibilities, code modification, etc.
>>>>>>
>>>>>> I think it is a great chance for ASF in general to consolidate these 
>>>>>> information, especially for matters that have common guidelines in ASF 
>>>>>> that should be adhered to by all projects. With that, we can figure out 
>>>>>> what to put in the Iceberg specific bylaws, either to directly refer to 
>>>>>> ASF official information, or to add additional information and 
>>>>>> guidelines.
>>>>>>
>>>>>> Regarding sub-projects, the main reason I proposed it at the beginning 
>>>>>> was to allow a proper definition of release manager responsibility, 
>>>>>> since each sub-project is released independently. It was not intended to 
>>>>>> be tied to committer responsibilities.
>>>>>>
>>>>>> Best,
>>>>>> Jack Ye
>>>>>>
>>>>>> [1] https://community.apache.org/newcommitter.html
>>>>>> [2] https://www.apache.org/foundation/voting
>>>>>>
>>>>>> On Fri, Jul 19, 2024 at 10:22 AM Owen O'Malley <owen.omal...@gmail.com> 
>>>>>> wrote:
>>>>>>>
>>>>>>> Everyone is welcome to vote. The Iceberg PMC will have the only binding 
>>>>>>> votes.
>>>>>>>
>>>>>>> .. Owen
>>>>>>>
>>>>>>> On Jul 19, 2024, at 10:19, Wing Yew Poon <wyp...@cloudera.com.invalid> 
>>>>>>> wrote:
>>>>>>>
>>>>>>> 
>>>>>>> Hi Owen,
>>>>>>> Thanks for doing this.
>>>>>>> Once you have the questions and choices, who gets to vote on them?
>>>>>>> - Wing Yew
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Jul 19, 2024 at 10:07 AM Owen O'Malley <owen.omal...@gmail.com> 
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> All,
>>>>>>>>    Sorry for the long pause on bylaws discussion. It was a result of 
>>>>>>>> wanting to avoid the long US holiday week (July 4th) and my 
>>>>>>>> procrastination, which was furthered by a side conversation that asked 
>>>>>>>> me to consider how to move forward in an Apache way.
>>>>>>>>   I'd like to thank Jack for moving this to this point. One concern 
>>>>>>>> that I had was there were lots of discussions and decisions that were 
>>>>>>>> being made off of our email lists, which isn't the way that Apache 
>>>>>>>> should work.
>>>>>>>>   For finishing this off, I'd like to come up with a set of questions 
>>>>>>>> that should be answered by multiple choice questions and then use 
>>>>>>>> single transferable vote (STV) to resolve them. STV just means that 
>>>>>>>> each person lists their choices in a ranked order with a formal way to 
>>>>>>>> resolve how the votes work.
>>>>>>>>   The questions that I have heard so far are:
>>>>>>>>
>>>>>>>> Should the PMC chair be term-limited and if so, what is the period? In 
>>>>>>>> my experience, this isn't necessary in most projects and is often 
>>>>>>>> ignored. In Hadoop, Chris Douglas was a great chair and held it for 5 
>>>>>>>> years in spite of the 1 year limit.
>>>>>>>>
>>>>>>>> No term limit
>>>>>>>> 1 year
>>>>>>>> 2 year
>>>>>>>>
>>>>>>>> What should the minimum voting period be? I'd suggest 3 days is far 
>>>>>>>> better as long as it isn't abused by holding important votes over 
>>>>>>>> holiday weekends.
>>>>>>>>
>>>>>>>> 3 days (72 hours)
>>>>>>>> 7 days
>>>>>>>>
>>>>>>>> Should we keep the section on roles or just reference the Apache 
>>>>>>>> documentation. I'd suggest that we reference the Apache documentation.
>>>>>>>> I'd like to include a couple sentences about the different hats at 
>>>>>>>> Apache and that votes should be for the benefit of the project and not 
>>>>>>>> our employers.
>>>>>>>> I'd like to propose that we include text to formally include censor 
>>>>>>>> and potential removal for disclosing sensitive information from the 
>>>>>>>> private list.
>>>>>>>> I'd like to propose branch committers. It has helped Hadoop a lot to 
>>>>>>>> enable people to work on development branches for large features 
>>>>>>>> before they are given general committership. It is better to have the 
>>>>>>>> branch work done at Apache and be visible than having large branches 
>>>>>>>> come in late in the project.
>>>>>>>> Requirements for each topic (each could be consensus, lazy consensus, 
>>>>>>>> lazy majority, lazy 2/3's)
>>>>>>>>
>>>>>>>> Add committer
>>>>>>>> Remove committer
>>>>>>>> Add PMC
>>>>>>>> Remove PMC
>>>>>>>> Accept design proposal
>>>>>>>> Add subproject
>>>>>>>> Remove subproject
>>>>>>>> Release (can't be lazy consensus)
>>>>>>>> Modifying bylaws
>>>>>>>>
>>>>>>>> Thoughts? Missing questions?
>>>>>>>>
>>>>>>>> .. Owen
>>>>
>>>>
>>>>
>>>> --
>>>> Ryan Blue
>>>> Databricks

Reply via email to