File: //usr/share/doc/python3-django-postorius/html/news.html
<!doctype html>
<html class="no-js" lang="en" data-content_root="./">
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="prev" title="Deployment" href="deployment.html" />
<!-- Generated with Sphinx 7.2.6 and Furo 2023.09.10 -->
<title>News / Changelog - Postorius 1.3.10 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b76e3c8a" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=0f5ed9ba" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=e61b947c" />
<style>
body {
--color-code-background: #eeffcc;
--color-code-foreground: black;
}
@media not print {
body[data-theme="dark"] {
--color-code-background: #202020;
--color-code-foreground: #d0d0d0;
}
@media (prefers-color-scheme: dark) {
body:not([data-theme="light"]) {
--color-code-background: #202020;
--color-code-foreground: #d0d0d0;
}
}
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024">
<path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 0 0 0 13.8z"/>
</svg>
</symbol>
<symbol id="svg-menu" viewBox="0 0 24 24">
<title>Menu</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-menu">
<line x1="3" y1="12" x2="21" y2="12"></line>
<line x1="3" y1="6" x2="21" y2="6"></line>
<line x1="3" y1="18" x2="21" y2="18"></line>
</svg>
</symbol>
<symbol id="svg-arrow-right" viewBox="0 0 24 24">
<title>Expand</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-chevron-right">
<polyline points="9 18 15 12 9 6"></polyline>
</svg>
</symbol>
<symbol id="svg-sun" viewBox="0 0 24 24">
<title>Light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="feather-sun">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</symbol>
<symbol id="svg-moon" viewBox="0 0 24 24">
<title>Dark mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-moon">
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
<symbol id="svg-sun-half" viewBox="0 0 24 24">
<title>Auto light/dark mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<circle cx="12" cy="12" r="9" />
<path d="M13 12h5" />
<path d="M13 15h4" />
<path d="M13 18h1" />
<path d="M13 9h4" />
<path d="M13 6h1" />
</svg>
</symbol>
</svg>
<input type="checkbox" class="sidebar-toggle" name="__navigation" id="__navigation">
<input type="checkbox" class="sidebar-toggle" name="__toc" id="__toc">
<label class="overlay sidebar-overlay" for="__navigation">
<div class="visually-hidden">Hide navigation sidebar</div>
</label>
<label class="overlay toc-overlay" for="__toc">
<div class="visually-hidden">Hide table of contents sidebar</div>
</label>
<div class="page">
<header class="mobile-header">
<div class="header-left">
<label class="nav-overlay-icon" for="__navigation">
<div class="visually-hidden">Toggle site navigation sidebar</div>
<i class="icon"><svg><use href="#svg-menu"></use></svg></i>
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">Postorius 1.3.10 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
<button class="theme-toggle">
<div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
<svg class="theme-icon-when-auto"><use href="#svg-sun-half"></use></svg>
<svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
</button>
</div>
<label class="toc-overlay-icon toc-header-icon" for="__toc">
<div class="visually-hidden">Toggle table of contents sidebar</div>
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
</label>
</div>
</header>
<aside class="sidebar-drawer">
<div class="sidebar-container">
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">Postorius 1.3.10 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
<input type="hidden" name="check_keywords" value="yes">
<input type="hidden" name="area" value="default">
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="setup.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">Development</a></li>
<li class="toctree-l1"><a class="reference internal" href="deployment.html">Deployment</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">News / Changelog</a></li>
</ul>
</div>
</div>
</div>
</div>
</aside>
<div class="main">
<div class="content">
<div class="article-container">
<a href="#" class="back-to-top muted-link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"></path>
</svg>
<span>Back to top</span>
</a>
<div class="content-icon-container">
<div class="theme-toggle-container theme-toggle-content">
<button class="theme-toggle">
<div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
<svg class="theme-icon-when-auto"><use href="#svg-sun-half"></use></svg>
<svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
</button>
</div>
<label class="toc-overlay-icon toc-content-icon" for="__toc">
<div class="visually-hidden">Toggle table of contents sidebar</div>
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
</label>
</div>
<article role="main">
<section id="news-changelog">
<h1>News / Changelog<a class="headerlink" href="#news-changelog" title="Link to this heading">#</a></h1>
<p>The Postorius Django app provides a web user interface to
access GNU Mailman.</p>
<p>Postorius is free software: you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, version 3 of the License.</p>
<p>Postorius is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
General Public License for more details.</p>
<p>You should have received a copy of the GNU Lesser General Public License
along with Postorius. If not, see <<a class="reference external" href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.</p>
<section id="news-1-3-10">
<span id="id1"></span><h2>1.3.10<a class="headerlink" href="#news-1-3-10" title="Link to this heading">#</a></h2>
<p>(2023-10-21)</p>
<section id="fixes">
<h3>Fixes<a class="headerlink" href="#fixes" title="Link to this heading">#</a></h3>
<ul class="simple">
<li><p>Fix min dependency requirement of django-mailman3 to 1.3.10. This
was missed in the previous 1.3.9 release.</p></li>
</ul>
</section>
</section>
<section id="news-1-3-9">
<span id="id2"></span><h2>1.3.9<a class="headerlink" href="#news-1-3-9" title="Link to this heading">#</a></h2>
<p>(2023-10-21)</p>
<ul class="simple">
<li><p>Honor per-list member roster visibility options (Closes #369)</p></li>
<li><p>Migrate to Bootstrap 5. (See !769)</p></li>
<li><p>Add ability to delete a user from the Users page (Closes #543)</p></li>
<li><p>Django 4.2 support</p></li>
<li><p>Make Postorius more usable with Javascript disabled. (Closes #544)</p></li>
</ul>
<section id="ui">
<h3>UI<a class="headerlink" href="#ui" title="Link to this heading">#</a></h3>
<ul class="simple">
<li><p>Use RFC 2047 decoded user names in the confirm_token view. (Fixes #564)</p></li>
<li><p>Fix issues with the mobile site after Bootstrap 5 upgrade. (Fixes #572)</p></li>
<li><p>A new SHOW_ANONYMOUS_SUBSCRIBE_FORM setting can be set to False to not
display the form on list’s info pages. (Fixes #576)</p></li>
<li><p>Changed ‘Login’/’Logout’ to ‘Sign In’/’Sign Out’ for better
consistency between Postorius and HyperKitty. (Fixes #542)</p></li>
<li><p>Display Moderation Action None as List default in members view. (Fixes #577)</p></li>
<li><p>Clarified which settings on the Alter Messages view depend on Filter content.
(Closes #584)</p></li>
<li><p>The Mailing list’s dmarc_addresses attribute can now be viewed/set in
Postorius. (Closes #585)</p></li>
</ul>
</section>
<section id="a11y">
<h3>A11y<a class="headerlink" href="#a11y" title="Link to this heading">#</a></h3>
<ul class="simple">
<li><p>Do not mark the List navigation as “tablist” since they are just using
tab like style but aren’t true tabs as the page refreshes. (Closes #491)</p></li>
<li><p>Remove successfully subscribed addresses from the form when the page
returns in the mass-subscription page. (Closes #494)</p></li>
<li><p>Add a label for the checkbox in the Held messages list page. (Closes #501)</p></li>
<li><p>Redirect to the right page when submitting on un-subscription request
and pending confirmation requests. (Closes #482)</p></li>
<li><p>Use white hamburger lines and white logo for better contrast with blue top
bar. (Closes #569)</p></li>
<li><p>Use nav-pills and change role from tablist to navigation with an aria-label
to specify the navigation intent. (See #492)</p></li>
<li><p>Remove redundant table cell announcements from Mailman Settings page so the
field name isn’t read twice. (Fixes #503)</p></li>
<li><p>Add aria label for all options that are set as ‘—-’ to be unset. (Fixes #504)</p></li>
<li><p>Move the focus when the search box when the Member page page loads after
a search. This saves some time navigating down to the list of
search result members. (Fixes #506)</p></li>
</ul>
</section>
<section id="other">
<h3>Other<a class="headerlink" href="#other" title="Link to this heading">#</a></h3>
<ul class="simple">
<li><p>Removed polyfills for Internet Explorer (Closes #570)</p></li>
</ul>
</section>
</section>
<section id="news-1-3-8">
<span id="id3"></span><h2>1.3.8<a class="headerlink" href="#news-1-3-8" title="Link to this heading">#</a></h2>
<p>(2023-01-04)</p>
<section id="id4">
<h3>UI<a class="headerlink" href="#id4" title="Link to this heading">#</a></h3>
<ul class="simple">
<li><p>The buttons and confirmation page for removing members have been revised in
an attempt to reduce accidental removal of all members. (Fixes #545)</p></li>
<li><p>Add bounce score for members in the Members table (See #12)</p></li>
<li><p>Add support for Python 3.11.</p></li>
</ul>
</section>
</section>
<section id="news-1-3-7">
<span id="id5"></span><h2>1.3.7<a class="headerlink" href="#news-1-3-7" title="Link to this heading">#</a></h2>
<p>(2022-10-22)</p>
<ul class="simple">
<li><p>Fix a bug where various form(s) allowed setting empty values for
<code class="docutils literal notranslate"><span class="pre">delivery_mode</span></code> and <code class="docutils literal notranslate"><span class="pre">language</span></code>. (Fixes #540, #522)</p></li>
<li><p>Rename labels description and info fields as ‘Short Description’
and ‘Long Description’ to signify what they mean. (Fixes #510)</p></li>
<li><p>Use <code class="docutils literal notranslate"><span class="pre">date</span></code> to format the dates in ‘List Metrics’ section in the
List summary page. (Fixes #508)</p></li>
<li><p>Sort the list of languages in all Select elements alphabetically
so they are easier to naviate with screen readers. (Fixes #498)</p></li>
<li><p>Add support for Django 4.0</p></li>
<li><p>A couple of unit tests are now marked expectedFailure due to
<a class="reference external" href="https://gitlab.com/mailman/mailman/-/merge_requests/997">https://gitlab.com/mailman/mailman/-/merge_requests/997</a>. (See #548)</p></li>
<li><p>Translate template names in the “New Templates” page (See #547)</p></li>
<li><p>Translate the section names in the MailingList->”Settings” tab. (See #550)</p></li>
<li><p>Add support for Django 4.1</p></li>
<li><p>Add support for Python 3.10</p></li>
<li><p>Remove support for Django < 3.2</p></li>
<li><p>Remove support for Python < 3.7</p></li>
<li><p>Replace the use of mock with unittest.mock</p></li>
</ul>
<section id="id6">
<h3>UI<a class="headerlink" href="#id6" title="Link to this heading">#</a></h3>
<ul class="simple">
<li><p>Change the way role is selector in the List index page to allow use of the
filtering without javascript enabled dropdowns. It also enhances usability by
enabling the roles that are currently active by default. (See #544)</p></li>
<li><p>Show the number of files in each Mailman queue under ‘System Information’
tab for Admins. (Fixes #480)</p></li>
</ul>
</section>
</section>
<section id="news-1-3-6">
<span id="id7"></span><h2>1.3.6<a class="headerlink" href="#news-1-3-6" title="Link to this heading">#</a></h2>
<p>(2021-09-28)</p>
<section id="id8">
<h3>UI<a class="headerlink" href="#id8" title="Link to this heading">#</a></h3>
<ul class="simple">
<li><p>Add ‘Delivery Mode’ and ‘Moderation Action’ columns to List members
page. (See #471)</p></li>
<li><p>Add support to list and handle pending un-subscription requests. (Closes
#332)</p></li>
<li><p>Add support to specify a reason when handling (un)subscription requests
(Closes #450)</p></li>
<li><p>Success messages to mass subscribes now properly distinguish subscription
from invitation and indicate possible pending confirmation or approval.
(Closes #481)</p></li>
<li><p>User profile dropdown no longer is too far right. (Closes #486)</p></li>
<li><p>Expose <code class="docutils literal notranslate"><span class="pre">archive_rendering_mode</span></code> in Archiver settings to choose between
plaintext and rich text rendering of emails in Hyperkitty. (Closes #487)</p></li>
<li><p>Allow choosing <code class="docutils literal notranslate"><span class="pre">delivery_mode</span></code> and <code class="docutils literal notranslate"><span class="pre">delivery_status</span></code> when subscribing to
a List. (Closes #488)</p></li>
<li><p>Redirect to <code class="docutils literal notranslate"><span class="pre">domain_index</span></code> after <code class="docutils literal notranslate"><span class="pre">domain_edit</span></code> succeeds. (Closes
#428)</p></li>
<li><p>Expose new <code class="docutils literal notranslate"><span class="pre">bounce_notify_owner_on_bounce_increment</span></code> list setting on
<code class="docutils literal notranslate"><span class="pre">Bounce</span> <span class="pre">Processing</span></code> settings, and expose the corresponding template.</p></li>
<li><p>Expose the <code class="docutils literal notranslate"><span class="pre">forward_unrecognized_bounces_to</span></code> setting on
<code class="docutils literal notranslate"><span class="pre">Bounce</span> <span class="pre">Processing</span></code> settings.</p></li>
<li><p>Clarified the description of <code class="docutils literal notranslate"><span class="pre">Maximum</span> <span class="pre">number</span> <span class="pre">of</span> <span class="pre">recipients</span></code>. (Closes #515)</p></li>
<li><p>List summary view will now display a table for all subscriptions with
<code class="docutils literal notranslate"><span class="pre">delivery_mode</span></code> and <code class="docutils literal notranslate"><span class="pre">delivery_status</span></code>. (Closes #470)</p></li>
<li><p>Add a new user management interface for superusrs. (See #518)</p></li>
<li><p>Allow searching for users in list user views. (See #518)</p></li>
<li><p>Show both display name and email in user management interface if available,
(See #518)</p></li>
<li><p>Allow <code class="docutils literal notranslate"><span class="pre">list:admin:notice:pending</span></code> template to be set in Postorius. (Closes
#526)</p></li>
</ul>
</section>
<section id="id9">
<h3>Other<a class="headerlink" href="#id9" title="Link to this heading">#</a></h3>
<ul class="simple">
<li><p>Use mass-subscription API in core for Mass Removal of Members. (Closes #464)</p></li>
<li><p>Fix a bug where users with multiple subscriptions to a List couldn’t view
their Preferences for all addresses. (Closes #472)</p></li>
<li><p>Check for pending unsubscription requests and notify user when the request is
pending approval. (Closes #473)</p></li>
<li><p>Improve the performance of Members’ page by skipping an API call. (Closes
#483)</p></li>
<li><p>Improve the performance of List index page for Superuser. (See !599)</p></li>
<li><p>Skip looking up choosable_domains for non-superuser to reduce API calls. (See
!600)</p></li>
<li><p>Improve the performance of List owner access checks. (See !598)</p></li>
<li><p>Add a new <code class="docutils literal notranslate"><span class="pre">APICountingMiddleware</span></code> to performance testing purposes. (See
!604)</p></li>
<li><p>Use <code class="docutils literal notranslate"><span class="pre">user_id</span></code> as <code class="docutils literal notranslate"><span class="pre">subscriber</span></code> instead of addresses to improve the
efficiency of list index page. (Closes #419)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">AUTOCREATE_MAILMAN_USER</span></code> setting is now removed and a Mailman user is
always created when a User object in created in Django. Also remove duplicate
implementation of <code class="docutils literal notranslate"><span class="pre">get_mailman_user</span></code> from <code class="docutils literal notranslate"><span class="pre">MailmanUserManager</span></code> so that we
can use a single implementation that uses caching for efficient lookups.</p></li>
<li><p>Bump bundled jQuery to 3.6.0.slim version. (See !637)</p></li>
<li><p>Use the full jQuery not the slim version. (Closes #523)</p></li>
<li><p>Do not show Ownerships and Moderator roles in the ‘Subscriptions’ page
under mange new user interface. (Closes #534)</p></li>
</ul>
</section>
<section id="ascessibility">
<h3>Ascessibility<a class="headerlink" href="#ascessibility" title="Link to this heading">#</a></h3>
<ul class="simple">
<li><p>Move the focus to the textarea in mass subscribe page if there are errors in
the form. (Closes #493)</p></li>
</ul>
</section>
</section>
<section id="news-1-3-5">
<span id="id10"></span><h2>1.3.5<a class="headerlink" href="#news-1-3-5" title="Link to this heading">#</a></h2>
<p>(2021-09-05)</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">AUTOCREATE_MAILMAN_USER</span></code> setting is now removed and a Mailman user is
always created when a User object in created in Django. Also remove duplicate
implementation of <code class="docutils literal notranslate"><span class="pre">get_mailman_user</span></code> from <code class="docutils literal notranslate"><span class="pre">MailmanUserManager</span></code> so that we
can use a single implementation that uses caching for efficient lookups.</p></li>
</ul>
<section id="security">
<h3>Security<a class="headerlink" href="#security" title="Link to this heading">#</a></h3>
<ul class="simple">
<li><p>Check that a user owns the email address they are trying to unsubscribe. This
fixes a bug in which any logged-in user could unsubscribe any email address
from any mailing list, leaking whether that address was subscribed originally.
(CVE-2021-40347, Closes #531)</p></li>
</ul>
</section>
</section>
<section id="news-1-3-4">
<span id="id11"></span><h2>1.3.4<a class="headerlink" href="#news-1-3-4" title="Link to this heading">#</a></h2>
<p>(2021-02-02)</p>
<ul class="simple">
<li><p>Update the default Site when creating a domain to match the domain if it is
<code class="docutils literal notranslate"><span class="pre">example.com</span></code>. (Closes #427)</p></li>
<li><p>Add the ability to subscribe via Primary Address instead of specific
address. (See !516)</p></li>
<li><p>Fix a bug where the user’s display name would be ignore when
subscribing. (Closes #429)</p></li>
<li><p>Display a user’s name in the pending subscription request list. (Closes #430)</p></li>
<li><p>Set a user’s preferrred_address in Core if it isn’t already set and the user
has a Primary Address that is verified.</p></li>
<li><p>Use the new APIs in Core to get the count of held messages and pending
subscriptions to improve peroformance of settings page for list
owners. (Fixes #417)</p></li>
<li><p>Show held message is local time of the User. (Closes #434)</p></li>
<li><p>Fix a bug where non-member options page would show an owner’s options if the
same email was subscribed as owner and non-member in a list. (Closes #436)</p></li>
<li><p>Switching subscription from one email address to other or Primary Address now
preserves preferences and does not require Moderator approval. (Closes #425)</p></li>
<li><p>Make ‘Archives’ and ‘List Options’ urls more prominently visible in the
list summary page as buttons. (Closes #439)</p></li>
<li><p>Added the ability to issue invitations from the mass subscribe view.</p></li>
<li><p>Expose <code class="docutils literal notranslate"><span class="pre">emergency</span></code> moderation setting for MailingList.</p></li>
<li><p>Fixed some minor HTML errors. (Closes #442)</p></li>
<li><p>Fix the bug where ListOfStringsField couldn’t be unset in Postorius. (Closes
#444)</p></li>
<li><p>Allow <code class="docutils literal notranslate"><span class="pre">list:user:action:invite</span></code> template to be set in Postorius. (Closes
#454)</p></li>
<li><p>Fix a bug where the Bans form would always use default language instead of
current request’s language. (Closes #441)</p></li>
<li><p>Fix the URL on cancel buttons in template’s confirm delete page. (Closes
#458)</p></li>
<li><p>Use server side filtering for pending subscription requests for moderator
approval. (See !559)</p></li>
<li><p>Allow setting moderation action for a nonmember from Held Message modal. (
Closes #448)</p></li>
<li><p>Add a new view to confirm subscriptions or new emails for Users using
Postorius. (Fixes #459)</p></li>
<li><p>Fix a bug where membership check compared email addresses in different
cases. (Closes #457)</p></li>
<li><p>Mass removal now accepts address formats with display names and/or angle
brackets. (Closes #455)</p></li>
<li><p>Add support to override <code class="docutils literal notranslate"><span class="pre">send_welcome_message</span></code> when mass subscribing to
suppress welcome messages. (Closes #99)</p></li>
<li><p>Add support for Django 3.1.x. (See !574)</p></li>
<li><p>The list’s <code class="docutils literal notranslate"><span class="pre">send_goodbye_message</span></code> is now settable on the Automatic
Responses view. (Closes #466)</p></li>
<li><p>Support <code class="docutils literal notranslate"><span class="pre">HYPERKITTY_ENABLE_GRAVATAR</span></code> setting to control the user gravatar.
(Closes #467)</p></li>
</ul>
</section>
<section id="news-1-3-3">
<span id="id12"></span><h2>1.3.3<a class="headerlink" href="#news-1-3-3" title="Link to this heading">#</a></h2>
<p>(2020-06-01)</p>
<ul class="simple">
<li><p>Expose additional list settings. (See !483)</p></li>
<li><p>Correct description of Digest Frequency. (Closes #395)</p></li>
<li><p>Added links to Reply-To munging articles. (Closes #401)</p></li>
<li><p>Fix “Show Headers” button to show the held message headers in the
held message popup. (Closes #407)</p></li>
<li><p>Fix the held message popup structure and increase the max width of the popup
to be 800px(modal-lg) for larger screens. (Closes #405)</p></li>
<li><p>Fix FILTER_VHOST = True option to try to find the email host corresponding
to the requesting web host. (Closes #394)</p></li>
<li><p>Allow specifying a reason when rejecting a held message. (Closes #412)</p></li>
<li><p>Allow users to set their preferred language in their preferences. (Closes #413)</p></li>
<li><p>Add support to ban addresses for the entire Mailman installation. (Closes #357)</p></li>
<li><p>Un-handled <code class="docutils literal notranslate"><span class="pre">HTTPError</span></code> exception raised from MailmanClient now results in an
error page and proper logging instead of mysterious <code class="docutils literal notranslate"><span class="pre">KeyError</span></code> in logs.
(Closes #341)</p></li>
<li><p>Change List settings navigation to be vertical instead of horizontal. (See
!509)</p></li>
<li><p>Move bounce processing settings into a new vertical tab for better
visibility.</p></li>
<li><p>Add URL to edit the Web host for each domain in Domain Index page. Also, show
the <code class="docutils literal notranslate"><span class="pre">SITE_ID</span></code> for each webhost. (Closes #426)</p></li>
</ul>
</section>
<section id="id13">
<h2>1.3.2<a class="headerlink" href="#id13" title="Link to this heading">#</a></h2>
<p>(2020-01-12)</p>
<ul class="simple">
<li><p>Do not show pagination, when user is authenticated. (Closes #387)</p></li>
<li><p>Drop support for Django 1.11.</p></li>
<li><p>Add support to choose options for <code class="docutils literal notranslate"><span class="pre">pre_confirm</span></code>, <code class="docutils literal notranslate"><span class="pre">pre_approve</span></code> and
<code class="docutils literal notranslate"><span class="pre">pre_verify</span></code> when mass subscribing. (Fixes #203)</p></li>
</ul>
</section>
<section id="id14">
<h2>1.3.1<a class="headerlink" href="#id14" title="Link to this heading">#</a></h2>
<p>(2019-12-08)</p>
<ul class="simple">
<li><p>Show templates’ file names in selection list where admins can pick
individual templates for customization. (See !425)</p></li>
<li><p>Make template short names more prominent on all email templates related
views. (See !425)</p></li>
<li><p>Bind object attributes to local variables in {% blocktrans %} (See !439)</p></li>
<li><p>Set the initial style in new list form as the default style. (Closes #310)</p></li>
<li><p>Fix a bug where logged in users’s index page view would cap the total number
of lists for a role to 50. (Closes #335)</p></li>
<li><p>Fix a bug where handling non-existent held message can raise 500
exception. (Closes #349)</p></li>
<li><p>Emit appropriate signals when Domain and MailingList is updated. (Closes
#385)</p></li>
<li><p>Do not strip leading whitespaces in Email Templates. (Closes #301)</p></li>
<li><p>Hold date for held messages are now displayed correctly. (Closes #312)</p></li>
<li><p>Add support for Python 3.8.</p></li>
<li><p>Add support for Django 3.0.</p></li>
</ul>
</section>
<section id="id15">
<h2>1.3.0<a class="headerlink" href="#id15" title="Link to this heading">#</a></h2>
<p>(2019-09-04)</p>
<ul class="simple">
<li><p>Fix a string substitution bug which would cause un-substituted raw string to
be exposed as notification to admin. (Closes #327)</p></li>
<li><p>Add support for <code class="docutils literal notranslate"><span class="pre">FILTER_VHOST</span></code> option to filter MalingLists based on
<code class="docutils literal notranslate"><span class="pre">HOST</span></code> header of incoming request. (Closes #330)</p></li>
<li><p>List Summary page now renders List info as markdown. (Closes #244)</p></li>
<li><p>Moderation action for held message’s sender can now be set from held
message’s view.(Closes #127)</p></li>
<li><p>Add a ‘Ban’ button to list of subscription requests to help administrators
against spams. (Closes #339)</p></li>
<li><p>Added support for Django 2.2.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pytest</span></code> will be used to run tests instead of default Django’s test runner.</p></li>
<li><p>Remove <code class="docutils literal notranslate"><span class="pre">vcrpy</span></code> and use fixtures to start and stop Mailman’s REST API to
test against, without having to record tapes to be replayed.</p></li>
<li><p>Corrected display message in ‘recieve_list_copy’ option in global mailman
preferences of mailman settings. (Closes #351)</p></li>
<li><p>Allow setting a MailingList’s Preferred Language. (Closes #303)</p></li>
<li><p>Allow a empty templates as a workaround for missing settings to skip
email decoration. (Closes #331)</p></li>
<li><p>Expose <code class="docutils literal notranslate"><span class="pre">digest_volume_frequency</span></code>, <code class="docutils literal notranslate"><span class="pre">digest_send_periodict</span></code> and
<code class="docutils literal notranslate"><span class="pre">digests_enabled</span></code> settings for MailingLists.</p></li>
<li><p>Add a badge with count of held messages and pending subscription requests
for moderator approval. (Closes #308)</p></li>
<li><p>Add support to add, view and remove domain owners.</p></li>
<li><p>Allow setting the visibility options for MailingList’s member list.</p></li>
<li><p>Make page titles localizable.</p></li>
</ul>
</section>
<section id="id16">
<h2>1.2.4<a class="headerlink" href="#id16" title="Link to this heading">#</a></h2>
<p>(2019-02-09)</p>
<ul class="simple">
<li><p>Add support for <code class="docutils literal notranslate"><span class="pre">explicit_header_only</span></code> in list settings.
(See !369)</p></li>
</ul>
</section>
<section id="id17">
<h2>1.2.3<a class="headerlink" href="#id17" title="Link to this heading">#</a></h2>
<p>(2019-01-19)</p>
<ul class="simple">
<li><p>Expose <code class="docutils literal notranslate"><span class="pre">max_num_recipients</span></code> in list settings. (Closes #297)</p></li>
<li><p>Add support for Non-member management in Postorius. (Closes #265)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Members</span></code> tab in Mailing List settings page is now called <code class="docutils literal notranslate"><span class="pre">Users</span></code>.
(Closes #309)</p></li>
<li><p>Show pending subscription requests are only pending for Moderator.
(Closes #314)</p></li>
</ul>
</section>
<section id="id18">
<h2>1.2.2<a class="headerlink" href="#id18" title="Link to this heading">#</a></h2>
<p>(2018-08-30)</p>
<ul class="simple">
<li><p>Add support for Python 3.7 with Django 2.0+</p></li>
<li><p>Index page only shows related lists for signed-in users with option to
filter based on role.</p></li>
<li><p>Expose respond_to_post_requests in Postorius. (Closes #223)</p></li>
</ul>
</section>
<section id="id19">
<h2>1.2.1<a class="headerlink" href="#id19" title="Link to this heading">#</a></h2>
<p>(2018-07-11)</p>
<ul class="simple">
<li><p>A Django migration was missing from version 1.2.0. This is now added.</p></li>
</ul>
</section>
<section id="id20">
<h2>1.2<a class="headerlink" href="#id20" title="Link to this heading">#</a></h2>
<p>(2018-07-10)</p>
<ul class="simple">
<li><p>Postorius now runs only on Python 3.4+ and supports Django 1.8 and 1.11+</p></li>
<li><p>Added the ability to set and edit <code class="docutils literal notranslate"><span class="pre">alias_domain</span></code> to the <code class="docutils literal notranslate"><span class="pre">domains</span></code> forms.</p></li>
<li><p>List Create form now allows selecting the <code class="docutils literal notranslate"><span class="pre">style</span></code>. A <code class="docutils literal notranslate"><span class="pre">style</span></code> is how a new
mailing list is configured.</p></li>
<li><p>Minimum supported Mailman Core version is now 3.2.0. This is because the
<code class="docutils literal notranslate"><span class="pre">styles</span></code> attribute for MailingList resource is exposed in 3.2, which
contains all the default <code class="docutils literal notranslate"><span class="pre">styles</span></code> supported by Core and their human readable
description.</p></li>
<li><p>Account subscription page now lists all the memberships with their respective
roles. This avoids repeated API calls for the way data was displayed
before. (Closes #205)</p></li>
<li><p>Postorius now supports only Django 1.11+.</p></li>
<li><p>Duplicate MailingList names doesn’t return a 500 error page and instead adds
an error to the New MailingList form. (Fixes #237)</p></li>
<li><p>Pending subscription requests page is now paginated. (See !298)</p></li>
<li><p>Add owners/moderators form now allows specifying a Display Name, along with
their email. (Fixes #254)</p></li>
<li><p>Members views now show total number of members at the top. (See !315)</p></li>
<li><p>Fixed a bug where GET on views that only expect a POST would cause 500 server
errors instead of 405 method not allowed. (Fixes #185)</p></li>
<li><p>Member preferences form can now be saved without having to change all the
fields. (Fixes #178)</p></li>
<li><p>Fixed a bug where the ‘Delete’ button to remove list owners didn’t work due to
wrong URL being rendered in the templates. (Fixes #274)</p></li>
<li><p>Require Explicit Destination is added to the Message Acceptance form.
(Closes #277)</p></li>
<li><p>Delete Domain page now shows some extra warning information about all the
mailing lists that would be deleted after deleting the Domain. (See !250)</p></li>
<li><p>Superusers can now view Mailman Core’s current version and REST API version
being used under ‘System Information’ menu in the top navigation bar. (See !325)</p></li>
<li><p>Fixed a bug where 500 error template wouldn’t render properly due to missing
context variables in views that render that templates (See !334)</p></li>
<li><p>Postorius now allows adding and editing templates for email headers, footers
and some of the automatic responses sent out by Mailman. (See !327)</p></li>
</ul>
</section>
<section id="id21">
<h2>1.1.2<a class="headerlink" href="#id21" title="Link to this heading">#</a></h2>
<p>(2017-12-27)</p>
<ul class="simple">
<li><p>Added a new <code class="docutils literal notranslate"><span class="pre">reset_passwords</span></code> command that resets _all_ user’s passwords
inside of Core. This password is different from the one Postorius
maintains. The Postorius password is the one used for logging users in.</p></li>
<li><p>Postorius now sets the ‘Display Name’ of the user in Core correctly. This
fixes a security vulnerability where user’s display_name would be set as their
Core’s password.</p></li>
</ul>
</section>
<section id="id22">
<h2>1.1.1<a class="headerlink" href="#id22" title="Link to this heading">#</a></h2>
<p>(2017-11-17)</p>
<ul class="simple">
<li><p>Improved testing and internal bug fixes.</p></li>
<li><p>Preserve formatting of Mailing List description in the summary view.</p></li>
<li><p>Site’s Name isn’t capitalized anymore in the navigation bar.</p></li>
<li><p>html5shiv and response.js libraries are now included, instead of loading from a CDN.</p></li>
</ul>
</section>
<section id="welcome-to-this-world">
<h2>1.1.0 – “Welcome to This World”<a class="headerlink" href="#welcome-to-this-world" title="Link to this heading">#</a></h2>
<p>(2017-05-26)</p>
<ul class="simple">
<li><p>Added DMARC mitigation settings</p></li>
<li><p>Switch to Allauth auth library</p></li>
<li><p>Preference page improvements</p></li>
<li><p>Moderation page improvements</p></li>
<li><p>Django support up to Django 1.11</p></li>
<li><p>Added form to edit header matches</p></li>
<li><p>Domain edit form improvements</p></li>
<li><p>All pipelines recognized in alter messages form</p></li>
<li><p>Use django-mailman3 to share common code with HyperKitty</p></li>
<li><p>Various bug fixes, code cleanup, and performance improvements</p></li>
</ul>
</section>
<section id="id23">
<h2>1.0.3<a class="headerlink" href="#id23" title="Link to this heading">#</a></h2>
<p>(2016-02-03)</p>
<ul class="simple">
<li><p>Fix security issue</p></li>
</ul>
</section>
<section id="id24">
<h2>1.0.2<a class="headerlink" href="#id24" title="Link to this heading">#</a></h2>
<p>(2015-11-14)</p>
<ul class="simple">
<li><p>Bug fix release</p></li>
</ul>
</section>
<section id="id25">
<h2>1.0.1<a class="headerlink" href="#id25" title="Link to this heading">#</a></h2>
<p>(2015-04-28)</p>
<ul class="simple">
<li><p>Help texts Small visual alignment fix; removed unnecessary links to
separate help pages.</p></li>
<li><p>Import fix in fieldset_forms module (Django1.6 only)</p></li>
</ul>
</section>
<section id="frizzle-fry">
<h2>1.0.0 – “Frizzle Fry”<a class="headerlink" href="#frizzle-fry" title="Link to this heading">#</a></h2>
<p>(2015-04-17)</p>
<ul class="simple">
<li><p>French translation. Provided by Guillaume Libersat</p></li>
<li><p>Addedd an improved test harness using WebTest. Contributed by Aurélien Bompard.</p></li>
<li><p>Show error message in login view. Contributed by Aurélien Bompard (LP: 1094829).</p></li>
<li><p>Fix adding the a list owner on list creation. Contributed by Aurélien Bompard (LP: 1175967).</p></li>
<li><p>Fix untranslatable template strings. Contributed by Sumana Harihareswara (LP: 1157947).</p></li>
<li><p>Fix wrong labels in metrics template. Contributed by Sumana Harihareswara (LP: 1409033).</p></li>
<li><p>URLs now contain the list-id instead of the fqdn_listname. Contributed by Abhilash Raj (LP: 1201150).</p></li>
<li><p>Fix small bug moderator/owner forms on list members page. Contributed by Pranjal Yadav (LP: 1308219).</p></li>
<li><p>Fix broken translation string on the login page. Contributed by Pranjal Yadav.</p></li>
<li><p>Show held message details in a modal window. Contributed by Abhilash Raj (LP: 1004049).</p></li>
<li><p>Rework of internal testing</p></li>
<li><p>Mozilla Persona integration: switch from django-social-auto to django-browserid: Contributed by Abhilash Raj.</p></li>
<li><p>Fix manage.py mmclient command for non-IPython shells. Contributed by Ankush Sharma (LP: 1428169).</p></li>
<li><p>Added archiver options: Site-wide enabled archivers can not be enabled
on a per-list basis through the web UI.</p></li>
<li><p>Added functionality to choose or switch subscription addresses. Contributed by Abhilash Raj.</p></li>
<li><p>Added subscription moderation, pre_verification/_confirmation.</p></li>
<li><p>Several style changes.</p></li>
</ul>
</section>
<section id="beta-1-year-of-the-parrot">
<h2>1.0 beta 1 – “Year of the Parrot”<a class="headerlink" href="#beta-1-year-of-the-parrot" title="Link to this heading">#</a></h2>
<p>(2014-04-22)</p>
<ul class="simple">
<li><p>fixed pip install (missing MANIFEST) (LP: 1307624). Contributed by Aurélien Bompard</p></li>
<li><p>list owners: edit member preferences</p></li>
<li><p>users: add multiple email addresses</p></li>
<li><p>list info: show only subscribe or unsubscribe button. Contributed by Bhargav Golla</p></li>
<li><p>remove members/owners/moderator. Contributed by Abhilash Raj</p></li>
</ul>
</section>
<section id="alpha-2-is-it-luck">
<h2>1.0 alpha 2 – “Is It Luck?”<a class="headerlink" href="#alpha-2-is-it-luck" title="Link to this heading">#</a></h2>
<p>(2014-03-15)</p>
<ul class="simple">
<li><p>dev setup fix for Django 1.4 contributed by Rohan Jain</p></li>
<li><p>missing csrf tokens in templates contributed by Richard Wackerbarth (LP: 996658)</p></li>
<li><p>moderation: fixed typo in success message call</p></li>
<li><p>installation documentation for Apache/mod_wsgi</p></li>
<li><p>moved project files to separate branch</p></li>
<li><p>show error message if connection to Mailman API fails</p></li>
<li><p>added list members view</p></li>
<li><p>added developer documentation</p></li>
<li><p>added test helper utils</p></li>
<li><p>all code now conform to PEP8</p></li>
<li><p>themes: removed obsolete MAILMAN_THEME settings from templates, contexts, file structure; contributed by Richard Wackerbarth (LP: 1043258)</p></li>
<li><p>added access control for list owners and moderators</p></li>
<li><p>added a mailmanclient shell to use as a <code class="docutils literal notranslate"><span class="pre">manage.py</span></code> command (<code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">manage.py</span> <span class="pre">mmclient</span></code>)</p></li>
<li><p>use “url from future” template tag in all templates. Contributed by Richard Wackerbarth.</p></li>
<li><p>added “new user” form. Contributed by George Chatzisofroniou.</p></li>
<li><p>added user subscription page</p></li>
<li><p>added decorator to allow login via http basic auth (to allow non-browser clients to use API views)</p></li>
<li><p>added api view for list index</p></li>
<li><p>several changes regarding style and navigation structure</p></li>
<li><p>updated to jQuery 1.8. Contributed by Richard Wackerbarth.</p></li>
<li><p>added a favicon. Contributed by Richard Wackerbarth.</p></li>
<li><p>renamed some menu items. Contributed by Richard Wackerbarth.</p></li>
<li><p>changed static file inclusion. Contributed by Richard Wackerbarth.</p></li>
<li><p>added delete domain feature.</p></li>
<li><p>url conf refactoring. Contributed by Richard Wackerbarth.</p></li>
<li><p>added user deletion feature. Contributed by Varun Sharma.</p></li>
</ul>
</section>
<section id="alpha-1-space-farm">
<h2>1.0 alpha 1 – “Space Farm”<a class="headerlink" href="#alpha-1-space-farm" title="Link to this heading">#</a></h2>
<p>(2012-03-23)</p>
<p>Many thanks go out to Anna Senarclens de Grancy and Benedict Stein for
developing the initial versions of this Django app during the Google Summer of
Code 2010 and 2011.</p>
<ul class="simple">
<li><p>add/remove/edit mailing lists</p></li>
<li><p>edit list settings</p></li>
<li><p>show all mailing lists on server</p></li>
<li><p>subscribe/unsubscribe/mass subscribe mailing lists</p></li>
<li><p>add/remove domains</p></li>
<li><p>show basic list info and metrics</p></li>
<li><p>login using django user account or using BrowserID</p></li>
<li><p>show basic user profile</p></li>
<li><p>accept/discard/reject/defer messages</p></li>
<li><p>Implementation of Django Messages contributed by Benedict Stein (LP: #920084)</p></li>
<li><p>Dependency check in setup.py contributed by Daniel Mizyrycki</p></li>
<li><p>Proper processing of acceptable aliases in list settings form contributed by
Daniel Mizyrycki</p></li>
</ul>
</section>
</section>
</article>
</div>
<footer>
<div class="related-pages">
<a class="prev-page" href="deployment.html">
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
<div class="page-info">
<div class="context">
<span>Previous</span>
</div>
<div class="title">Deployment</div>
</div>
</a>
</div>
<div class="bottom-of-page">
<div class="left-details">
<div class="copyright">
Copyright © 2024, The Free Software Foundation
</div>
Made with <a href="https://www.sphinx-doc.org/">Sphinx</a> and <a class="muted-link" href="https://pradyunsg.me">@pradyunsg</a>'s
<a href="https://github.com/pradyunsg/furo">Furo</a>
</div>
<div class="right-details">
</div>
</div>
</footer>
</div>
<aside class="toc-drawer">
<div class="toc-sticky toc-scroll">
<div class="toc-title-container">
<span class="toc-title">
On this page
</span>
</div>
<div class="toc-tree-container">
<div class="toc-tree">
<ul>
<li><a class="reference internal" href="#">News / Changelog</a><ul>
<li><a class="reference internal" href="#news-1-3-10">1.3.10</a><ul>
<li><a class="reference internal" href="#fixes">Fixes</a></li>
</ul>
</li>
<li><a class="reference internal" href="#news-1-3-9">1.3.9</a><ul>
<li><a class="reference internal" href="#ui">UI</a></li>
<li><a class="reference internal" href="#a11y">A11y</a></li>
<li><a class="reference internal" href="#other">Other</a></li>
</ul>
</li>
<li><a class="reference internal" href="#news-1-3-8">1.3.8</a><ul>
<li><a class="reference internal" href="#id4">UI</a></li>
</ul>
</li>
<li><a class="reference internal" href="#news-1-3-7">1.3.7</a><ul>
<li><a class="reference internal" href="#id6">UI</a></li>
</ul>
</li>
<li><a class="reference internal" href="#news-1-3-6">1.3.6</a><ul>
<li><a class="reference internal" href="#id8">UI</a></li>
<li><a class="reference internal" href="#id9">Other</a></li>
<li><a class="reference internal" href="#ascessibility">Ascessibility</a></li>
</ul>
</li>
<li><a class="reference internal" href="#news-1-3-5">1.3.5</a><ul>
<li><a class="reference internal" href="#security">Security</a></li>
</ul>
</li>
<li><a class="reference internal" href="#news-1-3-4">1.3.4</a></li>
<li><a class="reference internal" href="#news-1-3-3">1.3.3</a></li>
<li><a class="reference internal" href="#id13">1.3.2</a></li>
<li><a class="reference internal" href="#id14">1.3.1</a></li>
<li><a class="reference internal" href="#id15">1.3.0</a></li>
<li><a class="reference internal" href="#id16">1.2.4</a></li>
<li><a class="reference internal" href="#id17">1.2.3</a></li>
<li><a class="reference internal" href="#id18">1.2.2</a></li>
<li><a class="reference internal" href="#id19">1.2.1</a></li>
<li><a class="reference internal" href="#id20">1.2</a></li>
<li><a class="reference internal" href="#id21">1.1.2</a></li>
<li><a class="reference internal" href="#id22">1.1.1</a></li>
<li><a class="reference internal" href="#welcome-to-this-world">1.1.0 – “Welcome to This World”</a></li>
<li><a class="reference internal" href="#id23">1.0.3</a></li>
<li><a class="reference internal" href="#id24">1.0.2</a></li>
<li><a class="reference internal" href="#id25">1.0.1</a></li>
<li><a class="reference internal" href="#frizzle-fry">1.0.0 – “Frizzle Fry”</a></li>
<li><a class="reference internal" href="#beta-1-year-of-the-parrot">1.0 beta 1 – “Year of the Parrot”</a></li>
<li><a class="reference internal" href="#alpha-2-is-it-luck">1.0 alpha 2 – “Is It Luck?”</a></li>
<li><a class="reference internal" href="#alpha-1-space-farm">1.0 alpha 1 – “Space Farm”</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</aside>
</div>
</div><script src="_static/documentation_options.js?v=0034329e"></script>
<script src="_static/doctools.js?v=888ff710"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="_static/scripts/furo.js?v=3e7832f7"></script>
</body>
</html>