Skip to content
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

Community Communication #2945

Closed
mrocklin opened this issue Dec 1, 2017 · 17 comments
Closed

Community Communication #2945

mrocklin opened this issue Dec 1, 2017 · 17 comments

Comments

@mrocklin
Copy link
Member

mrocklin commented Dec 1, 2017

Currently Dask development occurs in both open and closed channels

Open

  • Github issues for bug reports, feature requests, and project discussion
  • Stack Overflow for usage questions
  • Gitter for community discussion

Closed

  • Anaconda Inc devs use a company-internal chat room
  • Anaconda Inc devs have a weekly thirty minute meeting via Google Hangouts
  • Core devs (including non-anaconda devs) occasionally have a group e-mail. This comes up most often when adding new core devs.

I would like to open up some of the currently closed communication channels. This issue is about planning what those channels should be.

To start conversation, I'll suggest the following changes:

  1. Move Anaconda company-internal chat to a new gitter dask/dev channel. Anaconda devs will maintain an internal chat channel for anaconda-specific business (client work).
  2. Open the weekly dev video meeting to the full public
  3. Create a dask-core private mailing list on googlegroups

This creates the following channels

Open

  • Github issues for bug reports, feature requests, and project discussion
  • Stack Overflow for usage questions
  • Weekly dev meeting via Google Hangouts
  • Gitter dask/dev for developer discussion. Open but user questions strongly discouraged.
  • Gitter dask/dask for community discussion (although users are still encouraged to prefer Stack Overflow where appropriate)

Closed

  • Anaconda Inc devs continue to use a company-internal chat room for client business
  • Dask-core mailing list

Alternative suggestions are very welcome. Pinging currently active core devs for feedback @jakirkham
@jcrist @martindurant @ogrisel @pitrou @shoyer @sinhrks @TomAugspurger

@mrocklin mrocklin changed the title Dask Communication Channels Community Communication Dec 1, 2017
@TomAugspurger
Copy link
Member

+1 to this.

For a bit more context on the weekly dev meetings, they currently consist of short sections on what we've done the last week and what we plan to work on the next week / how much time we'll have for that. Finally, there's an "Discussion Topics" section for going into detail on things that'll be relevant for most of the devs. We keep meeting notes, in case people aren't able to attend.

@pitrou
Copy link
Member

pitrou commented Dec 4, 2017

+1 from me as well.

@ogrisel
Copy link
Contributor

ogrisel commented Dec 4, 2017

LGTM.

1 similar comment
@jcrist
Copy link
Member

jcrist commented Dec 4, 2017

LGTM.

@jakirkham
Copy link
Member

SGTM.

As far as community meetings go, would like to share a few things we found useful in conda-forge. Should note that conda-forge meetings are pretty topic driven as opposed to being status updates. So these thoughts may or may not be relevant depending on the meeting design. Much of conda-forge's meeting design was stolen from other groups (particularly Jupyter).

First we found it really helpful to have an agenda in a collaborative document (e.g. Hackpad, Dropbox Paper, possibly Google Doc) where people could add items they wanted to discuss with the group before the meeting. This is great not just for the Agenda, but also keeping notes during the meeting. We typically archived our agenda/notes in a GitHub repo too. Second given everybody in conda-forge works in various different jobs, less frequent, but longer meetings were preferred (e.g. every other week for ~1hr). That may not be necessary here. Third Google Hangouts are great, but cap out at 10 people. As long as we think we will be below that, they are great. If that changes, we might want to revisit options. May have more thoughts in the future.

@mrocklin
Copy link
Member Author

mrocklin commented Dec 5, 2017

Thanks for the detailed feedback @jakirkham .

How does conda-forge trigger meetings if they are not regular? Someone says "I think it's time for a meeting, here is a link to an agenda document, I've added a few topics that have come up over the last few weeks but please feel free to modify it." ? Are these meetings open to the public?

@pitrou
Copy link
Member

pitrou commented Dec 5, 2017

I think status update meetings are useful at least for the part of us that works on Dask on a paid basis.

As for topic meetings, isn't it simply better to discuss things out on Github issues (and/or on a ML)?

@jakirkham
Copy link
Member

Hope I got all of your questions, @mrocklin. Please let me know if there are more (or I missed one 😉).

They use to be regular. For example every 2 weeks on Friday at 10a EST was pretty common. Though have been less regular of late. This is more a consequence of people being busy than an actual choice.

Typically someone will ask about having a meeting. So we add a survey of times through something like Doodle or similar. Normally we set up a 2 week window for the meeting. Then post the poll a bunch of places (e.g. issue on the webpage repo, CF mailing list, Gitter) with some note about when the poll closes (normally a few days after it was created). Based on the most popular time/date, we set the meeting and go from there.

As far as the agenda, anyone is free to add topics. The rule of thumb is to add new issues to the bottom of the list, but there are exceptions. For instance if there is a particularly pressing issue (e.g. Travis CI deprecated their 10.9 image), it might get bumped. Also if a person adds an item, but misses the meeting, we leave it out of discussion until they can rejoin (unless it is particularly pressing or they said to go ahead). Typically the person running the meeting sets the topic order (typically as written) and hands it off to each person that add each topic to provide details. Discussion is then opened to the group after each item. We note issues raised, decisions made, who takes on what tasks (if any), etc.

