Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Steering committee establishment #5

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

Conversation

david-martin
Copy link
Member

Supercedes #4

The goal of this change is to lay the rules for the establishment of a steering committee.
It is based on the guidelines and template from https://contribute.cncf.io/maintainers/templates/governance-elections/
as well as the voting process from kubernetes at https://github.com/kubernetes/community/tree/master/elections

That steering committee will, among other responsibilities, make future decisions on project goals, strategic direction, governanace and setting up other committees like a technical committee, if desired.

Nothing is set in stone here. I would encourage feedback on all aspects of the changes here.
Some things can be arbitrary or subjective, like the rules for becoming a contributor, maintainer or who can vote.
Also, some areas, like how the first vote will be carried out, has not been decided yet.

@david-martin david-martin mentioned this pull request Aug 1, 2024
## Purpose

The role of this election is to fill out the three (3) seats due for the first election on the Kuadrant Steering Committee.
Each elected member will serve a two year term.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Each elected member will serve a two year term.
As we are starting from scratch with a bootstrapped committee, will will need a transition period, but plan to have staggered 2-year terms.
2 members will be elected for a 2 year term, and 1 member for a 1 year term.
This is to ensure continuity of the committee.
After year 1, that 1 seat will be up for reelection and span a 2 year term.
After year 2, the other 2 seats will be up for reelecation and span a 2 year term... and so on.

GOVERNANCE.md Outdated Show resolved Hide resolved

### Limitations on Company Representation

