sartography / spiff-arena

SpiffWorkflow is a software development platform for building, running, and monitoring executable diagrams
https://www.spiffworkflow.org/
GNU Lesser General Public License v2.1
51 stars 37 forks source link

Spiff bounties process - Submission #979

Open harmeet-status opened 5 months ago

harmeet-status commented 5 months ago

We are wanting to do bounties for SpiffWorkflow, using SpiffWorkflow.

Process model: https://cawemo.com/share/29b8873a-8332-42ca-bd75-864bddea8bc4

Process model details: https://www.notion.so/Spiff-Bounties-22a7e2e23ee843c7bffd261ab15d1c9b

harmeet-status commented 5 months ago

We may want to use the onboarding process that @MarD0607 is developing, piggyback off this. TBD.

calexh-sar commented 4 months ago

@harmeet-status does this process model fall under one of the current Status process groups? If so, which one? If not, where should it be placed?

harmeet-status commented 4 months ago

Lets do it like this Image

calexh-sar commented 4 months ago

@harmeet-status is this what you had in mind:

Image

calexh-sar commented 3 months ago

@harmeet-status couple of questions:

  1. How do we validate that "Payment address is an ETH wallet"?
  2. Which bounty hunter fields are considered PII?
harmeet-status commented 3 months ago

@harmeet-status couple of questions:

  1. How do we validate that "Payment address is an ETH wallet"?
  2. Which bounty hunter fields are considered PII?
  1. https://docs.web3js.org/api/web3-validator/function/isAddress
  2. Physical address, Payment address, Percentage split of bounty, per user
burnettk commented 2 months ago

@harmeet-status can we handle ETH address validation by just asking the user to confirm their address or something for the time being? i don't think we are going to have access to the client-side validation library when the process is running.

harmeet-status commented 2 months ago

Yes that is a good idea to save dev time.

harmeet-status commented 1 month ago

What is remaining on this ticket?

calexh-sar commented 1 month ago

@harmeet-status remaining work ifor the submission process ncludes:

calexh-sar commented 1 month ago

@madhurrya and @dinithihj here are some notes on the flow and high level requirements for this issue. Please let me know if you have and questions or need clarification. I have a few test issues labeled as described below.

dinithihj commented 1 month ago

@calexh-sar I will add all the issues I find during testing on this ticket.

~1. When entering an incorrect GitHub handle process instance got to error status with the below error message https://dev.app.spiff.status.im/i/2127~ FIXED

image

dinithihj commented 1 month ago

~2. When entering an incorrect discord username process instance got to error status with the below error message https://dev.app.spiff.status.im/i/2130~ FIXED

image

dinithihj commented 1 month ago

