Skip to content

chore: introduce governance board#1634

Merged
asyncapi-bot merged 20 commits intoasyncapi:masterfrom
derberg:board
May 6, 2025
Merged

chore: introduce governance board#1634
asyncapi-bot merged 20 commits intoasyncapi:masterfrom
derberg:board

Conversation

@derberg
Copy link
Member

@derberg derberg commented Jan 8, 2025

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

Summary by CodeRabbit

Summary by CodeRabbit

  • New Features

    • Introduced a Governance Board with defined membership, election cycles, roles, and operational procedures.
    • Added a 7-day minimum waiting period before closing votes after passing.
  • Documentation

    • Updated Charter and Governance documents to detail the Governance Board, revised TSC membership and voting rules, and election procedures.
    • Clarified voting management, quorum requirements, and vote proposal processes.
    • Enhanced document structure and editorial clarity for improved readability.

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 💯

CHARTER.md Outdated
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
## Governance Board (GB) members

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

Copy link
Contributor

Choose a reason for hiding this comment

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

Democracy is mathematically impossible 😜

But on a serious note should there be a position who keeps track of the Voting?

Copy link
Member Author

Choose a reason for hiding this comment

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

not sure, the board is not that big really, so they can collectively be responsible for it, I don't think they need any specific role in the board to do that

Copy link
Member Author

Choose a reason for hiding this comment

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

cool video btw
first past the post looks the most fragile 😄

we could try what Apache Foundation does: https://www.youtube.com/watch?v=M91jraoo6t8

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" 😂

Co-authored-by: Fran Méndez <fmvilas@gmail.com>
@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
Contributor

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.

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.

One more round of reviews.

@quetzalliwrites
Copy link
Contributor

I must admit I've only had a chance to digest about 50% of this proposal 😥 hehe...

That said, so far... I like the idea of separation of concerns (spec vs org stuff) and that Ambassadors would be given the opportunity to join the Governance Board!

So far for me, +1.

derberg and others added 2 commits January 27, 2025 20:33
Co-authored-by: Fran Méndez <fmvilas@gmail.com>
@derberg
Copy link
Member Author

derberg commented Jan 27, 2025

@fmvilas thanks done

@quetzalliwrites 💪🏼

jonaslagoni
jonaslagoni previously approved these changes Jan 27, 2025
Copy link
Member

@jonaslagoni jonaslagoni left a comment

Choose a reason for hiding this comment

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

Just one suggestion, looks good otherwise 👍

GOVERNANCE.md Outdated

- At least 60 days prior to elections, the Governance Board (GB) must invite the community to suggest candidates. It must be done through a blog post that will be promoted via the current AsyncAPI communication channels.
- People can also submit their application on their own.
- Information about candidate must be sent to info@asyncapi.io 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.

Why not keep it in GitHub?

Copy link
Member Author

Choose a reason for hiding this comment

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

Because the candidate might disagree to be volunteered by someone, and therefore this should not be public imho, until validated. Public info from the start causes unnecessary pressure.

There could also be some code of conduct concerns that should be solved "offline" with the CoC committee.

Copy link
Member Author

Choose a reason for hiding this comment

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

@jonaslagoni makes sense? you think I should add a note with some explanation?

Copy link
Member

Choose a reason for hiding this comment

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

Think I skipped over the invite the community to suggest candidates i.e. others may suggest you 🤔 Which I find kinda weird, but I can see cases where it's nice 😄

@git-vote
Copy link

git-vote bot commented Apr 29, 2025

updated manually with 5 more votes. More details: #1634 (comment)

used API call:

gh api \
  --paginate \
  -H "Accept: application/vnd.github.squirrel-girl-preview+json" \
  /repos/asyncapi/community/issues/comments/2822193087/reactions \
  --jq '.[] | "\(.user.login) reacted with \(.content) at \(.created_at)"'

Vote closed

The vote passed! 🎉

78.05% of the users with binding vote were in favor and 0.00% were against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
32 0 1 8

Binding votes (28)

