website
website copied to clipboard
GitHub Actions: Notify developers if they are working on issues of the same complexity
Overview
As a developer for the website team, you are expected to follow the chain of complexity when you assign yourself an issue; that is, two good first issues, one small issue, one medium issue, and at least one large issue, although we make an exception to this progression for developers who apply both role: front end
and role: back end/devOps
labels on their prework issues. We want to create a GitHub Action that notifies a developer when they have assigned themselves to too many issues of a specified complexity.
Action Items
Currently, when a developer assigns themselves an issue, a GitHub Action runs that posts a comment on the issue:
Hi @developer, thank you for taking up this issue! Hfla appreciates you :)
Do let fellow developers know about your:- i. Availability: (When are you available to work on the issue/answer questions other programmers might have about your issue?) ii. ETA: (When do you expect this issue to be completed?)
You're awesome!
P.S. - You may not take up another issue until this issue gets merged (or closed). Thanks again :)
- [x] Become familiar with HfLA's GitHub Actions
- [x] If you have not already done so, create a copy of the Project Board into your own repo (Tip 6: Creating your own Project Board)
- [x] Be sure to read up on using Personal Access Tokens to test the project board in your own repo (Tip 7: Using Personal Access Tokens to test in your own Project Board)
- [x] Navigate to the add-preliminary-comment collection
- [x] Add a new .md file named
developer-complexity-reminder.md
- [x] Copy the following text into the .md file
<!-- Template for a notification to the assignee that they've already worked on issue(s) of a certain complexity and they will be unassigned -->
Hello @${issueAssignee}, we appreciate you taking on issue ${issueNum}, however it looks like you've already worked on enough issues of this complexity. Try checking out some of the issues of the next complexity from the Prioritized Backlog :)
We are going to unassign you from this issue so you can take on another issue.
Hfla appreciates you! :)
P.S. There is one exception to this rule/automation, and that is if you were away for a long time, and need to do the issue ladder again. If that is the case, please post the following note on the issue and on your prework. A Merge team member will reassign you to this issue, and will help you get assigned to subsequent issues up to medium size.
```
I am returning after a significant time away, and need to do the issue ladder again. Please assign me back to this issue.
```
- [x] Create the script that checks the developer's assigned issues in preliminary-update-comment.js
- [x] Your script should check the following:
- [x] If the dev has assigned themself to a third
good first issue
- [x] If the dev has assigned themself to a second
Complexity: Small
issue, except in the case where:- [x] the developer's prework issue contains both
role: front end
androle: back end/devOps
- [x] AND the first
Complexity: Small
issue was either front end or backend/devOps (but not both) - [x] AND the second
Complexity: Small
issue is either has both labels or the label that was not on the firstComplexity: Small
issue
- [x] the developer's prework issue contains both
- [x] If the dev has assigned themself to a second
Complexity: Medium
issue, except in the case where:- [x] the developer's prework issue contains both
role: front end
androle: back end/devOps
- [x] AND the first
Complexity: Medium
issue was either front end or backend/devOps (but not both) - [x] AND the second
Complexity: Medium
issue is either has both labels or the label that was not on the firstComplexity: Medium
issue
- [x] the developer's prework issue contains both
- [x] If any of the above checks have a true outcome, the template contained in
developer-complexity-reminder.md
should be used to post a comment in the issue, instead of the comment that asks the dev for their availabity - [x] The script should also perform the following:
- [x] Post the same comment in the developer's prework issue
- [x] If the developer's prework issue is closed, reopen it
- [x] Unassign the dev from the issue
- [x] Add a
ready for prioritization
label - [x] Move the issue to the New Issue Approval column
- [x] If the dev has assigned themself to a third
- [x] Testing the new GHA in a copy of the Project Board in your repository
- [ ] Demonstrate your new GHA to the merge team
Resources/Instructions
- ER associated with this issue: https://github.com/hackforla/website/issues/4193
- Never done GitHub actions? Start here!
- GitHub Complex Workflows doc
- GitHub Actions Workflow Directory
- Events that trigger workflows
- Workflow syntax for GitHub Actions
- actions/github-script
- GitHub RESTAPI
- HfLA GitHub Action workflows
- HfLA GitHub Action JavaScript files
- HfLA's GitHub Actions
@hackforla/website-merge Before I release this, we should discuss this new finding... some people are doing two medium issues because they want to get both a front and a backend issue and there might be missing an issue that is both, so they do one of each.
@hackforla/website-merge So, any thoughts about how to accommodate people who want to work on both front and back end medium issues if there is no one issue that is both front and back end?
We will not make it mandatory, but we will allow people who identify as front and back to do 2 of any size issue if it fits their need for experience in both front and back.
Example 1 I add front and back to my prework I do 2 good first issues (front and back) I do one small front end issue I do one small back end issue I do one medium size front end issue I do one large size back end issue
Example 2 I add front and back to my prework I do 2 good first issues (front and back) I do one small front end issue I do one small back end issue I do one medium size front end issue I do one medium size back end issue I do one large size back end issue I do one large size front and back end issue
@ExperimentsInHonesty Just to clarify, we need to check the labels on the assignee's prework, and if the assignee identifies as both front and back end, then do we simply allow them to take any two small and any two medium issues, or do we need to examine the role labels of the issues to confirm they are taking one front end and one back end/devOps? And if the latter, then can they take two issues that have both the front end and back end/devOps labels?
@roslynwythe If any dev has two medium size issues, and the two issues are the following
- a medium issue with front end
- a medium issue with back end then its ok.
They cannot take on two medium size issue that have both front and back end. But if the first medium size issue is front end or backend, but not both, and then the second is both front and back, thats ok. Here are examples of allowable scenarios.
- a medium issue with front end
- a medium issue with back end or
- a medium issue with back end
- a medium issue with front end or
- a medium issue with front end
- a medium issue with front and back end or
- a medium issue with back end
- a medium issue with front and back end or
- a medium issue with front end
- then move on to a large issue or
- a medium issue with back end
- then move on to a large issue or
- a medium front and back end issue
- then move on to a large issue
if need be I can write up the same thing for small, but its the same format.
@ExperimentsInHonesty Thank you for clarifying. I amended the Overview and added some Action Items to add the logic you described.
@roslynwythe Sorry I should have brought this up yesterday. Where is the message that will be posted on the issue, so that the dev leads will know why it is back in the new issue approval column? Can you add a link to that message file to the resources section
Also.... A note should also be added to the prework issue with a link to the issue and the explanation.
@ExperimentsInHonesty The message file doesn't exist yet; the message is provided in the fourth Action Item, under the text "Copy the following text into the .md file". I modified the message to include the issue number and added an Action Item to post the identical message to the assignee's prework issue. Is that ok, or should we create a new template for the prework comment?
I think perhaps the issue should be upgraded to Complexity: Extra Large
due to the additional tasks?
Yes, upgrade issue and everything you suggested sounds perfect, update issue and hide all these comments
Hi @jphamtv, thank you for taking up this issue! Hfla appreciates you :)
Do let fellow developers know about your:- i. Availability: (When are you available to work on the issue/answer questions other programmers might have about your issue?) ii. ETA: (When do you expect this issue to be completed?)
You're awesome!
P.S. - You may not take up another issue until this issue gets merged (or closed). Thanks again :)
Availability: Monday-Friday Evenings Estimated ETA: 3/6/24
- Progress: Reading docs on GitHub Actions, copied the Project Board to my forked repo
- Blockers: n/a
- Availability: Mon–Fri evenings
- ETA: 3/6/24
- Progress: Added new comment template .md file, now creating the script that checks for exceeding the complexity allowance.
- Blockers: n/a
- Availability: Mon–Fri evenings
- ETA: 3/13/24
Progress: Completed the script that checks for complexity allowance. Added the step to GHA. Next will test to make sure it triggers and runs correctly. Blockers: n/a Availability: Not available this week - will next be available 3/19/24 ETA: 3/26/24
@jphamtv
Please add update using the below template (even if you have a pull request). Afterwards, remove the 'To Update !' label and add the 'Status: Updated' label.
- Progress: "What is the current status of your project? What have you completed and what is left to do?"
- Blockers: "Difficulties or errors encountered."
- Availability: "How much time will you have this week to work on this issue?"
- ETA: "When do you expect this issue to be completed?"
- Pictures (optional): "Add any pictures of the visual changes made to the site so far."
If you need help, be sure to either: 1) place your issue in the Questions/In Review
column of the Project Board and ask for help at your next meeting, 2) put a "Status: Help Wanted" label on your issue and pull request, or 3) put up a request for assistance on the #hfla-site channel. Please note that including your questions in the issue comments- along with screenshots, if applicable- will help us to help you. Here and here are examples of well-formed questions.
You are receiving this comment because your last comment was before Tuesday, March 19, 2024 at 12:06 AM PST.
Progress: Running tests and refining to make sure GHA and script run correctly. Blockers: n/a Availability: Weekday evenings ETA: 3/29/24
Progress: Complete Blockers: Need to meet with dev lead team to discuss how to proceed with #6555 Availability: Weekdays evenings ETA: TBD after team discussion
@jphamtv
Please add update using the below template (even if you have a pull request). Afterwards, remove the 'To Update !' label and add the 'Status: Updated' label.
- Progress: "What is the current status of your project? What have you completed and what is left to do?"
- Blockers: "Difficulties or errors encountered."
- Availability: "How much time will you have this week to work on this issue?"
- ETA: "When do you expect this issue to be completed?"
- Pictures (optional): "Add any pictures of the visual changes made to the site so far."
If you need help, be sure to either: 1) place your issue in the Questions/In Review
column of the Project Board and ask for help at your next meeting, 2) put a "Status: Help Wanted" label on your issue and pull request, or 3) put up a request for assistance on the #hfla-site channel. Please note that including your questions in the issue comments- along with screenshots, if applicable- will help us to help you. Here and here are examples of well-formed questions.
You are receiving this comment because your last comment was before Tuesday, April 9, 2024 at 12:06 AM PST.
@jphamtv
Please add update using the below template (even if you have a pull request). Afterwards, remove the '2 weeks inactive' label and add the 'Status: Updated' label.
- Progress: "What is the current status of your project? What have you completed and what is left to do?"
- Blockers: "Difficulties or errors encountered."
- Availability: "How much time will you have this week to work on this issue?"
- ETA: "When do you expect this issue to be completed?"
- Pictures (optional): "Add any pictures of the visual changes made to the site so far."
If you need help, be sure to either: 1) place your issue in the Questions/In Review
column of the Project Board and ask for help at your next meeting, 2) put a "Status: Help Wanted" label on your issue and pull request, or 3) put up a request for assistance on the #hfla-site channel. Please note that including your questions in the issue comments- along with screenshots, if applicable- will help us to help you. Here and here are examples of well-formed questions.
You are receiving this comment because your last comment was before Tuesday, April 16, 2024 at 12:06 AM PST.
Progress: Complete Blockers: Waiting for #6555 to be completed Availability: Monday & Thursday ETA: n/a
@jphamtv
Please add update using the below template (even if you have a pull request). Afterwards, remove the 'To Update !' label and add the 'Status: Updated' label.
- Progress: "What is the current status of your project? What have you completed and what is left to do?"
- Blockers: "Difficulties or errors encountered."
- Availability: "How much time will you have this week to work on this issue?"
- ETA: "When do you expect this issue to be completed?"
- Pictures (optional): "Add any pictures of the visual changes made to the site so far."
If you need help, be sure to either: 1) place your issue in the Questions/In Review
column of the Project Board and ask for help at your next meeting, 2) put a "Status: Help Wanted" label on your issue and pull request, or 3) put up a request for assistance on the #hfla-site channel. Please note that including your questions in the issue comments- along with screenshots, if applicable- will help us to help you. Here and here are examples of well-formed questions.
You are receiving this comment because your last comment was before Tuesday, April 30, 2024 at 12:06 AM PST.
Progress: Need to update and retest now that dependency (#6555) is completed Blockers: None Availability: Thursdays ETA: 4/12/24