PEP 581 Updates (#1114)

- include recent changes to bpo
- clarify the downsides of GitHub
This commit is contained in:
Mariatta 2019-06-27 14:42:57 -07:00 committed by GitHub
parent 9ce5d8f12b
commit 5f56c05e07
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 97 additions and 12 deletions

View File

@ -33,8 +33,8 @@ tracker on bugs.python.org (bpo) [#]_.
Why GitHub?
-----------
GitHub has a lot of nice features, readily available out of the box, that are
not currently available on Roundup / bpo.
GitHub has a lot of nice features, readily available out of the box. Some of
these aren't readily available on Roundup / bpo.
- APIs that can be used to build integrations and automations. There are various
existing integrations and applications available from GitHub Marketplace to
@ -59,7 +59,8 @@ not currently available on Roundup / bpo.
- Support for voting via reactions.
- Support for permalinks [#]_, allowing easy quoting and copying & pasting of
source code.
source code. It is possible to automatically embed code snippet on GitHub
by pasting a permalink.
- Core developers, volunteers, and the PSF don't have to maintain the
issue infrastructure/site, giving us more time and resources to focus on the
@ -67,12 +68,15 @@ not currently available on Roundup / bpo.
- Ability to automatically close issues when a PR has been merged [#]_.
- Note: This ability been added to bpo after PEP 581's acceptance.
- Lower barrier to contribution. With more than 28 million users, an open
source contributor is more likely to already have an account and be familiar
with GitHub's interface, making it easier to start contributing.
- Email notifications containing metadata [#]_, integrated with Gmail, allowing
systematic filtering of emails.
systematic filtering of emails. While Roundup emails contain some metadata,
they're not as extensive.
- Additional privacy, such as offering the user a choice to hide an
email address, while still allowing communication with the user
@ -86,7 +90,9 @@ Issues with Roundup / bpo
- The upstream Roundup code is in Mercurial. Without any CI available,
it puts heavy burden on the few existing maintainers in terms of
reviewing, testing, and applying patches.
reviewing, testing, and applying patches. While there is an unofficial mirror
of Roundup on GitHub [#]_, Mercurial patches are still the main way to contribute
to it.
There is an open discussion about moving the source code of bpo to
GitHub [#]_. If the source code of bpo does move to GitHub, it will
@ -101,19 +107,27 @@ Issues with Roundup / bpo
- The user interface needs an update and redesign. It will require UX/UI research
to keep it up to date with current web standards, including accessibility.
- Users email addresses are exposed. There is no option to mask it.
- Users email addresses were exposed.
- There is no REST API available. There is an open issue in Roundup for adding
REST API [#]_. Last activity was in 2016.
- Note: Exposing email address to registered and logged in users was a decision
taken when bpo instance was setup. This behavior has been recently modified
after PEP 581's acceptance.
- It sends a number of unnecessary emails and notifications, and it is
difficult, if not impossible, to configure. An example is the nosy email,
- REST API is not currently available in bpo. There was an open issue in Roundup
for adding REST API [#]_. At the time PEP 581 was proposed, the ticket received
no activity since 2016. REST API has been integrated in Roundup in February 2019,
however it is not yet integrated to bpo.
- It sends a number of unnecessary emails and notifications. An example is the nosy email,
where email notifications are sent whenever someone adds themselves as "nosy".
An issue has been filed in upstream Roundup about this since 2012 with
little traction [#]_.
little traction [#]_. While it can be configured, the request to configure it
was not addressed/ignored.
- Creating an account has been a hassle. There have been reports of people
having trouble creating accounts or logging in.
having trouble creating accounts or logging in. Some examples of open tickets:
"Commas in username causes error in nosy list" [#]_, "An error has occurred .." [#]_,
"It is not sending me the confirmation email ..." [#]_.
Why not GitLab?
@ -152,6 +166,50 @@ I believe the effort of creating and maintaining GitHub integrations and bots
is much less than the effort needed to get Roundup up to speed and then to
continue maintaining it.
Downsides of GitHub
===================
GitHub is not the perfect issue tracker. Several issues we need to be aware of:
- Fear of uncertainty and vendor lock in. GitHub is proprietary and there is
risk of vendor lock-in. However, this is an existing problem since CPython's
codebase is already on GitHub. This is also not a unique problem to CPython.
As a precautionary step, CPython's repository on GitHub has
been backed up on daily basis since June 2018. [#]_
- Bots maintenance costs money, and also takes up volunteer time. We would
be shifting maintenance burden from Roundup to the bots. At the very least,
so far we've been able to address any bugs/issues related to the bots/GitHub
APIs rather quickly, in a matter of days, instead of months or years. GitHub
APIs are extensive, and used not only by CPython's bots but also by the wider
Python community. It makes GitHub APIs more approachable compared to
the maintenance of Roundup/bpo.
- Using GitHub could possibly increase the triaging effort. This was first raised
as a Zulip topic [#]_, and also brought up during Core Python sprint in
September 2018 [#]_. A few solutions have been proposed and considered, such as
creating a special triage team [#]_. After PEP 581's acceptance, GitHub released a
new triaging role, currently in beta. The PSF has been in touch with GitHub
to have this enabled for Python organization. This is pending GitHub's review [#]_.
- Using GitHub could make it easier for people to post disruptive or spammy comments.
It is true that there has been incidents where core developers have to moderate
and lock disruptive discussions on GitHub. Thankfully, GitHub interface makes
it easy for core developers to moderate discussions. In addition, incidents
can be escalated to GitHub.
- Manually editing issue templates can be cumbersome and error-prone. However,
for most people, creating issues on GitHub will be a much better experience
than creating issue on bpo. The numerous fields and textbox to choose from
can be confusing and intimidating to a newcomer, and it is not possible
to "edit" a message. On GitHub, issue creator can preview their submission,
and edit their mistake after posting.
- bpo uses a number of fields to specify several metadata, and these might not
be easily transferable to GitHub. The intended way to handle custom metadata
on GitHub is by using labels. The details of which labels to create will be
further discussed in PEP 588.
Further questions and discussions
=================================
@ -193,6 +251,9 @@ References
.. [#] About GitHub email notifications
(https://help.github.com/articles/about-email-notifications/)
.. [#] Unofficial GitHub mirror of Roundup
(https://github.com/roundup-tracker/roundup)
.. [#] Consider whether or not to migrate bugs.python.org source code
to GitHub repo
(https://github.com/python/bugs.python.org/issues/2)
@ -204,6 +265,30 @@ References
or removing oneself from the Nosy list
(http://issues.roundup-tracker.org/issue2550742)
.. [#] Commas in username causes error
(https://github.com/python/bugs.python.org/issues/26)
.. [#] It is not sending me the confirmation email
(https://github.com/python/bugs.python.org/issues/27)
.. [#] An error has occurred
(https://github.com/python/bugs.python.org/issues/26)
.. [#] s/n ratio -- Python -- Zulip
(https://python.zulipchat.com/#narrow/stream/130206-pep581/topic/s.2Fn.20ratio)
.. [#] Backup GitHub information
(https://github.com/python/core-workflow/issues/20#issuecomment-396709762)
.. [#] PEP 581 discussion at Python Core Sprint 2018
(https://mariatta.ca/core-sprint-2018-part-2.html)
.. [#] Proposal: Create Bug Triage team on GitHub
(https://discuss.python.org/t/proposal-create-bug-triage-team-on-github/992)
.. [#] Request to enable triage role on GitHub
(https://discuss.python.org/t/proposal-create-bug-triage-team-on-github/992/16)
Copyright
=========