User Vote Timestamp
@theschles Abstain 2025-04-23 23:30:32.0 +00:00:00
@Pakisan In favor 2025-04-28 9:40:09.0 +00:00:00
@ashmit-coder In favor 2025-04-28 10:15:52.0 +00:00:00
@fmvilas In favor 2025-04-22 21:56:11.0 +00:00:00
@cdavernas In favor 2025-04-22 19:53:49.0 +00:00:00
@jonaslagoni In favor 2025-04-29 11:36:59.0 +00:00:00
@thulieblack In favor 2025-04-23 7:06:39.0 +00:00:00
@sambhavgupta0705 In favor 2025-04-29 6:27:32.0 +00:00:00
@devilkiller-ag In favor 2025-04-23 9:06:13.0 +00:00:00
@Samridhi-98 In favor 2025-04-23 11:32:03.0 +00:00:00
@Shurtu-gal In favor 2025-04-22 19:12:19.0 +00:00:00
@JBBianchi In favor 2025-04-23 7:44:36.0 +00:00:00
@AayushSaini101 In favor 2025-04-23 9:08:28.0 +00:00:00
@GreenRover In favor 2025-04-29 13:51:56.0 +00:00:00
@akshatnema In favor 2025-04-24 16:46:58.0 +00:00:00
@magicmatatjahu In favor 2025-04-29 7:52:00.0 +00:00:00
@harikrishnan83 In favor 2025-04-23 4:36:11.0 +00:00:00
@vishvamsinh28 In favor 2025-04-23 6:16:46.0 +00:00:00
@princerajpoot20 In favor 2025-04-23 9:05:56.0 +00:00:00
@TRohit20 In favor 2025-04-29 4:47:04.0 +00:00:00
@aayushmau5 In favor 2025-04-23 9:53:19.0 +00:00:00
@kennethaasan In favor 2025-04-29 11:41:34.0 +00:00:00
@derberg In favor 2025-04-29 12:55:35.0 +00:00:00
@Mayaleeeee In favor 2025-04-23 9:06:38.0 +00:00:00
@dan-r In favor 2025-04-28 12:24:43.0 +00:00:00
@BOLT04 In favor 2025-04-22 21:03:38.0 +00:00:00
@ivangsa In favor 2025-04-23 9:07:32.0 +00:00:00
@Florence-Njeri In favor 2025-04-23 12:28:42.0 +00:00:00
@Amzani In favor 2025-04-29 18:52:30.0 +00:00:00
@whitlockjc In favor 2025-04-29 21:04:11.0 +00:00:00
@dalelane In favor 2025-04-30 10:35:22.0 +00:00:00
@Souvikns In favor 2025-05-01 09:20:07.0 +00:00:00
@rcoppen In favor 2025-05-05 19:50:24.0 +00:00:00

Non-binding votes (1)

User Vote Timestamp
@danielkocot In favor 2025-04-22 20:01:08.0 +00:00:00

@git-vote git-vote bot removed the vote open label Apr 29, 2025
@derberg
Copy link
Member Author

derberg commented Apr 29, 2025

Amazing to see this, and can't wait to see the new board and how this will change AsyncAPI to even better community.

According to our charter, as this is a vote that amends charter, a quorum of 2/3 was required.

We have 41 TSC members. So for us 28 is quorum. Before bot closed the voting, 28 people binding votes were provided, 1 abstain and 27 in favour.

When I check with GH CLI and GH API, people are still voting (already 28 in favour)

gh api \            
  -H "Accept: application/vnd.github.squirrel-girl-preview+json" \
  /repos/asyncapi/community/issues/comments/2822193087/reactions \
  --jq '.[] | "\(.user.login) reacted with \(.content)"'

Since this is a pretty critical vote for the community I'd like to give more TSC members a chance to share their vote. There are anyway public holidays starting on Thursday, so I will not merge this PR by next Monday.

Therefore, @asyncapi/tsc_members if you still did not vote, please do it, share a vote.

On Monday morning, I will manually go through all new votes using the API call shared above, and update the vote conclusion manually so we reflect also vote of folks that did not make it before the bot closes the vote.

And yeah, Monday we kick off the elections process and I will create some issues in GH as there is some work to do with the current automation. If you already know you want to be a candidate to the board, and you want to have a call, to ask privately what you're signing up for - I'm all yours, just DM me

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (6)
CHARTER.md (6)

36-37: Suggestion: Simplify phrasing in membership rules
The phrase “expected to vary in order to ensure” can be tightened for clarity. For example:

- The size is expected to vary in order to ensure adequate coverage...
+ The size is expected to vary to ensure adequate coverage...
🧰 Tools
🪛 LanguageTool

[style] ~36-~36: Consider a shorter alternative to avoid wordiness.
Context: ...ze of TSC. The size is expected to vary in order to ensure adequate coverage of important a...

(IN_ORDER_TO_PREMIUM)


41-41: Minor grammar: add missing comma
Consider adding a comma before “so long as” for readability:

- The TSC may adopt or modify roles so long as the roles are documented...
+ The TSC may adopt or modify roles, so long as the roles are documented...
🧰 Tools
🪛 LanguageTool

[uncategorized] ~41-~41: Possible missing comma found.
Context: ...mbassadors. The TSC may adopt or modify roles so long as the roles are documented in ...

(AI_HYDRA_LEO_MISSING_COMMA)


63-63: Suggestion: Clarify election term wording
Replace “elected for 24-month cadence” with “elected for a 24-month term” for precision:

- The Board members are elected for 24-month cadence.
+ The Board members are elected for a 24-month term.

69-69: Suggestion: Add article for clarity
Consider adding “the” before “work” for smoother grammar:

- The Board chairperson coordinates work of the board...
+ The Board chairperson coordinates the work of the board...
🧰 Tools
🪛 LanguageTool

[uncategorized] ~69-~69: Possible missing article found.
Context: ...t. 9. The Board chairperson coordinates work of the board and ensures it operates ef...

(AI_HYDRA_LEO_MISSING_THE)


72-73: Suggestion: Correct pluralization and tighten phrasing

  • Change “recording” to “recordings” to reflect multiple meeting captures.
  • Simplify “Additional details, such as the timing and method of publication, but not limited to, will be outlined…” to something like:

    Additional details (e.g., timing and publication methods) will be outlined in the GOVERNANCE document.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~72-~72: The grammatical number of this noun doesn’t look right. Consider replacing it.
Context: ...ly meetings, with meeting summaries and recording made available publicly. Additional det...

(AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)


95-95: Suggestion: Clarify voting duration wording
The phrase “no more and no less than seven calendar days” can be simplified to “exactly seven calendar days” or “a seven-day voting period” for readability.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 75d157c and adf7868.

📒 Files selected for processing (1)
  • CHARTER.md (5 hunks)
🧰 Additional context used
🪛 LanguageTool
CHARTER.md

[style] ~36-~36: Consider a shorter alternative to avoid wordiness.
Context: ...ze of TSC. The size is expected to vary in order to ensure adequate coverage of important a...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~41-~41: Possible missing comma found.
Context: ...mbassadors. The TSC may adopt or modify roles so long as the roles are documented in ...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~67-~67: ‘a majority of the’ might be wordy. Consider a shorter alternative.
Context: ...can only be removed upon resignation or a majority of the TSC votes. Next steps will be specified...

(EN_WORDINESS_PREMIUM_A_MAJORITY_OF_THE)


[uncategorized] ~69-~69: Possible missing article found.
Context: ...t. 9. The Board chairperson coordinates work of the board and ensures it operates ef...

(AI_HYDRA_LEO_MISSING_THE)


[uncategorized] ~72-~72: The grammatical number of this noun doesn’t look right. Consider replacing it.
Context: ...ly meetings, with meeting summaries and recording made available publicly. Additional det...

(AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)


[style] ~93-~93: ‘a majority of’ might be wordy. Consider a shorter alternative.
Context: ...rovided in Section 6, decisions require a majority of votes. 4. Decisions must be always made...

(EN_WORDINESS_PREMIUM_A_MAJORITY_OF)


[uncategorized] ~101-~101: A comma might be missing here.
Context: ...o amendment attempts, the quorum is not reached then a last amendment attempt will be c...

(AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)


[uncategorized] ~101-~101: You might be missing the article “a” here.
Context: ... will be conducted without the need for quorum and only two-thirds of the votes will b...

(AI_EN_LECTOR_MISSING_DETERMINER_A)


[uncategorized] ~113-~113: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...cribe the contribution, the alternative open source license(s), and the justification for u...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[uncategorized] ~113-~113: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... justification for using an alternative open source license for the Project. License except...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[style] ~119-~119: ‘In the event that’ might be wordy. Consider a shorter alternative.
Context: ...ject to approval by the Series Manager. In the event that a Project-specific CoC has not been app...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~120-~120: Nowadays, it’s more common to write this as one word.
Context: ...cy, as to be amended or adopted, on its web site at least 30 days prior to such policy t...

(RECOMMENDED_COMPOUNDS)


[style] ~120-~120: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...opted, on its web site at least 30 days prior to such policy taking effect; provided, ho...

(EN_WORDINESS_PREMIUM_PRIOR_TO)


[style] ~120-~120: Nowadays, it’s more common to write this as one word.
Context: ...ective upon publication on LF Project’s web site. 4. All Collaborators must allow open p...

(RECOMMENDED_COMPOUNDS)


[style] ~127-~127: Consider replacing this phrase with the adverb “professionally” to avoid wordiness.
Context: ... 1. engage in the work of the Project in a professional manner consistent with maintaining a cohesive ...

(IN_A_X_MANNER)

🔇 Additional comments (13)
CHARTER.md (13)

1-1: Verify the addition of YAML front matter
The document now begins with ---, which appears to introduce YAML front matter. Confirm that your documentation pipeline or site generator supports front matter in this file; otherwise, it may render incorrectly on GitHub or in site builds.


6-6: Approved: Amendment date updated
Updating the “Amended 05-05-2025” timestamp correctly reflects the current changes in this PR.


13-20: TOC updated to reflect new sections
The table of contents now includes “Governance Board” and renumbers subsequent sections accordingly. Ensure each anchor link matches its target heading.


34-35: Approve: TSC oversight and Board appointment
Items 1 and 2 accurately define the TSC’s oversight role and its authority to appoint the Governance Board as outlined in the PR objectives.


38-38: Approve: Inclusion of Ambassadors as voting members
Item 5 extends voting rights to AsyncAPI Ambassadors, aligning with the goal to recognize their community contributions.


43-44: Verify: Automatic removal on inactivity
Item 10 auto-removes any TSC member who doesn’t vote within three months. Confirm that this policy has been communicated and that there’s an appeal or re-entry process to prevent unintentional removals.


59-62: Approve: New Governance Board section
Section 3 and its opening bullets correctly introduce the Governance Board’s purpose, composition, and oversight limits per the proposal.


64-64: Approve: Board membership eligibility
Requiring Board members to already be TSC members ensures experience and continuity.


65-67: Approve: Election cycle and removal process
Items 5–7 properly define the Board’s staggered election cadence, re-election limits, and removal criteria, deferring procedural specifics to the GOVERNANCE document.

🧰 Tools
🪛 LanguageTool

