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

New chat-based communication channel to replace Gitter/Matrix for Project Jupyter #182

Open
andrii-i opened this issue Sep 20, 2023 · 37 comments

Comments

@andrii-i
Copy link
Contributor

andrii-i commented Sep 20, 2023

This issue is created on behalf of Jupyter Media Strategy working group (charter). The goal of this issue is to get feedback from the community on replacing Gitter as a primary / official chat-based communication channel of Project Jupyter. Please share your thoughts and opinions.

Please note that change is intended for the whole Project Jupyter, not for a certain subproject. To kick-off the discussion, I have created issue about this at jupyterlab/team-compass. Please see it for additional discussion on the topic:

Problem

Chat-based communication channels offer possibility of real-time interaction and rapid feedback which provides additional utility and value to open source projects compared to forums like Discourse. Gitter historically served as a main/most popular chat-based communication channel for the Project Jupyter community. Based on discussions during weekly Project Jupyter calls, after Gitter migrated to Matrix it's usability and popularity is not at a satisfactory level anymore (see jupyterlab/frontends-team-compass#213 (comment) for for more details).

Proposed Solution

Create new chat-based communication channel as a replacement for Gitter.

Potential options:

  • Discord
    • Pros: household name, familiar to majority of users
    • Cons: closed source
  • Zulip
    • Pros: open source, can be self-hosted. Potentially better threading
    • Cons: less popular
  • Zulip for technical communication, Discord for community communication (as mentioned here)

I prefer Discord due to popularity and ease of adoption.

@yuvipanda
Copy link
Contributor

Thanks @andrii-i. If this discussion is for the entire project, can I suggest we centralize the conversation here rather than in the jupyterlab/team-compass repo? Perhaps we can transfer the issue from there to here to keep all the content in one place?

@krassowski
Copy link
Member

+1 to transferring the issue but also see my comment on whether this is the best repo.

@ivanov
Copy link
Member

ivanov commented Sep 20, 2023

aside: I also support transferring, but it doesn't look like it's possible to transfer issues across organizations, only within an organization.

@krassowski
Copy link
Member

It is possible, just a bit of a hassle. You either use a bot which will copy the comments, or create a temporary repository X in org A, move issue to X, move repository to org B, move issue to org Y (silly, right?).

@willingc
Copy link
Member

Depending on how many comments exist, you could close the original issue and link to the comments from here.

@Carreau
Copy link
Member

Carreau commented Sep 21, 2023

aside: I also support transferring, but it doesn't look like it's possible to transfer issues across organizations, only within an organization.

Yeah, one more reason to decrease the numbers of orgs 😆

From my part +1 for zulip, I find it the less-worse for having topics. Napari uses zulip, and it's written in Python. And I would prefer to give money to an oss project than discord.

Also I guess Im old I don't understand discord, but I'm not a huge user of instant messaging.

@jni
Copy link

jni commented Sep 25, 2023

Hi folks,

I am only a curious third party here, but strong Zulip advocate. Since Zulip is less well known, I thought I'd chime in with a couple of additional points about it:

  • Zulip supports web-visible streams (no login required). For an open source, open governance project like Jupyter, I think that's a huge advantage over Discord. You can check out napari's #general chat room without logging in here. (Some streams, like #randoms, are private or login-only, so you'll miss those in this view). For newcomers, it's nice to be able to check out a community before joining it (see e.g. this post).
  • As @Carreau has noted, Zulip's threading model (topics) is its killer feature. It makes Zulip equally good at sync and async work modes. In the above #general stream in napari, if you click on the poor-mans-octree topic you'll see that the recent messages there relate to a months-long thread. None of the other platforms can offer that kind of continuity. I wrote a short thread about this here, showing how I quickly found the info I needed in a Zulip instance I rarely visit. And the link there lets you see the Zulip thread without logging in! Isn't that super cool???

Anyway, I hope those points help make a decision here! 🙏

@ivanov
Copy link
Member

