chore: introduce governance board#1634
Conversation
| pass_threshold: 51 | ||
| periodic_status_check: "1 week" | ||
| close_on_passing: true | ||
| close_on_passing_min_wait: "7 days" |
There was a problem hiding this comment.
new feature CNCF added on our request 💪🏼 now we can really hold a vote open for 7 days, to respect TSC members time
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] |
There was a problem hiding this comment.
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`) |
There was a problem hiding this comment.
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: |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
Democracy is mathematically impossible 😜
But on a serious note should there be a position who keeps track of the Voting?
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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
|
@asyncapi/tsc_members please have a look and let us start a debate |
|
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
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. |
fmvilas
left a comment
There was a problem hiding this comment.
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>
|
@asyncapi/ambassadors please feel free to participate and share your thoughts |
|
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 ! |
|
@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 |
|
@dalelane thanks
This change does not address that aspect directly. It for sure opens doors to move some responsibilities to the Board:
But this PR is focused mainly on replacing the Executive Director with the Board and enabling Ambassadors to join TSC. At the moment |
|
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. |
|
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. |
Co-authored-by: Fran Méndez <fmvilas@gmail.com>
|
@fmvilas thanks done |
jonaslagoni
left a comment
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
@jonaslagoni makes sense? you think I should add a note with some explanation?
There was a problem hiding this comment.
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 😄
Vote closedThe vote passed! 🎉
Summary
Binding votes (28)
|
| User | Vote | Timestamp |
|---|---|---|
| @danielkocot | In favor | 2025-04-22 20:01:08.0 +00:00:00 |
|
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) 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 |
There was a problem hiding this comment.
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
📒 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.
|
@thulieblack please approve so we can merge. Summary of the voteCharter change requires 2/3 quorum: 33 TSC members voted out of 41:
2/3 * 41 = rounds up to 28 Congratulation AsyncAPI community, the vote passed Next steps
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. |
|
Communication almost ready: asyncapi/website#4090 Preview link: https://deploy-preview-4090--asyncapi-website.netlify.app/blog/new-governance-board |
There was a problem hiding this comment.
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-2025Consider 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 + subcommitteesThis 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 approvedAlso:
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 mannercan 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
📒 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.
There was a problem hiding this comment.
Actionable comments posted: 1
🔭 Outside diff range comments (1)
GOVERNANCE.md (1)
75-96: 🛠️ Refactor suggestionAdjust heading levels for Past Directors and improve consistency
Use###for individual names under the## Past directorssection 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
📒 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)
| ## 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`) | ||
|
|
There was a problem hiding this comment.
🛠️ 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.
| ## 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). |
|
/rtm |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (2)
voting.md (2)
20-25: Add comma in compound sentence and clarify vote semanticsIn 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 opinionAlso 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
📒 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 clarityThe description clearly links to the governance motivation post and defines the TSC scope effectively.
5-5: LGTM: Governance Board responsibilityThe sentence concisely states the Governance Board’s role in managing the voting process.
16-16: LGTM: Encouraging Pull Requests for votesClarifying the preference for Pull Requests over Issues provides valuable guidance for contributors.
41-41: LGTM: Start Voting initiation stepThe instruction for adding a
/votecomment to an Issue or Pull Request is clear and consistent.
52-53: LGTM: Cancel Voting flowThe
/cancel-votestep mirrors the start voting process and clearly documents the cancellation commands.
62-72: LGTM: Voting tracking detailsThe section comprehensively covers the voting history location, emoji legend, and automated updates.
75-77: LGTM: Voting notesThe notes on abstain votes and bot scope are concise and reinforce the rules.
|
/rtm |
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:
Summary by CodeRabbit
Summary by CodeRabbit
New Features
Documentation