[style] ~67-~67: ‘a majority of the’ might be wordy. Consider a shorter alternative.
Context: ...can only be removed upon resignation or a majority of the TSC votes. Next steps will be specified...

(EN_WORDINESS_PREMIUM_A_MAJORITY_OF_THE)


74-78: Approve: Detailed Board responsibilities
The listed duties comprehensively cover strategic, financial, and operational oversight, with finer details delegated to the separate GOVERNANCE document.


89-89: Approve: TSC Voting section renumbering
Section 5 now accurately reflects the updated voting framework under the new governance model.


92-92: Approve: Quorum and reassessment process
Deferring quorum rules to the GOVERNANCE document and tasking the Board with reassessment on cancellations aligns with the new oversight flow.


96-96: Approve: Board-proposed voting topics
Having the Board filter and prepare topics before TSC presentation matches the intended governance oversight.

@derberg
Copy link
Member Author

derberg commented May 5, 2025

@thulieblack please approve so we can merge.

Summary of the vote

Charter change requires 2/3 quorum: A quorum of two-thirds is needed to amend this charter

33 TSC members voted out of 41:

  • 32 in favor
  • 1 abstein

2/3 * 41 = rounds up to 28

Congratulation AsyncAPI community, the vote passed

Next steps

  • We need to elect 3 board members (next year 2 more)
  • Candidates must be TSC members
  • Once we merge this PR, Ambassadors can also sign up to be TSC members -> which means they can also be candidates for the board
  • Candidates names must be sent to info@asyncapi.io until June 5
  • We will immediately communicate the list of names with voting instructions and people can send their votes until July 6
  • The board will be announced the following week

The first time we do elections, all the above is my responsibility as stepping down Executive Director. In the following years, the board makes sure the voting takes place.

@derberg
Copy link
Member Author

derberg commented May 5, 2025

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (8)
CHARTER.md (8)

6-6: Standardize date format and confirm LF approval date
The line reads:

Adopted 03-19-2021, Amended 05-05-2025

Consider using ISO 8601 for consistency (YYYY-MM-DD) and ensure the LF approval date is finalized.
Apply this diff:

- Adopted 03-19-2021, Amended 05-05-2025
+ Adopted 2021-03-19; Amended 2025-05-05  # replace with actual LF approval date when available

34-37: Clarify membership limits and size rationale
The new bullets on TSC composition look correct, but the phrasing is verbose. Consider tightening for readability:

- 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 size may fluctuate to cover key expertise areas while maintaining decision-making efficiency.

- 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).
+ If a removal, resignation, or affiliation change causes over one-third of members to share an employer, the TSC must review and adjust membership accordingly.
🧰 Tools
🪛 LanguageTool

[style] ~36-~36: Consider a shorter alternative to avoid wordiness.
Context: ...ze of TSC. The size is expected to vary in order to ensure adequate coverage of important a...

(IN_ORDER_TO_PREMIUM)


49-51: Unify hyphenation for “subprojects” and “subcommittees”
Current:

3. Organizing sub-projects and removing sub-projects;
4. Creating sub-committees or working groups…

Proposed:

- sub-projects
+ subprojects

- sub-committees
+ subcommittees

This ensures consistent compound naming.

🧰 Tools
🪛 LanguageTool

[misspelling] ~49-~49: This word is normally spelled as one.
Context: ...cubation, deprecation, and changes to a sub-project’s scope); 3. Organizing sub-project...

(EN_COMPOUNDS_SUB_PROJECT)


[misspelling] ~50-~50: This word is normally spelled as one.
Context: ...sub-project’s scope); 3. Organizing sub-projects and removing sub-projects; 4. Creat...

(EN_COMPOUNDS_SUB_PROJECTS)


[misspelling] ~50-~50: This word is normally spelled as one.
Context: ...3. Organizing sub-projects and removing sub-projects; 4. Creating sub-committees or work...

(EN_COMPOUNDS_SUB_PROJECTS)


[misspelling] ~51-~51: This word is normally spelled as one.
Context: ... removing sub-projects; 4. Creating sub-committees or working groups to focus on cross-pro...

(EN_COMPOUNDS_SUB_COMMITTEES)


92-97: Streamline voting duration language
Item 5 is a bit wordy:

5. The voting process is described in the GOVERNANCE file. In any case, TSC members must have no more and no less than seven calendar days to vote.

Better:

- TSC members must have no more and no less than seven calendar days to vote.
+ TSC members shall have exactly seven calendar days to cast their votes.
🧰 Tools
🪛 LanguageTool

[style] ~93-~93: ‘a majority of’ might be wordy. Consider a shorter alternative.
Context: ...rovided in Section 6, decisions require a majority of votes. 4. Decisions must always be made...

(EN_WORDINESS_PREMIUM_A_MAJORITY_OF)


100-102: Simplify quorum exception wording
Current:

2. If, after two amendment attempts, the quorum is not reached, then a last amendment attempt will be conducted without the need for quorum, and only two-thirds of the votes will be needed.

Proposed:

- conducted without the need for quorum, and only two-thirds of the votes will be needed.
+ conducted without quorum; a two-thirds majority of votes cast will suffice.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~101-~101: You might be missing the article “a” here.
Context: ... will be conducted without the need for quorum, and only two-thirds of the votes will ...

