[Numpy-discussion] Issue Tracking

Jason Grout jason-sage at creativetrax.com
Tue May 1 03:19:08 EDT 2012


On 5/1/12 1:52 AM, Travis Oliphant wrote:

>> 1. No key:value pairs for labels (Fernando brought this up a long time
>> ago, I think). This is brilliant in Google code's tracker, and allows
>> for custom fields that help in tracking workflow (like status, priority,
>> etc.). Sure, you can do what the IPython folks are doing and just
>> create labels for every possible status, but that's unwieldy and takes a
>> lot of discipline to maintain. Which means it takes a lot of developer
>> time or it becomes inconsistent and not very useful.
>
> I'm not sure how much of an issue this is. A lot of tools use single
> tags for categorization and it works pretty well. A simple "key:value"
> label communicates about the same information together with good query
> tools.

Sure, it is possible, but it takes the hierarchal information out of the 
picture, so we lose semantic meaning.  It is possible to add two 
different conflicting priorities, for example, and you can't enforce a 
certain workflow like you can with trac states, for example.

Not to mention that the only filtering you can do on labels is by 
clicking the labels on the left, which is an "AND" filter.  How do you 
search for tickets that are labeled priority-critical OR priority-high?

>
>>
>> 2. The disjointed relationship between pull requests and issues. They
>> share numberings, for example, and both support discussions, etc. If
>> you use the API, you can submit code to an issue, but then the issue
>> becomes a pull request, which means that all labels on the issue
>> disappear from the web interface (but you can still manage to set labels
>> using the list view of the issue tracker, if I recall correctly). If
>> you don't attach code to issues, it means that every issue is duplicated
>> in a pull request, which splits the conversation up between an issue
>> ticket and a pull request ticket.
>
> Hmm.. So pull requests *are* issues. This sounds like it might actually
> be a feature and also means that we *are* using the Github issue tracker
> (just only those issues that have a pull-request attached). Losing
> labels seems like a real problem (are they really lost or do they just
> not appear in the pull-request view?)

I just double-checked.  This issue started out as an issue, then I 
"attached" code by using the API to attach a branch to the issue [1]. 
The result is:

https://github.com/sagemath/sagecell/pull/300

You'll notice that there are no tags on the right side, and as a project 
admin, I don't see any way to add them either.  If you go to the list view:

https://github.com/sagemath/sagecell/issues?milestone=6&sort=updated&state=closed

you actually *do* see two tags attached.  I *can* change labels in the 
list view, if it's the list view for *issues*.  If I view the same 
"issue turned pull request" in the pull request list view:

https://github.com/sagemath/sagecell/pulls (you have to click 
"closed"---apparently clicking "closed" doesn't change the URL, so I 
can't give you a link to that listing view...)

then I see at the top (right now) "pull request 300" (though in the pull 
request view, you don't see the 300 to the side, like you see in the 
issue view).  Of course, like other pull requests, you can't attach 
labels in the pull request list view.

 From the above, I get the idea that github does not really support 
attaching code to issues, though it is technically possible through the 
API.  To me, that means that every problem has at least two tickets (an 
issue and a pull request), and you have to make sure to manually close 
and sync one with the other, and the discussion is split up between the 
two tickets.

[1] One of my students has a short script to encapsulate doing this via 
the API: https://gist.github.com/2156799


>
>>
>> 3. No attachments for issues (screenshots, supporting documents, etc.).
>> Having API access to data won't help you here.
>
> Using gists and references to gists can overcome this. Also using an
> attachment service like http://uploading.com/ or dropbox makes this
> problem less of an issue really.

Sure, it's possible, but like you said, it splits up the conversation to 
have parts of it hosted elsewhere.

>
>>
>> 4. No custom queries. We love these in the Sage trac instance; since we
>> have full access to the database, we can run any sort of query we want.
>> With API data access, you can build your own queries, so maybe this
>> isn't insurmountable.
>
> yes, you can build your own queries. This seems like an area where
> github can improve (and tools can be written which improve the experience).

Yep, so the question is: how much of a bug tracker and common reports 
are you willing to rebuild on the github infrastructure, or is it easier 
to use something with all of this built in that also has git/github 
connections.


>
>>
>> 5. Stylistically, the webpage is not very dense on information. I get
>> frustrated when trying to see the issues because they only come 25 at a
>> time, and never grouped into any sort of groupings, and there are only 3
>> options for sorting issues. Compare the very nice, dense layout of
>> Google Code issues or bitbucket. Google Code issues also lets you
>> cross-tabulate the issues so you can quickly triage them. Compare also
>> the pretty comprehensive options for sorting and grouping things in trac.
>
> Yes, it looks like you can group via labels, milestones, and "your"
> issues. This is also something that can be over-come with tools that use
> the github API.

You can filter on those, but I don't see how to group on those (i.e., 
have a big listing of everything, but group the results together based 
on their labels or their milestones, etc.  It makes it much harder to 
get a big-picture view of lots of issues and how they are related. 
Again, of course you can write tools to do this with the github API, but 
again, how much existing bug-tracker functionality do you want to 
reimplement?

By the way: are people keeping a backup of the issues, etc.?  You can 
get a data dump of, for example, the full issue database.  It seems like 
it would make sense for a project, like IPython, to periodically 
download all of its data to make an off-site backup not tied to a 
commercial company.


>
>
> It would be good to hear from users of the IPython github issue tracker
> to see how they like it "in the wild". How problematic are these issues
> in practice. Does it reduce or increase the participation in issue
> tracking both by users and by developers.

I agree; it would be good to hear from someone with wider and broader 
experience with the github tracker on these issues.

Thanks,

Jason




More information about the NumPy-Discussion mailing list