rfc:github_issues

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
rfc:github_issues [2021/11/02 09:46] nikicrfc:github_issues [2021/11/02 14:10] nikic
Line 12: Line 12:
 ===== Motivation ===== ===== Motivation =====
  
-The primary motivation for this change is that bugs.php.net has many known deficiencies and is not actively maintained.+The primary motivation for this change is that bugs.php.net has many known deficiencies and is not actively maintained. Some of the main problems are:
  
-TODO+  * **Maintenance**: bugs.php.net is essentially unmaintained. Making it fit for continued usage would require implementation effort beyond simple cosmetic changes. It must be emphasized that this is not just a matter of finding a motivated person to implement changes, it also requires someone to review them and to perform any necessary infrastructure updates, such as database migrations. There is generally very little interest in these things and it can take a lot of time to get things done. 
 +  * **Stability**: For years now, bugs.php.net regularly hangs or slows down to unusable levels. We "fix" this with a server restart, but nobody has found the motivation to find out what the actual problem is. 
 +  * **Spam**: We receive a lot of link spam. While comments are nominally captcha-protected, the captcha is very weak. On normal days, it is necessary to delete a handful of spam comments. On bad days, a mass deletion in the database is necessary. A better captcha and/or a ban on links to domains other than php.net, github.com and 3v4l.org might address this. 
 +  * **Hostile comments**: Because there is no account requirement, bugs.php.net has effectively no moderation capabilities and suffers from hostile user comments. A particularly well-known quantity is Reindl Harald, who regularly insults bug reporters in comments, damaging the reputation of the PHP project. 
 +  * **Impersonation**: Apart from ''@php.net'' accounts, bug reporters and comments can specify an arbitrary email, ownership of which is not validated. This makes it trivial to impersonate another person. This capability is also used for hostile comments. On a related note, reporters are sometimes unhappy with the fact that bugs.php.net displays their email address in plain text. 
 +  * **Accessibility**: Nowadays, most open-source projects manage issues on GitHub and users will look there first. Submitting an issue on a home-grown bugtracker comes with additional friction to learn a new bug reporting workflow and its associated quirks (and bugs.php.net is on the quirkier side there). 
 +  * **Management of reported bugs**: For bug reporters without a php.net account, managing their reported bugs is very inconvenient. Editing a bug requires a per-bug password, and you can't easily track all the bugs you have reported. 
 +  * **Mentions**: It's not possible to mention another php.net team member on bugs.php.net. The only way to ask someones opinion on an issue is to assign it to them, and there can only be one assignee. 
 +  * **Moving issues**: We are currently in an in-between state where implementation bugs are on bugs.php.net, while documentation bugs are on GitHub. It is common that an issue originally reported as an implementation bug turns out to be a documentation problem. We currently cannot easily transfer such an issue to GitHub. It is valuable to have the issues for all sub-projects on one platform to allow this kind of seamless movement. (Of course, this problem did not exist before documentation started using GitHub issues.) 
 +  * **References**: We already host our source code repositories on GitHub and make heavy use of pull requests there. Hosting issues on the same platform makes it easier to cross-reference issues, pull requests and commits. While commits closing a bug are automatically linked from bugs.php.net other references (e.g. from pull requests) are not visible on bugs.php.net unless they are manually added. 
 +  * **Labels**: Bugs only support specifying a single package, there is no capability to apply multiple labels. For example, we have no way to mark beginner-friendly issues (the "probably easy" label on GitHub). 
 +  * **Check boxes**: bugs.php.net does not support check boxes, or edits to the bug description. This makes it impossible to use bugs.php.net for tracking issues, which consist of multiple sub-tasks.
  
 ===== Proposal ===== ===== Proposal =====
Line 204: Line 215:
   * Reporting non-security issues against PHP.   * Reporting non-security issues against PHP.
  
-Some effort will still have to go into maintaining bugs.php.net. In particularas comment spam is a major problem for us and comments will continue to be supported, we will have to add stronger spam protection thereAs this will be legacy system we can degrade user experience though, e.gby using reCaptcha.+===== Alternatives ===== 
 + 
 +The switch to GitHub issues has two primary disadvantages: 
 + 
 +  * It binds the PHP project more firmly to the GitHub platform. We already host our repositories there and make use of pull request, but this would take additional functionality "out of our control". Of course, that is also kind of the point: We are bad at maintaining critical infrastructure ourselves and would rather someone else took care of it. Someone for whom it is part of their core business, rather than just a necessary annoyance. 
 +  * GitHub issues is not a particularly sophisticated issue tracker solution. While it offers many useful features that bugs.php.net does not, it is also less customizableFor examplethere is no support for custom metadata on issues beyond standard features like labels or milestones (though there probably [[https://github.com/github/roadmap/issues/277|will be]] in the future). 
 + 
 +The three possibilities going forward are essentially: 
 + 
 +  * Keep using bugs.php.netbut invest significant effort into improving it. I expect that at a minimum we would have to require account registration to use bugs.php.net (for reporting or commenting). 
 +  * Migrate to GitHub issues as proposed by this RFC. 
 +  * Migrate to a different issue tracking solution. 
 + 
 +Of course, the suggestion to use GitHub issues in particular is not an accident: 
 + 
 +  * We already host repositories there and use pull requests (and use it for documentation issues). Having everything on platform allows everything to integrate smoothly. Cross-references work everywhere out of the box. Other platforms will likely not be able to offer the same level of integration. 
 +  * GitHub has become the industry standard for open-source projects. Anyone with involvement in open-source is very likely to have an account there and be familiar with the main workflows. Using a different platform will likely require people to create a new accountlearn the quirks of yet another issue tracker and have one more place to check for progress on reported issues. 
 + 
 +The requirement for an alternative would be that a) it is hosted (i.e. the PHP project does not need to maintain infrastructure for it), b) has good GitHub integration and c) is "sufficiently better" than GitHub issues to make it worth using a separate productAs PHP does not have a particularly sophisticated issue tracking workflow, I'm doubtful that the tradeoff will be worthwhile. The biggest "advantage" of using a separate product is likely that it will make reporting bugs significantly harder for the casual user, which might make low-quality submissions less likely.
rfc/github_issues.txt · Last modified: 2021/12/04 14:22 by nikic