GroupServer 15.03 — Rakı with an eye on history

Authors:Michael JasonSmith;
Contact:Michael JasonSmith <mpj17@onlinegroups.net>
Date:2015-03-31
Organization:GroupServer.org
Copyright:This document is licensed under a Creative Commons Attribution-Share Alike 4.0 International License by OnlineGroups.net.

Introduction

The major changes to GroupServer in the Rakı release include the rebuilt email processing sub-system, the ability to export posts, and internationalisation. You can get Rakı immediately.

Changes to GroupServer

The most extensive change in Rakı is the new email processing subsystem. In addition GroupServer can now export data, there have been further improvements to internationalisation, and the introduction of message relaying. Finally, there have been some minor code improvements.

Email processing

The components that process email coming into a GroupServer group, and sends email from the group, have been completely changed. This update closes Feature 387.

Receiving email is now handled by code that has been thoroughly unit-tested to ensure that it works with multiple character-sets and encodings. The checks to see if a message should be processed have been refactored and are now much more extensible, less coupled, and more cohesive, thanks to Bill Bushey.

The system for building the email message before it is sent has been totally rebuilt. Now the message is created using page-templates. This allows the techniques used to customise web pages in GroupServer to be used to customise email messages, including the prologue that appears at the top of every message, and at the bottom the file notifications and the footer.

The headers have been refactored to be more extensible. It is now easy to add to the headers, and to change the behaviour of a header. The Reply-to header, in particular, has changed to allow the default behaviour of a group to change between

  • Reply to the group,
  • Reply to the original author, and
  • Reply to both.

Finally, the sending of an email from a group has been tweaked. However, there should be no noticeable change.

Export data

GroupServer has long had the ability to import profile data using the Add people in bulk page, and import posts using the mbox2gs script. Now with the Rakı release GroupServer has the ability to export profiles and export posts.

Export profiles

The new Export members page allows an administrator to download a CSV file of all the profile information of the group members. The profile data is from the new profile.json view of a profile. The new Export members page closes Feature 4137.

Export posts

The new Export posts page allows an administrator to download an mbox file containing the posts (with attachments) made to a group in one particular month. By breaking the archive up like this the administrator is able to download all the posts in the most recent month and add it to an existing mbox archive of posts. The new Export posts page closes Feature 3594.

Improvements to internationalisation

The effort by Alice Rose to improve internationalisation support in GroupServer continues apace. GroupServer is now using Transifex to manage the translations. You can add translations, without needing to know any Python or HTML!

All the major components of GroupServer have internationalisation support. This includes the site homepage, the group page, the topic page, and the post page. Adding internationalisation support to the bulk of GroupServer closes Bug 81.

The translation effort is currently focused on French, German, and Spanish (with English being the default language). French is has the most complete localisation, thanks to the amazing efforts of Razique Mahroua.

Finally there is now a Translation guide included in the GroupServer documentation. Adding the new internalisation documentation closes Feature 4031.

Message relaying

Messages sent from a GroupServer group can fall afoul of email-servers that enforce DMARC policies. To overcome this GroupServer rewrites the From address: when necessary it replaces the From address with one constructed from the unique identifier of the profile of the author. This new address is known as the obfuscated address (see GroupServer 14.06 — Slivovica shots at sunset).

However, the rewritten From address has made it difficult to reply the author of the message — and this was particularly problematic when the default Reply-to for the group set to the author rather than the group .

Now, thanks to the work by Bill Bushey GroupServer will now relay on messages that are sent to an obfuscated address, closing Feature 4106.

Minor code improvements

  • The XML for the Email settings page has been updated.
  • The CSS that is used in the notifications has been fixed.
  • The code that makes up the Topics list on the group page, the Topic and topic digests has been refactored, closing Feature 3739.
  • The + character (and others) can now be used in email addresses, closing Bug 3915 and Bug 4036.

Get Rakı

To get Rakı go to the Downloads page for GroupServer and follow the GroupServer Installation documentation. Those who already have a functioning installation can update an existing GroupServer system.

Update an Existing GroupServer System

To update a system running the Calvados release of GroupServer (14.11) to Rakı (15.03) carry out the following steps.

  1. Download the Rakı tar-ball from the GroupServer download page.

  2. Uncompress the tar-ball:

    $ tar cfz groupserver-15.03.tar.gz
    
  3. Change to the directory that contains your existing GroupServer installation.

  4. Copy the new version-configuration files to your existing GroupServer installation:

    $ cp ../groupserver-15.03/[bdiv]*cfg  .
    
  5. In your existing GroupServer installation copy the configuration file to its new location.

    1. Make an etc directory:

      $ mkdir etc/
      
    2. Move the configuration file to the new directory:

      $ cp parts/instance/etc/gsconfig.ini etc/
      
  6. Run buildout in your existing GroupServer installation:

    $ ./bin/buildout -N
    
  7. Restart your GroupServer instance (see Starting and stopping GroupServer).