(AI_EN_LECTOR_MISSING_DETERMINER_A)


108-113: Hyphenate compound adjectives in IP policy
In Section 7:

alternative open source license(s)

should be:

- alternative open source license(s)
+ alternative open-source license(s)

And adjust “compound adjective internal” if present.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~113-~113: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...cribe the contribution, the alternative open source license(s), and the justification for u...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[uncategorized] ~113-~113: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... justification for using an alternative open source license for the Project. License except...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


118-119: Replace wordy phrases in compliance section
Current:

In the event that a Project-specific CoC has not been approved …

Consider:

- In the event that a Project-specific CoC has not been approved
+ If a Project-specific CoC is not approved

Also:

at least 30 days prior to such policy taking effect

- at least 30 days prior to such policy taking effect
+ at least 30 days before the policy takes effect
🧰 Tools
🪛 LanguageTool

[style] ~119-~119: ‘In the event that’ might be wordy. Consider a shorter alternative.
Context: ...ject to approval by the Series Manager. In the event that a Project-specific CoC has not been app...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


125-128: Use adverb for “professional manner”
The phrase:

engage in the work of the Project in a professional manner

can be tightened:

- in a professional manner
+ professionally
🧰 Tools
🪛 LanguageTool

[style] ~127-~127: Consider replacing this phrase with the adverb “professionally” to avoid wordiness.
Context: ... 1. Engage in the work of the Project in a professional manner consistent with maintaining a cohesive ...

(IN_A_X_MANNER)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between adf7868 and 3ca1d87.

📒 Files selected for processing (1)
  • CHARTER.md (2 hunks)
🧰 Additional context used
🪛 LanguageTool
CHARTER.md

[style] ~36-~36: Consider a shorter alternative to avoid wordiness.
Context: ...ze of TSC. The size is expected to vary in order to ensure adequate coverage of important a...

(IN_ORDER_TO_PREMIUM)


[misspelling] ~49-~49: This word is normally spelled as one.
Context: ...cubation, deprecation, and changes to a sub-project’s scope); 3. Organizing sub-project...

(EN_COMPOUNDS_SUB_PROJECT)


[misspelling] ~50-~50: This word is normally spelled as one.
Context: ...sub-project’s scope); 3. Organizing sub-projects and removing sub-projects; 4. Creat...

(EN_COMPOUNDS_SUB_PROJECTS)


[misspelling] ~50-~50: This word is normally spelled as one.
Context: ...3. Organizing sub-projects and removing sub-projects; 4. Creating sub-committees or work...

(EN_COMPOUNDS_SUB_PROJECTS)


[misspelling] ~51-~51: This word is normally spelled as one.
Context: ... removing sub-projects; 4. Creating sub-committees or working groups to focus on cross-pro...

(EN_COMPOUNDS_SUB_COMMITTEES)


[typographical] ~56-~56: Conjunctions like ‘and’ should not follow semicolons. Consider using a comma, or removing the conjunction.
Context: ... code base that affect multiple projects; and 10. Coordinating any marketing, events, or...

(CONJUNCTION_AFTER_SEMICOLON)


[style] ~67-~67: ‘a majority of the’ might be wordy. Consider a shorter alternative.
Context: ...can only be removed upon resignation or a majority of the TSC votes. Next steps will be specified...

(EN_WORDINESS_PREMIUM_A_MAJORITY_OF_THE)


[uncategorized] ~69-~69: Possible missing article found.
Context: ...t. 9. The Board chairperson coordinates work of the board and ensures it operates ef...

(AI_HYDRA_LEO_MISSING_THE)


[style] ~93-~93: ‘a majority of’ might be wordy. Consider a shorter alternative.
Context: ...rovided in Section 6, decisions require a majority of votes. 4. Decisions must always be made...

(EN_WORDINESS_PREMIUM_A_MAJORITY_OF)


[uncategorized] ~101-~101: You might be missing the article “a” here.
Context: ... will be conducted without the need for quorum, and only two-thirds of the votes will ...

(AI_EN_LECTOR_MISSING_DETERMINER_A)


[uncategorized] ~113-~113: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...cribe the contribution, the alternative open source license(s), and the justification for u...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[uncategorized] ~113-~113: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... justification for using an alternative open source license for the Project. License except...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[style] ~119-~119: ‘In the event that’ might be wordy. Consider a shorter alternative.
Context: ...ject to approval by the Series Manager. In the event that a Project-specific CoC has not been app...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~120-~120: Nowadays, it’s more common to write this as one word.
Context: ...cy, as to be amended or adopted, on its web site at least 30 days prior to such policy t...

(RECOMMENDED_COMPOUNDS)


[style] ~120-~120: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...opted, on its web site at least 30 days prior to such policy taking effect; provided, ho...

(EN_WORDINESS_PREMIUM_PRIOR_TO)


[style] ~120-~120: Nowadays, it’s more common to write this as one word.
Context: ...ective upon publication on LF Project’s web site. 4. All Collaborators must allow open p...

(RECOMMENDED_COMPOUNDS)


