Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Report on each completed voting the TSC participation #1268

Closed
derberg opened this issue Jun 12, 2024 · 25 comments · Fixed by #1278
Closed

Report on each completed voting the TSC participation #1268

derberg opened this issue Jun 12, 2024 · 25 comments · Fixed by #1278
Assignees
Labels
bounty enhancement New feature or request

Comments

@derberg
Copy link
Member

derberg commented Jun 12, 2024

Before we start notifying people with automated way like #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:

  • workflow that will be triggered whenever issue or PR with gitvote label gets a comment from git-vote saying Vote closed
  • it should gather info about: if vote passed or not, the participation, who voted and who not
  • information should be persisted somewhere for anyone to see in a transparent way, probably markdown document in this repo? as a markdown/html table? with list of tsc members and voting topics, and decision taken and date when it was
  • highlight name that did not vote in any topic for last 3 months

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

@derberg derberg added the enhancement New feature or request label Jun 12, 2024
@AayushSaini101
Copy link
Contributor

AayushSaini101 commented Jun 13, 2024

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

@asyncapi-bot-eve
Copy link
Contributor

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

@derberg
Copy link
Member Author

derberg commented Jun 13, 2024

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

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

@AayushSaini101
Copy link
Contributor

@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
Copy link
Member Author

derberg commented Jun 13, 2024

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
Copy link
Contributor

AayushSaini101 commented Jun 13, 2024

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
Copy link
Member Author

derberg commented Jun 13, 2024

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
Copy link
Contributor

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
Copy link
Contributor

AayushSaini101 commented Jun 15, 2024

@derberg Here is the the solution step

  {
    "name": "xyz",
    "isVotedInLast3Months": "Member doesn't give vote to any voting process",
    "lastClosedVoteTime": "2024-06-15T05:08:46.147Z"
  },
  • IsVotedInLast3Months: If he/she doesn't vote the message will be above shown, and the lastclosedVotetime will be when first vote process is triggered.

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
Copy link
Contributor

AayushSaini101 commented Jun 16, 2024

The POC for the solution:

@asyncapi-bot-eve
Copy link
Contributor

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

@AayushSaini101
Copy link
Contributor

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

if: contains(github.event.comment.body, '/vote') || contains(github.event.comment.body, '/cancel-vote')

@asyncapi-bot-eve
Copy link
Contributor

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

@aeworxet
Copy link
Contributor

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
Copy link
Contributor

@derberg can you please assign me the issue ?

@derberg
Copy link
Member Author

derberg commented Jun 17, 2024

@AayushSaini101 done

@derberg
Copy link
Member Author

derberg commented Jun 17, 2024

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
Copy link
Contributor

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
Copy link
Member Author

derberg commented Jun 18, 2024

@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

@AayushSaini101
Copy link
Contributor

@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
Copy link
Member Author

derberg commented Jun 19, 2024

you did really great suggestions that let me craft below summary

  • GitHub username best and most universal identifier that is enough on the list, but should be a hyperlink pointing to GH profile page
  • also would be great to see kind of aggregate like TotalVotesCount that shows in how many votes person participated
  • AgreeCount, DisagreeCount, AbstainCount, hasVotedInLast3Months, lastClosedVoteParticipationTime
  • 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 😄
  • above columns are the last on the list, like a summary, before them we should have columns, each for each vote, where column header is the title of the vote, that is hyperlink pointing to PR/Issue. And in particular cell, we see one of 3 possible values, which are emojis, 👍🏼 , 👎🏼 , 👀 - best if with tooltip on hover that says, Agree, Disagree and Abstain

wdyt?

@AayushSaini101
Copy link
Contributor

AayushSaini101 commented Jun 19, 2024

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
Copy link
Member Author

derberg commented Jun 19, 2024

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
Copy link
Member Author

derberg commented Jul 23, 2024

all is covered here

once #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
Copy link
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bounty enhancement New feature or request
Projects
Status: Completed
Development

Successfully merging a pull request may close this issue.

5 participants