August 14, 2018·4 min read·engineeringnixcommunitycollaboration

NixOS moves development discussion to Discourse

Replacing nix-devel with Discourse changes the shared discussion venue while leaving archive import and email participation as distinct practical concerns.

Moving discussion to a new service does not automatically move the knowledge in the old one. The August 14 NixOS announcement says Discourse replaces the nix-devel mailing list and remains usable through email. Earlier contributor discussion about importing archives shows a separate question already receiving attention. New participation and access to historical discussion are related, but they require different work.

The archive-import thread started in April asks for old posts to remain searchable. Contributors discuss whether the hosted instance can accept an import, how to locate archives, and how to prevent imported messages from reaching subscribers again as fresh mail. Those are concrete constraints on preserving continuity during a communication-service change.

I regard accessible technical discussion as part of what makes a declarative system maintainable. The configuration tells a user what a machine should do, but understanding why a module behaves that way can require the argument that produced it. A new discussion venue is more useful when it preserves the ability to find that reasoning as well as to ask another question.

Hosting constrains the migration mechanism

In the May discussion, a contributor explains that the free hosted Discourse instance does not provide command-line access for performing an import. A quoted support response offers provider-run migrations on a different paid plan. Self-hosting appears as another possibility. These comments describe the available operational choices at the time, rather than a universal limitation of the forum software.

This distinction is useful because an import guide can assume capabilities that a particular deployment does not expose. A command-line migration procedure does not directly solve a hosted-service problem when the administrator cannot run it. The discussion turns towards importing through the API, which would use an interface the deployment makes available.

The participants propose separate scripts for the mailing-list archive and the Google Group. They also propose testing against a local instance before the production import. That division reflects distinct source histories. Having one destination does not guarantee that each source uses the same format or can be processed with identical tooling.

One contributor later describes a repository intended to document the complete import procedure and hold custom tools. The same May message reports locating nixos.org archives for 2004 through 2017. That is evidence of work towards an import, not evidence that the complete history has already appeared in the destination. The August announcement itself does not claim a completed archive migration.

Imported history should not become new mail

Email participation creates an additional requirement for historical import. A participant explicitly worries that enabling mailing-list mode and importing old messages could resend the archive to subscribers. The thread discusses disabling mail during import and using the service API. The concern is about the effect of writing history into a system that also distributes new activity.

That is a distinct correctness condition from copying the text. An import could preserve every message while still causing a disruptive stream of notifications. Preserving history includes maintaining its historical role, so readers can search it without every subscriber receiving it as a newly posted conversation.

It also illustrates why a communication migration needs an account of side effects. A message is content in the archive, but a new message can be an event for notification machinery. An importer needs to know which interpretation the destination applies to its writes. The contributors identify that problem before treating an API-based procedure as automatically sufficient.

The announcement says the new venue is usable by email, but it does not specify every subscription default or claim complete equivalence with a mailing list. Those details should not be invented from the brief statement. The supported conclusion is that email remains an available participation method while the forum becomes the shared venue.

Patch submission has an email route

The Patches category description published in July describes another aspect of participation. It is reserved for contributors who want to submit patches without creating a GitHub account. Its instructions ask senders to register their email address with the forum and send patches to the category email destination, then wait for a contributor to review and apply them.

That route distinguishes a discussion account from an account on the repository hosting service. A contributor still identifies a sender address to the forum, but does not need to make a GitHub account merely to present a patch through this channel. The description points to Git email tooling for formatting and sending patches.

The published instructions do not say that sending mail merges a change automatically. Review and application remain contributor work. The forum supplies a submission route and a place where the patch appears, while the repository change has its own acceptance step. That distinction matters when assessing what the new venue changes about contribution.

I prefer this concrete account to treating a forum migration as a general claim of greater openness. A named patch route and a documented sender requirement tell a prospective contributor how participation works. They make it possible to assess the actual account boundary without assuming every possible workflow is supported.

Discussion continuity has several requirements

The August decision establishes the destination for development discussion. The earlier threads describe work needed around it, including historical retrieval, hosted-service permissions, and the notification effects of import. Patch-category instructions add a specific route for presenting changes. These sources describe separate mechanisms rather than one completed migration feature.

For a project user, the immediate change is where new development discussion belongs. For somebody investigating an older decision, the question is whether the relevant archive remains available and searchable. A patch sender needs the submission to arrive where a contributor can review it. Replacing nix-devel with Discourse changes the shared venue, while each of those practical requirements still has its own documented process.

The import discussion supplies no basis for assuming every historical message has already transferred. Keeping that uncertainty explicit avoids directing a reader to search the new forum for material whose import the cited sources only propose.