Code

Fix requirements in INSTALL.
[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.3.x -> 0.4.x
9   0.2.x -> 0.3.x
12 Migrating from 0.3.x to 0.4.x
13 =============================
15 Message-ID and In-Reply-To addition
16 -----------------------------------
17 0.4.0 adds the tracking of messages by message-id and allows threading
18 using in-reply-to. Most e-mail clients support threading using this
19 feature, and we hope to add support for it to the web gateway. If you
20 have not edited the dbinit.py file in your instance home directory, you may
21 simply copy the new dbinit.py file from the core code. If you used the
22 classic schema, the interfaces file is in:
24  <roundup source>/roundup/templates/classic/dbinit.py
26 If you used the extended schema, the file is in:
28  <roundup source>/roundup/templates/extended/dbinit.py 
30 If you have modified your dbinit.py file, you may use encoded passwords:
32  1. Edit the dbinit.py file in your instance home directory. Find the lines
33  which define the msg class:
35     msg = FileClass(db, "msg",
36                     author=Link("user"), recipients=Multilink("user"),
37                     date=Date(),         summary=String(),
38                     files=Multilink("file"))
40  and add the messageid and inreplyto properties like so:
42     msg = FileClass(db, "msg",
43                     author=Link("user"), recipients=Multilink("user"),
44                     date=Date(),         summary=String(),
45                     files=Multilink("file"),
46                     messageid=String(),  inreplyto=String())
48 a file select_db.py is needed in the instance directory, containing probably:
49 ---
50 # WARNING: DO NOT EDIT THIS FILE!!!
51 from roundup.backends.back_anydbm import Database
52 ---
53 or one could create a new instance and take the file from there.
56 Migrating from 0.2.x to 0.3.x
57 =============================
59 Cookie Authentication changes
60 -----------------------------
61 0.3.0 introduces cookie authentication - you will need to copy the
62 interfaces.py file from the roundup source to your instance home to enable
63 authentication. If you used the classic schema, the interfaces file is in:
65  <roundup source>/roundup/templates/classic/interfaces.py
67 If you used the extended schema, the file is in:
69  <roundup source>/roundup/templates/extended/interfaces.py
71 If you have modified your interfaces.Client class, you will need to take
72 note of the login/logout functionality provided in roundup.cgi_client.Client
73 (classic schema) or roundup.cgi_client.ExtendedClient (extended schema) and
74 modify your instance code apropriately.
77 Password encoding
78 -----------------
79 This release also introduces encoding of passwords in the database. If you
80 have not edited the dbinit.py file in your instance home directory, you may
81 simply copy the new dbinit.py file from the core code. If you used the
82 classic schema, the interfaces file is in:
84  <roundup source>/roundup/templates/classic/dbinit.py
86 If you used the extended schema, the file is in:
88  <roundup source>/roundup/templates/extended/dbinit.py
91 If you have modified your dbinit.py file, you may use encoded passwords:
93  1. Edit the dbinit.py file in your instance home directory
94  1a. At the first code line of the open() function:
96     from roundup.hyperdb import String, Date, Link, Multilink
98       alter to include Password, as so:
100     from roundup.hyperdb import String, Password, Date, Link, Multilink
102  1b. Where the password property is defined (around line 66):
104     user = Class(db, "user", 
105                     username=String(),   password=String(),
106                     address=String(),    realname=String(), 
107                     phone=String(),      organisation=String())
108     user.setkey("username")
110       alter the "password=String()" to "password=Password()":
112     user = Class(db, "user", 
113                     username=String(),   password=Password(),
114                     address=String(),    realname=String(), 
115                     phone=String(),      organisation=String())
116     user.setkey("username")
118  2. Any existing passwords in the database will remain cleartext until they
119     are edited. It is recommended that at a minimum the admin password be
120     changed immediately:
122       roundup-admin -i <instance home> set user1 password=<new password>
125 Configuration
126 -------------
127 FILTER_POSITION, ANONYMOUS_ACCESS, ANONYMOUS_REGISTER have been added to
128 the instance_config.py. Simplest solution is to copy the default values from
129 template in the core source.
131 MESSAGES_TO_AUTHOR has been added to the IssueClass in dbinit.py. Set to 'yes'
132 to send nosy messages to the author. Default behaviour is to not send nosy
133 messages to the author. You will need to add MESSAGES_TO_AUTHOR to your
134 dbinit.py in your instance home.
137 CGI script roundup.cgi
138 ----------------------
139 There have been some structural changes to the roundup.cgi script - you will
140 need to install it again from the cgi-bin directory of the source
141 distribution. Make sure you update the ROUNDUP_INSTANCE_HOMES after the
142 copy.