Moving the core-mentorship mailing list to a Discord channel

A few weeks ago, I sent an email to everyone who had posted an introduction to the core-mentorship mailing list in the previous few months. For those unfamiliar with the list, people who join are instructed to send a short message about themselves.

I received quite a few replies. In general, everyone was still excited and enthusiastic about contributing to CPython. I helped a few people land their first commit; some are still around, while others have moved from CPython development to documentation translations.

In each email, I asked a few questions. As a result, I learned quite a lot myself and even made a few changes to the Devguide (for example python/devguide#7277209ad0c4).

However, one of the sadder things I learned was that none of them had received any responses from the mailing list beyond the introductory email. Several people asked whether there was a Discord channel they could join. Currently, there isn’t an open channel focused on contributing to CPython. There is a Discord for Core Team members, but it’s private and I don’t think we can open it. There’s also the big Python Discord, which has a channel for internals, but I think it’s too busy and not focused enough.

As such, I’d like to propose creating one. I’m happy to set it up and maintain it, although I wouldn’t mind a few helping hands. :wink: However, the channel may meet the same fate as the mailing list if some of my fellow core team members don’t join.

I’d like to create a focused space where contributors can ask questions and get the answers they need. One benefit of Discord’s “live chat” format is, in my opinion, that it makes it easier to ask small questions. I’ve also seen this work quite well in the LLVM Discord.

The mailing list is fairly quiet. As a moderator, I know that a few people join each week, but ultimately only one or two send an introduction each month. I think Discord’s format (where newcomers can see previous messages and ongoing activity) may be more encouraging and could lead to more interaction among contributors of all kinds.

I also spoke with Ethan and learned that one of the original reasons for making the mailing list semi-private was to provide a safe space to ask “silly” questions. I think we could recreate that on Discord by having a filtering phase when someone joins. I also know that some people here have raised concerns about Discord’s poor search and historical archive capabilities, which would be particularly useful in this context. :laughing:

I’d love to hear people’s thoughts on this idea!

CC @stoneleaf

12 Likes

Yes! I would love that!! I am trying to get more active with contributions and this would help me out a ton!

Recently I have been having some questions about PR etiquette, how to show interest without being pushy or annoying, how to pick area of expertise, how to help others and this would personally help me out a lot!

I signed for the mailing list but never got an email back asking to introduce myself (would’ve loved to otherwise), I don’t know if that might’ve been the case for others

I originally joined because I wanted to learn more about mentorship’s, how do they work, how to get one, etc

3 Likes

@Stanfromireland I think that moving to a Discord channel or dpo would be better than the core mentorship mailing list. I think the core mentorship list served a purpose when we were not using Discord and dpo or GitHub for the repos. I think sunsetting the mailing list makes good sense.

2 Likes

I’ll preface this by saying I’m not involved with the mentorship process in any capacity, so this is just an outsider perspective.

That said, I would suggest caution in shifting important functions to a platform like Discord that is outside the control of the PSF/Python core team. Discord is showing signs of enshittification and will likely continue down that path. More concretely, you have things like this recent incident in which thousands of users were banned for posting things like images of chessboards, due to bugs and process failures in Discord’s moderation system.

There’s simply no telling what might happen on Discord; they could change their policies or how their software works overnight. Such occurrences parallel recent dissatisfaction with Github[1] among some open source projects. Both cases highlight the risks of putting a bunch of eggs in an externally-hosted basket run by a for-profit corporation which might at any moment decide it’s better for their bottom line to remove whatever feature you happen to depend on most.

There are alternatives which are worth at least exploring, such as Matrix chat or Zulip. (The conda community formerly had a Matrix chat and a Discourse forum but sunsetted those a while back and switched to Zulip.) A lot of these come with their own problems. My point is just that Discord does too.

I use Discord myself and it has plenty of positive aspects. I’d just say, first, that it’s good to have some kind of backup plan (like maybe not sunsetting the existing mailing list); and second, that ideally such a question can be approached not as “should we switch from X to Y” but “what are all the available options and which one do we think is best”. If in the end that’s Discord, okay, but let’s just be sure we understand the totality of the pros and cons of that.


  1. e.g., intrusive pushing of AI tools, uncertainty about whether repos will be used to train AI tools ↩︎

Hello Brendan,

Thanks for raising these concerns! I agree that Discord has some significant drawbacks.

My main goal with this proposal is to address the lack of interaction on the mentorship list and bring new contributors into closer contact with core team members. I’d prefer not to let the discussion become primarily a comparison of every available chat platform, although I agree that we should understand the main alternatives and their trade-offs.

There are currently discussions about extending the existing CPython Discord server, so we may not need to create and maintain a separate server at all. That would also make it easier to involve core team members, since most of them are already there.

There have been several occasions when someone emailed core-mentorship about contributing to a specific area, such as performance, and I then relayed their question to the relevant channel in the CPython Discord. If core-mentorship had a presence there, that process would be much easier (and ideally contributors could connect with the right people directly so I’d have a lot less work to do;-).

My practical concern with Matrix or Zulip is the additional barrier to entry. Discord already has a large user base, whereas asking both newcomers and core developers to join another, potentially unfamiliar service may reduce participation. That doesn’t make Discord ideal, but I think it is relevant when the central problem is engagement.

I’m also not suggesting that we immediately eliminate the mailing list or move any essential project functions exclusively to Discord. We could treat this as an experiment, keep the list available, and reassess once we have some experience with the new space. At the same time, because our moderation and mentorship resources are limited, I think we should avoid permanently splitting active support across several places.

It is also worth noting that, as far as I remember, archiving and unarchiving a mailing list is fairly straightforward for the Mailman admins.

So I agree that Discord has risks and that we should go into this with our eyes open. My current view is simply that it offers the best chance of meaningful participation from both contributors and core developers.

2 Likes

Rather than Matrix/Zulip, would a category on dpo be a reasonable alternative to Discord (as already suggested by Carol)?

Sure, dpo doesn’t have as large a user base as Discord, but surely most people interested in core mentorship have (or should get!) a dpo account anyway, so it’s not as large a barrier to entry?
It also makes it easily found by new contributors exploring dpo, increasing awareness.

The disadvantage being that dpo doesn’t have live chat, and thus seems more formal. But there’s still a bunch of questions asked here in Python Help every day, so maybe this isn’t a massive issue?

3 Likes

Discourse has chat, you can see it on meta.discourse.org and try.discourse.org.

The component in question seems to be this?

3 Likes

I don’t think the question is “would it be better for new contributors?” The right question to ask is “will it attract potential mentors?” Back when python-dev was still the core developers’ main channel and other lists were quite active, new contributors were posting not only self-introductions but also their “itches” (what they wanted to contribute). Typically they’d get some feedback, often on “non-starter” ideas and why not or how to make them more pythonic. Then senior devs including GvR himself would pick up one or two interesting people, communicate privately (as is appropriate for mentorship) about a couple of projects, and propose the contributor for core. I suspect some of that energy is now being taken up by paid internship programs such as Summer of Code, although the last time I looked the PSF sub-org wasn’t huge and it also funded projects on PyPI and other infrastructure, so maybe the energy has just waned.

It pains me to see the lists go away, as a core GNU Mailman dev. But if it provides a more active space for new developers, that’s to the good. That should not be confused with promoting mentorship relations between current core devs and potential candidates for core. For example, Stan mentions the existing Python Discord server where core devs already participate. IMHO strenuous effort should be made to locate a channel there, rather than creating a new server. Consider carefully how the new channel can be crafted to encourage durable mentorship, vs. drive-by helpful comments that don’t blossom into a relationship.

1 Like

Hi Carlos and @mfile_bay,

Discourse Chat does look interesting, but it’s still under development and isn’t recommended for production use. I’m not particularly enthusiastic about beta testing it here.

I’m also not sure how we’d manage access to ensure only mentors and mentees can view conversations, and I’d rather not increase the moderation team’s workload by introducing another system that still appears to be evolving.

I’m also concerned that we’d have a harder time attracting core devs to participate. Many are already on Discord, whereas I suspect far fewer regularly use Discourse Chat. If we want mentors to be available, meeting them where they already are seems like the better approach.

3 Likes

I completely agree that attracting mentors is just as important as making things easier for new contributors. If we only improve the experience for mentees without increasing mentor participation, we’ve only solved half the problem.

Unfortunately many core developers have forgotten about the list, and so there’s little activity from the mentor side. Whenever someone presents an “itch” I try to connect them with the relevant core devs. That’s one of the reasons I’m looking to create a channel in the existing CPython (note, I’m not referring to the large public Python server) server, rather than creating a brand new one, as most of the core team is already a member. Internally some people have had concerns, however based on an ongoing vote most are in favour. Every additional server is another place people have to remember to join, monitor, and engage with.

When we ran GSoC, mentees were added to the CPython Discord, but we aren’t in the program this year.

I also agree that we should think carefully about how the channel is structured so it encourages longer-term mentoring relationships, rather than simply becoming another place for drive-by Q&A. In the CPython Discord we already have channels specifically for various efforts to which we could selectively add external contributors.

(Sorry if I missed something, I’m replying on mobile so it’s a little difficult.)

1 Like

No, nothing missed. I just wanted to make sure you solicit core dev opinion. Reviewers and mentors are always in short supply. Senior devs love design and coding too!

1 Like