[style] ~127-~127: Consider replacing this phrase with the adverb “professionally” to avoid wordiness.
Context: ... 1. Engage in the work of the Project in a professional manner consistent with maintaining a cohesive ...

(IN_A_X_MANNER)

🔇 Additional comments (2)
CHARTER.md (2)

13-20: TOC links reflect new sections correctly
The updated table of contents now includes Sections 3–10. The anchors appear consistent with the headings below. No action needed here.


24-24: Intro paragraph update is clear
The added context about LF Projects, LLC reads well and aligns with project scope.

Copy link
Member

@thulieblack thulieblack left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🔭 Outside diff range comments (1)
GOVERNANCE.md (1)

75-96: 🛠️ Refactor suggestion

Adjust heading levels for Past Directors and improve consistency
Use ### for individual names under the ## Past directors section to maintain proper heading hierarchy.

-#### Fran Mendez
+### Fran Mendez

-| Email          | fmvilas@gmail.com                  |
+| Email          | <fmvilas@gmail.com>                |

-| Slack          | Fran Méndez (User ID: `U34F2JRRS`) |
+| Slack          | Fran Méndez (User ID: `U34F2JRRS`) |
 
-| GitHub         | https://github.com/fmvilas         |
+| GitHub         | [fmvilas](https://github.com/fmvilas)         |

-#### Lukasz Gornicki
+### Lukasz Gornicki
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

79-79: Heading levels should only increment by one level at a time
Expected: h3; Actual: h4

(MD001, heading-increment)


83-83: Bare URL used
null

(MD034, no-bare-urls)


85-85: Bare URL used
null

(MD034, no-bare-urls)


86-86: Bare URL used
null

(MD034, no-bare-urls)


92-92: Bare URL used
null

(MD034, no-bare-urls)


94-94: Bare URL used
null

(MD034, no-bare-urls)


95-95: Bare URL used
null

(MD034, no-bare-urls)

🧹 Nitpick comments (3)
GOVERNANCE.md (3)

5-6: Simplify membership eligibility wording
Combine the two sentences into one for clarity and reduce redundancy.

-To become a GB member, you need to be a member of the Technical Steering Committee (TSC). To become a member of TSC, you need to be either an Ambassador or a Maintainer. 
+To be eligible for the Governance Board (GB), you must be a member of the Technical Steering Committee (TSC), which comprises all Ambassadors and Maintainers with `isTSCMember: true`.

36-39: Reduce wordiness in Interim Election clause
Consider replacing “In the event that” and “prior to” for brevity.

-#### Interim Election
-
-In the event that a board member's term is terminated prior to its scheduled end, the organization shall ensure that a replacement election is organized and completed within 60 days from the date of termination to fill the vacancy and maintain the full composition of the board.
+#### Interim Election
+
+If a board member's term ends before its scheduled completion, the organization must hold a replacement election within 60 days of the vacancy to maintain full board composition.
🧰 Tools
🪛 LanguageTool

[style] ~37-~37: ‘In the event that’ might be wordy. Consider a shorter alternative.
Context: ...h perspectives. #### Interim Election In the event that a board member's term is terminated pri...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~38-~38: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...hat a board member's term is terminated prior to its scheduled end, the organization sha...

(EN_WORDINESS_PREMIUM_PRIOR_TO)


61-66: Fix Markdown link and tighten TSC membership description
Correct the URL formatting and clarify how to identify TSC members.

-## Technical Steering Committee (TSC) members
-
-You can determine who is a TSC member and has the right to vote from [MAINTAINERS.yaml](MAINTAINERS.yaml) and [AMBASSADORS_MEMBERS.json](AMBASSADORS_MEMBERS.json), `isTSCMember` properties. We also transparently list all the TSC members in [AsyncAPI Website](`https://asyncapi.com/community/tsc`).
+## Technical Steering Committee (TSC) members
+
+Determine voting rights by checking `isTSCMember: true` in [MAINTAINERS.yaml](MAINTAINERS.yaml) and [AMBASSADORS_MEMBERS.json](AMBASSADORS_MEMBERS.json). We also list all TSC members on the [AsyncAPI website](https://asyncapi.com/community/tsc).
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3ca1d87 and 0fc40cf.

📒 Files selected for processing (1)
  • GOVERNANCE.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
GOVERNANCE.md

[style] ~11-~11: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...duals to the board. - At least 60 days prior to elections, the Governance Board (GB) mu...

(EN_WORDINESS_PREMIUM_PRIOR_TO)


[uncategorized] ~15-~15: You might be missing the article “the” here.
Context: ...PI website no later than 2 weeks before elections. - Concerns about candidates should be ...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[style] ~37-~37: ‘In the event that’ might be wordy. Consider a shorter alternative.
Context: ...h perspectives. #### Interim Election In the event that a board member's term is terminated pri...

(EN_WORDINESS_PREMIUM_IN_THE_EVENT_THAT)


[style] ~38-~38: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...hat a board member's term is terminated prior to its scheduled end, the organization sha...

(EN_WORDINESS_PREMIUM_PRIOR_TO)

🪛 markdownlint-cli2 (0.17.2)
GOVERNANCE.md

13-13: Bare URL used
null

(MD034, no-bare-urls)


72-72: Bare URL used
null

(MD034, no-bare-urls)


79-79: Heading levels should only increment by one level at a time
Expected: h3; Actual: h4

(MD001, heading-increment)


83-83: Bare URL used
null

(MD034, no-bare-urls)


85-85: Bare URL used
null

(MD034, no-bare-urls)


86-86: Bare URL used
null

(MD034, no-bare-urls)


92-92: Bare URL used
null

(MD034, no-bare-urls)


94-94: Bare URL used
null

(MD034, no-bare-urls)


95-95: Bare URL used
null

(MD034, no-bare-urls)

🔇 Additional comments (6)
GOVERNANCE.md (6)

7-10: Election cadence description is clear
The election schedule is well-defined and accurately describes the staggered cycle.


20-35: Staggered term explanation is well-structured
The “Explanation of the Board Election and Term Cycle” section clearly outlines the initial and continuous staggered rotations.


42-53: Duties list is comprehensive and clear
The bullet items cover necessary oversight responsibilities and align with the new governance structure.


57-60: Chairperson appointment is clear
The process and term length for the Chairperson are well-defined.


67-74: Voting section is clear
The separation of GB-managed manual elections from regular TSC votes is well-documented and aligns with the new governance model.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

72-72: Bare URL used
null

(MD034, no-bare-urls)


11-18:

Details

❓ Verification inconclusive

Clarify election bullet items and reduce wordiness

  • Replace “prior to” with “before”
  • Add missing “the” before “elections”
  • Use a mailto link for the email
  • Fix grammar around calling for a vote
    Apply this diff:
- - At least 60 days prior to elections, the Governance Board (GB) must invite the community to suggest candidates. It must be done through a blog post that will be promoted via the current AsyncAPI communication channels.
+ - At least 60 days before the elections, the Governance Board (GB) must invite the community to suggest candidates via a blog post promoted across AsyncAPI communication channels.
- - Community members may also submit their own applications. 
+ - Community members may also submit their own applications.
- - Information about a candidate must be sent to info@asyncapi.io no later than 30 days before elections.
+ - Candidate information must be sent to <mailto:info@asyncapi.io> no later than 30 days before the elections.
- - Nominee must agree to be nominated.
+ - Nominees must explicitly agree to be nominated.
- - The list of candidates must be published on the AsyncAPI website no later than 2 weeks before elections.
+ - The list of candidates must be published on the AsyncAPI website no later than 14 days before the elections.
- - Concerns about candidates should be reported to the Code of Conduct Committee. 
+ - Concerns about candidates should be reported to the Code of Conduct Committee.
- - GB calls out for voting by presenting the candidates and instructing people how to vote. Voting is private because we need to respect candidates and possible issues related to public rejection. Candidates know their results. Only winners and their votes are presented to the public.
+ - GB calls for a vote by presenting candidates and instructions. Voting will be conducted privately to respect candidate confidentiality; only winners and vote tallies will be made public.
- - TSC members are free to share publicly who they voted for.
+ - TSC members are free to share publicly whom they voted for.

Are you OK with keeping the vote private while disclosing only winners and tallies? Ensure this aligns with AsyncAPI’s transparency principles.


Rewrite GOVERNANCE.md bullet items

I’ve streamlined the language, added “the” before “elections,” converted the email to a mailto link, and tightened the voting wording. Please confirm that keeping votes private—while publishing only winners and vote tallies—aligns with AsyncAPI’s transparency principles.

Proposed diff:

@@ File: GOVERNANCE.md
- - At least 60 days prior to elections, the Governance Board (GB) must invite the community to suggest candidates. It must be done through a blog post that will be promoted via the current AsyncAPI communication channels.
+ - At least 60 days before the elections, the Governance Board (GB) must invite the community to suggest candidates via a blog post promoted across AsyncAPI communication channels.

- - Community members may also submit their own applications. 
+ - Community members may also submit their own applications.

- - Information about a candidate must be sent to info@asyncapi.io no later than 30 days before elections.
+ - Candidate information must be sent to <mailto:info@asyncapi.io> no later than 30 days before the elections.

- - Nominee must agree to be nominated.
+ - Nominees must explicitly agree to be nominated.

- - The list of candidates must be published on the AsyncAPI website no later than 2 weeks before elections.
+ - The list of candidates must be published on the AsyncAPI website no later than 14 days before the elections.

- - Concerns about candidates should be reported to the Code of Conduct Committee. 
+ - Concerns about candidates should be reported to the Code of Conduct Committee.

- - GB calls out for voting by presenting the candidates and instructing people how to vote. Voting is private because we need to respect candidates and possible issues related to public rejection. Candidates know their results. Only winners and their votes are presented to the public.
+ - GB calls for a vote by presenting candidates and instructions. Voting will be conducted privately to respect candidate confidentiality; only winners and vote tallies will be made public.

- - TSC members are free to share publicly who they voted for.
+ - TSC members are free to share publicly whom they voted for.
🧰 Tools
🪛 LanguageTool

[style] ~11-~11: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...duals to the board. - At least 60 days prior to elections, the Governance Board (GB) mu...

(EN_WORDINESS_PREMIUM_PRIOR_TO)


[uncategorized] ~15-~15: You might be missing the article “the” here.
Context: ...PI website no later than 2 weeks before elections. - Concerns about candidates should be ...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)

🪛 markdownlint-cli2 (0.17.2)

13-13: Bare URL used
null

(MD034, no-bare-urls)

Comment on lines +1 to 4
## Governance Board (GB) members

### Current appointed person
You can determine who the current GB members are by filtering the [MAINTAINERS.yaml](MAINTAINERS.yaml) and the [AMBASSADORS_MEMBERS.json](AMBASSADORS_MEMBERS.json) with the `isBoardMember` set to `true`. We also transparently list all the GB members in [AsyncAPI Website](`https://asyncapi.com/community/board`)

Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Fix Markdown link formatting for AsyncAPI website and clarify file filters
The backticks around the URL break the Markdown link, and the sentence can be tightened.
Apply this diff:

-## Governance Board (GB) members
-
-You can determine who the current GB members are by filtering the [MAINTAINERS.yaml](MAINTAINERS.yaml) and the [AMBASSADORS_MEMBERS.json](AMBASSADORS_MEMBERS.json) with the `isBoardMember` set to `true`. We also transparently list all the GB members in [AsyncAPI Website](`https://asyncapi.com/community/board`)
+## Governance Board (GB) members
+
+You can determine the current GB members by filtering the [MAINTAINERS.yaml](MAINTAINERS.yaml) and [AMBASSADORS_MEMBERS.json](AMBASSADORS_MEMBERS.json) files for entries with `isBoardMember: true`. We also list all GB members on the [AsyncAPI website](https://asyncapi.com/community/board).
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## Governance Board (GB) members
### Current appointed person
You can determine who the current GB members are by filtering the [MAINTAINERS.yaml](MAINTAINERS.yaml) and the [AMBASSADORS_MEMBERS.json](AMBASSADORS_MEMBERS.json) with the `isBoardMember` set to `true`. We also transparently list all the GB members in [AsyncAPI Website](`https://asyncapi.com/community/board`)
## Governance Board (GB) members
You can determine the current GB members by filtering the [MAINTAINERS.yaml](MAINTAINERS.yaml) and [AMBASSADORS_MEMBERS.json](AMBASSADORS_MEMBERS.json) files for entries with `isBoardMember: true`. We also list all GB members on the [AsyncAPI website](https://asyncapi.com/community/board).

@thulieblack
Copy link
Member

/rtm

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (2)
voting.md (2)

20-25: Add comma in compound sentence and clarify vote semantics

In the third bullet (line 22), add a comma before “but” to meet compound sentence rules:

- you saw a vote but you have no opinion
+ you saw a vote, but you have no opinion

Also consider explicitly stating that “more than 50% of the votes” refers to binding TSC votes to avoid ambiguity.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~22-~22: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... with 👀 to indicate that you saw a vote but you have no opinion, or cannot make a p...

(COMMA_COMPOUND_SENTENCE)


29-37: Fix Markdown list indentation under “Propose a Vote”

The nested list items under step 4 (lines 35–37) need consistent indentation (e.g., two spaces before the dash) for proper Markdown rendering:

- 4. GB members will review the request:
-  - Check if the vote is needed,
-  - What context is missing,
-  - Is larger debate with TSC is needed first.
+ 4. GB members will review the request:
+    - Check if the vote is needed,
+    - What context is missing,
+    - Is a larger debate with the TSC needed first.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

35-35: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


36-36: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


37-37: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0fc40cf and 8549585.

📒 Files selected for processing (1)
  • voting.md (4 hunks)
🧰 Additional context used
🪛 LanguageTool
voting.md

[uncategorized] ~22-~22: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... with 👀 to indicate that you saw a vote but you have no opinion, or cannot make a p...

(COMMA_COMPOUND_SENTENCE)

🪛 markdownlint-cli2 (0.17.2)
voting.md

35-35: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


36-36: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


37-37: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)

🔇 Additional comments (7)
voting.md (7)

3-4: LGTM: Governance model introduction clarity

The description clearly links to the governance motivation post and defines the TSC scope effectively.


5-5: LGTM: Governance Board responsibility

The sentence concisely states the Governance Board’s role in managing the voting process.


16-16: LGTM: Encouraging Pull Requests for votes

Clarifying the preference for Pull Requests over Issues provides valuable guidance for contributors.


41-41: LGTM: Start Voting initiation step

The instruction for adding a /vote comment to an Issue or Pull Request is clear and consistent.


52-53: LGTM: Cancel Voting flow

The /cancel-vote step mirrors the start voting process and clearly documents the cancellation commands.


62-72: LGTM: Voting tracking details

The section comprehensively covers the voting history location, emoji legend, and automated updates.


75-77: LGTM: Voting notes

The notes on abstain votes and bot scope are concise and reinforce the rules.

@thulieblack
Copy link
Member

/rtm

@asyncapi-bot asyncapi-bot merged commit 972fb8e into asyncapi:master May 6, 2025
16 checks passed
@derberg derberg mentioned this pull request May 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Comments