[RFC] TVM Community Chat Platform

According to the Apache Software Foundation “Community Led Development: The Apache Way” guidelines, there are several options available for communication amongst a community:

Communication is via mailing lists. These are “virtual meeting rooms” where conversations happen asynchronously, which is a general requirement for groups that are distributed across many time zones (as is normally the case for Apache communities).

Some projects additionally use more synchronous messaging (for example, IRC or instant messaging). Voice communication is extremely rare, normally because of costs and the language barrier (speech is harder to understand than written text).

In general, asynchronous communication is important because it allows archives to be created and it’s more tolerant on the volunteer nature of the various communities.

The primary method for communication within the Apache TVM project is through the Discuss forums and mailing list, fulfilling the preferred method of asynchronous communication. However, within the community there are instances where more synchronous “chat in the hallway” style of communication can aid in working through troubleshooting or feature design. To this end we’ve started monthly community meetings, however the frequency and and video format remains a barrier for higher bandwidth and more frequent communication. In an effort to find a solution in the middle, this is a proposal for the introduction of an official chat platform for the Apache TVM community. The purpose of this chat platform is to facilitate synchronous high bandwidth design and troubleshooting between contributors and users. In contrast to the Discuss forums and mailing lists, where all official decisions and discussions for the project must still be communicated, a chat platform will allow for a non-archived “hallway conversation” style of communication.

There are a number of different options for the community to consider:

Slack: This is a proprietary chat system, which the community will need to find a financial sponsor for to enable features to make the platform worthwhile. It has the advantages of wide adoption with strong integrations for managing community health. It has the disadvantages of being closed source, and a number of communities are moving away from it because of rising costs associated with maintaining it.

Discord: This is a proprietary chat system, that is free for communities with the option for individuals to upgrade to extra features. It has the advantage of wide adpotion with a number of additional features for improved synchronous communication, including voice and streaming. Its primary disadvantage is that it is closed source.

Microsoft Teams: Another proprietary chat platform that is free. Advantages include wide adoption and extensive video conferencing tools. Primary disadvantages are that it is closed source, and not as well adopted by open source communities.

Gitter: Gitter is an open source chat platform developed and maintained by GitLab. Gitter is free for all public and private conversations. It has the advantage of being open source, and integrates with Matrix. Disadvantages include that it is not as widely adopted as other platforms, and the MVC development model may leave many features partially implemented or unstable.

Mattermost: This is an open source chat platform, with an aim of replacing Slack functionality. It has the advantage of being open source. The disadvantage is that it is not widely adopted, and is expensive to host as a SaaS (more expensive than Slack), with an alternative being self-hosted (with the cost of management and administration).

After reviewing the different options, the recommendation is to pilot either Discord or Gitter as community chat platforms. The purpose of this thread is to open this up the community for discussion, with the goal of making a decision on a platform to pilot before the end of the month.

2 Likes

I would like to propose one thing that we need to consider whether this platform have mobile apps or not; Another thing is whether this platform is good to access from anywhere. For example, in China, it is not all platforms can be accessed. :slight_smile:

1 Like

Just want to make the remark on the communication medium

The best way to make the discuss accessible to different time-zone and people is still the asynchrous medium. That is why even with the (optional) chat, we would expect all design discussions, decisions and question support continue to happen in the forum(archived to a mail-list).

So any volunteers can participate in the development effectively through asynchrous medium without participate in the chat. As per apache way – everything happens (also) happens on a list. So if a person stops watching the community for a bit then come back, they should be able to catch up the development through the async medium.

Of course “hallway style chats” are also effective ways to faciliate development, as long as the discussions are bought back to the async medium.

Do you have any insight into which platforms are accessible from China?

All of the platforms listed above have mobile apps available.

As far as I know, only Discord is blocked in China.

Thanks for clarifying. Besides Discord, as far as I know, Slack login also have problem in China. In fact, these options I think Microsoft Teams maybe have the best network experience in China. But Gitter is okay too.

Hey folks, OctoML Octonaut here, heard about this thread and wanted to offer my thoughts. Some context: I was/am a maintainer for an OSS project (GitHub - typelevel/cats: Lightweight, modular, and extensible library for functional programming.) that used Gitter for the past several years that recently switched to Discord. I see some concerns that may rule out Discord altogether were noted above so I’ll just focus on issues we had with Gitter.

  • Since being acquired by GitLab development/stability seems to have stagnated (though it seems GitLab has recently sold Gitter to Element now…)
  • Mobile apps are shoddy
  • Difficult to do discovery of different “channels” / no discovery features
  • Difficult/sluggish UI/UX, especially for beginners

The aforementioned OSS project has since moved to Discord, (slightly) more info on our reasoning here: Typelevel.scala | Discord Migration

As a quick note I am a happy Discord user and it does not exhibit any of the above problems.

3 Likes

From the general community adoption’s PoV seems that discord is indeed a popular choice. For example, both rust and LLVM community chooses discord. Perhaps one thing we can do is to also allow local groups(e.g. a lark, qq or wechat group) besides the community chat. Given the chat is considered non-archival so this might be fine as long as majority of developments always happens in the forum which is accessible to everyone.

3 Likes

I’d like to set up a pilot platform for the community to test out. To help me understand the overall preferences of the community, can you please choose one of the options listed below? I’ve left Slack and Mattermost out because cost makes them a non-starter.

  • Discord
  • Gitter
  • Microsoft Teams

0 voters

With the overwhelming number of votes for Discord, we are going to pilot a new community server on that platform. You can join the server using this invitation link. If you run into any issues, have suggestions for channels, or run into technical problems, please don’t hesitate to reach out to me. Thanks everyone!

It’s been about a week since we launched the new TVM Community discord server. The server will pilot for two more weeks, after which we will again seek feedback from the community about if we should continue using it for synchronous, nonofficial discussion. After that time period if the community decides to continue with the Discord service the other unofficial (and poorly advertised) chat platforms (the TLCPack Slack and TVM Conf Zulip server) will be shut down.

It’s been a few more weeks since the TVM Community Discord Server launched. It appears that the system has a modest amount of usage, and I’d like to propose that we shut down the old services in favor of the Discord server. If you have any objections to this, please respond to this thread with your objections and alternatives.

3 Likes