ivanov commented Sep 26, 2023

Thanks, Juan. I think you bring up a salient point for why my preference would also be for Zulip - the fact that you can lurk / read anonymously. I'm on a few discord instances that end up being very low traffic for the size of its user base, and that's just because there isn't a way to tune into a discord without becoming a member.

And I do appreciate that Zulip topics are way more usable than threads on either discord or slack.

@yuvipanda
Copy link
Contributor

yuvipanda commented Sep 26, 2023

Real time chat is a very important part of forming community bonds, and thank you to @andrii-i and others for kicking off this conversation! I hope to make use of whatever system we end up choosing :)

I wanted to share a different perspective on discord, and how I hope it factors into picking a chat platform to use. The numbers are a little rough, but hope the point is communicated effectively

  1. Discord has raised close to a billion dollars and is valued at about 15 billion dollars or so.
  2. Discord is currently making about 200million dollars a year in revenue
  3. VCs generally want a return or exit about 10 years in, roughly speaking. We don't know who all have already exited, but discord and its investors turned down a 12 billion dollar exit two years ago, so one can assume they would like a bit more than that. Note that discord has not IPO'd since nor filed the financial disclosures required for that.
  4. Discord started in 2015, and I personally believe this means that more intense enshittification is bound to start around 2024-2025. There will be more pressure to increase revenue. We have seen this play out over and over again (docker, unity, hashicorp, etc), and discord will not be an exception. We don't exactly know what form this will take, but it will happen one way or another! And it will affect us, because ultimately for an open source project to use something well, we must have ungated access to the medium (this is why slack doesn't really work). And that means users who are not exactly directly monetizable.

To me, this means at the very least, if discord is chosen, we must have an exit strategy. I don't exactly know what the criteria for this would be, but any work put into this must not be so tied into discord as to make it very hard to leave.

I have never used Zulip (nor discord) myself, but reading https://zulip.com/values/ makes me happier. In particular,

We are growing our business sustainably, without venture capital funding. VCs are incentivized to push companies to gamble for explosive growth. Often, the result is that a company with a useful product burns rapidly through its resources and goes out of business. We have built Zulip as a sustainable business (also supported by SBIR grants from the US National Science Foundation), and are being thoughtful about our pace of spending.

I don't have the same concerns about enshittification with Zulip for this reason.

Ultimately however, I recognize that the question that matters is 'what will people actually use?'. So if we do end up picking discord, we must write down a set of guidelines that also allow us to leave discord when it matters.

@minrk
Copy link
Member

minrk commented Sep 27, 2023

Thanks for that, @yuvipanda!

I'd also put my vote for Zulip. I've used both and am honestly not a huge fan of either, but I've found discord to be a poor tool for "work" communication, and much more successful for "fun" communication, which it was actually designed for. I really like Zulip threads, which seems to me to be the only successful threads implementation in a chat tool. The biggest point for discord is its sheer popularity, so it's likely familiar to more folks broadly, though I'm not sure about our particular community.

Not needing to be logged in to read is a big plus to zulip for me.

@williamstein
Copy link

I also prefer Zulip. I'm sure the founder of Zulip (Tim Abbott), who has long contributed to open source (he did a huge amount for SageMath over the years), would also provide helpful free Zulip hosting to the Jupyter community.

@manics
Copy link

manics commented Sep 27, 2023

Who is the intended audience for this real-time chat platform? Is it mostly Jupyter developers, or does it include users and people who don't follow the Jupyter GitHub repos and are unlikely to be aware of this issue? There's a discussion on Discourse which started in 2019, also discussing Discord and Zulip:
https://discourse.jupyter.org/t/thoughts-about-using-discord-or-zulip-for-jupyter-chat/2372

@krassowski
Copy link
Member

