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

[Feature Request]: Drop inactive contributors from issues that they aren't working on. #21294

Open
seanlip opened this issue Nov 19, 2024 · 26 comments · May be fixed by #21568
Open

[Feature Request]: Drop inactive contributors from issues that they aren't working on. #21294

seanlip opened this issue Nov 19, 2024 · 26 comments · May be fixed by #21568
Assignees
Labels
enhancement Label to indicate an issue is a feature/improvement Impact: High Blocks or significantly slows down a core workflow. Work: Medium The means to find the solution is clear, but it isn't at good-first-issue level yet.

Comments

@seanlip
Copy link
Member

seanlip commented Nov 19, 2024

Is your feature request related to a problem? Please describe.

We have run into some cases where a new contributor gets assigned to an issue but then disappears, e.g. #20564 (comment).

In such cases, we should automatically deassign the contributor so that the issue is available for others to take up.

Describe the solution (or solutions) you'd like

We should have a workflow (GitHub Actions or Oppiabot) that runs every week and does the following:

  • If an issue has been assigned to a new contributor (non-Oppia-member/collaborator) for a week, but that contributor has no PR open for that issue, post a comment to the thread asking if they are still working on the issue and to link to their PR, if any, otherwise they will be deassigned.
  • If an issue has been assigned to a new contributor (non-Oppia-member/collaborator) for 2 weeks, but that contributor has no PR open for that issue and has not responded to the previous message, deassign them from the issue and post a comment saying that.

Note that we exclude Oppia members and collaborators from this check, because typically they may take on harder issues which require more than one week between milestones. On the other hand, new contributors typically take starter issues which are only assigned to them after they have proposed a working solution.

Describe alternatives you've considered and rejected

No response

Additional context

No response

@Ashu463
Copy link

Ashu463 commented Nov 20, 2024

Hey @seanlip I got a solution in my mind with oppia bot method

  1. To make a script which handles all that logic of checking activity of assignees over an issue.
  2. To make a gh workflow which runs every midnight with the script which will for sure remove those guys who hadn't submit any PR or didn't informed about the issue.

@seanlip
Copy link
Member Author

seanlip commented Nov 21, 2024

Thanks @Ashu463. Same comment as for other issues, we need to see proof of this working before we can assign you to the issue.

@Ashu463
Copy link

Ashu463 commented Nov 21, 2024

@seanlip Sure raising it's full PR soon. Actually while opening last PR maintainer said to open PR after it gets assigned so did nothing with this issue other than proposing solution.

@seanlip
Copy link
Member Author

seanlip commented Nov 21, 2024

Just to be clear, I'm not asking you to make a PR, but to show proof that your solution is working. You can do that on your own test repository, for example.

See oppia/stale-review-request-notifier#4 (comment) for an example of how to do this.

@Ashu463
Copy link

Ashu463 commented Nov 21, 2024

Ahh got it, will share you soon.

@Ashu463
Copy link

Ashu463 commented Nov 22, 2024

Hey @seanlip I am done with my work but needed to add some dependencies over requirements.txt file which I'm not allowed for.
Progress is I wrote workflow which will hit script inactive_issue_checker along with github credentials as you can see in image that with wrong credential it is throwing 401, but I am sure it will run fine with right credentials.
image

@seanlip
Copy link
Member Author

seanlip commented Nov 22, 2024

@Ashu463 Try to do it on a test repository to demonstrate the behaviour. I think @SD-13 might be able to help you if you have questions about how to do that.

@Ashu463
Copy link

Ashu463 commented Nov 22, 2024

Yeah I do need help to test it over demo repo, would you pls help @SD-13 ?

@SD-13
Copy link
Collaborator

SD-13 commented Nov 22, 2024

@Ashu463 I need more context about your changes, do you have them locally? If yes, can you push them to remote and share?

@Ashu463
Copy link

Ashu463 commented Nov 23, 2024

Hey @SD-13 I do have them all changes locally but can't push it due to not having access to change requirements.txt althrough I can push without it so if u want then pls let me know.
PS : Changes I made is => added a new gh workflow which will run every midnight, and that workflow will hit a python script which contains all the logic of issue, but the problem is I need PyGIthub as my dependency which I need to add in requirements file and rest is u know.

@Ashu463
Copy link

Ashu463 commented Nov 23, 2024

@seanlip isn't there any oppia's slack or discord or community channel where I can ask you about issues in private msgs ?

@SD-13
Copy link
Collaborator

SD-13 commented Nov 23, 2024

@Ashu463 My understanding is your changes doesn't have any dependency on the rest of the repo, so I think you can -

  • Create a new repo and put your changes there
  • Create a requirements.in file and add your dependencies
  • Generate requirements.txt
  • Add installing dependencies step in workflow
  • Create a GitHub token and add it in actions secrets

Let me know if you have any questions. Thanks!

