Code

. use blobfiles in back_anydbm which is used in back_bsddb.
[roundup.git] / MIGRATION.txt
index 19ed5bde8364ab873f624751e6ffd3b59994d06d..396ade182b9144780d400b9c7677574bc0b8727e 100644 (file)
@@ -1,6 +1,156 @@
 Migrating to newer versions of Roundup
 ======================================
 
+Please read each section carefully and edit your instance home files
+accordingly.
+
+This file contains information for users upgrading from:
+  0.4.0 -> 0.4.1
+  0.3.x -> 0.4.x
+  0.2.x -> 0.3.x
+
+From CVS
+========
+
+Files storage
+-------------
+
+Messages and files from newly created issues will be put into subdierectories
+in thousands e.g. msg123 will be put into files/msg/0/msg123, file2003
+will go into files/file/2/file2003. Previous messages are still found, but
+could be put into this structure.
+
+Migrating from 0.4.0 to 0.4.1
+=============================
+
+Configuration
+-------------
+
+To allow more fine-grained access control, the variable used to check
+permission to auto-register users in the mail gateway is now called
+ANONYMOUS_REGISTER_MAIL rather than overloading ANONYMOUS_REGISTER. If the
+variable doesn't exist, then ANONYMOUS_REGISTER is tested as before.
+
+
+Alternate E-Mail Addresses
+--------------------------
+
+If you add the property "alternate_addresses" to your user class, your users
+will be able to register alternate email addresses that they may use to
+communicate with roundup as. All email from roundup will continue to be sent
+to their primary address.
+
+If you have not edited the dbinit.py file in your instance home directory,
+you may simply copy the new dbinit.py file from the core code. If you used
+the classic schema, the interfaces file is in:
+
+ <roundup source>/roundup/templates/classic/dbinit.py
+
+If you used the extended schema, the file is in:
+
+ <roundup source>/roundup/templates/extended/dbinit.py 
+
+If you have modified your dbinit.py file, you need to edit the dbinit.py
+file in your instance home directory. Find the lines which define the user
+class:
+
+    user = Class(db, "msg",
+                    username=String(),   password=Password(),
+                   address=String(),    realname=String(), 
+                   phone=String(),      organisation=String(),
+                   alternate_addresses=String())
+
+You will also want to add the property to the user's details page. The
+template for this is the "user.item" file in your instance home "html"
+directory. Similar to above, you may copy the file from the roundup source if
+you haven't modified it. Otherwise, add the following to the template:
+
+   <display call="multiline('alternate_addresses')">
+
+with appropriate labelling etc. See the standard template for an idea.
+
+
+
+Migrating from 0.3.x to 0.4.x
+=============================
+
+Message-ID and In-Reply-To addition
+-----------------------------------
+0.4.0 adds the tracking of messages by message-id and allows threading
+using in-reply-to. Most e-mail clients support threading using this
+feature, and we hope to add support for it to the web gateway. If you
+have not edited the dbinit.py file in your instance home directory, you may
+simply copy the new dbinit.py file from the core code. If you used the
+classic schema, the interfaces file is in:
+
+ <roundup source>/roundup/templates/classic/dbinit.py
+
+If you used the extended schema, the file is in:
+
+ <roundup source>/roundup/templates/extended/dbinit.py 
+
+If you have modified your dbinit.py file, you need to edit the dbinit.py
+file in your instance home directory. Find the lines which define the msg
+class:
+
+    msg = FileClass(db, "msg",
+                    author=Link("user"), recipients=Multilink("user"),
+                    date=Date(),         summary=String(),
+                    files=Multilink("file"))
+
+ and add the messageid and inreplyto properties like so:
+
+    msg = FileClass(db, "msg",
+                    author=Link("user"), recipients=Multilink("user"),
+                    date=Date(),         summary=String(),
+                    files=Multilink("file"),
+                    messageid=String(),  inreplyto=String())
+
+Also, configuration is being cleaned up. This means that your dbinit.py will
+also need to be changed in the open function. If you haven't changed your
+dbinit.py, the above copy will be enough. If you have, you'll need to change
+the line (round line 50):
+
+    db = Database(instance_config.DATABASE, name)
+
+to:
+
+    db = Database(instance_config, name)
+
+
+Configuration
+-------------
+INSTANCE_NAME and EMAIL_SIGNATURE_POSITION have been added to the
+instance_config.py. The simplest solution is to copy the default values
+from template in the core source.
+
+The mail gateway now checks ANONYMOUS_REGISTER to see if unknown users are to
+be automatically registered with the tracker. If it is set to "deny" then
+unknown users will not have access. If it is set to "allow" they will be
+automatically registered with the tracker.
+
+
+CGI script roundup.cgi
+----------------------
+The CGI script has been updated with some features and a bugfix, so you should
+copy it from the roundup cgi-bin source directory again. Make sure you update
+the ROUNDUP_INSTANCE_HOMES after the copy.
+
+
+Nosy reactor
+------------
+The nosy reactor has also changed - copy the nosyreactor.py file from the core
+source roundup/templates/[schema]/detectors/nosyreactor.py to your instance
+home "detectors" directory.
+
+
+HTML templating
+---------------
+The field() function was incorrectly implemented - links and multilinks now
+display as text fields when rendered using field(). To display a menu (drop-
+down or select box) you need to use the menu() function.
+
+
 
 Migrating from 0.2.x to 0.3.x
 =============================
@@ -79,5 +229,16 @@ template in the core source.
 
 MESSAGES_TO_AUTHOR has been added to the IssueClass in dbinit.py. Set to 'yes'
 to send nosy messages to the author. Default behaviour is to not send nosy
-messages to the author.
+messages to the author. You will need to add MESSAGES_TO_AUTHOR to your
+dbinit.py in your instance home.
+
+
+CGI script roundup.cgi
+----------------------
+There have been some structural changes to the roundup.cgi script - you will
+need to install it again from the cgi-bin directory of the source
+distribution. Make sure you update the ROUNDUP_INSTANCE_HOMES after the
+copy.
+
+