There are increasing numbers of potential/new contributors who ask to chat over Discord, most recently five minutes ago jupyterlab/jupyterlab#14548 (comment). Repeating my previous comment as the migration of the issue apparently failed (/no one has enough spare time/rights to migrate it), some teams (such as Rust) use both Discord and Zulip but for different audiences/teams: jupyterlab/frontends-team-compass#213 (comment).
If this discussion were to stall again I would prefer trying out using both (with a possibility of closing one or the other if it ends not used much/requiring more moderation than we can afford) over not attempting either.

@manics
Copy link

manics commented Sep 27, 2023

If you're planning to create a Zulip anyway you should talk to @choldgraf since he created a jupyter one:

@andrii-i
Copy link
Contributor Author

Thanks @manics, I was just asking the question about jupyter.zulipchat ownership in the zulip instance

@yuvipanda
Copy link
Contributor

I've reached out to @choldgraf and asked him to transfer creds. @andrii-i would you be willing to receive those permissions / credentials?

@yuvipanda
Copy link
Contributor

If this discussion were to stall again I would prefer trying out using both (with a possibility of closing one or the other if it ends not used much/requiring more moderation than we can afford) over not attempting either.

I agree @krassowski. Here's a more concrete proposal:

  1. Pick a date (I suggest Oct 15, 2024)
  2. Draft a blog post saying we're trying out a new chat medium for 6 months to help make a decision. I would personally prefer we try Zulip first!
  3. If things have stalled until then, we just publish the blog post
  4. Re-evaluate in 6 months, and switch if we so desire for another 6 months. We can define what metrics we wanna evaluate by beforehand. Overall activity levels, both from prior members of the community and new members, would probably what we wanna measure?

I would prefer we try both in sequence if necessary rather than in parallel, so as to not split the community. IME usually community splits like this also happen around pre-existing comfort level lines, so we end up with power users on one tool and new users on other, and this could also lead to longer term problems. To mitigate, we can also commit to actively shutting down the tool after 6 months and migrating to new one to try. This is work but I think it's overall a better choice than this stalling out and us staying on the weird gitter / matrix hybrid.

Now of course, the question is the ordering of the tools to try, as the first tool to try does have an advantage here :) My personal preference would be Zulip, then Discord.

The other option is we do all this, but just pick a tool and move. However, I'm not 100% sure who can make that call, nor how we determine consensus exactly. So anything is better than stalling.

@yuvipanda
Copy link
Contributor

However, I'm not 100% sure who can make that call, nor how we determine consensus exactly.

#181 seems related! So I suppose if that proposal gets approved, those are the folks who will help determine consensus :) That works for me.

@Carreau
Copy link
Member

Carreau commented Sep 27, 2023

I also prefer Zulip. I'm sure the founder of Zulip (Tim Abbott), who has long contributed to open source (he did a huge amount for SageMath over the years), would also provide helpful free Zulip hosting to the Jupyter community.

If we can pay even a nominal amount then I think we can/should do so.

If this discussion were to stall again I would prefer trying out using both (with a possibility of closing one or the other if it ends not used much/requiring more moderation than we can afford) over not attempting either.

-0 to use both, if we can use a single one. Too many communication channels get tiring.

Nice !

I've reached out to @choldgraf and asked him to transfer creds. @andrii-i would you be willing to receive those permissions / credentials?

Those should be (i think?) in the 1passowrd until umbrella of social-media committee ?

  1. Pick a date (I suggest Oct 15, 2024)
  2. Draft a blog post saying we're trying out a new chat medium for 6 months to help make a decision. I would personally prefer we try Zulip first!
  3. If things have stalled until then, we just publish the blog post
  4. Re-evaluate in 6 months, and switch if we so desire for another 6 months. We can define what metrics we wanna evaluate by beforehand. Overall activity levels, both from prior members of the community and new members, would probably what we wanna measure?

+1 to move forward like this.

@andrii-i
Copy link
Contributor Author

I've reached out to @choldgraf and asked him to transfer creds. @andrii-i would you be willing to receive those permissions / credentials?

Thank you @yuvipanda. As @Carreau mentions credentials / ownership should ideally be transferred to Project Jupyter (and accessed through 1Password), not to the individual. Tagging @blink1073 as he is a member of both security and media workgroups and can hopefully advise on the best way to transfer ownership of jupyter.zulipchat.

@choldgraf
Copy link
Contributor

Hey all - I am happy to transfer ownership to whoever needs it. Agreed this should be managed by the community team. Please provide guidance on this (who / their Zulip credentials) or some other action you'd like me to take? Also I'll be more responsive if you e-mail me at <mygithubusername>@gmail.com because I have 5000 github notifications and they easily get lost.

@blink1073
Copy link
Contributor

Thanks, email sent!

@ivanov
Copy link
Member

ivanov commented Oct 1, 2023

forgot about another significant positive in Zulip's favor: there's no "app" to download. I just registered (using github SSO, there were a few other options also), and was lead to a fully functional website). With discord, you have to download their application, and that gets updated every couple of weeks, which is about the frequency I find myself using Discord, so every time I try to go into one of the chat "servers" on there, I end up having to wait for updates to finish, which isn't a great experience.

@Carreau
Copy link
Member

Carreau commented Oct 2, 2023

With discord, you have to download their application

To be fair you don't have to, I just logging from my phone's browser. It's just like many things they tell you that you must, but it's not true.

@fperez
Copy link
Member

fperez commented Oct 2, 2023

I just wanted to add my 2 cents as an individual Jupyter member, not in any official/EC capacity: for me, the existence of a fully functional public (i.e. non-gated via login like Slack/Discord/etc) archive is a really, really important consideration. I absolutely abhor how Facebook/Instagram sharply limit the use of the information in their network to non-logged-in readers and participants, and it's made me very sad to see how among other damage to Twitter, the same thing changed there recently (it now seems to gate almost all access, which didn't use to be the case).

Being able to access our ideas publicly (at least for reading) is a very important part of our participation in an open society, and it enables many things that are impossible the moment access gates are set up. So while in some narrow cases we may accept the tradeoff of a gated solution, the bar for that should be an extremely high one, IMO.

All to say that, especially in light of all the points made above (many thanks @jni @yuvipanda and others for specific ideas), I am far more enthusiastic about Zulip than Discord, at least to start.

Obviously Yuvi's comment stands: ultimately we need to use a tool people are actually willing to use, and if Zulip doesn't meet that test, then Discord (or other) may be necessary. But it seems viable to at least give Zulip a chance.

@choldgraf
Copy link
Contributor

choldgraf commented Oct 2, 2023

Just for transparency: I've given "ownership" access to the Zulip to @blink1073 and @Carreau.

I'm +1 on using Zulip and basically agree with all of @fperez's points.

And to @ivanov's point I agree as well. I like how Discourse's experience is "just a website" whether you're on a laptop, mobile, etc.

edit: I just logged into Discourse (EDIT) Discord for a different project and was reminded that every time I do so, I get some random upsell pop-up asking me to buy their Nitro subscription. In the long run I bet we will run into enshittification as it tries to monetize more. Zulip feels safer from this to me...

@jtpio
Copy link
Member

jtpio commented Oct 11, 2023

Just noticed the Jupyter Discourse has a Chat button at the top right of the page now:

image

Which leads to the following page: https://discourse.jupyter.org/chat

image

There doesn't seem to be any channel at the moment, so maybe that option was activated recently?

Not sure if it was already there before, but maybe that could also be an option to consider?

  • The Jupyter Discourse has been around for quite a while, and the community (users and developers) is quite active on it
  • Discourse is already deployed and administered, so there is no need to deploy something new and move the community somewhere else
  • It can be fully self-hosted
  • It's publicly accessible

Maybe it could be interesting to create a couple of channels for some of the Jupyter sub-projects, that we could use for day-to-day development and assess if it would be a good option?

@blink1073
Copy link
Contributor

I've created a JupyterLab channel for us to experiment with. Please let us know if any other subprojects would like to try a channel.

image

@jtpio
Copy link
Member

jtpio commented Oct 11, 2023

Thanks @blink1073!

Just tried it and the UX and feel look simple enough, and very similar to existing chat applications like Gitter or Discord:

image

If anyone would like to join to test this more, feel free, thanks!

@rawlins
Copy link

rawlins commented Oct 12, 2023

Just a thought, it might be useful to get community feedback also by having a regular post about this topic on the discourse instance, I'm not sure how much visibility this issue really has (I only found it accidentally as a result of googling to see if there's some other jupyter chat I was missing). Definitely looking forward to an alternative to the current situation, whatever it may be.

(Personally I'm a bit skeptical of discourse chat being a great general purpose solution, and I say this as someone who actually admins a (self-hosted) discourse instance. But I can't really say I've used it heavily, so this isn't entirely concrete. Also, maybe this is intentional, but whatever chat is enabled on the Jupyter discourse instance is maybe limited by trust level or something.)

edit: I just logged into Discourse for a different project and was reminded that every time I do so, I get some random upsell pop-up asking me to buy their Nitro subscription

This is mixing up discord and discourse, no? (which, completely fair going by just the names...)

@choldgraf
Copy link
Contributor

This is mixing up discord and discourse, no?

Oops you're totally right! I love discourse and the fact that it isn't always trying to upsell me, I meant Discord (will edit above).

re: using it for chat, I also share the same intuition that @rawlins does but feel like it's worth trying out and seeing whether people take to it. I'd suggest defining a few questions to answer / data points to collect that will help the org make a decision about the right platform, and then give a fixed amount of time (e.g. 2 quarters?) to see how it goes.

@pdurbin
Copy link

pdurbin commented Apr 29, 2024

Being able to access our ideas publicly (at least for reading) is a very important part of our participation in an open society

A thousand times yes!

I'm not sure if https://jupyter.zulipchat.com is being used or not, but if you create just one web-public channel, the login wall will go away for that channel at least!

@Carreau
Copy link
Member

Carreau commented May 2, 2024

https://jupyter.zulipchat.com/ should now show general and release as web-public.

@ericsnekbytes
Copy link
Contributor

ericsnekbytes commented Nov 20, 2024

Folks here can MAKE THIS WORK (a successful Zulip solution)...I know many of you, because you're already Jupyter core devs or community managers:

  • Make a FIRM CHOICE that Zulip is our solution
  • Official adoption sends a message to core contributors AND users that this is the place to go for chats
  • YOU (folks in this thread) need to do your part by:
    • Telling everyone in your respective circles (your users and the Jupyter contribs you work with) that Zulip is the official place to go for chats
    • Participate in Zulip yourself

If we SET A STANDARD for the project, and actually start using it, people will folllow. This also gets us around the privacy and commercial concerns of using a commercial solution like discord.

We should change the default Zulip view to "feed" so that users see a chat-style interface by default (as chat is the intended purpose and we are not looking to replace or supplant discourse, which should still exist). When we talk about Zulip, we should primarily discuss it as a chat service (despite some of its forum-like features, because again we're not trying to replace discourse).

EDIT: Apparently there's a setting for Zulip to create posts from email sent to a generated email account. This could improve accessibility for users who can send their chats in via email...

@Carreau
Copy link
Member

Carreau commented Nov 21, 2024

Bam, Done, and you are an admin on zulip now as you seem to know a lot about it.

@ericsnekbytes
Copy link
Contributor

ericsnekbytes commented Nov 21, 2024

Haha awesome, thanks 👍 I'll do a bit more research, but does anyone object in principle to switching to feed/chat style view by default?

(Edit) I'll set that tomorrow if I don't hear any feedback.

@Carreau
Copy link
Member

Carreau commented Nov 22, 2024

No objections; is someone is interested in handling even a tiny part of communication; I say let's them have their fun.

Better ask for forgiveness than permission I think is better in that sens.

(who is gonna make a zulip plugin for JupyterLab enabled by default ?)

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