-
-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Scaling Maintenance #49
Comments
An unorganized jumbling of thoughts:
A few concrete suggestions, just for discussion (these may just be restating much of what you said above, apologies): Maintenance TeamWe allocate a team of people to handle "maintenance" (prioritizing in order: reviewing user PRs, responding to issues, mentoring new devs, and fixing core bugs (triaged by this team alone, not the larger collective)) for a longer period of time. Instead of having a team swap in and out, I suggest we allocate people on a cycle that offsets with others, so any week will have some people from the previous week, and some new people. If we had a team of 4, we might have the a new person rotate in and out each week. We'll want some level of specialization on this team, so no one person is responsible for watching all repos. Working GroupsWe also split into smaller "working groups". We might decide what's critical on a bi-weekly cycle, and then split up to work in teams between bi-weekly meetings. People in the maintenance team might have opinions on any 2-week chunk of work, and should be welcome to comment, but they shouldn't be expected to do any of the work while they're on maintenance duty. On-boardingNew devs interested in helping out with core maintenance should start with a stint on the maintenance team. We'll want to ensure we have 1-2 experienced devs handling maintenance at any one time. They'll help mentor the new devs through work, reviewing PRs, and suggesting issues to work on. MeetingsWe'll naturally want to change our meeting schedule to adjust for the new arrangement. Given the above, I'd suggest:
|
I would like to propose a parquet/filesystems working group, especially given the recent developments within arrow. We should meet to create a common approach and requirements, and decide how to do any work at our end. I nominate the following people (but others are welcome to raise their hands): @rjzamora (who has been most active in parquet in recent times), @jcrist (who delved into arrow for ORC and other things), @TomAugspurger (who has maintained file-systems things) and myself. |
We met yesterday and had a conversation about this topic. The result was that for the next couple weeks we're going to try splitting into groups in the following way:
We'll meet next week to report in, but assuming that things are going ok we'll keep on this track for another week or two afterwards. |
TL;DR We should use labels to help track everything better. I'm happy to set this up. I would also like to propose that we lean more heavily on GitHub as a tool to try and facilitate better knowledge transfer of the current state of the world. A good start would be making better use of issue labels. Looking through the various trackers now it looks like most do not have any consistent use of labels. Looking to mature projects with many active contributors such as Kubernetes they have a label system which identifies various categories of information, such as the kind of issue it is, what skills are required to handle it, which working group is responsible for it being resolved and how important it is. This means contributors can quickly find issues which are within their skill set to solve, and maintainers can track important issues which are falling through the cracks. Therefore I have the following proposal:
This also fits with the idea of having working groups/teams who care about a single topic (e.g filesystems) and also having a czar group who care about high priority items from all topics and maintaining the state of the world. Cutting across in both directions should help avoid things slipping through cracks. |
I think that sounds like a good thing to try. I think that kubernetes goes a little overboard with labels, so I'd suggest we start with a small set. Perhaps a few topical labels (e.g. |
I like the idea of automating `needs-triage` and also maybe `stale` if
that's easy to do. That would help avoid the situation where issues/PRs
get lost in handoff.
…On Wed, May 13, 2020 at 8:23 AM Jim Crist-Harif ***@***.***> wrote:
I think that sounds like a good thing to try. I think that kubernetes goes
a little overboard with labels, so I'd suggest we start with a small set.
Perhaps a few topical labels (e.g. array), a few triaging labels (
needs-triage, bug, critical, feature), and a few skill labels (
good-first-issue, ...).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#49 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AACKZTHK3HTOF3BUUGJ5WCTRRK3Q5ANCNFSM4MZZ5TIQ>
.
|
Agreed
Yeah those are good suggestions. I've raised #50 to track this without creating too much of a tangent here. |
I would tentatively add "watching stack overflow" to the list of maintainer duties - which is something that has only been done sporadically by the team. As it happens, the list of unanswered questions there is rather large right now. A typical question is probably lower priority than a github issue (often "how do I", as opposed to "this is broken") and the chances of a post being complete or useful is lower; but still, this is one public face of dask. |
@quasiben you were unassigned this week. Want to take a tour of the
stackoverflow Dask tag?
…On Wed, May 13, 2020 at 8:43 AM Martin Durant ***@***.***> wrote:
I would tentatively add "watching stack overflow" to the list of
maintainer duties - which is something that has only been done sporadically
by the team. As it happens, the list of unanswered questions there is
rather large right now. A typical question is probably lower priority than
a github issue (often "how do I", as opposed to "this is broken") and the
chances of a post being complete or useful is lower; but still, this is one
public face of dask.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#49 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AACKZTFGAVF3KAVAAD32O3TRRK5Y3ANCNFSM4MZZ5TIQ>
.
|
Might be a useful reference, at least to get some ideas: An |
Sounds good |
I'm wondering if it might be useful to have a github team that people rotate on and off of. It might help with the issue of wanting to ping the czar but not knowing who it is. |
^ yes, please. I, for instance, don't know how our current maintainer team should be working; nor did anyone reply to my suggestion of a parquet/fs group. |
I think you missed the call on this yesterday. Happy to catch you up, let me know.
We should definitely home some working groups as @mrocklin initially suggested. A filesystems one would be a good one to have. |
yes, please! |
Ok I'll drop into whereby.com/dask-dev at the top of the hour for 10 mins for a catch up. |
@martindurant - Happy to be involved in a parquet/filesystems working group (sorry for the delay) |
I also think that forming working groups for specific topics. Happy to help
with the parquet / filesystems one.
…On Thu, May 14, 2020 at 12:59 PM Richard (Rick) Zamora < ***@***.***> wrote:
@martindurant <https://github.com/martindurant> - Happy to be involved in
a parquet/filesystems working group (sorry for the delay)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#49 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAKAOIW74TMG47AURDA4ME3RRQWPRANCNFSM4MZZ5TIQ>
.
|
Called "IO" for now https://github.com/orgs/dask/teams/io/members |
Over the past six months the amount of interest in contributing to Dask has grown considerably. We should think about how to best harness and organize this work to improve the project and community needs.
Historically
Historically Dask maintenance was handled by a smallish group of around four people, most of whom were under the same employer (Continuum/Anaconda) and so had a shared management chain. This group was small enough that everyone knew what was going on, and product/project management was the work of an individual (mostly me at the time), which made sense since we were all in the same corporate structure.
Today
Today we have something like five-to-ten organizations showing up. We've tried a loose anarchic product/project management structure for a while in the form of
Issues (from my perspective)
This approach is nice because it democratizes out management in a friendly way. No one is "in charge" which reflects the employment reality. It feels community centric, which feels good to me.
However there are, I think, a few issues:
I get the sense that with more structure we could get a lot more done, which would be exciting, and might grow this team even further.
Some options
Two extremes in project management might be the following:
Personally I don't think that either anarchy or dictatorship are appropriate today. I think that something in between probably makes sense. For example, I'll propose "federation" (I've been watching Star Trek recently) where we might split off into teams, each with its own czar. These teams might assemble for something like a month at a time and have clear direction by a single individual. They might meet weekly (or whatever makes sense for them) and then at the end of the month report out work done in a blogpost (responsibility of Czar) and at the monthly meeting.
One of these teams would always be issue/PR triage, and in some cases the triage team might ask another team to roll something into their work. I suspect that a team of 4-5 people is about right for this task, especially if there is a single Maintenance Czar for that month who is comfortable tracking everything and managing work.
The topics for other teams might come out of a monthly planning issue, followed on by the monthly meeting. Here are some example topics that might serve as a good month-long project for a small team.
Teams
Regardless of what we choose, I think that there are two parts of the plan above that I like
Teams: we're at a point where having 10 people in a weekly call probably doesn't make sense. I think that breaking people into smaller teams is probably better for organization, and helps to develop comraderie. I think it's probably also good for onboarding if we are intentional about mixing newer and older maintainers, and about mixing people from different companies.
Monthly rather than weekly cycles. I think that switching czar on a weekly basis means that things get dropped, and that people tend not to develop a sense for what's going on broadly within the project.
Corporate Engagement
Some of the topics above correspond to pain points by certain companies. As two examples:
We might invite corporate involvement, where they dedicate more resources than typical, but we mix maintainers in to the effort in order to act as spirit guide and make sure that the community side is smooth.
The text was updated successfully, but these errors were encountered: