Announcing upstream changes

Some months ago @Bodigrim posted this on the GHC GitLab instance:

my impression is that GHC team operates under an unwritten assumption that maintainers of core libraries closely follow GHC developments and react proactively. This might have been the case with the previous generation of maintainers, but no longer is true. For the record, I do not follow GHC GitLab, do not read ghc-devs maillist, do not use IRC.

It came to my attention today (out of luck, really). But I think this is a really good point, and one we should pay attention to. Speaking for myself, I have implicitly been under that assumption, though now reading it made explicit, it’s a bit silly.

Without question, GHC and its core libraries will make breaking changes from time to time. I think this is a Good Thing, because it’s a witness to the growth of new ideas. How should we communicate them?

One opportunity and challenge in the Haskell ecosystem is that our means of communication have become much, much more diverse lately. When I started Haskell in 2011, mailing lists were the place to be… indeed about the only place to be. However, since then, a great number of other places to be have sprung up, and this means that communication has become harder. (Of course, all the new places to be have some great benefits – chiefly, that different spaces appeal to different personalities, and thus their existence enriches our community with diversity.)

That said, we probably should agree on some least-common-denominator place for major announcements, etc. If a change requires posting on 10 different platforms, the announcement simply will be skipped. But I think we can be persuaded to choose a place other than the mailing lists – maybe even 2 such places, if there is significant added benefit to the cross-post.

Here, Discourse, seems like a reasonable candidate. (We would probably make a new Category… but maybe not.) It’s accessible to us curmudgeons who love email. I’ve seen impassioned arguments in favor of Discourse from folks who don’t like email, so that’s a point in its favor. It’s open source. But maybe there’s still something better?

Just to restate: my goal is to establish a place where people can subscribe to communications. These communications will include advance notice of big changes to central parts of our ecosystem. By having ideally one such place, both readers and writers of such communication can find each other and, well, communicate.

3 Likes

Just as a counter-thought. I think the multiple platforms is not so much the issue. Copy-pasting a link every 6 months in each of say 10 channels (reddit, discourse, slack, IRC…) should take less than 10 minutes. It might even be possible to auto-post such updates if the task ends up being unmanageable. I think the issue here is that the posted link should post somewhere where lots of people can comment, and each hyperlink should have comments disabled. I think this is important so as to ensure that conversation is congregated, instead of having 1 dead thread on each platform.

For example, a new release comes out. A blog gets written up on announcement_haskell_website.org. That link gets posted to Discourse with a blurb that gives a summary. Then that Discourse link is posted on each of reddit, slack…

The issue is that now each person has to click two links coming from reddit, but now everyone knows “ah the place to be is Discourse or announcement_haskell_website”. I think that’s the right trade-off. Users will still know about the announcement, but the preferred platform is obvious and users can migrate there if they feel like it.

As to which platform to use… I think email is an awful idea, perhaps I’m just too young but email is reserved for spam and account verifications (I jest). I think the best places are reddit and discourse (perhaps this is just personal bias?) because those are the most outward facing and popular I think. But on the other hand, advertising breaking changes could be reserved to just Discourse?

By they way, this would be great to integrate with https://github.com/haskellfoundation/haskellfoundation.github.io since having a rolling set of breaking changes is imo a good thing. I think often someone will want to upgrade GHC versions on an old package and having a single place to get feelers about the ecosystem is a very productive.

So in sum, I think:

  1. Post to multiple channels but enforce communication on one so that the commuity is pushed to one place (pick your poison; I think Discourse seems the best option). Link to the external site on that one platform, with other platforms (e.g. slack) linking to Discourse.
  2. Have a rolling set of breaking changes recorded on haskellfoundation or some such website.
1 Like

As a counter counter proposal, I think it’s better to announce in one official spot, then let the different technology communities have their own discussions in the way the feel most comfortable doing so. :slight_smile:

E.g. on Reddit, invariably somebody will see the official announcement and post a link. Reddit-flavored discussion will then ensue. The same will be true on lobsters, hacker news, and (every other site, including the ones that don’t exist yet).

Attempting to centralize all discussion is futile! Better to let it live its own life wherever it can.

2 Likes

From a distro/package set maintainer point of view a list of important breaking changes would not only be helpful in advance but also for historical reference. When you see an error with e.g. “MonadFail” you can hopefully easily lookup in which software and which version the MonadFail change was, which leads you one step closer to understanding how and when something broke and how to possibly fix it. (Although the truth is that you quickly start memorizing the most annoying changes when you do this for a while …)

1 Like

Data point: I follow https://haskell.pl-a.net/ with some regularity (I’m also subbed to all the mailing lists and various other communities, but I often get behind). If that also aggregated ghc-devs (maybe even with a filter for subjects like “BREAKING”), that might be a nice avenue for getting such notices out there.