asyncapi / community

AsyncAPI community-related stuff.
https://www.asyncapi.com/community
96 stars 102 forks source link

Report on each completed voting the TSC participation #1268

Closed derberg closed 2 months ago

derberg commented 3 months ago

Before we start notifying people with automated way like https://github.com/asyncapi/community/issues/1194 let's first actually get transparent data and basing on data I can "manually" approach people first.

so we have git-vote that does automated voting for us. We can easily extract a list of "voting" issues and PRs and parse them for information.

we need:

first propose a structure of info, with current available data you can mock it without coming up with dummy data

AayushSaini101 commented 3 months ago

Seems nice idea @derberg what should be the next step ? Do we need to higlight the names of the people.

asyncapi-bot-eve commented 3 months ago

Hi @AayushSaini101, since you are not a TSC Member, you cannot start or stop voting. Please read more about voting process

derberg commented 3 months ago

@AayushSaini101 look at bot message, something wrong with automation.

sorry, I didn't get your question, can you rephrase?

AayushSaini101 commented 3 months ago

@AayushSaini101 look at bot message, something wrong with automation.

sorry, I didn't get your question, can you rephrase?

@derberg sorry actually by mistake i added vote string in the comment that cause the above bot message, then i edited the message.

Do we just only print the name of the TSC members and send a notification to the members ?

derberg commented 3 months ago

but there is nothing about sending notification to TSC members in scope of this issue. It is purely only about creating a voting report

AayushSaini101 commented 3 months ago

but there is nothing about sending notification to TSC members in scope of this issue. It is purely only about creating a voting report

Thanks @derberg I am willing to work on this issue. If it is okay for you. can we submit it for bounty program Q3 ?

derberg commented 3 months ago

submitted

you can already explore and suggest solution

we have a list of maintainers and tsc members already as YAML format, maybe better to extend it with voting info, so each TSC member has a collection of votes? Then basing on the data from YAML, a markdown summary can be generated

AayushSaini101 commented 3 months ago

submitted

you can already explore and suggest solution

we have a list of maintainers and tsc members already as YAML format, maybe better to extend it with voting info, so each TSC member has a collection of votes? Then basing on the data from YAML, a markdown summary can be generated

Sure @derberg I will give update on this

AayushSaini101 commented 3 months ago

@derberg Here is the the solution step

When the member give voting in the process

 {
    "name": "AayushSaini101",
    "isVotedInLast3Months": true,
    "lastClosedVoteTime": "2024-06-15T05:10:55.315Z"
  },

When the member doesn't participate in voting in 3 Months:

{ "name": "AayushSaini101", "isVotedInLast3Months": false, "lastClosedVoteTime": "2024-06-15T05:10:55.315Z" },

AayushSaini101 commented 3 months ago

The POC for the solution:

asyncapi-bot-eve commented 3 months ago

Hi @AayushSaini101, since you are not a TSC Member, you cannot start or stop voting. Please read more about voting process

AayushSaini101 commented 3 months ago

Hi @AayushSaini101, since you are not a TSC Member, you cannot start or stop voting. Please read more about voting process

We, Need to change this https://github.com/asyncapi/community/blob/dee45e5ac3198901455f2d30517d07c57a848492/.github/workflows/vote-verifcation.yml#L20

asyncapi-bot-eve commented 3 months ago

Hi @AayushSaini101, since you are not a TSC Member, you cannot start or stop voting. Please read more about voting process

aeworxet commented 3 months ago

Bounty Issue's service comment

Text labels: bounty/2024-Q3, bounty/advanced, bounty/coding First assignment to third-party contributors: 2024-06-21 00:00:00 UTC+12:00 End Of Life after: 2024-07-31 23:59:59 UTC-12:00

@asyncapi/bounty_team

The Bounty Program is not a Mentorship Program. The accepted level of Bounty Program Participants is Middle/Senior.
Third-party contributors should coherently articulate how they are going to approach the resolution process when expressing a desire to work on this Bounty Issue.
AayushSaini101 commented 3 months ago

@derberg can you please assign me the issue ?

derberg commented 3 months ago

@AayushSaini101 done

derberg commented 3 months ago

I noticed I forgot that I was suppose to wait 3 days before I publish a decision who will work on issues.

I don't have a better excuse other than "Monday". My apologies.

aeworxet commented 3 months ago

Bounty Issue's Timeline

