Code

. #516883 ] mail interface + ANONYMOUS_REGISTER
[roundup.git] / MIGRATION.txt
1 Migrating to newer versions of Roundup
2 ======================================
4 Please read each section carefully and edit your instance home files
5 accordingly.
7 This file contains information for users upgrading from:
8   0.4.0 -> 0.4.1
9   0.3.x -> 0.4.x
10   0.2.x -> 0.3.x
13 Migrating from 0.4.0 to 0.4.1
14 =============================
16 Configuration
17 -------------
19 To allow more fine-grained access control, the variable used to check
20 permission to auto-register users in the mail gateway is now called
21 ANONYMOUS_REGISTER_MAIL rather than overloading ANONYMOUS_REGISTER. If the
22 variable doesn't exist, then ANONYMOUS_REGISTER is tested as before.
26 Migrating from 0.3.x to 0.4.x
27 =============================
29 Message-ID and In-Reply-To addition
30 -----------------------------------
31 0.4.0 adds the tracking of messages by message-id and allows threading
32 using in-reply-to. Most e-mail clients support threading using this
33 feature, and we hope to add support for it to the web gateway. If you
34 have not edited the dbinit.py file in your instance home directory, you may
35 simply copy the new dbinit.py file from the core code. If you used the
36 classic schema, the interfaces file is in:
38  <roundup source>/roundup/templates/classic/dbinit.py
40 If you used the extended schema, the file is in:
42  <roundup source>/roundup/templates/extended/dbinit.py 
44 If you have modified your dbinit.py file, you need to edit the dbinit.py
45 file in your instance home directory. Find the lines which define the msg
46 class:
48     msg = FileClass(db, "msg",
49                     author=Link("user"), recipients=Multilink("user"),
50                     date=Date(),         summary=String(),
51                     files=Multilink("file"))
53  and add the messageid and inreplyto properties like so:
55     msg = FileClass(db, "msg",
56                     author=Link("user"), recipients=Multilink("user"),
57                     date=Date(),         summary=String(),
58                     files=Multilink("file"),
59                     messageid=String(),  inreplyto=String())
61 Also, configuration is being cleaned up. This means that your dbinit.py will
62 also need to be changed in the open function. If you haven't changed your
63 dbinit.py, the above copy will be enough. If you have, you'll need to change
64 the line (round line 50):
66     db = Database(instance_config.DATABASE, name)
68 to:
70     db = Database(instance_config, name)
73 Configuration
74 -------------
75 INSTANCE_NAME and EMAIL_SIGNATURE_POSITION have been added to the
76 instance_config.py. The simplest solution is to copy the default values
77 from template in the core source.
79 The mail gateway now checks ANONYMOUS_REGISTER to see if unknown users are to
80 be automatically registered with the tracker. If it is set to "deny" then
81 unknown users will not have access. If it is set to "allow" they will be
82 automatically registered with the tracker.
85 CGI script roundup.cgi
86 ----------------------
87 The CGI script has been updated with some features and a bugfix, so you should
88 copy it from the roundup cgi-bin source directory again. Make sure you update
89 the ROUNDUP_INSTANCE_HOMES after the copy.
92 Nosy reactor
93 ------------
94 The nosy reactor has also changed - copy the nosyreactor.py file from the core
95 source roundup/templates/[schema]/detectors/nosyreactor.py to your instance
96 home "detectors" directory.
99 HTML templating
100 ---------------
101 The field() function was incorrectly implemented - links and multilinks now
102 display as text fields when rendered using field(). To display a menu (drop-
103 down or select box) you need to use the menu() function.
107 Migrating from 0.2.x to 0.3.x
108 =============================
110 Cookie Authentication changes
111 -----------------------------
112 0.3.0 introduces cookie authentication - you will need to copy the
113 interfaces.py file from the roundup source to your instance home to enable
114 authentication. If you used the classic schema, the interfaces file is in:
116  <roundup source>/roundup/templates/classic/interfaces.py
118 If you used the extended schema, the file is in:
120  <roundup source>/roundup/templates/extended/interfaces.py
122 If you have modified your interfaces.Client class, you will need to take
123 note of the login/logout functionality provided in roundup.cgi_client.Client
124 (classic schema) or roundup.cgi_client.ExtendedClient (extended schema) and
125 modify your instance code apropriately.
128 Password encoding
129 -----------------
130 This release also introduces encoding of passwords in the database. If you
131 have not edited the dbinit.py file in your instance home directory, you may
132 simply copy the new dbinit.py file from the core code. If you used the
133 classic schema, the interfaces file is in:
135  <roundup source>/roundup/templates/classic/dbinit.py
137 If you used the extended schema, the file is in:
139  <roundup source>/roundup/templates/extended/dbinit.py
142 If you have modified your dbinit.py file, you may use encoded passwords:
144  1. Edit the dbinit.py file in your instance home directory
145  1a. At the first code line of the open() function:
147     from roundup.hyperdb import String, Date, Link, Multilink
149       alter to include Password, as so:
151     from roundup.hyperdb import String, Password, Date, Link, Multilink
153  1b. Where the password property is defined (around line 66):
155     user = Class(db, "user", 
156                     username=String(),   password=String(),
157                     address=String(),    realname=String(), 
158                     phone=String(),      organisation=String())
159     user.setkey("username")
161       alter the "password=String()" to "password=Password()":
163     user = Class(db, "user", 
164                     username=String(),   password=Password(),
165                     address=String(),    realname=String(), 
166                     phone=String(),      organisation=String())
167     user.setkey("username")
169  2. Any existing passwords in the database will remain cleartext until they
170     are edited. It is recommended that at a minimum the admin password be
171     changed immediately:
173       roundup-admin -i <instance home> set user1 password=<new password>
176 Configuration
177 -------------
178 FILTER_POSITION, ANONYMOUS_ACCESS, ANONYMOUS_REGISTER have been added to
179 the instance_config.py. Simplest solution is to copy the default values from
180 template in the core source.
182 MESSAGES_TO_AUTHOR has been added to the IssueClass in dbinit.py. Set to 'yes'
183 to send nosy messages to the author. Default behaviour is to not send nosy
184 messages to the author. You will need to add MESSAGES_TO_AUTHOR to your
185 dbinit.py in your instance home.
188 CGI script roundup.cgi
189 ----------------------
190 There have been some structural changes to the roundup.cgi script - you will
191 need to install it again from the cgi-bin directory of the source
192 distribution. Make sure you update the ROUNDUP_INSTANCE_HOMES after the
193 copy.