When feasible, no more than 1 seats may be held by employees of the same organization (or
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given our nascence, would it be fair to assume we will have more than one seat from an individual company given the project's roots?

Is the 1 seat per company usual? Feels like a SPOF

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. Unavoidable at present. I think that's fine.

The limit depends on the overall size of the group.
So if there's 5 in the group, no more than 2 would make sense so that no 1 company can control the project.
If we went with 3 (as is suggested at present), having a limit of 1 would prevent that.
This isn't set in stone, and more of an intent at this time.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense, yeah I think that's fine.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do y'all have 3 different folks from different employers who are otherwise eligible and willing?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would say this is a 'no' right now.

Copy link
Member

@alexsnaps alexsnaps left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, I have... questions.
Given the nature of work for the Steering Committee (see ## Charter section of this PR), and I think I'm mostly focusing on two sorts of responsibilities here:

  • The tech part: ownership & vision of the project
  • CoC & other "managerial tasks"...

I think having a "wider" (i.e. including users of the project) voting base, while requiring candidates to be tech savvy (i.e. having committed code) would be a good thing for the project. Plus, having a public track record of how "candidates behave" here on GH would be good input to voters to make a call as well.

Anyways, suggesting...

Comment on lines +5 to +6
A contributor is any person who has at least 50 contributor 'Activities' in the Contributor Leaderboard for the last 12 months,
or at least 5 pull requests merged in the last 12 months,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any pointers as to how these threshold were decided upon?
My question is actually mostly: do we really need these? Also, what's a contributor anyways? Isn't anyone who contributes, a contributor? Something that tangibly would probably result in a PR to "something"? i.e all of these people for all our repos?

Also, tho I'd generally be against such a large PR/code change, couldn't a single (or two) PRs grant a user with the request to become a contributor "with a lower threshold" based of the work that represents?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any pointers as to how these threshold were decided upon?

Based on the template.

do we really need these
Entirely up to us.

Also, what's a contributor anyways? Isn't anyone who contributes, a contributor?

Grammatically, sure.
It's up to us to define what's the threshold for being able to have some official power (like voting).

couldn't a single (or two) PRs grant a user with the request to become a contributor "with a lower threshold" based of the work that represents?

Sure. Do you want to suggest some modification that captures that?

## Composition

The steering committee has 3 seats. These seats are
open to any project contributor. See
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

contributor, not maintainers...?! I think the ROLES.md starts to make more a little more sense.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
open to any project contributor. See
open to any project maintainer. See

?

Comment on lines +157 to +158
Anyone who has at least 10 contributions in the last 12 months is
eligible to vote in the Steering election. Contributions are defined as opening PRs,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So somewhat rules out "users", is this on purpose? Desirable?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not against users having a say.
Is it feasible to keep a record of users though.
How would you see that playing out for voting.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given we have a solution that probably mostly targets developers (even if YAML ones), would it be crazy to require users wanting to vote to "record" as users of any of our components? Or just "star" one of the repo? I guess the problem is needing a way to track individual votes... so a platform that would let users link to their GH account, and that's it? Thinking out loud here, I might well be missing a big part of the problem to be solved.

Again, given the responsibilities of steering committee members being both technical but also "community" ones, being more inclusive in the way they are elected seems desirable... And I feel having "only contributors", given the criteria above, being the voters, seems a little like a close feedback loop to me. But again, maybe I'm missing some aspect of this and could also well be a little too much of a dreamer 😜

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know any project that allows "users" to vote, simply because there isn't any good way to verify a user's eligibility. The closest I've seen is that some projects, like Cert-Manager, allow representatives of the organizations in their Adopters.md file to vote on an end user seat.

Technical governance is expected to be performed by the Maintainers of the
various project areas and subprojects, as defined in the appropriate OWNERS files.

* Delegate ownership of, responsibility for and authority over areas of the
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Delegate ownership of, responsibility for and authority over areas of the
* Delegate ownership of responsibility for and authority over areas of the

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the comma is needed here.
Otherwise it's 'ownership of responsibility', when I think it's meant to be the combination of 'ownership, responsibility and authority' of 'areas of the project to specific entities..`

Governance for the Kuadrant project is still a work in progress. You can participate in discussions via our project [slack channel](https://kubernetes.slack.com/archives/C05J0D0V525).
The Kuadrant Steering Committee is the governing body of the Kuadrant project,
providing decision-making and oversight pertaining to the project bylaws,
sub-organizations, and financial planning. The Steering Committee also defines
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd exclude "financial planning" from this sentence and everywhere in the document, in order to avoid misconceptions for the OS community

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unless we really want to be the ones managing any kind of budget related to anything Kuadrant (upstream) related.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
sub-organizations, and financial planning. The Steering Committee also defines
and sub-organizations. The Steering Committee also defines

@didierofrivia just removing this seem reasonable?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do note that, as part of the CNCF, the project may have financial resources of its own. If those are not managed by the Steering Committee, who will manage them?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

project may have financial resources of its own

Got an example of how that might come about?

who will manage them

Good question. Sounds like we need some clause for it here. If not, would it be delegated to some CNCF people?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It can't. The CNCF expects the project to make requests for any money it needs, and to lead any activities which require financing. The staff won't do it for you. If nobody in the project does this, they'll just assume you don't need any resources.

reference. As much as possible, all discussions and work take place in public
forums and open repositories.

* Fairness: All stakeholders have the opportunity to provide feedback and submit
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Fairness: All stakeholders have the opportunity to provide feedback and submit
* Fairness: All collaborators have the opportunity to provide feedback and submit

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an interesting change.
I wonder if stakeholders implies 'users' as well, while collaborators wouldn't?
cc @alexsnaps as you mentioned users in the context of voting elsewhere in the doc

Comment on lines +48 to +51
* Request funds and other support from the CNCF (e.g. marketing, press, etc.)
* Coordinate with the CNCF regarding usage of the Kuadrant brand and deciding
project scope, core requirements, and conformance, as well as how that brand
can be used in relation to other efforts or vendors.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reckon we should be cautious about these 2 points... Maybe we need guidance on how to proceed (?)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if we can get some guidance from @jberkus (or someone else in CNCF) on what the implications of these point from the template actually mean, and if they are needed.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Those are both things that the CNCF asks the project to decide on. In the absence of other governance, they ask the "maintainers".

As a CNCF project, Kuadrant is entitled to, with the approval of the TOC/GB (depending), spend CNCF funds on needed things. As an example, the CNCF pays for Buttondown and Boost subscriptions for Kubernetes. Someone has to have the authority to request this funding.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For that matter, if a vendor wants to have an "official Kuadrant distribution" then that would depend on a program of certification owned by the steering committee.

@david-martin
Copy link
Member Author

having a public track record of how "candidates behave" here on GH would be good input to voters to make a call as well.

@alexsnaps Is there something objective in what you're thinking here, or more a way for people to point to specific comments and say a person seems like they'd act 'good' in the community?

Comment on lines +22 to +23
There are no set rules for how a person can move from a maintainer role to a component specific maintainer role.
Generally, if a person is sufficiently active in a particular area, they may add themselves, be added, or request to be added to the list for a component.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about people moving from a contributor role to a component maintainer role? That is, someone who isn't a general maintainer, but wants to move up to a component maintainer?


### Eligibility to Vote

Anyone who has at least 10 contributions in the last 12 months is
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This says 10 contributions, but the threshold for "contributors" is 50 contributions. It'll make your life easier if both have the same threshold.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch.
I'll leave this comment thread open as a reminder to sanity check numbers across the doc before anything gets merged

@jberkus
Copy link

jberkus commented Aug 22, 2024

So, one question to answer here: why a steering committee rather than a maintainer council? What outcome do you want from having a steering committee, instead of a governing council of all maintainers?

Asking because that's very important for deciding if this is the right governance for you.

Co-authored-by: Jason Madigan <[email protected]>
@david-martin
Copy link
Member Author

So, one question to answer here: why a steering committee rather than a maintainer council? What outcome do you want from having a steering committee, instead of a governing council of all maintainers?

@jberkus My reason for driving this is to make it very clear what roles people have in the project, how they can transition between roles, and how people coming from outside the project can see a way of getting more involved in the project.
I also wanted to make it clearer to everyone how important decisions are made, and who generally makes those decisions. Right now, we don't really vote on things. There's opportunity on community calls and PRs (like in an RFC PR) for discussion, and ultimately if there's no major objections, things are agreed and proceeded. There's a few key people (sometimes depending on the area) that people tend to look for an ultimate yes/no on decisions. These people haven't officially been voted for, but they're generally agreed to be like the main decision makers.

steering committee rather than a maintainer council
Is the main difference here startegy and goals vs. technical decisions and codebase?

@jberkus
Copy link

jberkus commented Aug 26, 2024

@david-martin right, but you should be contemplating two separate structures (at least):

Maintainer Council: A named group of maintainers, with defined processes and membership, makes all technical and nontechnical decisions for the project.

Steering Committee: A named group of maintainers, with defined processes, makes technical decisions for the project. Another committee, the SC, elected by project members, makes (mostly) nontechnical decisions for the project.

Generally, the reasons projects have for moving to a Steering Committee includes one or more of the following: (a) too many maintainers for reasonable decision-making (b) lots of semi-autonomous subprojects (c) need to represent specific non-technical interests (like sponsors or adopters) (d) the presence of several strong, leading technical maintainers who don't care about "project management stuff".

So I'm asking what's your specific reason to move to an elected SC structure as opposed to a different well-defined governance structure? And I'm asking this because a lot of the questions on this PR are arising because I suspect that the current maintainers aren't sure what that reason is.

@david-martin
Copy link
Member Author

@alexsnaps @jasonmadigan @didierofrivia @guicassolato what are your thoughts on going with a maintainers council rather than a steering committee?
From reading Josh's comment above, it sounds like it might be a better fit for how things currently work.

@alexsnaps in terms of contributions to become a 'maintainer' or 'contributor', the wording is a lot less strict (albeit more subjective, but I think that's fine and more inline with what you mentioned above in your comment).
Also, the maintainers council (which sounds like it would be everyone that's more or less involved in the project) would cover both the strategic and technical direction of the project, without any delegation to a specific small group of people.

@didierofrivia There is no mention of financial things in the maintainers council template. There is mention of 'CNCF resources' which could cover that side of things though if they arise?

@jasonmadigan In terms of voting, there's a section on voting and following a 'lazy consensus' model (which I tend to like). If there's a need for more formal voting, that's possible too. Both these things sound like what we've already been doing inherently.

hiring, and contracting, official responses to publicly raised issues, or any
other decisions that at least two of the members present decide require a vote.

Decisions are made in meetings when a quorum of more than half of the members

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if the 50%+ quorum couldn't be increased (e.g. min 2/3, though I personally would prefer "unanimous"), and decisions made possible to happen async/offline, with a minimum voting period (e.g. couple days).

Additionally, I wonder if there should be veto power established for some cases.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[…] decisions made possible to happen async/offline, with a minimum voting period (e.g. couple days).

Additionally, I wonder if there should be veto power established for some cases.

I think there's an element of the "Lazy consensus" thing here in what I meant.

@guicassolato
Copy link

@alexsnaps @jasonmadigan @didierofrivia @guicassolato what are your thoughts on going with a maintainers council rather than a steering committee? From reading Josh's comment above, it sounds like it might be a better fit for how things currently work.

I suppose the structure of a Maintainers Council is relatively simpler compared to Steering Committee – more flexible composition, no need to hold elections, looser requirement regarding employer representation, no fixed duration terms for the member in the council. Are these all fair assumptions?

@didierofrivia
Copy link
Member

I agree with you @guicassolato, much simpler, flexible and with enough room for improvement without lacking compromise :)

@jasonmadigan
Copy link
Member

@jasonmadigan In terms of voting, there's a section on voting and following a 'lazy consensus' model (which I tend to like). If there's a need for more formal voting, that's possible too. Both these things sound like what we've already been doing inherently.

@david-martin yes, I think I had lazy consensus in mind

@thomasmaas
Copy link
Contributor

+1 on Maintainers Council & lazy consensus.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants