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 6 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

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 great 💯

<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
CHARTER.md Outdated Show resolved Hide resolved
CHARTER.md Outdated Show resolved Hide resolved
CHARTER.md Outdated Show resolved Hide resolved
CHARTER.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Show resolved Hide resolved
GOVERNANCE.md Show resolved Hide resolved
Co-authored-by: Fran Méndez <[email protected]>
CHARTER.md Outdated Show resolved Hide resolved
CHARTER.md Outdated Show resolved Hide resolved
CHARTER.md Outdated Show resolved Hide resolved
CHARTER.md Outdated Show resolved Hide resolved
CHARTER.md Outdated Show resolved Hide resolved
GOVERNANCE.md Show resolved Hide resolved
@thulieblack
Copy link
Member

@asyncapi/ambassadors please feel free to participate and share your thoughts

@dalelane
Copy link

I haven't fully digested all of this yet, but just wanted to share an initial reaction.

I think separating out technical leadership (e.g. what should the spec contain) from organisational matters (e.g. appropriate usage of sponsorship) is a very positive and welcome step, so thanks for kicking off this debate @derberg !

@derberg
Copy link
Member Author

derberg commented Jan 15, 2025

@thulieblack @fmvilas made some changes basing on your feedback. Unfortunately because of numbers change git shows big change in CHARTER: 91aab15 which is not helpful. What I basically change there was remove info about 5 members, removed info about 12m chairperson cadence, and wrote that more will be in GOVERNANCE (and I've put info there). Also GOVERNANCE holds info about election communication

@derberg
Copy link
Member Author

derberg commented Jan 15, 2025

@dalelane thanks

I think separating out technical leadership (e.g. what should the spec contain) from organisational matters (e.g. appropriate usage of sponsorship) is a very positive and welcome step, so thanks for kicking off this debate

This change does not address that aspect directly. It for sure opens doors to move some responsibilities to the Board:

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.

But this PR is focused mainly on replacing the Executive Director with the Board and enabling Ambassadors to join TSC. At the moment spec like any other repository is in the hands of its maintainers and spec discussions should always driven and managed by that group. Having more regular spec discussions, triage, well - another story, we need to take this up soon, but I hope we first finish this topic

@danielkocot
Copy link

danielkocot commented Jan 16, 2025

Sorry for being late to party. I'm also totally with the points @dalelane brought up. I appreciate that ambassadors get the opportunity to join when being elected if I got it right.

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.

6 participants