The meetings are open. Anyone is welcome. Normally details about the meeting are tracked in an associated GitHub issue, but info will be added other place (e.g. Gitter and the mailing list).

@mrocklin
Copy link
Member Author

mrocklin commented Dec 5, 2017

I think status update meetings are useful at least for the part of us that works on Dask on a paid basis.

The extent to which people are paid to work on Dask is pretty fluid. Several folks who don't work for Anaconda Inc. consider working on Dask to be part of their day job. Conversely some people within Anaconda Inc who currently come to the meetings aren't technically paid to work on Dask.

As for topic meetings, isn't it simply better to discuss things out on Github issues (and/or on a ML)?

I agree that in general we should favor easily searchable and recorded text-based systems like Github issues or a mailing list. Still though, I think that there is a fair bit of value to the high-bandwidth and group conversations that arise from a video call.

Third Google Hangouts are great, but cap out at 10 people. As long as we think we will be below that, they are great. If that changes, we might want to revisit options. May have more thoughts in the future.

If we get to this point we can find alternatives. Anaconda Inc has some systems we can use.

I'd also be open to other video chat systems. I've noticed that some projects use appear.in.

@jakirkham
Copy link
Member

I think status update meetings are useful at least for the part of us that works on Dask on a paid basis.

Of course. Not trying to say anything about what works well for Dask in the Anaconda Inc setting.

Just sharing some experience from having meetings in one community setting. Whether it translates here or not, we will have to decide for ourselves. Perhaps it is best to try the existing format in a community setting for a few weeks or month and then assess how it is going?

As for topic meetings, isn't it simply better to discuss things out on Github issues (and/or on a ML)?

Sometimes. Here are a couple of examples I can think of where a topic meeting is useful.

If solving a problem, affects many different areas. For example, in conda-forge one such topic is using conda packages for X11. There are various issues and PRs associated. So having a meeting is pretty important to get the big picture and organize this activity meaningfully. Things like caching or interactively playing with Dask results may fit in this area.

Also meetings can be a good time to address issues/PRs that are blocked and sort out the issues blocking them.

@mrocklin
Copy link
Member Author

mrocklin commented Dec 7, 2017

OK, I've created a currently private chat channel at https://gitter.im/dask/dev and invited the current developers with commit access. I recommend that we keep things private for a week or so to see how that feels and to establish a routine and then open it to the general public.

If you are active on the project and want access to the chat channel then please let me know.

@mrocklin
Copy link
Member Author

The developer chat channel, https://gitter.im/dask/dev , is now public. As a reminder, this channel is for conversation about ongoing development. The channel https://gitter.im/dask/dask remains open for general conversation.

@mrocklin
Copy link
Member Author

Weekly meeting time/location

Lets have our next Dask weekly meeting on appear.in at https://appear.in/dask-dev tomorrow December 21st at 4pm UTC (11am US-Eastern).

My apologies for the short notice on this and the lack of a public request for good times. This happens to be when the previous closed meeting took place. It tends to balance between the US-based and European-based collaborators.

Agenda

Does anyone have recommendations for a good web application to maintain notes and set an agenda? We've been using Google drive up until now, but now is a good opportunity to make a switch if desired.

I propose the following format for the meeting/agenda

Short updates on work done last week

  • Person's name: brief notes on their recent work
  • Matt: Was at AGU last week. Working on documentation, PR backlog, and experimenting with Kubernetes/Jupyterhub deployments since then.

Agenda items

  • Topic (discussion leader, estimated time)
  • Update on JupyterHub/XArray work (Matt, 3 minutes)
  • What to use for an agenda (Matt, 5 minutes)
  • ...

Plans for the upcoming week and availability

  • Person's name: brief notes on availability and planned work
  • Matt: Working part time this week due to holidays. Pushing on JupyterHub/Kubernetes work prior to AMS

@pitrou
Copy link
Member

pitrou commented Dec 20, 2017

Does anyone have recommendations for a good web application to maintain notes and set an agenda?

Etherpad should be good enough, but we should find a reliable public instance. I know https://framapad.org/ but it seems to be in French only.

@jcrist
Copy link
Member

jcrist commented Dec 20, 2017

Does anyone have recommendations for a good web application to maintain notes and set an agenda?

At one point we were using hackpad, but that got picked up by dropbox. Looks like dropbox paper is the new thing. Haven't tried it, but it might work (free and hosted, but does require an account).

@pitrou
Copy link
Member

pitrou commented Dec 20, 2017

I'm ok with Dropbox as long as I don't have to run a service on my machine.

mrocklin added a commit to mrocklin/dask that referenced this issue Jan 4, 2018
@mrocklin
Copy link
Member Author

mrocklin commented Jan 4, 2018

Proposed updated documentation here: #3045

mrocklin added a commit that referenced this issue Jan 7, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants