annotate scripts/README.txt @ 5525:bb7865241f8a

Make CSV import/export compatible across Python versions (also RDBMS journals) (issue 2550976, issue 2550975). The roundup-admin export and import commands are used for migrating between different database backends. It is desirable that they should be usable also for migrations between Python 2 and Python 3, and in some cases (e.g. with the anydbm backend) this may be required. To be usable for such migrations, the format of the generated CSV files needs to be stable, meaning the same as currently used with Python 2. The export process uses repr() to produce the fields in the CSV files and eval() to convert them back to Python data structures. repr() of strings with non-ASCII characters produces different results for Python 2 and Python 3. This patch adds repr_export and eval_import functions to roundup/anypy/strings.py which provide the required operations that are just repr() and eval() in Python 2, but are more complicated in Python 3 to use data representations compatible with Python 2. These functions are then used in the required places for export and import. repr() and eval() are also used in storing the dict of changed values in the journal for the RDBMS backends. It is similarly desirable that the database be compatible between Python 2 and Python 3, so that export and import do not need to be used for a migration between Python versions for non-anydbm back ends. Thus, this patch changes rdbms_common.py in the places involved in storing journals in the database, not just in those involved in import/export. Given this patch, import/export with non-ASCII characters appear based on some limited testing to work across Python versions, and an instance using the sqlite backend appears to be compatible between Python versions without needing import/export, *if* the sessions/otks databases (which use anydbm) are deleted when changing Python version.
author Joseph Myers <jsm@polyomino.org.uk>
date Sun, 02 Sep 2018 23:48:04 +0000
parents 64daaa4bf816
children 7655dae061b8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1647
73bf927091c7 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1 Scripts in this directory:
73bf927091c7 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
2
73bf927091c7 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
3 add-issue
73bf927091c7 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
4 Add a single issue, as specified on the command line, to your tracker. The
73bf927091c7 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
5 initial message for the issue is taken from standard input.
73bf927091c7 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
6
73bf927091c7 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
7 roundup-reminder
73bf927091c7 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
8 Generate an email that lists outstanding issues. Send in both plain text
73bf927091c7 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
9 and HTML formats.
73bf927091c7 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
10
3764
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents: 3176
diff changeset
11 weekly-report
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents: 3176
diff changeset
12 Generate a simple report outlining the activity in one tracker for the
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents: 3176
diff changeset
13 most recent week.
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents: 3176
diff changeset
14
1647
73bf927091c7 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
15 schema_diagram.py
73bf927091c7 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
16 Generate a schema diagram for a roundup tracker. It generates a 'dot file'
73bf927091c7 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
17 that is then fed into the 'dot' tool (http://www.graphviz.org) to generate
73bf927091c7 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
18 a graph.
73bf927091c7 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19
73bf927091c7 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
20 server-ctl
73bf927091c7 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
21 Control the roundup-server daemon from the command line with start, stop,
73bf927091c7 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
22 restart, condstart (conditional start - only if server is stopped) and
73bf927091c7 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
23 status commands.
73bf927091c7 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
24
1841
24fb163ddece added Debian rc script
Richard Jones <richard@users.sourceforge.net>
parents: 1647
diff changeset
25 roundup.rc-debian
24fb163ddece added Debian rc script
Richard Jones <richard@users.sourceforge.net>
parents: 1647
diff changeset
26 An control script that may be installed in /etc/init.d on Debian systems.
24fb163ddece added Debian rc script
Richard Jones <richard@users.sourceforge.net>
parents: 1647
diff changeset
27 Offers start, stop and restart commands and integrates with the Debian
24fb163ddece added Debian rc script
Richard Jones <richard@users.sourceforge.net>
parents: 1647
diff changeset
28 init process.
24fb163ddece added Debian rc script
Richard Jones <richard@users.sourceforge.net>
parents: 1647
diff changeset
29
3176
18ad9d702a5b added "imapServer.py" script (patch [SF#934567])
Richard Jones <richard@users.sourceforge.net>
parents: 1841
diff changeset
30 imapServer.py
18ad9d702a5b added "imapServer.py" script (patch [SF#934567])
Richard Jones <richard@users.sourceforge.net>
parents: 1841
diff changeset
31 This IMAP server script that runs in the background and checks for new
18ad9d702a5b added "imapServer.py" script (patch [SF#934567])
Richard Jones <richard@users.sourceforge.net>
parents: 1841
diff changeset
32 email from a variety of mailboxes.
18ad9d702a5b added "imapServer.py" script (patch [SF#934567])
Richard Jones <richard@users.sourceforge.net>
parents: 1841
diff changeset
33
4828
64daaa4bf816 contributors.py: Exclude robots and change sorting so that
anatoly techtonik <techtonik@gmail.com>
parents: 3764
diff changeset
34 contributors.py
64daaa4bf816 contributors.py: Exclude robots and change sorting so that
anatoly techtonik <techtonik@gmail.com>
parents: 3764
diff changeset
35 Analyzes Mercurial log, filters and compiles list of committers with years
64daaa4bf816 contributors.py: Exclude robots and change sorting so that
anatoly techtonik <techtonik@gmail.com>
parents: 3764
diff changeset
36 of contribution. Can be useful for updating COPYING.txt

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