Title | Migration to the Zulip chat platform |
Status | Accepted |
Author(s) | Jaime Rodríguez-Guerra <[email protected]> |
Created | Oct 14, 2024 |
Updated | Nov 23, 2024 |
Discussion | #92, conda/communications#29 |
Implementation | NA |
The conda steering council is proposing to transition chat platforms from Element/Matrix to Zulip.
The conda ecosystem has used Gitter.im rooms (and then Matrix/Element) for a long time. conda/conda
and other repositories offered chat rooms in the platform, albeit with limited traffic if compared to other similarly scoped rooms like conda-forge
's. During 2022, more rooms were created a Matrix "Space" was registered under conda:matrix.org
to organize the otherwise unsorted collection of conda-related rooms.
However, the Matrix platform is not proving sufficient for the needs of the conda ecosystem, with features such as encryption and opt-in threads getting in the way of keeping track of conversations.
Element/Matrix offers a free to use real-time chat platform with web, desktop and mobile clients with end-to-end encryption messaging. Each community or space can create one or more rooms, public or private, to discuss different topics. Other features like videocalls, private messaging, and file sharing are available. Users can create a new account or log in with their Github credentials, among others.
However, it suffers from a few issues that limit its usability within our community. The main concerns are:
- End-to-end encryption fails sometimes, leaving the users unable to read previous messages, or have their messaged read by others. Synchronization of keys across clients is necessary to fix it, but in some other cases the issue has disappeared spontaneously.
- Some messages are considered unread for months at a time, and there's no way to find them and mark them as read.
- The thread system offers very limited ways of tracking conversations and making them discoverable. It's very difficult to follow on topics started hours ago, let alone days or weeks ago.
- Scoped discussions require a lot of discipline from the users, since threads are optional, and the real-time chat is preferred in the UI.
Zulip, on the other side, is a free to use, open source, real-time discussion board. It has web, desktop and mobile clients. Each community has its Zulip instance, where several "channels" can be created. Each channel hosts a number of threads or topics. Instant messaging is also available within the Zulip instance. Users can also create a new account or log in with their Github credentials, among others.
Zulip offers some features we would consider beneficial to the conda-forge community:
- Threads (or topics) are encouraged and the default user experience.
- Each topic must have a title that promotes well-scoped discussions, which can be marked as solved when the issue has been addressed.
- Moderation tools are available to split threads into new ones in case the conversation goes off-topic.
- Users can "follow" threads they find interesting, which has its own dedicated view. This makes it easier to track updates to conversations you have started or participated in.
- Private rooms are also available, but they don't offer end-to-end encryption. For this matter, a sensitive communications protocol is proposed below.
After accepting this proposal, we will implement the following decisions:
- The Zulip instance published at
conda.zulipchat.com
will be open to the public with world-readable permissions. - The steering council will move its private communications to the Zulip instance, and stop using the Element rooms. A last message will be published in the Element core chat room with the details on how to transition to the Zulip instance.
- New channels will be created in the instance as considered necessary (e.g. tool-specific channels, CEP discussions, etc).
Three months after the approval of this CEP, the steering council will consider the migration finished and the public rooms will become private and archived. If the steering council estimates that there's still sufficient activity, another three months will be granted, with periodic reminders of the new Zulip instance. After that period, no more extensions will take place.
The community also suggested moving to Discord. However that was discarded given its closed-source nature, handling of the messages there exchanged, and the need of a Discord account. A broader scope discussion can be found at conda/communications#29
.
All CFEPs are explicitly CC0 1.0 Universal.