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

chore: introduce governance board #1634

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from
Draft

Conversation

derberg
Copy link
Member

@derberg derberg commented Jan 8, 2025

Caution

This is not a call for a vote. This is a call for debate. I did this in a form of PR because I could not find a better way to present my initial idea, other than updating the current docs – to also point out the most relevant docs that need to be part of the debate. Everything here is subject to change/improvement. This is only my proposal, and if you think there are issues (for example, ambassadors should not be TSC members), then please let us have a debate and figure out the best solution.

In short, the most important things to note are:

  • TSC is retaining its power

    More details: TSC is still critical in running the initiative successfully. Only people who WORK on the project may decide on its direction.

  • TSC is no longer only maintainers but also ambassadors

    More details: When the initial charter was created, we could only determine people who WORK on the project by whether they were maintainers or not. Now, after running the AsyncAPI Ambassador program for over two years, it is clear that there is another group in the community that works hard for the success of the AsyncAPI Initiative -> AsyncAPI Ambassadors. They might not have time to maintain repositories, but they travel to conferences, write articles, or support other community initiatives that make AsyncAPI successful. Also, because they have a closer connection with users and direct access to their feedback, they should be involved in the voting process that decides the project's direction.

  • The Executive Director role is removed and replaced with a Governance Board, elected from within TSC members

    More details: There is no revolution here. The board does not gain any power over the TSC. The board is just to make sure that one director/person is replaced with 3–5 people. We need to safeguard the project against potential disruptions in the tech market, such as layoffs, burnout, and other challenges. The board is like Marshals, with one in the role of chair—they ensure processes are followed (in short). I guess it is similar to the Speaker of the House of Representatives in the USA.

  • The board operates under Chatham House Rule—kind of private

    More details: The board replaces the director. I, as director, had multiple private conversations with potential sponsors, the Linux Foundation on financial aspects, or events organization. There are a significant number of private talks that I have when preparing the budget and others. There is no decision-making in these conversations—it’s just that they are too close to business and people’s work-life to be held publicly. Later, the community only sees, for example, that there is a new sponsor or the budget proposal (without all the work behind it).

    The board needs to operate under the same rules, and luckily, we are not the first ones to do it. I actually copied this from another community where such a setup is also needed to ensure people can speak openly: https://todogroup.org/community/get-started/#step-1-join-the-todo-chat-forum-and-osponews.

  • The board is the only group that can start the voting

    More details: Nothing really new here. As director in the past, I was involved in most voting calls as an initial reviewer, helping find all the answers, sharing opinions, and sometimes even preparing the vote. This was only to assure a smooth voting process without mistakes and to call the vote only when it was 100% ready. The board cannot block a vote; they need to help get it in place.

    Another example is a recent vote I called for UN endorsement. The more mature we become as a community, the more complex topics will arise. Such voting topics should first be prepared and discussed by the board. The board could not refuse to take a vote on the topic but could help ensure the message is clear and there are no doubts.

  • Board election—this one is tricky. The current voting process cannot really handle this; we need some custom manual solution.


NOTE: Once we are happy with changes in the Charter, it will also have to be approved by LF.

Also, I put some more inline comments in the PR to explain particular changes.

NOTE: I'm not sure we need to update the Charter on how the first board election is done. I guess it is obvious that once we approve this PR and get it merged, we will immediately start the election cycle. We could also agree that this PR is merged after the first election, with some updates made as a result of learning from the first election.

TODO:

  • First election of the first 3 members.
  • Update/create GH Action workflows to ensure only the board can create a vote. There will be more workflows to create, but later as follow-ups:
    • Supporting new properties that specify board members.
    • Have a way to track when somebody was appointed a board member and automatically ping the board that an election is upcoming.
    • Implement https://asyncapi.com/community/board.

@@ -4,6 +4,7 @@ profiles:
pass_threshold: 51
periodic_status_check: "1 week"
close_on_passing: true
close_on_passing_min_wait: "7 days"
Copy link
Member Author

