[scikit-learn] Github project management tools

Joel Nothman joel.nothman at gmail.com
Thu Sep 15 19:14:12 EDT 2016


One of the biggest issues with scikit-learn as a project is managing its
backlog of issues; another is release scheduling. Some of this cannot be
fixed as long as our model of voluntary contribution (with a couple of
important exceptions) does not change. However, it may be worth considering
the new project management features in Github.

At the moment we have the following management:
* labels corresponding to type (bug, enhancement, new feat, question),
scope (API, Build/CI, ?Large Scale, Documentation), difficulty (easy,
moderate), status/scheduling (needs contributor, needs review, sprint).
* PR status management with title prefixes [WIP], [MRG], [MRG+1], [MRG+2]

Firstly, we might benefit from prefixing labels by category, i.e.
difficulty:easy so that complementary labels appear together.

In truth, PRs have roughly these statuses:
* WIP (not ready for review)
* waiting for review
* waiting for changes (with or without one of the following)
* in dispute (i.e. fundamental doubts about the PR)
* the above together with 1 or 2 "official" approvals
* ready for merge (pending minor changes such as what's new documentation)

New github features:

* reviews with "approved" or "request changes". A list of approvers can be
found in the merge/CI panel. We could replace the MRG+1 annotation with
this and use it to track disputation too. I'm not sure how it works with
changes that are added after approval. I think it would have avoided one
improper merge by me... One downside is that there does not yet seem to be
a way to search for PRs with a specified level of approval (while searching
for "MRG+1" sort-of works).
* Milestone prioritising: issues in a milestone, such as
https://github.com/scikit-learn/scikit-learn/milestone/21, can be ranked
with drag-and-drop. I think this could help with release scheduling as it
would allow us to identify the top priorities for a release and see when
enough of them are completed.
* The Kanban-style workflow management of the new Projects tool
https://github.com/scikit-learn/scikit-learn/projects is another way of
managing status and, I think, priority, for a small set of related issues.
This might be an alternative way of managing milestone scope, or of working
towards big changes like the one just completed for model selection; like
proposed expansions to get_feature_names expansion; like estimator tags;
making utilities public/private...

So with the goal of making it easier to track where attention is most
needed, and when to move to release: What's worth trying?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scikit-learn/attachments/20160916/a9ee0d26/attachment.html>


More information about the scikit-learn mailing list