[go: up one dir, main page]

|
|
Log in / Subscribe / Register

Using GitHub Issues for Python

By Jake Edge
May 22, 2018

Python Language Summit

In a 2018 Python Language Summit talk that was initially billed as "Mariatta's Topic of Mystery", Mariatta Wijaya described her reasoning for advocating moving Python away from its current bug tracker to GitHub Issues. She wanted to surprise her co-attendees with the talk topic at least partly because it is somewhat controversial. But it would complete Python's journey to GitHub that started a ways back.

Other Python projects are using GitHub Issues, she said, as are many popular open-source projects. Many people already have a GitHub account. When they run into a Python problem, they can immediately file a GitHub Issue, but might have to create a bugs.python.org (b.p.o) account before filing one there.

[Mariatta Wijaya]

There is also the problem that b.p.o is maintained by just two people and its code is still in Mercurial, while most other Python projects have moved to Git (and to GitHub). There are lots of ideas about how to make b.p.o better, but the project is probably not really ready to accept a bunch of contributions if they were to materialize.

Wijaya said that she likes GitHub because of its APIs and the automation they allow. In addition, the email notifications contain useful metadata. You can also use Markdown and emoji in the text for GitHub Issues.

In order to migrate, the Contributor License Agreement (CLA) host needs to be migrated, either to something new or perhaps by using DocuSign, she said. After that, b.p.o could be frozen; it would be read-only, but not shut down. New issues would be created at GitHub.

Of course, there are still lots of bugs stored at b.p.o, with lots of comments and other useful information. The "old and languishing" bugs should be closed or ignored. For those that are still active, a button could be added to b.p.o to copy over the bug information and comments to GitHub.

Several core developers spoke up about the notifications from GitHub, which they saw as problematic. Barry Warsaw said he was concerned about getting "bombed" by mail from new issues; he likes the current model where he can decide what he wants to follow. Steve Dower said that GitHub notifications are "useless"; he loves the "nosy" list in b.p.o. Unless the notification problem can be solved properly, he is against the switch. He has yet to see a GitHub project that does notifications well; if that can be fixed, though, he would be in favor of moving bugs to GitHub Issues.

One of the problems is that b.p.o has its own mailing list where developers can scan for bugs of interest, which is not something that GitHub Issues supports. Wijaya thought it should be possible to create something similar for GitHub. She also pointed to the Octobox project as one possible way to deal with GitHub notifications.

Christian Heimes was concerned about losing the extra metadata that b.p.o provides for categories, priorities, and the like. GitHub Issues do not have anything like that. Wijaya thought that perhaps labels could be used to handle some parts of that; she also suggested that bringing the problem up with GitHub might lead to a solution. Others were not so optimistic; Nick Coghlan said that GitHub has not been responsive to the suggestions and requests from Kubernetes and other large projects, so it is not likely to make changes for Python.

Ned Deily thought there were a number of serious issues that need to be worked through before b.p.o could go away; it is not realistic to close thousands of open bugs, he said. But Guido van Rossum pointed out that Wijaya had said "old and languishing" bugs, not all of the open bugs. Copying the bugs to GitHub with a button is "great in theory", Deily said; the problem is that there are references and links to b.p.o all over the place. How would those get updated?

He believes moving to GitHub Issues is an even bigger job than moving to GitHub for repositories and pull requests. To start with, the project needs to understand how b.p.o is used in its processes today. But another attendee noted that there is a downside to not moving as well since pull requests and issues are well integrated on GitHub and that is not true with the current b.p.o setup.

It is clear that there are enough differing opinions that more study is needed, Van Rossum said. He suggested writing multiple PEPs that described the different paths forward. Those can be discussed on the mailing lists.

Van Lindberg cited some "passive-aggressive moves" by GitHub over the years that makes him concerned about centralizing all of Python development there. He wondered if there is a way out for Python and its data if things go poorly at some point. Van Rossum said that as things stand, all of the conversation in the pull requests would be lost when transitioning to another system.

