Would like to discuss and hopefully finalise the details of the new way that ourselves (SalesAgility) and the SuiteCRM community can assist with speeding things up with PRS and overall Github handling.
There are a few areas I would like to discuss, but essentially the main focus is how can we facility the Community to assist us with successfully merged more PRs and thus decrease that steady flow of bugs.
Now, I would like to be quite transparent in the way that we had currently handled Github issues and where you (and us) see the obvious bottlenecks.
Currently issues and Prs linking to issues are tested usually first by an internal junior member of the SalesAgility team (junior: experienced PHP developer, but low/medium knowledge of SuiteCRM architecture.). Unable to confirm the bug or fix the issue/pr is identified so with the ‘Pending Input’ label.
Once the bug has been confirmed the labelling is assigned and if the PR resolves the issue then the label ‘Assessed’ is assigned. In some cases if the Community has tested the PR (more than one community member) then the general consensus is that the bug has been resolved and the PR is assigned to ‘Assessed’ without the first line of reviewing by SA.
When Prs have been labelled with ‘Assessed’ a senior maintainer will review the code to either provide insight of a better SuiteCRM implementation or confirmation of the acceptance of the PR. Once accepted the PR is merged into hotfix.
Now, clearly the bottlenecks are:
- Junior maintainers time to confirm bugs and test PRs
- Senior maintainers to provide insight and alternative solutions.
We currently only have 27 ‘Assessed’ Prs out of the 240+ which isn’t a lot and obviously time consuming for the juniors.
As spoken previously we have increased resource to oversee Github’s testing and label handling, but there is still a backlog of issues and PRs which needs additional resource to combat. Hence why we are here!
Pre-note before the proposed solution. There are specifics that need to be finalised to fully put this in place – review of labelling (introducing new more specific labels) which we can confirm later.
Clearly the first hurdle is testing – testing if a bug exists and if a PR linked to an issue resolves it.
What we would like is to introduce a more detail bug reporting process that would allow the Community to assist with confirming that the issue is a bug or request more information from the original poster. Now I know a lot of members do this already (shout out to you all!) but there is no where that documents this process and keeps everyone on the same path. That is on our to do list to put this process in place.
A bug report would provide the Community a clear guide to how to test and progress a bug from non label to either Confirmed or Unconfirmed allowing SA to label these bugs with the ‘Low’, ‘Medium’, ‘High’ Priority states and then assign them out to available resource.
Below is the proposed Bug Reporting that any community member can participate (highly encouraged to do so )
Community Steps for reviewing a Bug Report (aka an issue raised):
- Is the Issue clear?
Has the Original Poster provided enough information to reproduce the bug? Is the bug easily reproduced?
- Update Issue
Add a comment to the issue stating the outcome of the testing – of course thank the user for raising the issue :thumbs-up: Include the line Status: and we can quickly search for Issues that have that within the comment body to label accordingly.
This is where the OP hasn’t provided enough information to replicate it, please request for the missing information.
This is where the information provided was enough to reproduce the error BUT it works for your instance (or version). Use this Status also to state if you feel this is a feature rather than a bug, and provide a short explanation of why.
This is where you were able to replicate the issue and confirm that it is in fact a bug. You can state what level of priority this bug should be and any additional information to reproduce the bug would be extremely beneficial.
Once these Statuses are put in place, bugs can then be assigned out either to the Community – stating if the fix is a ‘Quick Fix’ as suggested on Github – or SalesAgility.
Note – In the future it would be ideal to have a bot that automatically updates labels by the status similar to Jekylls project, but we can search at the moment to tackle these requests.
(to be continued)