-
-
Notifications
You must be signed in to change notification settings - Fork 113
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: introduce governance board #1634
base: master
Are you sure you want to change the base?
Conversation
@@ -4,6 +4,7 @@ profiles: | |||
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.
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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is great 💯
<p align="center"><strong>Technical Charter (the “Charter”)</strong></p> | ||
<p align="center"> | ||
for</br> | ||
AsyncAPI Project a Series of LF Projects, LLC</br> | ||
Adopted 03-19-2021 | ||
Adopted 03-19-2021, Amended [TODO:set a date once agreed with LF] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LF is super slow in responses, so we will eventually apply lazy consensus, when we agree and long term vote that change is needed, we will wait for them some time and then merge if no veto
GOVERNANCE.md
Outdated
|
||
### Current appointed person | ||
You can determine who is the current GB member from [MAINTAINERS.yaml](MAINTAINERS.yaml) and [AMBASSADORS_MEMBERS.json](AMBASSADORS_MEMBERS.json), `isBoardMember` and `isBoardChair` properties. We also transparently list all the GB members in [AsyncAPI Website](`https://asyncapi.com/community/board`) |
There was a problem hiding this comment.
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: |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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
@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. |
There was a problem hiding this 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 <[email protected]>
@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. |
There was a problem hiding this 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.
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 <[email protected]>
@fmvilas thanks done |
There was a problem hiding this 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 👍
|
||
- 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 [email protected] not later than 30 days before elections. |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
7. Any meetings of the TSC are intended to be open to the public, recorded, and can be conducted electronically, via teleconference, or in person. | ||
8. TSC projects generally will involve Contributors, Committers, and Ambassadors. The TSC may adopt or modify roles so long as the roles are documented in the Project’s GOVERNANCE file. | ||
9. TSC members are expected to regularly participate in TSC voting. | ||
10. In the case where an individual TSC member -- within any three-month period -- does not participate in TSC votes, the member shall be automatically removed from the TSC. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are we going to create some automation around it 💪?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this was in the rules before, not a new stuff.
but yeah, we have https://github.com/asyncapi/community/blob/master/TSC_VOTING_OVERVIEW.md and we are able to determine if someone was active or not. Remove automation yes, but it is pretty sensitive topic to rely on automation fully, so automation should be rather focused on nitifying the board to check with TSC members what is the situation - this is what I do manually now 🤷🏼
|
||
#### 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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How will the board function within this window?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we talk only about single member resignation, which should not affect the board's daily work.
I cannot imagine that the whole board resigns at once, maybe cause of some politics that I cannot imagine - this again should not cause issues, as board represents TSC in the end, so TSC will do election, and if non of board members want to continue for 60days until election is done, the board will simply not operate - 60 days in open source is like one week in real world 😆
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fair enough
Caution
This is not a call for a vote. This is a call for debate. I did this in a form of PR because I could not find a better way to present my initial idea, other than updating the current docs – to also point out the most relevant docs that need to be part of the debate. Everything here is subject to change/improvement. This is only my proposal, and if you think there are issues (for example, ambassadors should not be TSC members), then please let us have a debate and figure out the best solution.
In short, the most important things to note are:
TSC is retaining its power
More details: TSC is still critical in running the initiative successfully. Only people who WORK on the project may decide on its direction.
TSC is no longer only maintainers but also ambassadors
More details: When the initial charter was created, we could only determine people who WORK on the project by whether they were maintainers or not. Now, after running the AsyncAPI Ambassador program for over two years, it is clear that there is another group in the community that works hard for the success of the AsyncAPI Initiative -> AsyncAPI Ambassadors. They might not have time to maintain repositories, but they travel to conferences, write articles, or support other community initiatives that make AsyncAPI successful. Also, because they have a closer connection with users and direct access to their feedback, they should be involved in the voting process that decides the project's direction.
The Executive Director role is removed and replaced with a Governance Board, elected from within TSC members
More details: There is no revolution here. The board does not gain any power over the TSC. The board is just to make sure that one director/person is replaced with 3–5 people. We need to safeguard the project against potential disruptions in the tech market, such as layoffs, burnout, and other challenges. The board is like Marshals, with one in the role of chair—they ensure processes are followed (in short). I guess it is similar to the Speaker of the House of Representatives in the USA.
The board operates under
Chatham House Rule
—kind of privateMore details: The board replaces the director. I, as director, had multiple private conversations with potential sponsors, the Linux Foundation on financial aspects, or events organization. There are a significant number of private talks that I have when preparing the budget and others. There is no decision-making in these conversations—it’s just that they are too close to business and people’s work-life to be held publicly. Later, the community only sees, for example, that there is a new sponsor or the budget proposal (without all the work behind it).
The board needs to operate under the same rules, and luckily, we are not the first ones to do it. I actually copied this from another community where such a setup is also needed to ensure people can speak openly: https://todogroup.org/community/get-started/#step-1-join-the-todo-chat-forum-and-osponews.
The board is the only group that can start the voting
More details: Nothing really new here. As director in the past, I was involved in most voting calls as an initial reviewer, helping find all the answers, sharing opinions, and sometimes even preparing the vote. This was only to assure a smooth voting process without mistakes and to call the vote only when it was 100% ready. The board cannot block a vote; they need to help get it in place.
Another example is a recent vote I called for UN endorsement. The more mature we become as a community, the more complex topics will arise. Such voting topics should first be prepared and discussed by the board. The board could not refuse to take a vote on the topic but could help ensure the message is clear and there are no doubts.
Board election—this one is tricky. The current voting process cannot really handle this; we need some custom manual solution.
NOTE: Once we are happy with changes in the Charter, it will also have to be approved by LF.
Also, I put some more inline comments in the PR to explain particular changes.
NOTE: I'm not sure we need to update the Charter on how the first board election is done. I guess it is obvious that once we approve this PR and get it merged, we will immediately start the election cycle. We could also agree that this PR is merged after the first election, with some updates made as a result of learning from the first election.
TODO: