Code

pre-beta2 stuff
[roundup.git] / CHANGES.txt
index 8307c0fefba045b19e8ce07814494fe49ca2b452..343e51eb45e20b155df6be615c8cc801b9450da4 100644 (file)
@@ -1,6 +1,241 @@
 This file contains the changes to the Roundup system over time. The entries
 are given with the most recent entry first.
 
+2002-09-13 0.5.0 beta2
+ . all backends now have a .close() method, and it's used everywhere
+ . fixed bug in detectors __init__
+ . switched the default issue item display to only show issue summary
+   (added instructions to doc to make it display entire content)
+ . MANIFEST.in was missing a lot of template files
+ . added generic item editing
+ . much nicer layout of template rendering errors
+ . added context/is_edit_ok and context/is_view_ok convenience methods and
+   implemented use of them in the classic template
+
+
+2002-09-11 0.5.0 beta1
+Fixed:
+ . #576086 ] dumb copying mistake (frontends/ZRoundup.py)
+ . installation instructions now mention "python2" in "testing your python".
+ . made the unit tests run again - they were quite b0rken
+ . #571170 ] gdbm deadlock
+ . #576241 ] MultiLink problems in parsePropsFromForm
+ . fixed the date module so that Date(". - 2d") works
+ . web forms may now unset Link values (like assignedto)
+ . cleanup: moved roundup.templatebuilder to roundup.templates.builder
+ . instance __init__ no longer silently traps dbinit import errors
+
+Feature:
+ . new backend for metakit (thanks Gordon McMillan)
+ . new backend for gadfly (it's as done as it's going to get)
+ . further split the dbm backends from the core code, allowing easier
+   non-dict-like backends (eg metakit, RDB)
+ . implemented and used the new access control mechanisms (Permissions, Roles)
+   (see doc/security.txt)
+ . switched templating to use Zope's PageTemplates (yay!)
+ . switched to sessions for web authentication
+ . added Boolean and Number types
+ . fixed the journal bloat
+ . updated design document for new access controls
+ . updated customisation document, including more examples
+ . entire database export and import (incl files)
+ . better mailgw help message (feature request #558562)
+ . re-enabled link backrefs from messages (feature request #568714)
+ . the page layout is now templatable
+ . re-worked cgi interface to abstract out the explicit "issue" interface
+ . have index page handle mid-page errors better so header and footer are
+   still visible
+ . we handle "not found", access and item page render errors better
+ . fixed double-submit by having new-item-submit redirect at end
+ . daemonify roundup-server (fork, logfile, pidfile)
+ . modify cgitb to display PageTemplate errors better
+ . rename to "instance" to "tracker"
+ . have roundup.cgi pick up tracker config from the environment 
+ . revamped look and feel in web interface
+ . cleaned up stylesheet usage
+ . several bug fixes and documentation fixes
+ . added is_retired test to hyperdb.Class
+ . added capability to save queries:
+   - a query Class with name, klass (to search) and url (query string)
+     properties
+   - a Multilink to query on user called queries
+   - html templates for query, and a list of queries in user.item
+   - search form has Save button & name input
+   - saved queries put in menu in pagehead
+   - for migration, none of the above is required and old behavior preserved.
+   - showquery translates search form <-> query string
+ . cleaned up the indexer code:
+   - it splits more words out
+   - removed code we'll never use (roundup.roundup_indexer has the full
+     implementation, and replaces roundup.indexer)
+   - only index text/plain and rfc822/message (ideas for other text formats to
+     index are welcome)
+   - added simple unit test for indexer. Needs more tests for regression.
+   - all String properties may now be indexed too. Currently there's a bit of
+     "issue" specific code in the actual searching which needs to be
+     addressed. In a nutshell:
+     + pass 'indexme="yes"' as a String() property initialisation arg, eg:
+           file = FileClass(db, "file", name=String(), type=String(),
+               comment=String(indexme="yes"))
+     + the comment will then be indexed and be searchable, with the results
+       related back to the issue that the file is linked to
+   - as a result of this work, the FileClass has a default MIME type that may
+     be overridden in a subclass, or by the use of a "type" property as is
+     done in the default templates.
+   - the regeneration of the indexes (if necessary) is done once the schema is
+     set up in the dbinit.
+   - new "reindex" command in roundup-admin used to force regeneration of the 
+     index
+ . added email display function - mangles email addrs so they're not so easily
+   scraped from the web
+ . switched to using a session-based web login
+ . made mailgw handle set and modify operations on multilinks (bug #579094)
+ . fixed the journal bloat from multilink changes - we just log the add or
+   remove operations, not the whole list
+
+
+2002-06-24 0.4.2
+Fixed:
+ . Cleaned up the hyperdb unit tests.
+ . Applied patch from Andrew W. Nosenko to give nicer Unauthorised message
+   when anonymous user tries to edit. Should've been applied in 0.4.2pr1. Oops.
+ . Added more detailed note to MIGRATION regarding the detectors changes.
+
+
+2002-06-19 0.4.2pr1
+Feature:
+ . added a "detectors" directory for people to put their useful auditors and
+   reactors in. Note - the roundupdb.IssueClass.sendmessage method has been
+   split and renamed "nosymessage" specifically for things like the nosy
+   reactor, and "send_message" which just sends the message.
+ . link() htmltemplate function now has a "showid" option for links and
+   multilinks. When true, it only displays the linked node id as the anchor
+   text. The link value is displayed as a tooltip using the title anchor
+   attribute.
+   To use in eg. the superseder field, have something like this:
+   <td>
+    <display call="field('superseder', showid=1)">
+    <display call="classhelp('issue', 'id,title', label='list', width=500)">
+    <property name="superseder">
+     <br>View: <display call="link('superseder', showid=1)">
+    </property>
+   </td>
+ . stripping of the email message body can now be controlled through the
+   config variables EMAIL_KEEP_QUOTED_TEXT and EMAIL_LEAVE_BODY_UNCHANGED.
+ . all database files created are now group readable and writable.
+ . added option to automatically add the authors and recipients of messages
+   to the nosy lists with the options ADD_AUTHOR_TO_NOSY (default 'new') and
+   ADD_RECIPIENTS_TO_NOSY (default 'new'). These settings emulate the current
+   behaviour. Setting them to 'yes' will add the author/recipients to the nosy
+   on messages that create issues and followup messages.
+ . reverting to dates for intervals > 2 months sucks
+ . changed the default message list in issues to display the message body
+ . applied patch #558876 ] cgi client customization
+ . split instance initialisation into two steps, allowing config changes
+   before the database is initialised.
+ . don't create an empty message on email issue creation if the email is empty
+ . may now display additional fields in Multilink form menus
+ . #541941 ] changing multilink properties by mail
+ . #526730 ] search for messages capability
+ . #505180 ] split MailGW.handle_Message
+   - also changed cgi client since it was duplicating the functionality
+
+Fixed:
+ . stop sending blank (whitespace-only) notes
+ . cleanup of serialisation for database storage
+ . node ids are now generated from a lockable store - no more race conditions
+ . sorting was applied to all nodes of the MultiLink class instead of
+   to the nodes that are actually linked to in the "field" template
+   function.  This adds about 20+ seconds in the display of an issue if
+   your database has a 1000 or more issues in it.
+ . added missing documentation for a few of the config option values
+ . file upload broke if you didn't supply a change note
+ . fixed SCRIPT_NAME in ZRoundup for instances not at top level of Zope
+   (thanks dman)
+ . fixed some sorting issues that were breaking some unit tests under py2.2
+ . mailgw test output dir was confusing the init test (but only on 2.2 *shrug*)
+ . node caching now works, and gives a small boost in performance
+ . #449374 ] re-enable bsddb3 backend
+   bsddb3 backend now works, reinstating
+ . #551483 ] assignedto in Client.make_index_link
+ . made backends.__init__ be more specific about which ImportErrors it really
+   wants to ignore
+ . fixed the example addresses in the templates to use correct example domains
+ . cleaned out the template stylesheets, removing a bunch of junk that really
+   wasn't necessary (font specs, styles never used) and added a style for 
+   message content
+ . build htmlbase if tests are run using CVS checkout
+ . #565979 ] code error in hyperdb.Class.find
+ . #565996 ] The "Attach a File to this Issue" fails
+ . #564271 ] find() and new properties
+ . #562130 ] cookie path generated from ZRoundup was wrong in some situations
+ . remove CR characters embedded in messages (ZRoundup)
+ . properly quote the email address and "real name" in all situations using the
+    'email' module if it is available and 'rfc822' otherwise
+ . #565992 ] if ISSUE_TRACKER_WEB doesn't have the trailing '/', add it
+ . use the rfc822 module to ensure that every (oddball) email address and
+   real-name is properly quoted
+ . #558867 ] ZRoundup redirect /instance requests to /instance/ 
+ . #569415 ] {version}
+ . #569178 ] type error
+   was fixed as part of the general cleanup of reactors
+
+
+2002-03-25 - 0.4.1
+Feature:
+ . use blobfiles in back_anydbm which is used in back_bsddb.
+   change test_db as dirlist does not work for subdirectories.
+   ATTENTION: blobfiles now creates subdirectories for files.
+ . add module blobfiles in backends with file access functions.
+ . roundup db catch only IOError in getfile.
+ . roundup db catches retrieving not existing files.
+ . #503204 ] mailgw needs a default class
+   - partially done - the setting of additional properties can wait for a
+     better configuration system.
+ . Alternate email addresses are now available for users. See the MIGRATION
+   file for info on how to activate the feature.
+ . #511168 ] Web interface: Adding new products
+   Classes that don't provide template html get a default edit interface now:
+   - access using the admin "class list" interface
+   - limited to admin-only
+   - requires the csv module from object-craft (url given if it's missing)
+ . Added popup help for classes using the classhelp html template function.
+   - add <display call="classhelp('priority', 'id,name,description')">
+     to an item page, and it generates a link to a popup window which displays
+     the id, name and description for the priority class. The description
+     field won't exist in most installations, but it will be added to the
+     default templates.
+ . #517734 ] web header customisation is obscure
+ . All messages sent to the nosy list are now encoded as
+   quoted-printable before they are sent.
+ . Fixed display of mutlilink properties when using the template
+   functions, menu and plain.
+
+Fixed:
+ . Clean up mail handling, multipart handling.
+ . respect encodings in non multipart messages.
+ . makeHtmlBase: re.sub under python 2.2 did not replace '.', string.replace
+   does it.
+ . preamble in tepmlateBuilder mentioned htmldata
+ . mailgw checks encoding on first part too.
+ . #511586 ] unittest FAIL: testReldate_date
+ . Added a uniquely Roundup header to email, "X-Roundup-Name"
+ . All forms now have "double-submit" protection when Javascript is enabled
+   on the client-side.
+ . #516883 ] mail interface + ANONYMOUS_REGISTER
+ . #516854 ] "My Issues" and redisplay
+ . #517906 ] Attribute order in "View customisation"
+ . #514854 ] History: "User" is always ticket creator
+ . wasn't handling cvs parser feeding correctly
+ . fixed some problems in date calculations (calendar.py doesn't handle over-
+   and under-flow). Also, hour/minute/second intervals may now be more than
+   99 each.
+ . #527416 ] roundup-admin uses undefined value
+ . #527503 ] unfriendly init blowup when parent dir
+   (also handles UsageError correctly now in init)
+ . #524129 ] roundup-admin gets python path wrong
+
+
 2002-01-24 - 0.4.0
 Feature:
  . much nicer history display (actualy real handling of property types etc)
@@ -10,9 +245,6 @@ Feature:
  . you can now use the roundup-admin tool pack the database
 
 Fixed:
- . makeHtmlBase: re.sub under python 2.2 did not replace '.', string.replace does it.
- . preamble in tepmlateBuilder mentioned htmldata
- . mailgw checks encoding on first part too.
  . the mail gateway now responds with an error message when invalid values 
    for arguments are specified for link or mutlilink properties
  . modified unit test to check nosy and assignedto when specified as arguments
@@ -29,6 +261,7 @@ Fixed:
  . run_tests testReldate_date failed if LANG is 'german'
  . mailgw failures (unexpected ones) are forwarded to the roundup admin
 
+
 2002-01-16 - 0.4.0b2
 Fixed:
  . #495392 ] empty nosy -patch