changeset 6456:cbc18a8bc61f 2.1.0

Changes for release of version 2.1.0. Updates specified in RELEASE.txt.
author John Rouillard <rouilj@ieee.org>
date Mon, 12 Jul 2021 23:21:12 -0400
parents 43298edf7ab1
children dc59051807b6
files CHANGES.txt doc/acknowledgements.txt doc/announcement.txt doc/developers.txt doc/upgrading.txt locale/de.po locale/en.po locale/es.po locale/fr.po locale/hu.po locale/it.po locale/ja.po locale/lt.po locale/nb.po locale/roundup.pot locale/ru.po locale/zh_CN.po locale/zh_TW.po roundup/__init__.py setup.py website/www/conf.py website/www/index.txt
diffstat 22 files changed, 176 insertions(+), 127 deletions(-) [+]
line wrap: on
line diff
--- a/CHANGES.txt	Sun Jul 11 17:10:03 2021 -0400
+++ b/CHANGES.txt	Mon Jul 12 23:21:12 2021 -0400
@@ -11,7 +11,7 @@
 v2.7.2 or later are required to run newer releases of Roundup.  From v2.0
 onwards Python 3.4 and later are also supported.
 
-2021-xx-yy 2.1.0
+2021-07-13 2.1.0
 
 Fixed:
 
--- a/doc/acknowledgements.txt	Sun Jul 11 17:10:03 2021 -0400
+++ b/doc/acknowledgements.txt	Mon Jul 12 23:21:12 2021 -0400
@@ -1,6 +1,6 @@
 Acknowledgements
 ================
-The Roundup Initative is a group of people that regularily works
+The Roundup Initative is a group of people that regularly work
 together to produce new releases of the Roundup Issue Tracker.
 We like to thank our community and all organisation and people
 that support us doing so with code, money, time, testing, reports,
@@ -10,11 +10,11 @@
 
 .. _`Announcement with changelog for current release.`: announcement.html
 
-2.0
+2.1
 ---
 
-2.1.0beta1
-~~~~~~~~~~
+2.1.0
+~~~~~
 
 Maintainer:  John Rouillard, Ralf Schlatterbeck
 
@@ -22,9 +22,15 @@
 
 Developer activity by changesets::
 
-    rouilj@ieee.org      175 ***************************************************
-    rsc@runtux.com        29 ********
-    cmeerw@cmeerw.org      1
+    rouilj at ieee.org       178 ***************************************************
+    rsc at runtux.com         29 ********
+    cedric.krier at b2ck.com   6 **
+    cmeerw at cmeerw.org       1
+    john at jerrykan.com       1 
+    Tobias Herp                1
+
+2.0
+---
 
 2.0.0
 ~~~~~
@@ -35,9 +41,9 @@
 
 Developer activity by changesets::
 
-    rouilj@ieee.org       62 ***************************************************
-    rsc@runtux.com        11 *********
-    cmeerw@cmeerw.org      4 ***
+    rouilj at ieee.org       62 ***************************************************
+    rsc at runtux.com        11 *********
+    cmeerw at cmeerw.org      4 ***
 
 2.0.0b0
 ~~~~~~~
@@ -48,10 +54,10 @@
 
 Developer activity by changesets::
 
-    rouilj@ieee.org         133 ************************************************
-    cmeerw@cmeerw.org        35 *************
-    rsc@runtux.com           10 ****
-    jsm@polyomino.org.uk      1
+    rouilj at ieee.org         133 ************************************************
+    cmeerw at cmeerw.org        35 *************
+    rsc at runtux.com           10 ****
+    jsm at polyomino.org.uk      1
 
 
 2.0.0a0
--- a/doc/announcement.txt	Sun Jul 11 17:10:03 2021 -0400
+++ b/doc/announcement.txt	Mon Jul 12 23:21:12 2021 -0400
@@ -1,71 +1,75 @@
-I'm proud to release version 2.1.0beta1 of the Roundup issue tracker
-which has been possible due to the help of several contributors. This
-release is a bugfix and feature release, so make sure to read
-`docs/upgrading.txt <https://www.roundup-tracker.org/docs/upgrading.html>`_
-to bring your tracker up to date.
+I'm proud to release version 2.1.0 of the Roundup issue tracker.
+This 20th anniversary edition has been possible due to the help of
+several contributors. This release is a bugfix and minor feature
+release, so make sure to read `docs/upgrading.txt
+<https://www.roundup-tracker.org/docs/upgrading.html>`_ to bring your
+tracker up to date.
+
+2.1.0 builds on the 2.0.0 major release that introduced:
+
+   * Python 2 and Python 3 support
+   * a new REST interface
+   * updates to jinja2 templates including security improvements
+
+The changes, as usual, include some new features and many bug fixes.
 
 Note that you should run ``roundup-admin ... migrate`` to update the
 database schema version. Do this before you use the web, command-line
 or mail interface and before any users access the tracker.  
 
-The changes, as usual, include some new features and many bug fixes.
-
 You can download it with:
 
-   pip download roundup==2.1.0b1
+   pip download roundup
 
 then unpack and test/install the tarball.
 
 Among the notable improvements from the 2.0.0 release are:
 
-  Uses setuptools not distutils for installation. This code **needs
-  testing** as it has caused issues. It seems to work with virtualenv,
-  and --prefix install as well as standard install into the platform
-  supplied python install.
-
-  mysql backend now uses an index to make sure that key values are not
-  duplicated when two roundup processes run in parallel.
-
-  Postgres back end now uses a server side cursor, so large queries
-  won't consume hunge amounts of memory.
+  Mysql backend now uses an index to make sure that key values are not
+  duplicated when two roundup processes run in parallel. (Hence the
+  need for ``roundup-admin ... migrate``.)
 
-  roundup-admin security exits non-zero if it finds an invalid
-  property. It can be used as part of a CI/CD pipeline to validate
-  schema security.
-
-  Security fixes for jQuery, markdown handling,
-
-  Valid class names are documented and enforced. All class names now
-  match ``[A-z][A-z0-9_]+[A-z_]``.
-
-  A number of fixes to markdown handling if using the jinja2
-  template.
-
-  Fix a number of tracebacks.
+  Postgres back end uses a server side cursor. This reduces the memory
+  use of the roundup process on large queries.
 
   Fix sorting of multilinks in templating code. Sorting by a link
   without a value no longer generates a traceback. Sorting now works
   as documented by the spec.
 
-  Fix a number of deprecated calls for newer pythons.
+  If ``roundup-admin security`` finds an invalid property, it exits
+  with a non-zero status. It can be used as part of a CI/CD pipeline
+  to validate schema security.
+
+  Security fixes for jQuery, markdown handling.
+
+  Fixes to markdown handling if using the jinja2 template.
+
+  Keyword editing in jinja2 template improved.
+
+  Fix a number of tracebacks.
+
+  Installation uses setuptools not distutils.
+
+  Valid class names are documented and enforced. All class names now
+  match ``[A-z][A-z0-9_]+[A-z_]``.
+
+  Replace a number of deprecated/missing functions in newer pythons.
 
   Fix history showing invalid data when an update is rejected.
 
-  roundup-admin filter works transitively and handles empty values
-  properly.
+  The filter command in roundup-admin works transitively and handles
+  empty values properly.
 
-  password reset documented in user guide.
+  Password reset documented in user guide.
 
-  keyword editing in jinja2 template improved.
+  Admins can set the language used for stemming in the xapian indexer.
 
-  language used for stemming in xapian indexer can be set.
-
-  devel and responsive template strings now extracted for translation
+  Devel and responsive template strings now extracted for translation.
 
-The file CHANGES.txt has a detailed list of feature additions and bug
-fixes for each release. The most recent changes from there are at the
-end of this announcement.  Also see the information in
-doc/upgrading.txt.
+The file CHANGES.txt has a detailed list of feature additions and
+bug fixes (58) for each release. The most recent changes from
+there are at the end of this announcement.  Also see the
+information in doc/upgrading.txt.
 
 If you find bugs, please report them to issues AT roundup-tracker.org
 or create an account at https://issues.roundup-tracker.org and open a
@@ -86,13 +90,12 @@
 Roundup requires Python 2 newer than version 2.7.2 or Python 3 newer
 than or equal to version 3.4 for correct operation.
 
-The wsgi, server and cgi web deployment modes are the ones with the
-most testing.
-
 To give Roundup a try, just download (see below), unpack and run::
 
     python demo.py
 
+then open the url printed by the demo app.
+
 Release info and download page:
      https://pypi.org/project/roundup
 Source and documentation is available at the website:
@@ -109,7 +112,10 @@
 from Ka-Ping Yee in the Software Carpentry "Track" design competition.
 
 Note: Ping is not responsible for this project. The contact for this
-project is richard@users.sourceforge.net.
+project is rouilj at users.sourceforge.net. Use this address for
+security or other sensitive issues. Development discussions occur on
+the roundup-devel at lists.sourceforge.net mailing list. Tickets can
+be opened at https://issues.roundup-tracker.org.
 
 Roundup manages a number of issues (with flexible properties such as
 "description", "priority", and so on) and provides the ability to:
@@ -125,7 +131,7 @@
 installation. It doesn't even need to be "installed" to be operational,
 though an install script is provided.
 
-It comes with five issue tracker templates
+It comes with five basic issue tracker templates
 
 * a classic bug/feature tracker
 * a more extensive devel tracker for bug/features etc.
@@ -138,6 +144,8 @@
 Recent Changes
 ==============
 
+From 2.0.0 to 2.1.0.
+
 Fixed:
 
 - Reverse multilink to *the same class* would trigger a traceback about
@@ -155,7 +163,7 @@
   an empty link in the transitive property (e.g. author.username when
   requesting message properties) would result in a 404 error. Now we're
   returning a JSON 'null' value. for an empty link (e.g. empty author in
-  the example).
+  the example). (John Rouillard)
 - sphinxcontrib.cheeseshop is unmaintained and using old http
   url. Attempts to override cheeseshop_url failed. Replace call to
   cheeseshop in docs with raw html and remove references to
@@ -174,7 +182,7 @@
 - issue2551099 - disable processing of data url's in markdown. Display
   as plain text. (John Rouillard)
 - issue2551100 - old jquery has security issues, upgrade it and fix
-  user.help.html
+  user.help.html (John Rouillard)
 - replace deprecated base64.decodestring with base64.b64decode in
   roundup_server.py and roundup_xlmrpc_server.py (reported by
   lmsteffan in irc)
@@ -188,14 +196,14 @@
   <database>/backend_name. (John Rouillard)
 - fixed some issues when generating translations. Use mappings and
   named format parameters so translators can move substituted tokens
-  in translations.
+  in translations.  (John Rouillard)
 - in rest interface, fix uncaught exceptions when parsing invalid
   Content-Type and Accept headers. Document response formats more
-  fully in doc/rest.txt.
+  fully in doc/rest.txt.  (John Rouillard)
 - in filter, filter_iter and _materialize_multilinks, use named cursor
   with postgresql. This turns of client-side cursor handling and avoids
   *large* roundup process (or wsgi process) in case of large results.
-  Fixes issue2551114.
+  Fixes issue2551114. (Ralf Schlatterbeck)
 - issue2551108 - fix handling of designator links when formatted
   as markdown links. (Reported by Cedric Krier; John Rouillard)
 - Fix filename created from mail attachments, fixes issue2551118
@@ -231,7 +239,7 @@
   sort at start or end of sorted list. (John Rouillard)
 - issue2550648 - keyword boolean search. Issue has multiple problems.
   Fix issue where saving the keyword boolean search would remove the
-  link to open the editor.
+  link to open the editor. (John Rouillard)
 - issue2551136 - timezone extention crash on Python 3.8. cgi.escape
   is used in some template to provide a select box of timezones. It
   uses cgi.escape that is deprecated and removed from 3.8 and newer.
@@ -241,29 +249,32 @@
   have been upgraded to TLS 1.1. Cert is RSA 2048 bytes with SHA512
   signature. Without these upgrades, ssl mode won't start. Note this
   exposes other issue with roundup-server operating as an SSL
-  endpoint. See issue2551138 and issue2551137.
+  endpoint. See issue2551138 and issue2551137. (John Rouillard)
 - issue2551122 - sorted method of MultilinkHTMLProperty does a string
   sort even if the property is an integer. Fixed so that the orderprop
   for the linked class is used. (John Rouillard, reported by Nagy Gabor)
 - issue2550964 - History can (temporarily) show incorrect value when a
   change is rejected. Fix history function to always use the database
-  values and ignore the current setting in the form.
+  values and ignore the current setting in the form. (John Rouillard)
 - Fix find() with anydbm. Using protected properties raised KeyError.
   Add shortcut fast return. Both changes come from rdbms_common.py's
   find(). (John Rouillard)
 - Fix traceback caused by calling history() with arguments in a
-  non-item context.
-- issue2551141 - roudup-admin returns no such class when restoring
+  non-item context. (John Rouillard)
+- issue2551141 - roundup-admin returns no such class when restoring
   item with duplicate key. Fix incorrect error message when using
   roundup-admin to restore a user when the username is already in use.
   (John Rouillard)
 - issue2551142 - Import of retired node with username after active
-  node fails with unique constraint failure. (John Rouillard)
+  node is imported raises unique constraint failure. (Reported by Ganesh
+  Sittampalam/Heffalump on irc. John Rouillard)
 - *** Must run roundup-admin migrate ***
   Increment rdbms version from 5 to 6. Mysql rdbms classes were
   missing unique key constraint. Found during fix for issue2551142.
-  See upgrading.txt.
+  See upgrading.txt. (John Rouillard)
 - ignore blank lines in CSV class editing. (John Rouillard)
+- issue2551122 - fixing order by a link/multilink broke other props
+  should be final change for that ticket. (John Rouillard)
 
 Features:
 
@@ -300,7 +311,7 @@
   tx_Source_detector.py to roundup/test for two reasons: It's used in the
   memorydb convenience functions and it may be useful in other tests. Make
   the prefix a parameter of the convenience functions to be usable in other
-  tests.
+  tests.  (Ralf Schlatterbeck)
 - pytest suite now starts the server under wsgi and loads the home
   page. This test is skipped if the requests module is not installed.
 - extract translatable strings from devel and responsive templates. Merge
@@ -312,4 +323,10 @@
   Allow admin to configure authentication header replacing the default
   REMOTE_USER. Also allow arbitrary headers to be passed to the
   tracker when using roundup-server behind a proxy. This code is
-  experimental see upgrading.txt admin_guide.txt.
+  experimental see upgrading.txt admin_guide.txt. (John Rouillard)
+- add image/svg-xml as valid mime type to serve. Was being served as
+  octet-stream. (John Rouillard)
+- improve customizing.txt documentation on use of Special Form
+  Variables. Added example html inputs to illustrate the doc.
+  Fix position of designator in doc example. It occurs before
+  @link@ or other edit command. (John Rouillard)
--- a/doc/developers.txt	Sun Jul 11 17:10:03 2021 -0400
+++ b/doc/developers.txt	Mon Jul 12 23:21:12 2021 -0400
@@ -229,8 +229,11 @@
 translator object is available as context variable ``i18n``.
 
 HTML templates have special markup for translatable strings.
-The syntax for this markup is defined on `ZPTInternationalizationSupport`_
-page.  Roundup translation service currently ignores values for
+The syntax for this markup is discussed at `ZPTInternationalization`_.
+(Originally documented at
+http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/ZPTInternationalizationSupport
+which is now gone.)
+Roundup translation service currently ignores values for
 ``i18n:domain``, ``i18n:source`` and ``i18n:target``.
 
 Template markup examples:
@@ -419,5 +422,4 @@
 .. _Template Attribute Language Expression Syntax:
    https://pagetemplates.readthedocs.io/en/latest/history/TALESSpecification13.html
 .. _vim: https://www.vim.org/
-.. _ZPTInternationalizationSupport: http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/ZPTInternationalizationSupport
-
+.. _ZPTInternationalization: http://grok.zope.org/documentation/how-to/how-to-internationalize-your-application/view
--- a/doc/upgrading.txt	Sun Jul 11 17:10:03 2021 -0400
+++ b/doc/upgrading.txt	Mon Jul 12 23:21:12 2021 -0400
@@ -15,7 +15,9 @@
 
 **IMPORTANT** The v1.5.x releases of Roundup were the last to support
 Python v2.5 and v2.6.  Starting with the v1.6 releases of Roundup
-v2.7.2 is required to run newer releases of Roundup.
+Python version 2.7 that is newer than 2.7.2 is required to run
+roundup.  Starting with Roundup version 2.0.0 we also support Python 3
+versions newer than 3.4.
 
 Contents:
 
@@ -24,7 +26,7 @@
 
 .. index:: Upgrading; 2.0.0 to 2.1.0
 
-Migrating from 2.0.0 to 2.x.x
+Migrating from 2.0.0 to 2.1.0
 =============================
 
 Rdbms version change from 5 to 6 (**)
@@ -99,7 +101,8 @@
 version 5, the uniqueness of a key was not enforced at the
 database level. If you had a database that was at version 4 and
 then upgraded to version 5 you have the uniqueness enforcing
-constraint.
+constraint. Running migrate updates to schema version 6 and installs
+the unique index constraint if it is missing.
 
 Setuptools is now required to install
 -------------------------------------
@@ -112,20 +115,21 @@
 Define Authentication Header
 ----------------------------
 
-The front end server running roundup can perform the user
-authentication. It pass the authenticated username to the backend in a
-variable. By default roundup looks for the ``REMOTE_USER`` variable
-This can be changed by setting the parameter ``http_auth_header`` in the
-``[web]`` section of the tracker's ``config.ini`` file. If the value
-is unset (the default) the REMOTE_USER variable is used.
+The web server in front of roundup (apache, nginx) can perform user
+authentication. It can pass the authenticated username to the backend
+in a variable. By default roundup looks for the ``REMOTE_USER``
+variable. This can be changed by setting the parameter
+``http_auth_header`` in the ``[web]`` section of the tracker's
+``config.ini`` file to a different value. The value is case sensitive.
+If the value is unset (the default) the REMOTE_USER variable is used.
 
 If you are running roundup using ``roundup-server`` behind a proxy
-that authenticates the user you need to configure ``roundup-server`` to
-pass the proper header to the tracker. By default ``roundup-server``
-looks for the ``REMOTE_USER`` header for the authenticated user.  You
-can copy an arbitrary header variable to the tracker using the ``-I``
-option to roundup-server (or the equivalent option in the
-roundup-server config file).
+that authenticates the user you need to configure ``roundup-server``
+to pass the HTTP header with the authenticated username to the
+tracker. By default ``roundup-server`` looks for the ``REMOTE_USER``
+header for the authenticated user.  You can copy an arbitrary header
+variable to the tracker using the ``-I`` option to roundup-server (or
+the equivalent option in the roundup-server config file).
 
 For example to use the ``uid_variable`` header, two configuration
 changes are needed: First configure ``roundup-server`` to pass the
@@ -135,7 +139,7 @@
 
 note that the header is passed exactly as supplied by the upstream
 server. It is **not** prefixed with ``HTTP_`` like other headers since
-you are explicitly whitelisting the header. Multiple comma separated
+you are explicitly allowing the header. Multiple comma separated
 headers can be passed to the ``-I`` option. These could be used in a
 detector or other tracker extensions, but only one header can be used
 by the tracker as an authentication header.
@@ -149,7 +153,7 @@
 
 At the time this is written, support is experimental. If you use it
 you should notify the roundup maintainers using the roundup-users
-mailing list.
+at lists.sourceforge.net mailing list.
 
 Classname Format Enforced
 -------------------------