Complexity Level Assignment Date (by GitHub) Start Date (by BP Rules) End Date (by BP Rules) Draft PR Submission Final PR Merge Start Final PR Merge End
Advanced 2024-06-17 2024-07-01 2024-08-25 2024-07-21 2024-08-11 2024-08-25
Please note that the dates given represent deadlines, not specific dates, so if the goal is reached sooner, it's better.
Keep in mind the responsibility for violations of the Timeline.
derberg commented 3 months ago

@AayushSaini101

please have a look on requirements

it should gather info about: if vote passed or not, the participation, who voted and who not

so we need a full summary:

please try to first manually create some table, don't waste time on code and json. Rather do a dummy manual google sheet with names and vote topics and how such info could be in the end rendered as a table. Once we get this, then you can do code and json

don't rush, we are not in a competition

AayushSaini101 commented 3 months ago

@AayushSaini101

please have a look on requirements

it should gather info about: if vote passed or not, the participation, who voted and who not

so we need a full summary:

  • list of people
  • what they voted on, and what vote was it (yay or nay or abstain)
  • or maybe they did not vote
  • and yeah, what you already have, have info if somebody did not vote in last 3m

please try to first manually create some table, don't waste time on code and json. Rather do a dummy manual google sheet with names and vote topics and how such info could be in the end rendered as a table. Once we get this, then you can do code and json

don't rush, we are not in a competition

@derberg Thanks for the suggetions : ) We can follow the structure of the table to store voting details of TSC Members.

Structure 1:

Name lastClosedVoteTime Decision isVotedInLast3Months lastTopicMemberVoted GithubUserName
John Doe 2023-06-18 Agree Yes Issue Number john_df
Jane Smith 2023-05-20 Disagree No Issue Number jane_sm
Alex Johnson 2023-04-25 Abstain Yes Issue Number alex_sm
Structure 2: If we want to store the history of voting details for 3 Months Name GithubUserName voteDetails AgreeCount DisagreeCount AbstainCount isVotedInLast3Months
John Doe john_df 2023-06-18:Agree:Issue 1; 2023-05-15:Disagree:Issue 2; 2023-04-20:Abstain:Issue 3 1 1 1 Yes
Jane Smith jane_sm 2023-06-17:Agree:Issue 4; 2023-05-22:Disagree:Issue 5; 2023-04-25:Agree:Issue 6 2 1 0 Yes
Alex Johnson alex_sm 2023-06-16:Abstain:Issue 7; 2023-05-20:Agree:Issue 8; 2023-04-30:Disagree:Issue 9 1 1 1 Yes

Let me know your thoughts on the structure @derberg thanks :)

derberg commented 3 months ago

you did really great suggestions that let me craft below summary

wdyt?

AayushSaini101 commented 3 months ago

just comment about hasVotedInLast3Months that we need to take into account that there might be a period of time that in 3 months there will be no subject to vote on (rare, but during July-August-September quite possible) - we need to figure how to take it into account, cause basically it means all members will be visible as not voting 😄

Answer:

We can introduce another column that is lastClosedVoteTime for every member that track the voting history status of every member, i have already done in the current PR

For the case of irregular vote: we can maintain a global value for last voting time, and from this we can verify whether we need to update the hasVotedInLast3Months or not:

Updated Structure:

GitHubUsername LastVotingTime IsVotedLastIn3Months AgreeCount DisagreeCount AbstainCount LatestVoteDate Summary
user1 2023-03-15 Yes 10 2 1 2024-01-10 {"title": "IssueNumber", "reaction": "👍 (Agree)"}, {"title": "Issuenumber", "reaction": "👎 (Disagree)"}
user2 2023-06-10 No 8 5 2 2024-02-15 {"title": "ssuenumber", "reaction": "👍 (Agree)"}, {"title": "ssuenumber", "reaction": "👍 (Agree)"}

This will be the format we can store in json,

derberg commented 3 months ago

hasVotedInLast3Months

maybe nothing special is needed 🤔 cause in the end, counting workflow is set to react only on closed vote. This means calculation of last 3 months will happen only based on last voting. So really even if there will be no voting for 3 months - nothing bad will happen 🤔

derberg commented 2 months ago

all is covered here

once https://github.com/asyncapi/community/issues/1313 vote is closed we will see this new workflow in action. From the initial data we have, I'm confident all will work fine

aeworxet commented 2 months ago

Bounty Issue Is Completed 🎉

@AayushSaini101, please go to the AsyncAPI page on Open Collective and submit an invoice for USD 400.00 with the expense title Bounty community#1268, tag bounty, and full URL of this Bounty Issue in the description.