~3. When entering an incorrect issue number (one that doesn't exist), the process instance was errored and the below error message is displayed. https://dev.app.spiff.status.im/i/2132~ FIXED image

dinithihj commented 1 month ago
  1. I typed in an issue number that doesn't have a label assigned. When I opened the Discord URL and entered "OPT", it displayed "Issue is not a bounty issue" as expected. But when I clicked the "Submit" button, the form only displayed the text "Thank you". I think the guest option isn't enabled for the "Resubmit Issue" user task.

image

image

dinithihj commented 1 month ago

~5. If I leave the "City/State/Country" field empty, fill in the other details, and click the submit button, there's no validation for "City/State/Country" and I get the below error. https://dev.app.spiff.status.im/i/2144~

~But if I type something in "City/State/Country," then clear it, and click the submit button, a validation message shows up as expected.~

~Video link - https://drive.google.com/file/d/1sAcXe6gmoTtm_jtPR8CDyEDFQXwQ0qTF/view?usp=sharing~ FIXED

image

dinithihj commented 1 month ago
  1. I submitted a bounty request, and support approved it. Then, I created another bounty request for the same issue number. When I opened the Discord URL and entered "OPT," it correctly displayed "You are already assigned to this issue." But when I clicked the "Submit" button, the form that appeared was not properly formatted for resubmission. https://dev.app.spiff.status.im/i/2146

image

dinithihj commented 1 month ago

~7. When the support group member opens the "Review bounty process" task, an extra full stop (.) is displayed with the text proposal.~ FIXED

image

dinithihj commented 1 month ago
  1. Suggestion. When the support group member accepts or rejects the bounty request, the requestor gets below messages on the discord.

I think it would be good to include the issue number in the message, especially in the rejection message in case the user has submitted multiple requests. And it should be in singular form - "issue" instead of "issues"

calexh-sar commented 1 month ago

@dinithihj please retest #1.

dinithihj commented 1 month ago

@dinithihj please retest #1.

@calexh-sar Both 1 and 2 seem to be fixed now. I have crossed them off.

dinithihj commented 1 month ago

~9. When the user submits the request, a Thank You page is displayed. On that page, can we use "URL" in capital letters everywhere to be consistent?~ FIXED

image

dinithihj commented 1 month ago

~10. Spelling mistake - "Spacify" in bounty submission form~ FIXED

image

dinithihj commented 1 month ago
  1. When the process instance is in the "Enter OPT" stage and I open it as an admin, the process instance page shows the message "This next task is assigned to a different person or team. There is no action for you to take at this time."

But when the process instance is in the "Complete Bounty Request" stage and I open it as an admin, the page shows the message "This next task is assigned to user(s): , . There is no action for you to take at this time."

The assignee should either be shown here, or it should display, "This next task is assigned to a different person or team." The current message is confusing. https://dev.app.spiff.status.im/i/2437

image image

dinithihj commented 1 month ago

~12. OPT is not validated correctly. I entered 1234 as the OPT, and it let me proceed to the next step. https://dev.app.spiff.status.im/i/2451~ FIXED

calexh-sar commented 1 month ago

@dinithihj pls retest #3, #6, #7, #9, #10. and #12.

For $5, "city_state_country" is now a required field (should have been all along).

Regarding #8, @harmeet-status will be providing the text for the Discord messages.

calexh-sar commented 1 month ago

@burnettk and/or @jasquat assuming I am correct that #11 above is a backend issue, would you please review and provide your thoughts on whether this should become a new issue or left as is.

burnettk commented 1 month ago

@calexh-sar yes, thank you, a new issue would be excellent. i will file. we think we can sort this out in short order, but probably better not to entangle it with bounty any more than necessary, since it's more of a "guest task issue."

UPDATE: filed #1625

dinithihj commented 1 month ago
  1. When I enter an incorrect issue number (one that doesn't exist) and open the Discord URL and enter "OPT," it correctly displays the message "Invalid issue number." It also says "Click Submit to submit another issue or Cancel to cancel this request." However, there's no "Cancel" button displayed to cancel the request.

image

dinithihj commented 1 month ago
  1. (Similar to 4.) When I enter an incorrect issue number (one that doesn't exist) and open the Discord URL and enter "OPT," it correctly displays the message "Invalid issue number." It also says "Click Submit to submit another issue or Cancel to cancel this request." When I click the Submit button, it doesn't show me an interface to resubmit the request. It just displays "Thank You."

image

dinithihj commented 1 month ago

@dinithihj pls retest #3, #6, #7, #9, #10. and #12.

For $5, "city_state_country" is now a required field (should have been all along).

Regarding #8, @harmeet-status will be providing the text for the Discord messages.

@calexh-sar 3. 5. 7. 9. 10. 12. are fixed now. I have crossed them off

Regarding 6. - The unformatted form is not displaying now, but it should show an interface to resubmit the request, correct?

dinithihj commented 1 month ago
  1. User A creates a bounty submission for issue 111, which is labeled as a bounty-claim. Before the support user approves it, user B also creates a bounty submission for the same issue 111. Now, when the support user logs in, he sees two process instances: one from user A and one from user B. If the support user accepts both requests, issue 111 is assigned to both user A and user B. This is incorrect because the bounty-claim issue can only be assigned to one user.

There should be a validation step to check the current state of the issue during the support user review process.

UPDATE Alex's Response: Regarding https://github.com/sartography/spiff-arena/pull/15, good catch. I think that should be considered as out-of-scope for the current iteration, but could be considered as a future update. We should wait to see how @harmeet-status would like to proceed with this suggestion.

Harmeet's Response: This is edge case, so let's leave for now and fix later.

dinithihj commented 1 month ago
  1. When a user creates a bounty submission for a bounty-compete issue, shouldn't we display the information mentioned in https://www.notion.so/Spiff-Bounties-22a7e2e23ee843c7bffd261ab15d1c9b - Page 3.5 - Existing devs working on this? If this has already been discussed and agreed, please ignore this.

UPDATE Alex's Response: Regarding 16, I added a User Task to satisfy this requirement. At this point we do not have the date each assignee was added readily available from the GitHub API calls previously made, so I excluded that information. I will assume that @harmeet-status will let us know if this is acceptable or not.

Harmeet's Response: Let's skip the date assigned to ticket, as we dont need this info right now. It's nice to have.

dinithihj commented 1 month ago
  1. The process model document says that the bounty application should allow uploading files for the proposal, which is currently not supported. If this has already been discussed and agreed, please ignore this.

image

UPDATE Alex's Response: Regarding https://github.com/sartography/spiff-arena/pull/17, I am going to suggest to @harmeet-status that we not add the file upload option until after initial launch if the need is identified to an extent to justify the effort.

Harmeet's Response: Let's leave this out for now. Another thing I'm worried about is people uploading viruses...

calexh-sar commented 1 month ago

@dinithihj - in response to Regarding 6. - The unformatted form is not displaying now, but it should show an interface to resubmit the request, correct?: Yes, once the Signal button issue is addressed you should be able to see and test that form. It is displaying in the form builder if you want to see what should be displaying for any reason.

Regarding #15, good catch. I think that should be considered as out-of-scope for the current iteration, but could be considered as a future update. We should wait to see how @harmeet-status would like to proceed with this suggestion.

Regarding #16, I added a User Task to satisfy this requirement. At this point we do not have the date each assignee was added readily available from the GitHub API calls previously made, so I excluded that information. I will assume that @harmeet-status will let us know if this is acceptable or not.

Regarding #17, I am going to suggest to @harmeet-status that we not add the file upload option until after initial launch if the need is identified to an extent to justify the effort.

harmeet-status commented 3 weeks ago

Regarding https://github.com/sartography/spiff-arena/pull/15, good catch. I think that should be considered as out-of-scope for the current iteration, but could be considered as a future update. We should wait to see how @harmeet-status would like to proceed with this suggestion.

This is edge case, so let's leave for now and fix later.


Regarding https://github.com/sartography/spiff-arena/pull/16, I added a User Task to satisfy this requirement. At this point we do not have the date each assignee was added readily available from the GitHub API calls previously made, so I excluded that information. I will assume that @harmeet-status will let us know if this is acceptable or not.

Let's skip the date assigned to ticket, as we dont need this info right now. It's nice to have.


Regarding https://github.com/sartography/spiff-arena/pull/17, I am going to suggest to @harmeet-status that we not add the file upload option until after initial launch if the need is identified to an extent to justify the effort.

Curious to know how much extra effort is this @calexh-sar?

harmeet-status commented 3 weeks ago

Changes I have made to the process in dev.app

  1. enter-otp-schema.json - updated new text
  2. bounty-request-schema.json - changed order of fields, added proposal as required
harmeet-status commented 3 weeks ago

Bugs found:

  1. Duplicate help text Image

  2. Bounty 751 is not assigned to anyone, however it still show me this screen once I request assignment

    Screenshot 2024-06-13 at 8 43 00 PM
calexh-sar commented 3 weeks ago

@dinithihj I am seeing the duplicate help text @harmeet-status identified above in both FireFox and Chrome, but not in the Form Builder:

Image

Would you please see if you can replicate this in a test process and if so, write an issue so we can address it.

calexh-sar commented 3 weeks ago

@harmeet-status regarding the effort required for #17, I would estimate 0.25-0.5 DD. The other reason I suggest that we not add this at this time is due to the flux on how we are handling file uploads.

calexh-sar commented 3 weeks ago

@dinithihj would you please create a test process which has a Guest Human Task and confirm if the use of Signal buttons is not working in MUI. If so, please write a new issue for this.

harmeet-status commented 3 weeks ago

@harmeet-status regarding the effort required for #17, I would estimate 0.25-0.5 DD. The other reason I suggest that we not add this at this time is due to the flux on how we are handling file uploads.

Let's leave this out for now. Another thing I'm worried about is people uploading viruses...

harmeet-status commented 3 weeks ago

@calexh-sar I couldn't find where to change the confirmation page text on the guest task, can you pls do this.

ORIGINAL Title: Thanks Description: Please check Discord for further instructions. You should receive two messages, one with a Guest URL and another with a One-Time-Password.

If you did not receive a Guest URL and One-Time-Password, your GitHub handle is either not valid or you have not requested to be a Collaborator Contributor on the repository. Or if you did not receive any Discord messages, your Discord username is invalid. In both of these cases, your request was cancelled and you will need to resubmit. Please make sure your GitHub credentials and Discord username are correct.

NEW Title: Please check Discord for further instructions Description: You should have received 2 messages from SpiffWorkflow in Discord:

  1. Link to verify you own this Discord account
  2. One-time password

Please follow the instructions sent in Discord.

If you did not receive a URL and One-time password, your GitHub handle is either not valid or you have not requested to be a Collaborator Contributor on the repository. Or if you did not receive any Discord messages, your Discord username is invalid.

In both of these cases, your request was cancelled and you will need to resubmit. Please make sure your GitHub credentials and Discord username are correct.

harmeet-status commented 3 weeks ago

@calexh-sar how can we handle these edge case scenarios?

If you did not receive a Guest URL and One-Time-Password, your GitHub handle is either not valid or you have not requested to be a Collaborator Contributor on the repository.

Or if you did not receive any Discord messages, your Discord username is invalid.`

calexh-sar commented 3 weeks ago

@harmeet-status I updated the confirmation message. This is done in the XML for the process at this time, but should be able to be done at the process model diagram level once this issue is implemented.

calexh-sar commented 3 weeks ago

@calexh-sar how can we handle these edge case scenarios?

If you did not receive a Guest URL and One-Time-Password, your GitHub handle is either not valid or you have not requested to be a Collaborator Contributor on the repository.

Or if you did not receive any Discord messages, your Discord username is invalid.`

@harmeet-status the initial instructions presented should be clear that the bounty hunter needs to be a collaborator in the repository the issue they are requesting resides. As for incorrect GitHub handle and/or Discord username, they just need to provide the correct one.

dinithihj commented 3 weeks ago

@dinithihj I am seeing the duplicate help text @harmeet-status identified above in both FireFox and Chrome, but not in the Form Builder:

Image

Would you please see if you can replicate this in a test process and if so, write an issue so we can address it.

@calexh-sar Created a ticket - https://github.com/sartography/spiff-arena/issues/1726

dinithihj commented 3 weeks ago

@dinithihj would you please create a test process which has a Guest Human Task and confirm if the use of Signal buttons is not working in MUI. If so, please write a new issue for this.

@calexh-sar Created a new ticket - https://github.com/sartography/spiff-arena/issues/1727

harmeet-status commented 3 weeks ago

@calexh-sar how can we handle these edge case scenarios?

If you did not receive a Guest URL and One-Time-Password, your GitHub handle is either not valid or you have not requested to be a Collaborator Contributor on the repository.

Or if you did not receive any Discord messages, your Discord username is invalid.`

@harmeet-status the initial instructions presented should be clear that the bounty hunter needs to be a collaborator in the repository the issue they are requesting resides. As for incorrect GitHub handle and/or Discord username, they just need to provide the correct one.

Is there way to check if the user is a current collaborator through the API?

madhurrya commented 3 weeks ago
  1. When the user is not in the repo, it sends this message to Discord ' Not valid assignee'. Might be better to explain this further

  2. For this, it might be better to explain how he can request to add him to the repo. image

  3. Spelling image

  4. Grammar image

  5. Is it better to show these 2 in one line? image