Choose a reason for hiding this comment

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

new feature CNCF added on our request 💪🏼 now we can really hold a vote open for 7 days, to respect TSC members time

<p align="center"><strong>Technical Charter (the “Charter”)</strong></p>
<p align="center">
for</br>
AsyncAPI Project a Series of LF Projects, LLC</br>
Adopted 03-19-2021
Adopted 03-19-2021, Amended [TODO:set a date once agreed with LF]
Copy link
Member Author

Choose a reason for hiding this comment

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

LF is super slow in responses, so we will eventually apply lazy consensus, when we agree and long term vote that change is needed, we will wait for them some time and then merge if no veto

GOVERNANCE.md Outdated

### Current appointed person
You can determine who is the current GB member from [MAINTAINERS.yaml](MAINTAINERS.yaml) and [AMBASSADORS_MEMBERS.json](AMBASSADORS_MEMBERS.json), `isBoardMember` and `isBoardChair` properties. We also transparently list all the GB members in [AsyncAPI Website](`https://asyncapi.com/community/board`)
Copy link
Member Author

Choose a reason for hiding this comment

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

of course https://asyncapi.com/community/board to be implemented once we agree with the PR shape and conclude a vote in future


TSC Voting process and all related rules are describe in detail in [voting procedure document](voting.md).

GB election voting is a separate manual process run by current GB members:
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 the most complex part for me as we never did such board elections

implementing any tool for it do not make sense for me upfront. I checked Apache Foundation but their elections are super complex. I'd love to hear opinions on why https://en.wikipedia.org/wiki/First-past-the-post_voting would not work, and what is better - and still easy to explain

2. The TSC appoints the Governance Board as described in Section 3.
3. TSC membership is not time-limited. There’s no maximum size of TSC. The size is expected to vary in order to ensure adequate coverage of important areas of expertise, balanced with the ability to make decisions efficiently. The TSC must have at least three members.
4. No more than one-fourth of the TSC members may be affiliated with the same employer. If the removal or resignation of a TSC member, or a change of employment/affiliation by a TSC member, creates a situation where more than one-fourth of the TSC membership shares an employer, then the situation must be assessed by TSC. In any case, the number of TSC members affiliated with the same employer must not be higher than one-third (round half up number).
5. Voting members of the Technical Steering Committee (TSC) include committers of any Project's code repository and AsyncAPI Ambassadors. The TSC documents in the project’s GOVERNANCE file the method for determining voting members.
Copy link
Member Author

Choose a reason for hiding this comment

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

From my perspective, a director, who knows GB is not taking power away from TSC - I think the only controversial part of the proposal is to let Ambassadors be part of TSC

correct me if I'm wrong

@derberg
Copy link
Member Author

derberg commented Jan 8, 2025

@asyncapi/tsc_members please have a look and let us start a debate

@derberg derberg marked this pull request as draft January 8, 2025 19:18
@derberg
Copy link
Member Author

derberg commented Jan 9, 2025

One more comment to clarify, in case someone is worried something wrong is happening to the AsyncAPI Initiative, that I go away, that we're going down or whatever.

Don't worry, AsyncAPI Initiative is no longer Fran or Lukasz. We are too big and too strong to depend on a single person.

When I was appointed to the Executive Director role back in 2023 I already mentioned in my intro article that my main goal is to take AsyncAPI out of the startup period -> https://www.brainfart.dev/blog/asyncapi-executive-director#my-vision-for-ending-the-startup-period

  • automate voting - Done ✅
  • review TSC list - Done ✅ many not active members left
  • succession planning with governance board - This PR

It just got a bit more complex and delayed because of Postman layoff. No chance to do individual calls with all TSC members. Thus we just do the usual public debate.

So GB introduction is not because of Postman layoffs. It is just delayed few months because of layoffs.

I'm not going away. I will need to do a knowledge transfer to GB. It will take a lot of time, months, and I will probably do it by submitting my application to become part of GB. We will see.