--- a/locale/de.po	Sun Jul 11 17:10:03 2021 -0400
+++ b/locale/de.po	Mon Jul 12 23:21:12 2021 -0400
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Roundup 1.5.0\n"
 "Report-Msgid-Bugs-To: roundup-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2021-07-03 12:33-0400\n"
+"POT-Creation-Date: 2021-07-12 22:10-0400\n"
 "PO-Revision-Date: 2016-04-11 09:13+0200\n"
 "Last-Translator: Tobias Herp <tobias.herp@gmx.de>\n"
 "Language-Team: German Translators <roundup-devel@lists.sourceforge.net>\n"
--- a/locale/en.po	Sun Jul 11 17:10:03 2021 -0400
+++ b/locale/en.po	Mon Jul 12 23:21:12 2021 -0400
@@ -11,7 +11,7 @@
 msgstr ""
 "Project-Id-Version: Roundup 0.7.0\n"
 "Report-Msgid-Bugs-To: roundup-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2021-07-03 12:33-0400\n"
+"POT-Creation-Date: 2021-07-12 22:10-0400\n"
 "PO-Revision-Date: 2004-11-20 13:47+0200\n"
 "Language-Team: English\n"
 "Language: \n"
--- a/locale/es.po	Sun Jul 11 17:10:03 2021 -0400
+++ b/locale/es.po	Mon Jul 12 23:21:12 2021 -0400
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Roundup 1.3.3\n"
 "Report-Msgid-Bugs-To: roundup-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2021-07-03 12:33-0400\n"
+"POT-Creation-Date: 2021-07-12 22:10-0400\n"
 "PO-Revision-Date: 2013-10-31 10:45+0100\n"
 "Last-Translator: Ramiro Morales <rm0@gmx.net>\n"
 "Language-Team: Spanish Translators <roundup-devel@lists.sourceforge.net>\n"
--- a/locale/fr.po	Sun Jul 11 17:10:03 2021 -0400
+++ b/locale/fr.po	Mon Jul 12 23:21:12 2021 -0400
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: Roundup 1.4.6\n"
 "Report-Msgid-Bugs-To: roundup-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2021-07-03 12:33-0400\n"
+"POT-Creation-Date: 2021-07-12 22:10-0400\n"
 "PO-Revision-Date: 2013-10-31 12:19+0100\n"
 "Last-Translator: Stephane Raimbault <stephane.raimbault@gmail.com>\n"
 "Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
--- a/locale/hu.po	Sun Jul 11 17:10:03 2021 -0400
+++ b/locale/hu.po	Mon Jul 12 23:21:12 2021 -0400
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: Roundup 1.3.3\n"
 "Report-Msgid-Bugs-To: roundup-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2021-07-03 12:33-0400\n"
+"POT-Creation-Date: 2021-07-12 22:10-0400\n"
 "PO-Revision-Date: 2013-10-31 12:19+0100\n"
 "Last-Translator: kilo aka Gabor Kmetyko <kg_kilo@freemail.hu>\n"
 "Language-Team: Hungarian\n"
--- a/locale/it.po	Sun Jul 11 17:10:03 2021 -0400
+++ b/locale/it.po	Mon Jul 12 23:21:12 2021 -0400
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: roundup cvs\n"
 "Report-Msgid-Bugs-To: roundup-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2021-07-03 12:33-0400\n"
+"POT-Creation-Date: 2021-07-12 22:10-0400\n"
 "PO-Revision-Date: 2013-10-31 12:20+0100\n"
 "Last-Translator: Marco Ghidinelli <marco.ghidinelli@ing.unibs.it>\n"
 "Language-Team: italian <it@li.org>\n"
--- a/locale/ja.po	Sun Jul 11 17:10:03 2021 -0400
+++ b/locale/ja.po	Mon Jul 12 23:21:12 2021 -0400
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Roundup 1.4.8\n"
 "Report-Msgid-Bugs-To: roundup-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2021-07-03 12:33-0400\n"
+"POT-Creation-Date: 2021-07-12 22:10-0400\n"
 "PO-Revision-Date: 2013-10-31 12:20+0100\n"
 "Last-Translator: Yasushi Iwata <iwata@know-net.co.jp>\n"
 "Language-Team: Yasushi Iwata <iwata@know-net.co.jp>\n"
--- a/locale/lt.po	Sun Jul 11 17:10:03 2021 -0400
+++ b/locale/lt.po	Mon Jul 12 23:21:12 2021 -0400
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: roundup-1.1.2\n"
 "Report-Msgid-Bugs-To: roundup-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2021-07-03 12:33-0400\n"
+"POT-Creation-Date: 2021-07-12 22:10-0400\n"
 "PO-Revision-Date: 2013-10-31 12:21+0100\n"
 "Last-Translator: Nerijus Baliunas <nerijus@users.sourceforge.net>\n"
 "Language-Team: \n"
--- a/locale/nb.po	Sun Jul 11 17:10:03 2021 -0400
+++ b/locale/nb.po	Mon Jul 12 23:21:12 2021 -0400
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: roundup-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2021-07-03 12:33-0400\n"
+"POT-Creation-Date: 2021-07-12 22:10-0400\n"
 "PO-Revision-Date: 2013-10-31 12:21+0100\n"
 "Last-Translator: Christian Aastorp <christian.aastorp@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
--- a/locale/roundup.pot	Sun Jul 11 17:10:03 2021 -0400
+++ b/locale/roundup.pot	Mon Jul 12 23:21:12 2021 -0400
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: roundup-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2021-07-03 12:33-0400\n"
+"POT-Creation-Date: 2021-07-12 22:10-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
--- a/locale/ru.po	Sun Jul 11 17:10:03 2021 -0400
+++ b/locale/ru.po	Mon Jul 12 23:21:12 2021 -0400
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Roundup 1.3.2\n"
 "Report-Msgid-Bugs-To: roundup-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2021-07-03 12:33-0400\n"
+"POT-Creation-Date: 2021-07-12 22:10-0400\n"
 "PO-Revision-Date: 2013-10-31 12:21+0100\n"
 "Last-Translator: alexander smishlajev <alex@tycobka.lv>\n"
 "Language-Team: Russian\n"
--- a/locale/zh_CN.po	Sun Jul 11 17:10:03 2021 -0400
+++ b/locale/zh_CN.po	Mon Jul 12 23:21:12 2021 -0400
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: 0.8.3\n"
 "Report-Msgid-Bugs-To: roundup-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2021-07-03 12:33-0400\n"
+"POT-Creation-Date: 2021-07-12 22:10-0400\n"
 "PO-Revision-Date: 2013-10-31 12:22+0100\n"
 "Last-Translator: Cheer Xiao <xiaqqaix@gmail.com>\n"
 "Language-Team: Chinese Simplified <limodou@gmail.com>\n"
--- a/locale/zh_TW.po	Sun Jul 11 17:10:03 2021 -0400
+++ b/locale/zh_TW.po	Mon Jul 12 23:21:12 2021 -0400
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: 0.8.3\n"
 "Report-Msgid-Bugs-To: roundup-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2021-07-03 12:33-0400\n"
+"POT-Creation-Date: 2021-07-12 22:10-0400\n"
 "PO-Revision-Date: 2013-10-31 12:23+0100\n"
 "Last-Translator: Fred Lin <gasolin@gmail>\n"
 "Language-Team: Chinese Traditional <gasolin@gmail.com>\n"
--- a/roundup/__init__.py	Sun Jul 11 17:10:03 2021 -0400
+++ b/roundup/__init__.py	Mon Jul 12 23:21:12 2021 -0400
@@ -67,6 +67,6 @@
 '''
 __docformat__ = 'restructuredtext'
 
-__version__ = '2.1.0b1'
+__version__ = '2.1.0'
 
 # vim: set filetype=python ts=4 sw=4 et si
--- a/setup.py	Sun Jul 11 17:10:03 2021 -0400
+++ b/setup.py	Mon Jul 12 23:21:12 2021 -0400
@@ -173,8 +173,8 @@
           long_description=long_description,
           url='https://www.roundup-tracker.org',
           download_url='https://pypi.org/project/roundup',
-          classifiers=[#'Development Status :: 5 - Production/Stable',
-                       'Development Status :: 4 - Beta',
+          classifiers=['Development Status :: 5 - Production/Stable',
+                       #'Development Status :: 4 - Beta',
                        #'Development Status :: 3 - Alpha',
                        'Environment :: Console',
                        'Environment :: Web Environment',
--- a/website/www/conf.py	Sun Jul 11 17:10:03 2021 -0400
+++ b/website/www/conf.py	Mon Jul 12 23:21:12 2021 -0400
@@ -54,7 +54,7 @@
 # The short X.Y version.
 version = '2.1'
 # The full version, including alpha/beta/rc tags.
-release = '2.1.0beta1'
+release = '2.1.0'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
@@ -205,4 +205,5 @@
     r'http://11.11.11.101',              # dummy example url
     r'https://.../rest/.*',              # dummy example url
     r'http://myroundup.com/roundup.*',   # dummy example url
+    r'http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/ZPTInternationalizationSupport',                 # dead link, there for historic
 ]
--- a/website/www/index.txt	Sun Jul 11 17:10:03 2021 -0400
+++ b/website/www/index.txt	Mon Jul 12 23:21:12 2021 -0400
@@ -11,26 +11,44 @@
 design from Ka-Ping Yee in the Software Carpentry "Track" design
 competition.
 
-The current stable version of Roundup is 2.0.0 which has quite a
-comprehensive :doc:`feature set <docs/features>` compared to the last
-stable release (v1.6.1). These features include:
+The current stable version of Roundup is 2.1.0. It is a bug fix
+and minor feature release for the major 2.0.0 release which
+added:
 
    * Python 2 and Python 3 support
    * a new REST interface
    * updates to jinja2 templates including security improvements
 
-The current latest release is 2.1.0beta1.
+Fixes and features in the 2.1.0 release include:
 
-For more information see the :doc:`design overview <docs/design>`, and
-all the other :doc:`documentation <docs>`. Roundup has been deployed
-for:
+   * Installation uses setuptools and not distutils.
+   * Mysql backend now uses an index to make sure that key values are
+     not duplicated when two roundup processes run in parallel.
+   * Postgres back end now uses a server side cursor, so large queries
+     won't consume huge amounts of memory.
+   * Security fixes for jQuery, markdown handling,
+   * Valid class names are documented and enforced. All class names now
+     match ``[A-z][A-z0-9_]+[A-z_]``.
+   * Fixes/improvements to jinja2 templates
+   * Fixes for python3 compatibility.
+   * Fix sorting of multilinks in templating code.
+   * Password reset documented in user guide.
 
-    * bug tracking and TODO list management (the classic installation)
-    * customer help desk support (with a wizard for the phone answerers, linking to networking, 
-      system and development issue trackers)
+More info on the 58 changes can be found in the `change note`_.
+
+For more information on Roundup see the :doc:`design overview
+<docs/design>`, and all the other :doc:`documentation <docs>`. Roundup
+has been deployed for:
+
+    * bug tracking and TODO list management (the classic
+      installation)
+    * customer help desk support (with a wizard for the phone
+      answerers, linking to networking, system and development
+      issue trackers)
     * issue management for IETF working groups
     * sales lead tracking
-    * conference paper submission and double-blind referee management
+    * conference paper submission and double-blind referee
+      management
     * weblogging (well, almost :) 
 
 ...and so on. It's been designed with :doc:`flexibility
@@ -39,7 +57,8 @@
 you've unpacked the source, just run "python demo.py" and load up the
 URL it prints out!
 
-Roundup was originally released as version 0.1.1 in late August, 2001. The first `change note`_ I wrote says:
+Roundup was originally released as version 0.1.1 in late August, 2001.
+The first `change note`_ written said:
 
     Needed a bug tracking system. Looked around. Tried to install many Perl-based systems, to no avail.
     Got tired of waiting for Roundup to be released. Had just finished major product project, so needed

Roundup Issue Tracker: http://roundup-tracker.org/