@Ashu463
Copy link

Ashu463 commented Nov 23, 2024

Hey @SD-13 thanks for your help, here is how I did on my own fork and chosen another method which do not require to update requirements file.
Here is the explainantion of the video :

  1. first of all I opened a couple of issues over my own oppia fork
  2. then I assign them to myself
  3. and then I ran the script from my own local computer with right credentials so that it can perfrom desired action
  4. finally issues got de assigned from assignee.
Screencast.from.2024-11-23.17-57-21.mp4

@Ashu463
Copy link

Ashu463 commented Nov 24, 2024

@seanlip please have a look over solution video, I hope it solves issue and if anything else needed then pls let me know.

@SD-13
Copy link
Collaborator

SD-13 commented Nov 24, 2024

@Ashu463 Can't see your video.
image

@Ashu463
Copy link

Ashu463 commented Nov 24, 2024

@SD-13 Idk why this error occurs but here is the link of video uploaded online, for convenience I'm sharing link of that opened issue as well here it is

@seanlip seanlip added Work: Medium The means to find the solution is clear, but it isn't at good-first-issue level yet. Impact: High Blocks or significantly slows down a core workflow. labels Nov 25, 2024
@seanlip
Copy link
Member Author

seanlip commented Nov 25, 2024

@seanlip isn't there any oppia's slack or discord or community channel where I can ask you about issues in private msgs ?

Hi @Ashu463, we use GitHub Discussions for general questions. I'm afraid we generally don't do private messages -- in general we try to avoid those and have discussions in the open instead, where possible. This makes it easier for other folks on the team to help as well.

Re your video, I think you have the basic behaviour right, but I have a few questions (please take a look at the original issue description, too). Could you please explain your approach and/or provide demos for them?

  • How do you plan to check whether the assignee is an Oppia collaborator/member?
  • How do you plan to check whether the assignee has a PR open for the issue or not?
  • How do you plan to check whether the assignee has responded to the earlier comment?

@Ashu463
Copy link

Ashu463 commented Nov 26, 2024

Hi @seanlip I would like to inform you that my end semester exams has started so my contributions could be less, but as far as your questions are concerned here are the answers to them :

  1. I hadn't done yet but could be managed with a single if condition which I'll do for sure.
  2. The script has a part where it checks whether any PR is open or not, and if yes then it will skip it, whose demo I'll give you soon.
  3. It'll be managed through events array i.e. let say assignee commented like I'm doing then it'll be counted as an activity for which he will remain assigned to the issues.
    Will share you some demos soon!

@seanlip
Copy link
Member Author

seanlip commented Nov 27, 2024

@Ashu463 OK, thanks for the update. Just a note -- when you share the demos, please also explain the logic behind how you plan to tackle questions 1 and 2 as well (what API calls you use, how you will determine whether the assignee has a PR that actually corresponds to the issue). Thanks!

@Ashu463
Copy link

Ashu463 commented Nov 29, 2024

Hey @seanlip here is the detailed explanation along with demo videos =>

  1. For assignee as a collaborator : First I fetch all collaborators and then I put an if condition to find whether the assignee is collaborator or not and if yes, then please skip that issue. Here is the demo video link
  2. Now as for checking PR is open or not : So first of all I check whether any PR is open or not in that issue or not, moreover I check in body of PR and search for issue number available in it, and if issue number do exist then it will be known that assignee had opened a PR regarding that issue not any other issue which he/she was assigned for. Here is the demo video link

@seanlip
Copy link
Member Author

seanlip commented Dec 1, 2024

@Ashu463 For (1) it looks good, but for (2) your video doesn't load and after a while redirects me to the kapwing homepage. It would be good to understand the logic here better -- can you try posting it again, please? Thanks.

@Ashu463
Copy link

Ashu463 commented Dec 1, 2024

@seanlip Idk why this happened but here is the updated link

@seanlip
Copy link
Member Author

seanlip commented Dec 2, 2024

@Ashu463 Thanks! I think this looks reasonable, feel free to open a PR :) We can dig into the implementation more at the review stage, but at this point I think you have a good idea of what is going on with the main parts of the issue so I'm happy to assign it to you. Thanks for taking a look!

@Ashu463
Copy link

Ashu463 commented Dec 3, 2024

Thanks for assigning @seanlip ,will raise the PR soon.

@Ashu463
Copy link

Ashu463 commented Dec 3, 2024

Hey @seanlip I had opened up the PR, now you can see the exact changes I made in solution.

@Ashu463
Copy link

Ashu463 commented Dec 4, 2024

@seanlip now I opened PR with proper description, so PTAL!
Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Label to indicate an issue is a feature/improvement Impact: High Blocks or significantly slows down a core workflow. Work: Medium The means to find the solution is clear, but it isn't at good-first-issue level yet.
Projects
Status: Todo
3 participants