But Carol Willing of the Jupyter project said that b.p.o is the "single biggest hurdle for new contributors". GitHub is not perfect, but you can take data out of it, she said; Jupyter does so for all of its projects. It is worth giving GitHub a shot, because right now Python is excluding contributors by continuing to use b.p.o. There is another downside to sticking with b.p.o, Brett Cannon said; there needs to be some plan for keeping it running, which is not something that anyone is really looking at. To stay with b.p.o, people need to step up to fix the problems and to maintain it. The status quo will not suffice given that b.p.o does not yet run on Python 3.


Index entries for this article
PythonDevelopment model


to post comments

Using GitHub Issues for Python

Posted May 22, 2018 0:46 UTC (Tue) by nirbheek (subscriber, #54111) [Link] (11 responses)

I was surprised to see that GitLab was neither considered nor discussed during this. Multiple FOSS projects are moving to it (debian, xorg, mesa, gnome, gstreamer) and their upstream is much more friendly and responsive than GitHub's. It also has many more features and allows self-hosting which is a big plus for maintaining control over your instance and possibly being able to customize it,

Using GitHub Issues for Python

Posted May 22, 2018 17:23 UTC (Tue) by rriggs (guest, #11598) [Link] (3 responses)

Vanishingly few people have GitLab accounts. It does not solve the singular problem that they are attempting to solve in the move from b.p.o.

Network effects are a thing. The only way I interact with any of the GL projects you mention are through downstream projects (typically Red Hat's Bugzilla).

Using GitHub Issues for Python

Posted May 22, 2018 19:20 UTC (Tue) by Conan_Kudo (subscriber, #103240) [Link]

I suspect that if they were to migrate to another self-hosted solution, they'd pick something written in Python, so that they'd have the ability to contribute to it and see how their own stack handles it. If it were something they were open to, I'd suggest Pagure for code+bpo replacement.

Using GitHub Issues for Python

Posted May 23, 2018 7:01 UTC (Wed) by karkhaz (subscriber, #99844) [Link] (1 responses)

You don't need to open a gitlab account to use gitlab---you can actually sign into it with a github account. So hosting python's repo on gitlab would still mean that github users can contribute.

I'm not sure if it's still possible to sign into gitlab with a github account if one self-hosts a gitlab instance though.

Using GitHub Issues for Python

Posted May 23, 2018 7:20 UTC (Wed) by nirbheek (subscriber, #54111) [Link]

> I'm not sure if it's still possible to sign into gitlab with a github account if one self-hosts a gitlab instance though.

On self-hosted instances, you can sign in with Google, GitHub, or GitLab (gitlab.com).

Using GitHub Issues for Python

Posted May 22, 2018 20:01 UTC (Tue) by bredelings (subscriber, #53082) [Link]

It does seem like gitlab is more willing/interesting to make changes to fit a project's needs or workflow.

In the long run, it seems like undermining github's dominant position might make it more willing to be responsive to the needs of users.

Using GitHub Issues for Python

Posted May 22, 2018 22:46 UTC (Tue) by vstinner (subscriber, #42675) [Link] (5 responses)

Moving Python code to GitLab has been discussed in length: https://www.python.org/dev/peps/pep-0507/

I understood that GitLab has been chosen because it is more popular. The purpose of the PEP 512 is to make contributions to Python as simple as possible. More and more developers already have an account on GitHub and are used to the GitHub UI and GitHub way to handle pull requests.

https://www.python.org/dev/peps/pep-0512/

Other options have been discussed like GitHub+Phabricator: https://www.python.org/dev/peps/pep-0481/

Using GitHub Issues for Python

Posted May 23, 2018 6:41 UTC (Wed) by cpitrat (subscriber, #116459) [Link]

It is sad, especially for a project of this size, to not choose the preferred option just because it is less widely used. It's not helping the challenger getting more challenging !

If python had migrated to GitLab, it would have bringed a lot of new users, some of which may have bringed other projects with them. GitHub is great but having options/competition is always a good thing.

Using GitHub Issues for Python

Posted May 23, 2018 7:00 UTC (Wed) by nirbheek (subscriber, #54111) [Link] (3 responses)

That PEP and the resolution (in 2016) were for repository hosting, not for issue tracking.

Using GitHub Issues for Python

Posted May 23, 2018 8:50 UTC (Wed) by vstinner (subscriber, #42675) [Link] (2 responses)

Moving issues to GitHub follows the previous PEP which moved the code and pull requests. I don't think that it would make sense to use GitHub for code and GitLab for issues. For example, having pull requests and issues at the same place allows to get globally unique identifiers (#xxx for issues and pull requests). But I don't know how to get links on "bpo-xxx" identifiers (links to bugs.python.org issues).

A few years ago, bugs have migrated from Sourceforge to Roundup (bugs.python.org) and we were able to keep the identifiers. I'm not sure that it's doable here.

Using GitHub Issues for Python

Posted May 23, 2018 9:09 UTC (Wed) by nirbheek (subscriber, #54111) [Link] (1 responses)

Sure, I don't mean split your workflow across two different instances. I mean that GitLab has exactly the same workflow as GitHub w.r.t. pull requests, and the UI is very similar too (+ has a lot more features, has a more usable mobile UI, better command-line integration, etc). So they should seriously evaluate GitLab for issue tracking and wiki and not just go with GitHub because it's easier and because Guido likes it.

Using GitHub Issues for Python

Posted May 23, 2018 9:23 UTC (Wed) by vstinner (subscriber, #42675) [Link]

It took two years to migrate Python code to GitHub. It's not just code, it's also the documentation for developers, the tooling, the integration of all tools, etc. I don't think that anyone wants to move to GitLab right now.

Using GitHub Issues for Python

Posted May 24, 2018 14:57 UTC (Thu) by downey (subscriber, #117086) [Link] (5 responses)

The act of moving from b.p.o to GitHub issues is basically like moving the bug tracker back to Sourceforge. It's a horrible idea.

When you look at it seriously, GitHub is a proprietary commercial platform just like Sourceforge. It is based on some FLOSS tools like Git, but extends it with all kinds of proprietary tools & API's. Just like Sourceforge, they could abscond with a project's data at any time, or decide to monetize it in any manner of nefarious ways, with very little recourse. Not to mention adopting GitHub for anything beyond basic Git repo hosting (e.g. issue tracker, wikis, etc.) is asking everyone in your project's community & ecosystem to consent to a third party's Terms of Service, which that 3rd party could change at any time.

As for the repeated claim that "we should move X to GitHub because that's where everyone is and we'll get more contributions" ... I've never seen anyone produce actual data to back that up. I'm still waiting to see anything beyond anecdotes or dreams. Anyone?

The fact is that self-hosting is the most sustainable way to go here, folks. Lots of great tools like GitLab or Pagure so a project team doesn't have to do much maintenance. Or at least if you're going to use a "managed service" hosting provider, make sure they're using an entirely free & open stack (like GitLab) so you have a clear, quick, & easy exit strategy.

Using GitHub Issues for Python

Posted May 31, 2018 3:55 UTC (Thu) by njs (subscriber, #40338) [Link] (3 responses)

> As for the repeated claim that "we should move X to GitHub because that's where everyone is and we'll get more contributions" ... I've never seen anyone produce actual data to back that up

I'm too lazy to find the original, but I've seen graphs of contributions to the scientific Python projects (numpy, scipy, matplotlib, etc.) showing a huge hockey-stick bend at the point where they moved to github.

Also, I'm a python contributor (and now, core developer) who could never be bothered to deal with the old process of submitting patches to python before the move to github.

Maybe gitlab would be just as good, I don't know. It's a hard experiment to run.

> The fact is that self-hosting is the most sustainable way to go here, folks

I don't know what the best solution is, but right now Python *is* self-hosting their bug tracker, and it *is not* sustainable, so unless you're volunteering to wear a pager for Python then this kind of blithe assurance isn't very helpful?

I'm not a big fan of Github's proprietary nature, but realistically, downloading issues to move them somewhere else is *really* not that hard. And the chance that they'll one day announce "surprise, we've deleted all your data" or "surprise, you have to install our special bitcoin miner to view issues" or whatever seems really, really low? There are a lot of reasons to be wary of Github, but I feel like if you want to convince people to prefer free options then you'll need something much more concrete and realistic than this.

Using GitHub Issues for Python

Posted Jun 1, 2018 3:34 UTC (Fri) by lsl (guest, #86508) [Link] (2 responses)

> Also, I'm a python contributor (and now, core developer) who could never be bothered to deal with the old process of submitting patches to python before the move to github.

I assume the old process was mailing the patches to some mailing list? What was the issue? Where in the process did you get lost?

If you're already using Git, there's barely more involved than running 'git send-email' with a one-time setup cost of telling it how to send mail. Personally, I consider this less friction than the Github PR dance but I know that many people disagree.

Using GitHub Issues for Python

Posted Jun 1, 2018 7:04 UTC (Fri) by Cyberax (✭ supporter ✭, #52523) [Link]

I’m using Outlook. How do I send patches through it? Ok, I beat up our admins with a socket wrench until they turned on IMAP, so now I can use sendmail to actually send mail.

Then somebody replies to my patch. How do I reply back? My Outlook will mangle everything beyond recognition.

Using GitHub Issues for Python

Posted Jun 2, 2018 0:19 UTC (Sat) by njs (subscriber, #40338) [Link]

> I assume the old process was mailing the patches to some mailing list? What was the issue? Where in the process did you get lost?

It involved making patch files and then going through a web form to attach them to an issue. It was certainly doable, it was just clunky and it was easier to ignore it and go contribute to other projects.

> Personally, I consider this less friction than the Github PR dance but I know that many people disagree.

The Github PR dance is far from perfect, but has the crucial advantage that I've previously contributed to dozens of other projects that way, so I've already heavily optimized my workflow.

It's not just 'git format-patch'. How do I keep track of review comments? do I need to create a issue tracker account / subscribe to a mailing list? how do I find my branch again later? what happens after they merge my fix? These all have answers but like, for a trivial fix I can do the clone/edit/push/open-PR dance in about 30 seconds on pure muscle memory, while if you're using some other workflow then even finding your contributor documentation will take me longer than that.

Returning to the topic of the article: not all of this applies to issue tracking, but some of it certainly does – github's issue tracker is easy to find, people are familiar with its quirks, it has some built-in integration with their code/PR systems (right now bugs.python.org and github PRs are cross-linked by an ad hoc system of bots that requires contributors to jump through some minor but confusing hoops), people already have an account, etc.

There are downsides as well, obviously; that's why the maintainers want to think it through :-).

Using GitHub Issues for Python

Posted Aug 13, 2018 10:50 UTC (Mon) by JanC_ (guest, #34940) [Link]

I think SourceForge is using Apache Allura nowadays, so a bit more like GitLab than like GitHub.

Using GitHub Issues for Python

Posted May 24, 2018 16:08 UTC (Thu) by flussence (guest, #85566) [Link] (1 responses)

Perl 6 did the same recently for similar reasons: the old tracker was bad to the point where a lot of people gave up in frustration trying to report bugs, so now they accept Github as a second option.

The difference here is the old one was kept open, so as to not lock out people in China and other censorship states from contributing. What's Python's solution to that?

Using GitHub Issues for Python

Posted May 25, 2018 16:38 UTC (Fri) by ballombe (subscriber, #9523) [Link]

... and to people that cannot agree with github TOU for whatever reason.

What if someone buys Github?

Posted Jun 2, 2018 7:10 UTC (Sat) by oldtomas (guest, #72579) [Link] (2 responses)

Well, this was my first thought when I saw this. Making an important free software project dependent on *one* for-profit company out there doesn't seem like a good idea...

Then, this came in:

"Microsoft Is Talking About Acquiring GitHub"

https://news.slashdot.org/story/18/06/01/2034202/microsof...

Yikes. Just the "talk" makes me dizzy.

What if someone buys Github?

Posted Jun 2, 2018 9:28 UTC (Sat) by karkhaz (subscriber, #99844) [Link] (1 responses)

This would be pretty fantastic, if it happened. Microsoft will strangle GitHub into a barely animated zombie, and everyone will learn their lesson and start self-hosting.

It seems to me that these catastrophes need to happen fairly frequently, so that people are constantly reminded that they _can_ happen, and will. The fact that nobody learned from Sourceforge means that the lesson needs to be branded more painfully.

What if someone buys Github?

Posted Jun 4, 2018 6:48 UTC (Mon) by oldtomas (guest, #72579) [Link]

It seems some weird $DEITY has listened to your prayers :-(

https://developers.slashdot.org/story/18/06/03/2042255/mi...


Copyright © 2018, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds