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.3.x -> 0.4.x 0.2.x -> 0.3.x 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/templates/classic/dbinit.py If you used the extended schema, the file is in: /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 ============================= Cookie Authentication changes ----------------------------- 0.3.0 introduces cookie authentication - you will need to copy the interfaces.py file from the roundup source to your instance home to enable authentication. If you used the classic schema, the interfaces file is in: /roundup/templates/classic/interfaces.py If you used the extended schema, the file is in: /roundup/templates/extended/interfaces.py If you have modified your interfaces.Client class, you will need to take note of the login/logout functionality provided in roundup.cgi_client.Client (classic schema) or roundup.cgi_client.ExtendedClient (extended schema) and modify your instance code apropriately. Password encoding ----------------- This release also introduces encoding of passwords in the database. 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/templates/classic/dbinit.py If you used the extended schema, the file is in: /roundup/templates/extended/dbinit.py If you have modified your dbinit.py file, you may use encoded passwords: 1. Edit the dbinit.py file in your instance home directory 1a. At the first code line of the open() function: from roundup.hyperdb import String, Date, Link, Multilink alter to include Password, as so: from roundup.hyperdb import String, Password, Date, Link, Multilink 1b. Where the password property is defined (around line 66): user = Class(db, "user", username=String(), password=String(), address=String(), realname=String(), phone=String(), organisation=String()) user.setkey("username") alter the "password=String()" to "password=Password()": user = Class(db, "user", username=String(), password=Password(), address=String(), realname=String(), phone=String(), organisation=String()) user.setkey("username") 2. Any existing passwords in the database will remain cleartext until they are edited. It is recommended that at a minimum the admin password be changed immediately: roundup-admin -i set user1 password= Configuration ------------- FILTER_POSITION, ANONYMOUS_ACCESS, ANONYMOUS_REGISTER have been added to the instance_config.py. Simplest solution is to copy the default values from 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. 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.