Copy link
Member

@fmvilas fmvilas left a comment

Choose a reason for hiding this comment

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

This is pretty cool, Lukasz. Did a first round of reviews. There's probably more stuff but I got "legal document fatigue" 😂

CHARTER.md Outdated Show resolved Hide resolved
### 3. Governance Board

1. The Project Governance Board (the “Board”) will provide oversight and guidance on strategic and operational matters, but will not replace the TSC in making decisions, unless the TSC delegates some responsibilities to the Board. Exceptions will be specified in the GOVERNANCE document.
2. The Board must have five members.
Copy link
Member

Choose a reason for hiding this comment

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

Why 5? I get it has to be an odd number but why not 3 or more than 5? I'm honestly curious.


1. The Project Governance Board (the “Board”) will provide oversight and guidance on strategic and operational matters, but will not replace the TSC in making decisions, unless the TSC delegates some responsibilities to the Board. Exceptions will be specified in the GOVERNANCE document.
2. The Board must have five members.
3. The Board initially comprises three members and expands to five members after the first 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.

Related to the previous point. What about we don't make it a fixed number and instead we say something like "The Board must have either 3 or 5 members". 5 is just an example here.

CHARTER.md Outdated Show resolved Hide resolved
2. The Board must have five members.
3. The Board initially comprises three members and expands to five members after the first 12 months.
4. The Board member is elected for 24-month cadence.
5. The Board member is also a TSC member with all it's rights.
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
5. The Board member is also a TSC member with all it's rights.
5. The Board members are also TSC members with all their rights.

Copy link
Member

Choose a reason for hiding this comment

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

I'm confused about this. Does it mean that Board members must be TSC members before they're even elected Board members? Or can someone who's not in the TSC be elected a Board member and therefore they become a TSC member?

The current Executive Director is Lukasz Gornicki.
To become GB member you need to be a member of Technical Steering Committee (TSC). To become a member of TSC, you need to be either Ambassador or Maintainer.

### Election
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
### Election
### Election or the Governance Board


### Election

Election takes place every 12-months. First time 3 board members are elected, then after 12-months another 2 members are elected. Then again, since board members are elected for 24-months, we run election to reelect or pick new board members, and so on.
Copy link
Member

Choose a reason for hiding this comment

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

This is not clear to me 🤔 I get the first part but the "and so on" got me lost. Does it mean that after 2 years, we'll have 3 GB members again and then 12 months later we'll have 5 GB members? 😕


Election takes place every 12-months. First time 3 board members are elected, then after 12-months another 2 members are elected. Then again, since board members are elected for 24-months, we run election to reelect or pick new board members, and so on.

- Minimum 60 days before elections, GB must ask community for candidates.
Copy link
Member

Choose a reason for hiding this comment

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

How should the GB ask the community? I think we should clarify this. Through a GitHub discussion, email in the newsletter, and a post in our social profiles? Since this is important, I think we should make some noise, right?


- Minimum 60 days before elections, GB must ask community for candidates.
- People can also submit their application on their own.
- Information about candidate must be sent to [email protected] not later than 30 days before elections.
Copy link
Member

Choose a reason for hiding this comment

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

It's fine for now but I think we should get an asyncapi.com or asyncapi.org email because asyncapi.io is mine and not part of LF 😄

- Information about candidate must be sent to [email protected] not later than 30 days before elections.
- Nominee must agree to be nominated.
- List of candidates must be published at least on AsyncAPI Website not later than 2 weeks before elections.
- Concerns about candidates should be reported to Code of Conduct Committee.
Copy link
Member

Choose a reason for hiding this comment

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

What if the people in the Code of Conduct Committee are candidates and someone has concerns with them? Should we veto Code of Conduct Committee members to become GB members? Or that they should announce it some time before these 60 days described above so that we can find other people to replace them?

Co-authored-by: Fran Méndez <[email protected]>
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.

3 participants