-------------------------------------------------------------------------------
EPrints (3.2.0)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * Removed support RDF from 3.2.0 (grumble, moan, etc.)
 * Merged r5063, r5080
 * merge of r5024
 * Merge of r5020 r5021 r5022

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * Tomato Soup
 * Merged [5121]
 * s/getpwnam/getgrnam/
 * Merged [5116]
 * Fixed epindexer not using supplementary groups when setuid()ing
 * Fixed Platform::mkdir() not setting sticky bits and attempting to create '//foo' directories
 * -----------------------------------------------------------------------
 * Fixed ) ) typo
 * Merged [5111]
 * Reduced noiseness of epadmin and fixed bug in revision file detection
 * Merged [5102]
 * Fixed PostgreSQL database using 'text' blobs for every textual column
 * Fixed Oracle database using byte semantics for column lengths
 * Merged [5099]
 * Truncate ordervalues rather than causing a database abort
 * Multiply Oracle column widths by 4 to accomodate 4-byte Unicode
 * Merged [5082]
 * Fixed indexer fatal crash due to malformed UTF-8 data, hopefully fixing #3712
 * Merged [5070]
 * Fixed equals not equals in custom_sets in cgi/oai2, fixing #3677
 * Merged [5060]
 * Added unit test for and fixed typo of s/Metafield/MetaField/, fixing #3704
 * Merged [5034], [5035]
 * Fixed misnamed call to sub-routine when dynamically reloading storage configuration
 * Make document creation fail if any contained files can't also be created
 * When converting documents warn if the new document couldn't be created
 * ----------------------------------------------------------------------- M    perl_lib/EPrints/DataObj.pm M    perl_lib/EPrints/Storage.pm M    perl_lib/EPrints/Plugin/Convert.pm
 * Merged [5014] - fix for " AS " under Oracle
 * Merged [5008]
 * Fixed bug that caused no indexes to be created even when sql_index was true
 * Now won't create any indexes for fields that are at the start or end of a PRIMARY KEY
 * Merged [4995], [4996], [4997], [4998], [5002]
 * Fixed SWORD not accepting deposits due to not reading the POST before accessing the query object, fixing #3689
 * Replace control characters from textual metafield values with 0xfffd
 * Fixed undef warning in Time value format check
 * When cloning EPrints fix the relations in the contained documents to point to the newly cloned documents
 * Processing templates should no longer incorrectly consume ':' in phrases and print expressions

-- tagged-by Timothy David Brody <tdb01r@ecs.soton.ac.uk>  2010-03-10 15:43:39 +0000 (Wed, 10 Mar 2010)

-------------------------------------------------------------------------------
EPrints (3.2.0-rc-2)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * tag of 3.2.0-rc-2
 * To make all the other developers shut up and stop harrassing me, gawd bless 'em.
 * The title of the "null" group was text, should have been DOM
 * typo that broke things if "editors" wasn't defined
 * bugfix on bug which meant editors would not be added to rdf if creators was not defined
 * tiny typo in repository triples

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * Unit test for #3679
 * Fixed bug in Storage that caused only the first 4k to be written when cloning, fixing #3679
 * Correctly return false if File::clone() failed to clone the file content
 * Use EPrints::abort() rather than croaking in previous commit
 * Get a new position when cloning documents in the same eprint
 * Removed use of local() in previous commit - likely to cause hard to trace bugs later
 * Refactored storage code so failed uploads should end up with zero-length files rather than appearing to work/added more checks when writing under the storage layer

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2010-02-17 16:55:02 +0000 (Wed, 17 Feb 2010)

-------------------------------------------------------------------------------
EPrints (3.2.0-rc-1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * FTW!
 * typo!
 * Turned hard-coded "NULL" into a phrase. Fixing #3660
 * Fixed issue in test which got confused by cached action lists. Resolves #3683
 * More cleanups to default RDF
 * Fixed unit test which was looking for build_page (now called page)
 * Made eprint_render.pl and summary_page.xml use the new $item.documents() method, with ep:set
 * Altered epscript $doc->icon() syntax to be clearer, resolving #3670
 * Added a missing option to epscript pretty_print to have a string to put on the end ONLY if there was 1+ items in the list.
 * Updated NEWS file (with a link to the wiki, duh!) fixing #3666
 * Added missing "general" triples to export respource
 * Replaced icky $ep3s variable with $triples for clarity
 * Added /id/repository URI and /cgi/repositoryinfo to provide triples about the repo.
 * Fixed several issues with inital RDF choices
 * Added some if !defined's to eliminate warnings
 * Added skos:ConceptScheme to skos RDF
 * Fixed the RDF plugins to output in a consistant order
 * Replaced the dolphin with the new brand logo resolving #3680
 * Bugfixes from last release
 * Fix of undef warning
 * Removed Unicode::String checks from release installer
 * export plugins can have their mimetype altered with a ?mimetype=foo .. handy for debuging mimetypes your browser won't display.
 * lots of enhancement to the RDF export:
 * * /id/x-foo resources now content negotiate
 * * RDF export plugins now have a base class
 * * RDF export of subject tree
 * * subject URIs redirect to the RDF of the top item in the tree
 * * document (& other subobjects) redirect to the ultimate parent object
 * * changed "plain" to "literal" as the way to indicate literal values in RDF
 * * added "general" triples which are always added to every RDF output
 * * added N-Triples export
 * * document & eprint "relation" no longer use a named set
 * * Added a lang part to the eprint.rdf field
 * Added math options to EPScript; + - / * %
 * Added new EPScript method: .document()
 * Added new EPC tag: epc:set
 * Added "limit" attribute to epc:foreach
 * Added $index variable to epc:foreach
 * Modified results.xml citation to have nicer document icon view.
 * Corrected instructions for render_items_example
 * Fixed vertical align on render_menu and render_items examples
 * Tweak to header of Columns display, to make it possible to click on any bit of them.
 * Added "show_secret" option to XML export, without it, "secret" data (password hashes) is skipped. Fixes #3627
 * Tidied up REST code, including making it skip Secret fields, fixing #3628
 * Added public_roles config. option to allow privs to be set for non-logged in users
 * Added "dataset/rest/(get|put)" privs to control who can do what via REST
 * By default (on new repositories) the public can use REST 'get' on eprints in the 'archive' and subjects.
 * ooops; left in a >>>>>>>>>
 * New EPrints Script datatype: DATA_ARRAY: Represents a list of tuples of [$value, $epscript_type]
 * Added new methods to eprints script: substr, filter_compound_list, to_data_array, pretty_list, array_concat
 * typo: s/zz_web.xml/zz_webcfg.xml/
 * Minor changes to notes in the comment.
 * Search descriptions now default to only showing 5 values per field, fixing: #3160
 * Fixed issue with redirects during login. Resolves #3644
 * 'template' string returned by 'eprint_render' needs to be turned into a DOM somewhere. Now is.
 * Added option to pass a 4th value from eprint_render to set the template. (a bit hacky due to passing it as the only non-XHTMLDOM value in the parts hash)
 * Updated deprecated calls to search.
 * Fixed bug where a search condition object (eg. AND) gets optimsed to be a different condition.
 * trivial bug which breaks SEEK buttons
 * Fixed buggy regexp checking workflow action_buttons location
 * Changed default to "both" rather than "bottom" for workflow buttons.
 * Fixed bug where a REST PUT to title.txt just blanked the field. Resolves #3626.
 * corrected typo in epadmin s/rdf_sameas.pl/rdf_triples_sameas.pl/
 * Changed "not available online" to "not available from this repository"
 * Change StorageManager to use $list->map() rather than $search->map()
 * Fixed bug in indexer which meant it didn't index in a round-robin fashion. Closing #3548 hopefully for good this time.

Dave Tarrant <davetaz@ecs.soton.ac.uk>
 * Further add of multimedia documents to document namedset
 * Added upload recognition for a greater number of multimedia formats
 * Updated document_formats phrase file to include more Multimedia Formats.

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * Modified thumbnail and icon links to avoid mixing secure and non-secure items in the same page (during workflow)
 * Added EPrint::fileinfo() method that calculates the fileinfo value
 * Use "AS" in aliases due to reported problem with PostgreSQL
 * Added --clear option to indexer to clear 'inprogress' events (in case things go wrong)
 * Added support for "input_boxes" property to the workflow, so you can now specify the number of input boxes to show for multiple fields, fixes #3675 [Alexander 'Leo' Bergolth <leo@strike.wu.ac.at>]
 * Fixed use undef value as array in Subject, fixes #3673
 * Added phrase for gscholar field
 * Set the result code for the login page to 401
 * Added CONFIG option "hide_document_conversion" to hide the document Convert button
 * Disallow 'localhost' and IP-only addresses as the hostname
 * Phrases for gscholar field, fixing #3667
 * Removed isi_sword tool
 * Put the complete record in suggestions
 * Moving this out of tools temporarily
 * Alpha version of a tool to query ISI and submit those records via SWORD
 * Import items from the ISI WoK (requires SOAP::ISIWoK from CPAN & a WoK subscription)
 * Added support for If-Modified-Since to document delivery
 * Support custom render_value property in MetaField::Storable
 * Fixed error when attempting to edit metafields
 * Draft Cerif 2008 XML plugin (not advertised)
 * Don't attempt to use a subject if it doesn't exist in Subject->get_paths, fixing #3662
 * Updated to be consistent with EPrints about page
 * Updated EPrints about page according to #3647
 * Reduced default length of index names
 * Set default collation for MySQL to utf8_bin, fixing #3610
 * Made Subject::_get_ancestors() deterministic [Alexander 'Leo' Bergolth <leo@strike.wu.ac.at>]
 * Added "drop_archive_tables" method to Database
 * Added "drop_column" method to Database
 * Fixed UTF-8 not being correctly read from Oracle/Postgres
 * Fixed error when attempting to ordervalue compounds (default to empty)
 * Fixed tables not being dropped when calling erase_data under Oracle
 * Fixed insertion of values into Storable columns under Oracle
 * When finding the column to sort by stop at the first match
 * Replaced deprecated call to search->map() in cgi/latest
 * Added metafield phrases storable metafield type
 * Added phrases for "file" dataset
 * Experimental fix for Oracle throwing a fit about a BLOB column
 * Fixed dual-table check and identifier quoting
 * Object may be undefined when constructing extra_params for AJAX lookups
 * Set Expires and ETags to allow caching of document files (performance)
 * Fixed broken (undef) appearance in Screen::Workflow
 * ScreenProcessor now logs badly configured appear sections
 * s/args/arguments/
 * Added support for <xpage:head> to static pages to insert HTML head items
 * Added RSS 2.0 and Atom feeds as link-alternates to default home page
 * Added "phrase" method to EPC to retrieve the given phrase
 * Removed duplicated phrases for dataset names (use dataset_name_FOO) in ItemRef
 * lookup scripts are now called with dataset, dataobj and field parameters that contain the dataset, dataobj and field ids respectively
 * Added input lookup script for ItemRef fields, requires config option: $c->{datasets}->{$DATASETID}->{search}->{simple}->{meta_fields}
 * Added "json", "callback" synonyms for "jsonp" argument to JSON export
 * Default to hiding volatile documents in XML and JSON exports (hide_volatile=0 to show)
 * cgi/export and bin/export now respect the default values for Export plugin arguments
 * If more than 10 sub-queries are required to make a query to MySQL in an AND split them into separate sub-queries of 10 each
 * Modified cachemap searchexp field type to longtext
 * Check for the existance of "dual" table by SELECT instead of has_table
 * Oracle::quote_identifier() now abbreviates to 30 chars (uses MD5)
 * Oops, _get_records() can return array ref (ids) or list (records)
 * Fixed $list->map()/slice() side-effecting the list of ids, fixes #3648
 * Set the owner of queued events for dataobjs (queue_index etc.) to the current user
 * Added missing phrase for destroying items in Workflow
 * Fixed undef error when calling render_option_list() with no values
 * Look for the first defined field when finding the first column to order by in paginate
 * Storable render_value() now renders all parameters
 * Added columns() method to Dataset that returns a list of default columns (fields) to show for a dataset
 * Added screens and phrases for an event_queue management system: view, edit and remove event queue items
 * Added link to Admin Status page to event_queue manager
 * Merge config and core dataset definitions (i.e. allow dataset configuration to override core dataset settings). This is an experimental feature!
 * Only set disable_df if it isn't already defined in SystemSettings.pm
 * Added SQL_BIGINT to Oracle TYPE_INFO
 * Modified user preferences to be a stored hash table
 * Changed pluginid and action to be of 'id' type in event_queue dataset
 * Added abstracted version of the dataobj editing screens to enable creation/viewing/destruction of dataobjs
 * Added "preference" field to user objects to store user preferences
 * Default to showing all the user's records (archive & deletion) on Manage deposits screen
 * Fixed previous commit that caused 'Z' to be appended to seconds
 * When generating SQL values from date and time constrain the resulting parts to 3 and 6 parts respectively, otherwise when writing to the database we may clobber the next field's values
 * Tied up system.xml phrases, added an example local phrase file
 * Merged all phrases into a single file, now all use UTF-8
 * Moved defaultcfg phrases to system
 * For compatibility with 3.1 use get_repository() in GScholar.pm
 * s/x-compressed/x-gzip/ (last bit?)
 * Added icon and phrases for application/x-gzip
 * Fixed tar.gz/tgz not opening in GNOME: application/x-compressed => application/x-gzip)
 * Don't need a SQL index on gscholar field
 * Fixed fieldname default for s/cites/impact/ and tweaked title matching
 * Made the GScholar sync tool an export plugin
 * Don't barf on wide-characters
 * Added gscholar field to eprint defaults
 * Load phrase files in alphabetical order (so later files override earlier, although this will break down during dynamic reloading)
 * Warn, but ignore events working on non-existant objects
 * Added unit test for toolbox file operations
 * Fixed toolbox file adding/removing/getting for new API, fixes #3581
 * Added method to test environment for getting sample objects
 * Fixed bug in check for thumbnail age, now avoids creating thumbnails if a newer version already exists
 * Refactored Screen::EPrint::View to avoid unnecessary creation/destruction of plugins, also fixes bottom action buttons not appearing on "slow" sub-screens
 * Legibility change for indexer daemon
 * Set issues_type to be indexed, fixing #3518
 * Center-align import bar, fixing #3591
 * Don't show volatile versions on the summary page, fixing #3620
 * Return undef if attempt to get_single( undef ), fixing #3636
 * Check whether an eprint is locked before running indexer processes on it
 * Wrapped index processes in an eval to stop the indexer failing mid-process
 * Fixed bug in to_text_dump: XML object is accessible only by {repository} in XHTML
 * Performance tweak: moved list_items() from Screen.pm to ScreenProcessor.pm and modified it so that all the Screen plugins are indexed by the lists they appear in. This greatly improves the speed of subsequent queries by avoiding the need to interogate every Screen plugin on every list_items() call.
 * Don't need <head> components when rendering the eprint preview
 * Don't call field_from_config_string when getting values
 * Always use EPrints::ScreenProcess->new()
 * Added XHTML::to_text_dump() - equivalent to tree_to_utf8
 * Added XML::text_contents_of, which returns the text contents of a tree
 * Fixed variable %old_keys re-declared in epadmin
 * Fixed bug where thumbnails were not being removed when updated due to not searching for the complete relation (EPrints::Utils::make_relation) in Document.pm
 * Fixed error on view generation due to a bad template argument
 * Modified similar title issue finder to use i18n-friendly \w instead of [a-z]
 * Fixed issues_audit putting raw XHTML fragments into the database, fixing #3427
 * Modified types of 'id' and 'type' in item_issues to be of type 'id', fixing #3518
 * phrase: s/Issues Search/Search issues/
 * Fixed system-level files overriding repository-specific citations and workflows
 * Ignore PRIMARY KEY duplicates in bin/epadmin database upgrade
 * Test whether PRIMARY KEY and other keys exist before removing them during table upgrading to utf8 in epadmin
 * Fixed broken/deprecated use of [ALL] for ids in cgi/schema
 * Use the dataset keyname to drop the existing key
 * Test whether the non-system "creators" field exists before using it in the Atom export
 * The view fields should be part of the search, otherwise it's unclear what the search matches (I'm unsure about this but I think it's only cosmetic)
 * Added support for Plugin arguments
 * Be more informative than just "AJAX Exception" when saving phrases
 * Fixed deprecated call to EPrints::Search->dispose()
 * Actually create and use a cachemap table if keep_cache is true (was hidden by use of my() within closure)
 * Unit test for [4818]
 * Fixes bug reported when searching rindex via a dataset join
 * Fixed #3630, s/DROP KEY(foo)/DROP KEY foo/
 * Added deprecated warnings to all Search list-related methods: count, map, get_records, cache_results
 * Removed broken weaken() usage in Search, now just re-does the search when calling deprecated methods
 * Replaced deprecated calls to Search::get_records() with slice()
 * Fixed "attempt to call toString" on EPrints::Page error in unit tests

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2010-02-16 17:36:38 +0000 (Tue, 16 Feb 2010)

-------------------------------------------------------------------------------
EPrints (3.2.0-beta-1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * beta-1
 * Added EPrints::Page for API handling of web pages. Mostly resolving #3579.
 * Update to REST interface. Now works via an apache handler on path /rest/
 * REST Will allow fields to be read/written via GET/PUT using .xml or .txt
 * Added Copyright headers to packages.
 * Made "suggestions" not export-as-xml as it's potentially private.
 * Set RDF field to be "volatile"
 * Set RDF and edit lock to be not exported as XML.
 * Reverted forcing binmode to be utf8. Revert of r4773 and r4764
 * Added RepositoryConfig class to provide methods to call on the config
 * Added the "trigger" feature closing #3586
 * The RDF config now uses triggers
 * Fixed some unicode issues in the rdf .pl files.
 * Removed unused eprints2 config "configmodule"
 * Trivial code clarification. Fixes #3613
 * Ensure that STDOUT is set to be utf-8 (fixes some encoding issues seen)
 * Fixed bug that reported on messages when illegal /view/ urls were requested. Closes #3614
 * Catch and ignore Apache IO complaint when a web client disconnects before we were done. Closes #3604
 * Fixed bug which meant /view/foo did not redirect to /view/foo/ (closes #3611)
 * Added a detailed level 5 log level to indexer to show details of every single task. Closes #3605.
 * Force binmode of outgoing filehandle of a list-export to be utf-8. Gets rid of a bunch of wide-character warnings.
 * Rename text in status page to reflect the fact that the queue is now more than indexing fields.
 * If there's no main file set, but only one file, return that as the main file.
 * Removed DC triples, closing #3606
 * Fixed typo in sameas, now it should spot text/n3 too
 * Added example code to uri_person to show how to prevent extrapolation of email (or ID) from the URI.
 * Only clean up the database if it is not undefined! Fixes #3598
 * Fixed an incorrect assumption about where to get a repository object from in Atom export. Fixing #3603
 * Fixed a warning in Atom export if date isn't set in the eprint.
 * Fixed bug in InSubject searches when complexly grouped with other conditions.
 * Split Script.pm into component packages
 * added Import::XML to used modules.
 * Split out package EPrints::DataObj::Import::XML into it's own module
 * Corrected Minor typo which broke /cgi/json

Dave Tarrant <davetaz@ecs.soton.ac.uk>
 * Whitespace bugfix, 3 regex's. Can probably be done with one.
 * Added correct permissions to Storage Manager, new admin role is storage/manager.
 * Remove unnecessary plug-ins from trunk, now in tools dir.

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * Added missing use strict;
 * Added missing super-class usage in Page::Text (fixes can't call send_header)
 * Fixed double-sending of file content
 * Updated Apache::Storage to use new API methods
 * Added is_empty() method to Conditions to test whether they should be ignored in the search
 * Strip PASS before it gets into the Search condition tree
 * PASS now aborts() if it is executed within a search tree
 * Fixed AND not including subject ancestor search when subjects are single
 * s/main_table/alias/
 * Replaced deprecated call to Search::map with $self->search()
 * Fixed potential race condition due to not explicitly checking status is still "waiting" when doing the dequeue update
 * Dequeue upto 10 items at a time (more efficient)
 * MetaField::Search now has two properties:
 * "namedfields" which is an array ref of field names to search OR
 * "namedfields_config" which is the name of a config variable
 * MetaField::Search can now be used in any workflow (not hard-coded to editpermfields)
 * Citation style for EventQueue - useful for debugging by render_description()
 * Missing phrases for thumbnail document types and relations
 * Oops #2, when weakening need to keep another pointer around or it disappears straight away
 * Oops, defined &$Scalar => defined &Scalar
 * Don't render description & order when generating List objects, instead pass the search expression
 * Uses Scalar::Util::weaken to avoid circular references between Search and List
 * Fixed typo in name s/Execl/Excel/
 * Added a Test::RepositoryLog module to capture repository log calls
 * Added line number of filename of calling function to phrase()
 * Added a "clear" option to Database::get_user_messages to clear messages
 * Instead of making two queries to the DB for messages (get/clear) just get and clear if needed
 * Avoids a race condition where a message could be added and never seen between getting and clearing
 * AND must subquery ORs
 * Fixed bug in dataset joins not using left-side key (e.g. eprint by-username lookup)
 * ANDs now use sub-queries when applying multiple conditions to the same non-main table - i=x AND i=y is always false on the main table
 * Split SubQuery into OR- and AND- based subqueries
 * Flatten Control statements before doing other optimisations, otherwise SubQueries break the flattening
 * Removed redundant key on eprintid (use reversed PRIMARY KEY instead)
 * has_column() and has_table() now test using uppercase identifiers
 * Added support for installing updated configuration files, fixing #3595
 * Improved debug output from files upgrading
 * Fixed thumbnails path not existing warning
 * Added progress output to upgrading of files
 * Split 3.2.0 database upgrade into 3.2.0 (utf8) and 3.2.1 (documents)
 * Convert to UTF8 by insertion into a new table (avoid a 2nd big ALTER TABLE)
 * Simplified upgrade code to use a single table-upgrade method
 * Set the default charset of upgraded tables to UTF8, fixing #3602
 * Prevent users from creating fields that are named the same as system fields, fixing #3588
 * Don't attempt to indent XML when using GDOME (even though it claims it can)
 * Emit more debug when upgrading database tables to utf-8
 * PluginFactory now respects plugins that set their own disable parameter
 * Plugins instances created at construction time are now called with repository and session arguments
 * Check database version on each request
 * Modified BibTeX import to use BibTeX::Parser (lighter weight than Yapp)
 * Encode URLs using the BibTeX URL-specific magic
 * Fixes to a couple of internal TeX::Encode problems
 * Check that the import plugin returned a list, if not throw an error
 * Merged changes from current TeX::Encode, fixing #3582
 * Avoid a unit test failure on Apache pool missing
 * Fixed typos in repository calls (hash assignment error)
 * Fixed strict refs breaking calls to upgrade methods
 * Oops, s/self/new_eprint/
 * Subobjects are now created in DataObj::create_from_data
 * In queue_all don't bother with create_unique as it's unlikely to ever create a queue_all twice for a new object
 * Cache getpwnam and getgrnam responses
 * If subobjects are set using set_value return that cached list instead of re-querying the database
 * Modified History::set_dataobj_xml to use API methods (faster)
 * Delay cleanup of cachemaps until the mod_perl cleanup stage
 * Create Oracle FLOATs as NUMBER because BINARY_FLOAT and BINARY_DOUBLE are incompatible with the exp and imp backup tools
 * Added unit test for testing cachemap expiry behaviour
 * Added config option "cache_max" to limit the cachemap tables used
 * Now cleans up expired cachemaps on cachemap creation
 * Added create_sql_table() method to Cachemap that creates the cachemap table
 * Added cleanup() method to Cachemap that cleans up expired caches
 * Use a SQL UNION instead of table joins to perform ORs
 * Database insert/update and ordervalues now only update changed fields
 * Event module that enables delayed calling of EPrints::Document::files_modified
 * Queue document files_modified (this means thumbnails are generated later)
 * Don't create the directory on EPrint creation (done in storage layer)
 * Moved document store code to Repository
 * abort() if we couldn't connect to the database
 * Cache subjects before importing
 * Don't commit() on add/remove plugin_copy
 * Don't attempt to add ordervalues for Compound fields (at least not until Compound fields supply a sane ordervalue)
 * Fixed deprecated function call to EPrints::Utils::join_path()

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2009-12-17 16:01:24 +0000 (Thu, 17 Dec 2009)

-------------------------------------------------------------------------------
EPrints (3.2.0-alpha-1)
-------------------------------------------------------------------------------

Adam Field <af05v@ecs.soton.ac.uk>
 * Added editorial review filters.
 * Fixed bug in DataObj::tidy where undef fields caused crash.

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * This is it.
 * Added phrases to systems.xml to prevent unhelpful warnings during unit tests.
 * Fixed bug in "is null" search condition which meant it failed on multi-column fields.
 * Fixed bug when decoding utf-8 strings from encoded filenames used in views.
 * Finally added "update_database_structure" to long view of epadmin help.
 * Added unit tests to released package
 * Fixed missing ";" -- last edit not fussy enough.
 * Trivial code rearrangement (just being fussy)
 * Removed the CHANGELOG from SVN. We now use svn log instead.
 * Fixed connect-to-db-as-root bug in epadmin.
 * Added arguments to export plugins. Passed by CGI arguments on abstract search or by da --arg opton we have added to bin/export for magickal extra goodness.
 * Fixed URI redirections to be 303 not 302.
 * Added test to make sure rdf functions exist before calling them
 * Added fix for unicode in values used to md5hash RDF URI values
 * Moved all dataobj warning, validate and change-trigger code to DataObj as a prelude to adding sets of triggers.
 * Added code to RDF .pl files to check fields exist.
 * Removed unused dependency on Unicode::String from RDFN3
 * If no "accept" header then assume text/html
 * Renamed _update_triggers to update_triggers (prelude from moving it to DataObj.pm)
 * Added RDF-N3 Export tool.
 * Tweaks to bibo module to handle events better
 * Added URI to EPrint Summary Page
 * Corrected deprecated call in EPrints::Apache::ReWrite (introduced last commit)
 * Added support for Linked data. Yes, you heard me: Linked Data!
 * Improved document_upload.pl layout to make it easier to add/remove suffix to mimetype mappings.
 * Built a method in Rewrite which takes a list of plugins and a HTTP accept header and returns the best plugin for that header!
 * Export plugins have a quality value, defaulting to qs=0.5
 * URIs now perform a content negotiation redirect!
 * Better error message if repository is not loaded in /bin/ scripts.
 * Fix to make button forms work with https.
 * Syntactic tweak to process_parameters
 * Bugfix to clone node under GDOME.
 * Added 'fn' parameter to cgi/json as an alternative to 'callback'
 * Trivial change to eprint fields; changed creators_id from 'email' to 'text'
 * Fixed bug that is_advertised property on export plugins was being ignored.
 * Added methods to Script for working with action lists.
 * Create action list for actions to go on summary page
 * Added this list to the summary page
 * revert change to cache repositories tween sessions
 * Fixed bug which meant "use Session" caused a die.
 * (re)Added caching for Repository configuration when running under mod_perl
 * Added function to check hash paramters passed to a function, set defaults if undef, and warn if unexpeted paramters were passed.
 * Merged RepositoryConfig into Repository.
 * Moved old Session functions into BackCompatability
 * svn oddness.
 * Merged Session & Repository. Repository is now a subclass of RepositoryConfig. RepositoryConfig can be used where no db connection etc. is possible. More work to do on this, but works!
 * Minor tweak to XML::GDOME to work with the new XML set up.
 * $eprints->repository now obeys disable option.
 * First half of Repository methods for API. Not yet merged Repository & Session.
 * part of last commit
 * ooops
 * EPrints.pm methods for API.
 * Tweaked deprecated messages to give the xml methods an "xml" tag, so that these can be supressed. They are just annoying.
 * Refactored EPrints::Handle::* into EPrints::RepositoryHandle and EPrints::XMLHandle
 * Changed the EPrints->get_handle method to get_repository_handle( %opts ) and get_repository_handle_by_id( $repo_id, %opts )
 * $handle->terminate now called by DESTROY if not before.
 * tweaks to POD
 * Reworked API for getting handles and repositories.
 * Refactored code and docs for this new API.
 * Added API convenience calls for $handle->get_XXXXX( $id )
 * Added convenience methods to $handle: get_dataobj, get_live_eprint, get_user_with_username, get_user_with_email.
 * Refactored all code and pod to use these.
 * tweaks to documentation
 * added dataset to api list
 * Fixed a bug introduced in refactoring prepare_page.
 * More document improvements.
 * more cleanup
 * More documentation and tweaks to the pod->wiki tool.
 * Refactored documentation for Email.pm
 * Documentation refactored for Box.pm
 * 
 * more docs and api clean up
 * backwards compatibilizing  build_page
 * More API clean up.
 * credit where credit is due.
 * documentation
 * API POD for MetaField
 * more documentation
 * tidied up deprecation() calls. Lots of new POD
 * added some newlines to make synopsis easier to read
 * Language.pm and XML.pm synopsis added.
 * split modules into key and secondary.
 * Comments for Handle::Language.pm
 * Documented core API modules list & synopsys.
 * New documentation for Time.pm
 * Cleanup of some typos
 * renaming files and directories
 * s/session/handle/g. May the gods have mercy on us.
 * Chopped Session.pm into smaller modules for easier management.
 * Moved some functions to BackCompatability and refactored get_archive
 * Added $session->get_conf() to improve readability of code.
 * Converted Admin screen into several tabs.
 * Fix new search so that left-joins come after inner joins, a left join is joined to the main table, and it does not merge tables in AND queries on sub-tables, but does on OR queries.
 * Added experiemental alternate search method. Not yet used by default.
 * Added *temporary* config option "temp_use_v2_search" to use new style search.
 * New Script method: property() which takes a string and returns a property from a hash or dataobj.
 * Removed render_data_row() method as it's not needed after all.
 * Removed the data_row phrase too.
 * Reworked summary_page.xml to iterate over a list of fields from eprint_render.pl
 * Added new EPScript method render_data_row
 * Added phrase to go with it.
 * Used this to shorten the summary_page.xml file.
 * previous commits changes.
 * New EPScript methods: citation_link, dataset, related_objects, url, doc_size, is_public, thumbnail_url, preview_link, icon, human_filesize, control_url, contact_email.
 * Fixed issue in related items which gave warnings if "type" not defined.
 * New EPC tag type: epc:debug, which is like print but sends the XML to STDERR for debugging purposes.
 * Improvements to the epc:foreach processing (better handling of multiple object types in lists)
 * Fixed typo in comment on User.pm
 * Changed sword_depositor to an itemref from a text type.
 * Moved most of eprint_render.pl into a citation file: summary_page.xml
 * Fixed broken call in cgi/rest
 * Added handling for PUT request data to Session
 * Added priv handling to REST interface
 * REST interface now supports PUT, on basic .txt fields.
 * Added $session to has_phrase calls.
 * Cleanup and bugfixes on new Search::Condition objects.

Dave Tarrant <davetaz@ecs.soton.ac.uk>
 * Added document_typename_thumbnail_preview phrase
 * Fixes for recent database upgrades
 * Added Documentation
 * Removed styling arround edit lock message, now done by the screen.
 * Alpha Channeled
 * Look and Feel Changes
 * Move up, move down fixes and one missing phrase
 * added image/jpg document phrase.
 * Phrases for #4626
 * New tabbed upload form which includes listing of volatile documents
 * human_filesize now returns Gb and Tb if applicable
 * Merged [4475]
 * Added and updated contributor list
 * Phrases for storage manager
 * sword importing via the openxml plugin
 * Adds OpenXML upload to Upload form
 * OpenXML upload handlers
 * Grouped plug-ins together by type and reflected this in the admin screen

pm705@zepler.net
 * Added Docfest Documentation for Box.pm
 * Added documentation from docfest for Search.pm
 * corrected a pod error in List.pm
 * corrected an error in Utils.pm documentation
 * Added DocFest documentation to Time.pm
 * Moved some old stuff from Utils.pm into BackCompatibility.pm and moved documentation from the docfest into Utils.pm.
 * oving the documentation from the docfest into List.pm

sf03r@ecs.soton.ac.uk
 * 
 * added doc
 * sf - fixed file corruption problem on SWORD + removed some comments
 * adding sword2

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * MySQL user can only access eprints database from localhost
 * Rescan the repositories in create to allow the Repository object to be created later
 * Make ordervalues of Time fields consistent, fixing #3576
 * PostgreSQL Database Driver
 * Added create() method to EPrints::Database to create databases
 * Added "db_connect" option to EPrints::Database->new() to disable connection
 * epadmin create_db now calls EPrints::Database->create()
 * Added _cache_from_SELECT method to EPrints::Database which caches a SELECT query to a cache table (using a SQL sub-query)
 * _cache_from_TABLE calls _cache_from_SELECT, removed duplicated _cache_from_TABLE code from DB drivers
 * Storable calls quote_binary() to apply database tweaks to binary data
 * quote_binary() method to EPrints::Database that fixes binary data for PostgreSQL
 * Fixed undef warning when edit_lock_user hasn't yet been set
 * Check required arguments to the Indexer event handler are supplied (shouldn't happen though)
 * Don't need to connect to the database when generating apache config files
 * Fixed problem with "run_script" attempting to run on a repository that doesn't exist yet
 * Fixes "epadmin create"
 * Deprecated item_matches() in favour of doing a search (reduce code)
 * Oracle doesn't support using column aliases in GROUP BY
 * EPrints::URL abort on auto-path
 * date/time logic now uses v4 table name
 * Fixed "can't call getAttribute on text node" unit tests error
 * Fixed undef used in sub call in XML::toString unit tests warning
 * s/create_subobject/create_subdataobj/
 * Fixes "can't call uri on undef" errors in unit tests
 * Throw a full error if someone attempts to get the current uri under non-CGI
 * Added a fake RequestRec for use in the test harness
 * Database-search v4
 * (interim commit subject to further testing)
 * Readability change
 * Fixed arguments to process() call from editorial scope
 * Alpha support for DB sub-queries to improve OR-based peformance
 * TODO: rewrite database search code
 * Make Conditions re-entrant
 * Use optimise() to collapse multiple AND/OR comparisons on the same table and depth to a single Comparison condition
 * Re-structure AND and OR to use SubQueries (so instead of ->process return chunks of SQL that can then be tied together)
 * Oops: should have *skipped* SubObjects instead of ordervaluing them all
 * satisfy_all => 0 unit test
 * Don't get a lock on an eprint more than once for a given session
 * Dirty hack to speed up eprint committing by caching documents (sorry)
 * Don't need to tidy or set ordervalues on sub-objects
 * Made tidy() more efficient (~90ms -> ~10ms)
 * Strip event objects after running them, unless oneshot is FALSE
 * Missing join_path() (TODO: tidy up platform)
 * Removed Unicode::String
 * Removed redundant retrieval of DB objects
 * Added more details for files (mime-type etc.)
 * Select the Main file using radio options on the files tab
 * Backwards compatibility with single <Upload> component
 * Code cleanup
 * Added query logic for "IsNull"
 * Removed more redundant code between Upload/Documents
 * Fixed Documents trashing new documents by overwriting with null data
 * Fixed phrases for document validation
 * Move Up/Down and Delete document buttons are now icons
 * Moved "Show options" below the main document title bar
 * Split document uploading into adding a new document and editing existing documents
 * Offer options to users and editors on the deposit screen if there are problems
 * Made it an option to provide action buttons top and bottom in workflow
 * Display a warning only if eprint is locked by someone else in workflow
 * Removed box around action buttons and blister bar in workflow
 * Document upload screen now has tabs
 * When attempting to deposit an eprint with problems show Save button
 * When an editor provide the "Move to Review" button if there are problems
 * s/create_subobject/create_subdataobj
 * Alpha migration of files/thumbnails for 3.1 -> 3.2
 * Instantiate the data object data directly
 * This will break any metafields that expect to treat database data before it goes into the dataobj
 * Updated epadmin for use with the new API/Repository/Session
 * Abstracted construction of Repository objects to a single method
 * Don't check DB when erasing all data
 * Just do $session->get_repository() to get the Repository object
 * Tweaked - output "null" for undef values
 * Added support for an 'n' argument to search exports
 * Initialise the output file handle before writing export
 * Direct export of values instead of going via XML
 * Added "uri" to all dataobjs hashes
 * Fix loss of <DATA> (must read it *once* for the class)
 * Show a progress bar while records are updated
 * A simple "progress bar" widget
 * Don't clobber system-loaded storage policies with repository-specific ones
 * More debug for when things go wrong
 * Improved the BatchEdit interface
 * Can now apply multiple changes to the same field
 * render_input property overrides rendering in a compound context too
 * off-by-one error in get_cache_ids
 * Tied up search phrase usage to be consistent (colons)
 * Added a unit test that can show duplicated phrases (based on content)
 * Made all the ":desc:foo_between" phrases point to a common ancestor
 * Added "ref" option to phrases, which will cause the referenced phrase to be used instead
 * Equivalent to calling the referenced phrase directly
 * Use default_order from search config in Staff eprint search, fixing #3517
 * Set id on form field inputs
 * Removed redundant form generation code from Repository
 * Don't make noenter if noenter => 0 is given
 * Pass-through onclick parameters in link rendering, fixing #3475
 * Added subclasses for EPrints::XML to support class-overrides
 * Fixed clone_node() not cloning attributes under GDOME
 * Reversed previous commit, which breaks under LibXML
 * Don't add headers/footers twice
 * Cleanedup previous commit + allowed '_' in jsonp value
 * Added support for JSONP
 * Check something was actually read, fixing #3505
 * Provide a hint on how to enable configuration file editing
 * Don't need a text policy if we have a URL
 * Replace cache-based OAI with stateless OAI
 * API 0.9 for oai_stateless
 * Support for multiple constraints in custom OAI sets
 * Performance and bug tweaks for oai_stateless
 * Do ->perform_search because we have implemented execute() yet
 * Maintain the order of attributes when creating XHTML elements
 * Added "data_element" to XHTML (render_data_element)
 * Return the HANDLE when EPrints->new is called from mod_perl
 * Added a stub output_dataobj to XMLFile that stringifies xml_dataobj
 * Fixed REM_Atom_via_PMH/REM_Atom not working together
 * Link to default policies page, fixing #3520
 * Supply a fake user agent to wget, fixing #3538
 * s/year/creators/ #3553
 * Removed debug line #3566
 * Fixed dynamic reload of Storage layer configuration
 * Fixed dynamic reloading under persistent repositories (missing id from persistent repository attributes)
 * s/get_url/current_url/
 * s/get_query/query/
 * Added EPrints::repository_ids() method
 * More efficient cache_from_TABLE by using ROWNUM
 * Fix retrieving all tables (uppercase username)
 * s/values/all_values/
 * Fix for subject browser showing children under childless subjects (r4573)
 * Tweaks to make (nearly) all unit tests pass
 * Fixed an undef warning in edit locking
 * Allow a normal terminate() if we're offline
 * next() for invalid dataobj identifiers, hence return undef
 * Oops: missed render_value_label
 * API 0.9 for EPrints::MetaField
 * TODO: better name than values()
 * Returns the list of available values for Set fields or the unique strings from the database for text inputs
 * API 0.9 for EPrints::List
 * API 0.9 for DataObj/SubObject
 * Unit tests for creating an object in dataset and then a sub-object
 * Subject children cache is now initialised for all subjects, fixing #3451
 * Simplified the EventQueue manager so it can execute any Plugin's method
 * Event dequeuing is now atomic (can run multiple indexers)
 * Fixed bug in the indexer daemon causing repositories to be loaded twice
 * Only attempt to full-text index *eprints*
 * Repository objects persist across requests
 * This avoids the need to do hackery with DataSets to fix the parent repository object
 * Auto-magically reads the POST on the first parameter access
 * Fixed '' is not a valid upload method (wrong regexp var)
 * Don't set undefined attributes (fixes checkbox lists always defaulting to last item)
 * Added create_cdata_section() method to XML
 * Added ability to pass a document to EPrints::XML::new()
 * Removed internal {doc} from Repository
 * Fixed bug in LibXML-based clone_node cloning deep
 * Added unit tests for clone() and clone_node()
 * Removed broken begin()/commit() around cache_from_LIST
 * Reverted commenting out from r4548
 * Fixed start-up bugs
 * Repository objects now persist between Apache sessions
 * Requires further refinements of cleanup/init code
 * Will need apacheconf to be regenerated to get new cleanup handler
 * Removed empty file filtering in the document (probably wrong place)
 * Added support for a Regexp query comparison
 * Automagically join datasets together based on a shared key field name
 * Support for join_path to a depth of 1
 * Can't assign undef to SIGNALS
 * NameMatch is equivalent to equals ('=')
 * s/get_name/get_id/
 * Refined UploadMethods so they can specify a position to appear at
 * Don't allow upload methods that aren't in the workflow
 * Use the plugin id to define the internal actions name
 * Migrated Repository XML usage to use XML/XHTML API methods
 * Fix localName for XML::DOM
 * APIed XML::to_string and XHTML::to_xhtml
 * Added unit tests for XHTML
 * Use importNode instead of cloneNode/setOwnerDocument
 * POD: Parsing causes exceptions (not return undef)
 * Added basic XHTML methods
 * Removed stub XML::text_contents_of()
 * Removed Dataobj::dataobj from coverage test
 * s/create_comment_node/create_comment/ (see DOM spec!)
 * Initial version of XML object for API (mostly new stuff)
 * Unit tests for XML API object
 * API methods for DataSet (some of MetaField)
 * Fixed some problems with the dataset API tests (need Session/Repository changes though)
 * Set PRIMARY KEYs etc. for __index table
 * Set all PRIMARY KEY columns as NOT NULL
 * Add a PRIMARY KEY to __index tables (word/pos)
 * Removed unused key on "pos" field in __index
 * Make a single transaction around a cache table insert
 * Properly quote "pos" (in cache table definitions)
 * s/get_records/get_dataobjs/
 * Make all identifiers uppercase
 * Add a PRIMARY KEY on as many tables as possible
 * Added get_records() and get_dataset_ids() methods to Database
 * Calling List->get_records() now performs an OR based query, avoiding the need to create cache tables
 * Only write records to a cache if keep_cache is true
 * Optimise OR queries made on a single table
 * Constrain subject id codes to 128 characters so they can be used as a PRIMARY KEY
 * Remove grep codes
 * Add grep codes using a bulk insert
 * Experimental change:
 * Added "begin_cache_table" and "finish_cache_table" methods for creating and finishing a cache table that will auto-increment the position field
 * Modified Search to always write the results to a cache table
 * s/Descriptior/Descriptor/g
 * Oops: need ordervalues table name when doing ORDER BY
 * Only use DISTINCT if we are joining to multiple value tables
 * Oracle annoyance
 * Replaced search code with search code v3 (pure SQL)
 * Fixed "FALSE" and "TRUE" for v3
 * Added unit tests for FALSE/TRUE/AND/OR
 * Removed redundant code
 * Added rest of the 0.9 API methods
 * Added test that will show up any missing API methods
 * Completed dataset unit test
 * Draft unit tests for dataset API
 * Apparently you can't set a prototype in BEGIN blocks: EPrints::abort() called too early to check prototype at /home/tdb2/eprints/perl_lib/EPrints.pm line 95
 * More efficient methods for getting "owned" and "editable" eprints
 * Modified Import UI to allow a per-plugin/single/bulk workflow
 * Merged [4499]
 * Fixed current_counter not being available to Oracle
 * Fixed erroneous attempt to set increment=0 in counter_minimum
 * Reverting to r4454 part two
 * Removed empty files
 * Restored EPrints::Session
 * Merged Pod2Wiki refinements from r4454 to r4495
 * Reverted to r4454
 * See [4495]
 * cgi/register now calls validate() for every field
 * added "repeat_secret" property to secret fields that will render a confirmation box which is checked with validate()
 * Added three parameters to support defining new formats/sizes and to refine the way ImageMagick is called
 * Allow eprint ids to be specified for redo_thumbnails
 * Removed redundant session openings (unknown why these were there at all)
 * Fixed missing '/' on multi-depth views
 * show_help={always,toggle,never}
 * s/collapse_help/show_help/
 * Use "brief" citation to render title duplicate matches >5 and limit matches to 20 [Mark Gregson <mark.gregson@qut.edu.au>]
 * Abstracted out the method for updating a Wiki page
 * Increased LongReadLen to 128kb (max row size that can be read)
 * Allow reading package names from STDIN
 * Added test case for "group by" (only going to work with v3 search)
 * Added some documentation on the Wiki formatting used
 * Support for L<>inks to external modules and Web sites
 * Work-in-progress: replace Yapp parser with a smaller memory footprint parser
 * Use LibXML in preference to GDOME
 * Added a section for undocumented methods
 * Add spaces on line-unwraps
 * Return NOT_FOUND if a request for a secure document doesn't exist [Mark Gregson <mark.gregson@qut.edu.au>]
 * Initial version of a tool for exporting EPrints pod into the EPrints Wiki
 * Only add the UTF-8 BOM if the import plugin is a TextFile subclass
 * Return the EPrints::List from the _import()
 * Removed debug line, fixed erroneous use of = @_
 * Oops: forgot to include the table for grouping-by on a multiple field
 * Alpha "group-by" method that counts the number of eprints for each value
 * Usage: ($values, $counts) = $searchexp->perform_groupby( $field )
 * Reverted previous patch, more sensible to fake CGI because there are lots and lots of places {query} is expected to exist
 * Support get_full_url() without CGI available (e.g. during pre-init)
 * Added dynamic javascript and CSS based on user logged in status
 * CSS: ep_logged_in, ep_not_logged_in
 * JS: eprints_logged_in = true/false
 * Don't clobber existing datasets definitions
 * Propagate volatile, export_as_xml and import properties to inner fields
 * render_xml_diffs returns two values
 * A green bar background
 * Date is the superclass of Time
 * Use $db->execute()
 * Merged r4225 (from 3.1)
 * Merged r4185
 * Merged r4141 (from 3.1)
 * Merged r4057 (from 3.1)
 * Added "collapse_help" option to workflow component to disable collapsing
 * Usage: collapse_help="no"
 * Allow NewEPrint screen to be used in the key_tools area
 * Create an XML node for html_phrase
 * = != eq !
 * A captcha pseudo-field based on http://recaptcha.net/
 * This can be used as part of the normal workflow. If the captcha was ok the value of the field will be undef (otherwise it's the recaptcha error code)
 * Construct a single SQL query for search expressions
 * To enable this set $c->{temp_use_v2_search} = 3;
 * This changes some of the inheritences to avoid code duplication
 * Establishes LEFT JOINs for every sub-dataset and multiple field:
 * This enables correct behaviour for queries involving ORs
 * This is much slower than INNER JOINing across all tables
 * Support for "limit" Search parameter - adds a LIMIT to the select
 * More unit tests: identified at least two failures in v2 search API:
 * abort on empty search ($dataset->map)
 * no matches with satisfy_any with an empty auxillary table (e.g. relation_type)
 * s/FULLTEXT/fulltext
 * Removed per-field debug message (TODO proper reporting!)
 * Just return undef if the database row contains NULL (shouldn't happen)
 * More search unit tests nb these tests should probably be stricter
 * Removed unused line (get index_queue dataset)
 * Added unit test for searching fields in child objects
 * Intialise the output file handle using the plugin (same as /cgi/export)
 * Set the correct output encoding
 * Only remove volatile dependencies if they say they are our dependency
 * Fixed wrong parameter match in range matching (changed regexp)
 * Storable shouldn't have a length specified (but may need to revisit this)
 * Fixed cloning of eprints/documents/files
 * Added "open_write"/"write"/"close_write" to Storage layer
 * Efficient(ish) cloning of file objects
 * TODO: fix inter-document "relations" on clone
 * s/create_object/create_from_data/
 * Added some missing phrases
 * When comparing UNIQUE events must serialise the parameters in a canonical way
 * Added create_unique() method to EventQueue objects instead of new_from_data hacks
 * add_data -> data, hex_digest -> hexdigest
 * Don't schedule more than one fulltext/full-index
 * Renamed IndexQueue dataset to EventQueue
 * Added a "Storable" field type that can serialise Perl structures
 * Parameters are now an array reference, which can contain any simple data (hashes, arrays, simple scalars)
 * Event plugin methods are called with SELF, EVENT and a list of PARAMS
 * Added UUID metafield type
 * Not an error if an object as disappeared
 * Extended Index Queue for initial support for scheduling any job
 * The indexer pops events off the queue that are scheduled by time
 * Each "event" corresponds to a method call + params on an Event plugin
 * TODO:
 * support logging of messages/problems (feedback to user?)
 * support repeating events
 * s/Index/Scheduler/g
 * management interface
 * phrases
 * unit_tests
 * Fake like we're time, to make Search::* work correctly
 * Revised internal URIs to be /id/[datasetid]/[objectid]
 * URI is now [HOST/PATH]/[INTERNAL_URI]
 * URI escape dataset and object identifiers
 * Added method for retrieving objects by internal URI to DataSet.pm
 * Render time ranges when used in search results correctly
 * Catch and throw an error on unknown field names (e.g. in search.pl)
 * Subject inputform component can now be used with singular values
 * Missing phrases in epadmin create database tables
 * Initialise the config to get the new repository configuration
 * Fixes bug associated with the repository-disabling code
 * Removed unused Unicode::String dependency
 * Call set_user_automatic_fields when creating user objects (c.f. eprints)
 * Init "changed" on object creation so we don't have to always test it for definedness
 * Standard SQL doesn't support selecting columns that aren't in the GROUP BY [Alexander 'Leo' Bergolth]
 * We need to replace values that are to be imported
 * Fixes #3531
 * Removed AnApache dependency and set contants manually, appears to reduce memory footprint
 * Unit test that shows the top 5 most memory-hungry plugins
 * Ought to return a prepared statement from prepare_select() ...
 * Reduced XML::LibXML version to 1.63
 * If these settings are already defined, don't override them
 * Set the parent of subobjects wherever possible to reduce DB retrievals
 * This should also fix the missing metadata when committing from SWORD
 * Set the parent for History objects in EPrint
 * Set the parent when instatiating related objects that are from the same parent
 * Set the parent object on the SWORD import, fixing problems with conflicting eprint objects
 * Typo: $offset => $options{offset}
 * Only get the content of XML-serialised fields (in case someone created a field called "pre"/"hr" etc.)
 * Refactoured XML importing to embed the translation inside objects/fields
 * Removes all the "is_type"/"get_type" calls from Import (inheritance)
 * Slightly faster than the plugin
 * Added basic unit test for XML importing
 * Note: this uses the "Handler" concept to record warnings/errors
 * Don't set default values on sub-fields, otherwise we break values on compounds
 * Fixed a missing next(), causing the template to render the title twice (once as .title.textonly and once as .title)
 * Make long-filename support work with ".title.textonly"
 * Support long values in browse views by using the MD5 of the value, fixing #3482
 * Use MetaField::get_value_from_id() to translate ids (from the URL) into a value to search for
 * Added "get_static_dirs()" method to repository, fixes icon_url() not getting icons from the system directories
 * Fixed order static directories are searched to: repository->theme->system
 * Removed has_table from version checks and drop_table
 * has_table() is a very slow operation on Oracle
 * Added "counter" and "timestamp" options to metafield creation
 * Fixed bug in Compound creation of Set types that squashed the set options
 * Look for Counter fields, rather than getting sql_counter properties
 * Fixes #3114
 * Allow the workflow id to be specified when validating against a workflow
 * Lets not repeat the same module three times in the same file ...
 * Fixes #3469
 * Fixed undef warning on form submission
 * Refactoured DataObj::get_defaults so that you can now specify default values through a "default_value" property
 * Most of get_defaults() can now be specified through the metafield spec.
 * Added two new field types, "counter" and "timestamp"
 * Added MetaField method "get_default_value"
 * All data objects now use counters and timestamps to get ids and timestamps
 * Fixed schema errors in uketd_dc and METS/MODS export plugins
 * Look for document format icons in system as well as the repository
 * Use fileinfo field to render document links (faster citation rendering)
 * This will break if any repository URLs change!
 * Simple search unit test example (doesn't actually check anything)
 * Fixed undef warnings
 * URI escape <link-alternate>s
 * Removed reference to non-existant $self->{prefix} ???
 * Experimental stateless OAI-PMH interface
 * This should fix problems with timing-out of cache tables
 * Added a prepare_select() method that allows x-database LIMITS [Alexander
 * Bergolth]
 * This is derived from a patch supplied by Alexander Bergolth:
 * Tidied up the syntax to be consistent with eprints
 * Added a prepare_select() rather than modifying prepare()
 * Reverted previous Oracle fix
 * S3 => AmazonS3
 * Added Sun Cloud Storage Service support
 * Fixed weird complaint about ref-to-glob (maybe file handles being lost?)
 * Moved system cfg.d to /cfg
 * Don't override user/group/smtp in SystemSettings (TODO installer)
 * Legibility improvement
 * Breaks up SystemSettings into logically named files
 * Smarter detection of the system environment for Platform and XML
 * Moved most of SystemSettings.pm into system configuration files
 * Can now disable a repository through a system configuration setting
 * Makes adding global configuration possible (e.g. for plugin installation)
 * Modified EPrints start up to load system settings before modules
 * TODO:
 * automatic path detection for executables?
 * installer support
 * Fixed an HTML insertion bug in the <title> element [Brian D. Gregg]
 * By passing HTML fragments to anything that is echoed in the title (e.g. search parameters) arbitrary HTML/javascript can be injected into the page
 * To exploit this someone would need to follow a poisoned link
 * To supply file data to a File object use "_content", which can take a sub, file handle or scalar reference.
 * Storage controller will now write content to all configured plugins
 * Small efficiency tweak for History - don't bother writing a temp file
 * Fixed spurious history objects being created on document upload
 * Modified DataObj to clear changed fields after commit
 * Only commit in files_modified if files were actually modified
 * Some background: When a document was being uploaded two instances of the eprint object were being created - one in the form update and another as an on-demand parent of the new document. Both of these objects were then being committed, resulting in two history objects for the same revision. This may not have been an issue before because eprint objects were always being created from the database by get_eprint(). Objects are now "cached" as the parent of the sub-object, so we need to be more careful. This commit reduces the number of spurious commits() and revisions to the correct number for a document upload (i.e. one).
 * Fixed login page not using phrase for title
 * Fixed MySQL-quoted commands in epadmin upgrade [Alexander Bergolth]
 * Contributed by Alexander Bergolth <leo at strike.wu.ac.at>
 * Virtual file system object (used for symlinking)
 * Missing WebDAV module from previous commits
 * Fixed importing of files pointing to the wrong parent object.
 * Search all documents for a thumbnail to use for media
 * Fixed typo - s/thumbnail/preview
 * Removed Unicode::String include
 * Things exporting plain text utf-8 should inherit from Export::TextFile
 * Added ability to change the order documents are shown in

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2009-12-02 19:32:00 +0000 (Wed, 02 Dec 2009)

-------------------------------------------------------------------------------
EPrints (3.1.3)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * 3.1.3 finally
 * rc2

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2009-05-13 12:52:30 +0100 (Wed, 13 May 2009)

-------------------------------------------------------------------------------
EPrints (3.1.3-rc-2)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * rc2
 * Bugfix typo on --update change.

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2009-05-12 17:23:01 +0100 (Tue, 12 May 2009)

-------------------------------------------------------------------------------
EPrints (3.1.3-rc-1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * 3.1.3-rc-1
 * Added --update option to imports. This is already in trunk but needed on 3.1 too.
 * merge r4209
 * Fix for generate-on-demand of /view/foo/index.html URLs
 * Fixed issue with non standard DOM in Export::JSON
 * Added 3.1.3 NEWS info
 * merged r4199
 * Added config. options and better error handling to JSON code.
 * Added JSON support.
 * Fixed issue in update views which would cause a huge memory spike if an illegal view value was requested, rather than just 404.
 * Fixed some trivial warnings getting ready for a release.
 * Document toolbox document add now reports document id rather than "OK"
 * Fixed bug in Field::Multi which didn't allow <help> in both the component and inside the field.
 * Added temporary conf settings to bin/toolbox to allow file & web import.
 * Fixed view group sort unicode issue.
 * Added ranges for views.
 * Introduced new view configuration format.
 * Updated defaults views.pl to show current config.

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * Merged [4263]
 * Changes submitted by Alexander Bergolth <leo AT strike.wu-wien.ac.at>
 * Changed xpdf dependency to /usr/bin/pdftotext
 * Only remove eprints user on uninstall
 * Merged [4108], removing extraneous <components>
 * Kill debug line
 * Fixed use of substr() on byte-strings in Update::View
 * Use Unicode::Collate to order grouped sections in views (default_sort)
 * test UTF-8 support
 * Need to use EPrints::DataSet::get_sql_dataset_ids in 3.1
 * Ignore blank lines in DOI import and check for "malformed" response
 * Merged [4142]
 * Database version now 3.1.2 (missed from earlier commit)
 * Merged [4137],[4138]
 * If a name is defined all parts must be defined (""), fixing #3483
 * Added upgrade to DB schema 3.1.2 - fix null parts of names
 * Merged [4131]
 * Fixed to_string() calls not specifying noxmlns in Views (McSweeney)
 * Merged [4022]
 * Can now use Subject input component with other fields in a workflow
 * Merged [4085]
 * Fixed OAI GetRecord always returning a record, fixing #3498
 * Added *experimental* FTP daemon (part of Kultur)
 * Merged [4067]
 * Added support for custom OAI sets, see #3271
 * Unicode Fixes:
 * Return bytes from LibXML & DOM nodeValue() calls
 * Send bytes via Net::Cmd (fixes wide-character warning)
 * Added utf-8 support to email headers (subject + names)
 * Changed string style to be consistent in Email.pm
 * Merged [4058]
 * Allow https access to anything under /cgi/, fixing autocomplete scripts
 * Merged [4052]
 * Don't encode pathing in files, fixing #3393
 * Merged [4036]
 * Strip all whitespace from DOIs & Pubmed IDs, fixing #3439

Timothy Miles-Board <tmb@ecs.soton.ac.uk>
 * Merged [4106]
 * Made OAI DRIVER set available by default
 * Added default creators_name view using new A-Z pages option
 * Bundled Unicode::Collate
 * Fixed issues with subject navigation aids on view menus
 * Fixed issues with default division and subject views config

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2009-05-12 17:02:16 +0100 (Tue, 12 May 2009)

-------------------------------------------------------------------------------
EPrints (3.1.2.1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * ooops.
 * Fixed incorrect "use" line in MultilineCSV export plugin.

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2008-12-19 14:15:24 +0000 (Fri, 19 Dec 2008)

-------------------------------------------------------------------------------
EPrints (3.1.2)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * 3.1.2!
 * updated news for 3.1.2 release!
 * Fixed IE issues in javascript toggles recently introduced.
 * Counts on view-by-name were broken, now not. Fixed #3477.
 * Links to empty pages are now rendered as text, not links. Fixes #3476.
 * Browse by name no longer spits warnings if given part isn't there. #3478
 * Fixed issue with level one menu title phrases. This appears to fix #3466.
 * Fixed oddity that toolbox.pm defined toolkit.pm. Closes #3464
 * Fixed bug in workflow which meant it assumed the primary key was "eprintid" even on the user dataset. Resolving #3403.
 * Trivial documentation fix, closing #3454.
 * Fixed bug in creating a static .html from a .xhtml file. Fixes #3390.
 * Now when you add a document or modify one, it's always unrolled when the form renders just after. Closes #2938.
 * Fixed jitters on help when it unfearls using javascript.
 * Document fields can now be marked as required, and will have the star appear and report problems if not set. Fixes #3195
 * Can now use <upload-methods> option in upload component config to set which methods are available to upload files (or set to none to stop new documents being created). Fixing #3450
 * Fixed some non-i18l phrases in Upload.
 * Less confusing error message for missing citation files. Fixes #3369.
 * Minor tweak to last submission to use Utils::mtime for clarity.
 * Some clean up to the way search forms are rendered. Fixes #3433 and #2777.
 * Added show_help option to search configuration to allow help to be hidden or always shown (rather than toggled.)
 * Added css for table cells which are dependant on javascript being available. (using display: block caused render errors)
 * entities.dtd no longer needs to be updated each time a repository config is loaded.
 * Added .export file to the clutch of files created for view list pages to people can #include it with the .include file if wanted.
 * Some slightly hacky fixes to fix how name values are rendered in view page titles and search descriptions. Fixes #3459
 * Set/unset flag to stop the edit-phrases option appearing in views or abstract pages.
 * Fixed minor css issue in views which meanth that multi column wasn't consistant with single column.
 * Many improvements to phrase editing, including nicer css and textareas which start the right size and grow as you type, handling for missing phrases, and now properly i18l itself.
 * Added option to $session->render_message which allows the icon to be not rendered.
 * Fixed minor issue in EPrints::XML::to_string which didn't escape <> inside attributes.
 * Added contextual phrase editor.
 * Improved a saved search error message
 * Made saved searches use new style search API
 * Fixed broken links in saved searches, resolving #3470
 * Fixed incorrect links in review alerts.
 * Improved saved search and review emails to look smarter in HTML email readers. (still work in plain text)
 * Improved default repository mail .sig to look nicer in HTML.
 * Fixed bug in export which meant it exported items from 'buffer' when you asked for 'archive' etc. Closes #3474
 * Tweak to controls.js file in scriptaculous to fix "jump around" issue when arrows are pressed.
 * Upgraded prototype and scriptaculous to the newest version.
 * Fixed typo in EPrints::Apache::Template. Fixing #3441.
 * Fixed the problems with rendering issues. Fixing #3427.
 * MODS plugin now only handles eprints, not lists of eprints. Fixes #3472
 * Tweak to convert_crop_white to work with newer convert options. Only affects new repositories.
 * Fixed typo in phrases, resolving #3473
 * Split search.pl into a bunch of smaller files to make it less daunting.
 * Standardised use of qw{} in user_roles.pl resolving #3458
 * Added fix to Utils::filename_decode to correctly unset the utf-8 flag on strings containing long ==XXXX style chars. Not to be merged into 3.2
 * Added export tool to views pages.
 * Fixed small issue in Database which prevented dates or names being anything but the last level in views.
 * Minor css tweaks to views.
 * generate_views now gives a useful error message if --generate is called with an illegal option.
 * Fixed a bug in the Grid abstract export module that meant that headers did not align with the columns. (skipping subobjects in one but not the other)
 * Added first stab at Excel and CSV Export and Import tool.
 * merge of r3925
 * merge r3893
 * merged r3889 r3890 r3891

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * Merged [4011]
 * Support plugin "tools" in saved searches, fixing #3462
 * Fixed EPrints invalid user errors when starting indexer from apache
 * Fixed double-URLs in RSS2 media output
 * Merged [4000]
 * $self->get_repository() => $self->{session}->get_repository()
 * Merged [3998]
 * Use get_plugin_class to determine the Plugin class, fixes #3428
 * Merged [3993]
 * Always test "index.html" when deciding whether to update abstract page, fixing #3479
 * Only update entities.dtd if it is out of date
 * Merged [3974]
 * Modified Upload component to use phrases for file upload tabs
 * Merged [3950]
 * Add javascript global vars (just like Update::Static)
 * Merged [3936]
 * Fixed bugs in static file updating #3444 and #3460
 * Merged [3934] (typo)
 * Merged [3931]
 * Added dc:date to UKETD export
 * Needs to be full URL for media types
 * Added thumbnail and content media tags to RSS2 export
 * Merged [3927]
 * Correctly escape search export URLs (lac request)
 * Merged [3898]
 * Added copy of File::Temp 0.20, fixing #3447
 * Fixed utf-8 problems in views by removing binmode(FH,":utf8")
 * Replaced all uses of toString with EPrints::XML::to_string in views

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2008-12-18 12:14:13 +0000 (Thu, 18 Dec 2008)

-------------------------------------------------------------------------------
EPrints (3.1.1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * 3.1.1
 * merged minor grammar fix, r3882
 * merged r3880
 * Fixed minor mug in change to Url.pm
 * merged in r3872 r3873 r3874 r3875
 * merged r3856 r3857 r3858 This *should* be 3.1.1
 * merged r3831

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * Merged [3541], fixing #3432
 * Use the EPrint object to render fileinfo
 * Don't DECLINE requests to "/" when https_root is set to "", fixing #3361
 * Use relative path for icons and thumbnails, fixing #3360
 * Merged [3842]
 * Further fix for linking creators to browse views
 * Merged [3838]
 * Added get_primary_key() for MySQL by using DESCRIBE

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2008-10-20 12:46:02 +0100 (Mon, 20 Oct 2008)

-------------------------------------------------------------------------------
EPrints (3.1.0)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * 3.1.0
 * 3.1.0 change!
 * merge of r3827

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * Merged [3799]
 * input_rows is specific to certain field types

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2008-09-08 14:48:47 +0100 (Mon, 08 Sep 2008)

-------------------------------------------------------------------------------
EPrints (3.1.0-rc-6)
-------------------------------------------------------------------------------

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * 3.1.0-rc-6
 * Merged [3785]
 * Indexer should now stop if asked to stop while busy

-- tagged-by Timothy David Brody <tdb01r@ecs.soton.ac.uk>  2008-08-15 14:32:51 +0100 (Fri, 15 Aug 2008)

-------------------------------------------------------------------------------
EPrints (3.1.0-rc-5)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * 3.1.0-rc-5

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * Merged [3779]
 * OAI now searches for the eprint in archive or deletion, fixing #3424
 * OAI GetRecord no longer errors on an invalid identifier, fixing #3423
 * Merged [3777]
 * Minor readability changes
 * Merged [3775]
 * Added "page" to Session::get_url/URL::get_url
 * Added Plugin::icon_url and Screen::action_icon_url methods
 * Use ->icon_url and ->action_icon_url to get icon URLs, fixing #3354
 * REMOVED Export::icon()
 * This changes behaviour in plugins for icons:
 * s#/style/images/(.*)#$1/
 * Makes Screen plugin icons consistent with Export plugin icons
 * Any Plugin subclass can have an icon

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2008-08-11 16:10:04 +0100 (Mon, 11 Aug 2008)

-------------------------------------------------------------------------------
EPrints (3.1.0-rc-4)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * rc4
 * Added "permute" option to all bin scripts to allow --verbose etc. to be added on the end.
 * Changed -c in gunzip to the first argument in import test data -- this stops a bug which shows up in POSIX compliant mode.

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * Merged [3769]
 * Escape arguments in Repository::invocation
 * Merged [3766]
 * Don't dispose scalars returned by Export->export, fixing #3420
 * Removing all Admin-configured fields will also remove the 'Misc.' stage, fixing 3415

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2008-08-06 17:05:51 +0100 (Wed, 06 Aug 2008)

-------------------------------------------------------------------------------
EPrints (3.1.0-rc-3)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * 3.1.0 rc 3
 * Fixed typo in User.pm s/merge/union/ resolving #3413
 * Fixed most issues in render views resolving #3416, #3417
 * Added the 'local tree' view back into subject browsing.
 * Tidied up the main tables on Items and Review
 * Added "help" rollup to Items and Review to resolve #3418
 * Fixed an "undef" warning in MetaField::Date
 * Started to clean up email for alerts. Still not quite there, but better. SHould resolve #3405
 * Fixed issue with the mf dataset crashing when an item is created.
 * Tweak to plugin loader to supress an overzelous warning about a variable only being used once.
 * Cleaned up some bugs in "Box" when Javascript was turned off.
 * A couple of new options to Box::render to allow it to override the [+] and [-] icons.
 * EPrint/Staff/Details should now use STAFFONLY workflow, fixing #3411
 * Changed default views to allow null values and so subjects does not have a sub-field.
 * Fixed typo in epadmin --help ====================================================================== EPRINTS-3.1.0-rc-3 ======================================================================
 * merge of r3731
 * merged in r3729
 * merged in r3683

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * Allow archive file names to contain spaces etc. fixing #3409
 * Merged [3756]
 * Chown entities.dtd for eprints and use File::Temp
 * Fixes #3419
 * Merged [3745]
 * Indexer daemon checking now looks at /proc/$pid, fixing #3311
 * metafield workflow is unlikely to ever be modified
 * Merged [3737]
 * When importing BibTeX can now specify email addresses
 * Fix missing table errors for #3396
 * Merged [3724]
 * Added get_primary_key method to Database to fix #3396
 * Merged [3722]
 * Check for an XML "unresolved" response from CrossRef, fixing #3386
 * Merged [3720]
 * Added default account for CrossRef imports, fixing #3397
 * Merged [3718]
 * If phrases or workflow aren't writable don't abort when writing new fields
 * Merged [3703]
 * Fixed typo
 * Merged [3700]
 * Only allow batch editing of eprint objects, fixing #3388
 * Merged [3694]
 * Added the trailing slash to view links
 * BibTeX month entries being added even without a month value
 * Merged [3687]
 * Don't use Scalar::Util::weaken if the vendor didn't install it

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2008-08-06 14:40:12 +0100 (Wed, 06 Aug 2008)

-------------------------------------------------------------------------------
EPrints (3.1.0-rc-2)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * rc2!
 * added 3.1.0-rc-2 line
 * merged in r3676 r3677 and r3678
 * merge of r3666 r3667 r3668 and r3669
 * Fixed bug which meant only first attachment to an email actually got attached.

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * Trap die()s in Repository::parse_xml(), fixing #3220
 * Merged [3659]
 * Merged [3655]
 * Fixed views not working for name-type metafields, fixing #3380

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2008-06-16 11:50:03 +0100 (Mon, 16 Jun 2008)

-------------------------------------------------------------------------------
EPrints (3.1.0-rc-1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * 3.1.0-rc-1!
 * Fixed bug in rendering of XHTML values in EPScript.
 * Fixed some out-of-data apache methods in the VLit extension.
 * Fixed a typo in the toolbox code s/AND/ANY/
 * Fixed missing / with redirecting /perl/ to /cgi/

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * Added --description and --source-repository options to bin/import

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2008-05-29 12:49:47 +0100 (Thu, 29 May 2008)

-------------------------------------------------------------------------------
EPrints (3.1.0-beta-3)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * making release, with fixed release builder
 * fixed bug in makepacakge
 * Added SWORD support.
 * new Script option: as_string, which converts a typed value to a plain string. Useful for inserting a value into an attribute.
 * epc:phrase refs now expound out {} so values from the object can be used to build the phrase id.
 * Redesigned document citation to be neater and show all fields.
 * Fixed some minor warnings in Views.pm
 * Added divisions to default eprint summary page.
 * Made subjects inside a "ifset" in summary page.
 * Added a divisions view.
 * Made the divisions view field link to the view.
 * Linked the divisions from the template.
 * Added "reverse" option to a view variation to list the groupings backwards. eg. for dates.
 * Added policies page with a link to OpenDOAR.
 * Linked to policies page from default homepage.
 * Fixed bug in toolbox which prevented searching sub-objects and linked items.
 * Added boxes plugin system for EPrint summary pages.
 * Improved text-browsing for Items and Review screen-- use of alt tags on icons.
 * Added AJAX Phrase editor!
 * Added "schema" option to epadmin
 * Added XML::tidy to schema exporter
 * Branching 3.1 before Tim and Dave T. went crazy for storage plugins.
 * Fixes and improvements to views:
 * Added an optional phrase to replace "please select..." on a per-page basis.
 * .include files are now always generated, fixing #3336
 * Addded a new option "new_column_at" to make view menus able to be multi column.
 * Added an optional phrase to name groupings. Fixing #3341.
 * Added count to views pages, fixing #3337
 * Added "last updated" message, fixing #3338
 * Added a no_seperator option to groups, to hide the " | "
 * Option to groups "cloud" to cause the links to render as a tag cloud.
 * Added a cloud_max and cloud_min option to groups, the max and min % in a cloud at the top of the groups page.
 * Changed the "#foo" links in groups to be "#group_foo" to avoid clashing if imported into an external site.
 * Another option, jump=plain, will supress the phrase around the group jump links, just showing the links themselves.
 * The option "tags" causes the fields values to be broken up on ";" and "," before being grouped. This works well on the keywords field. Fixing #3340
 * New option "truncate=XXX" to truncate values to "n" chars. Handy on dates to truncate to year only. Fixing #3343.
 * New option "string", mostly used internally, which indicates to use the string value as is, rather than call the renderer function for the field.
 * New option on groups: first_initial, which only works on names, but causes them to be grouped by surname and only the first letter of the given name.
 * Fixed a problem with SQL generation for "grep" conditions. Fixed by #3335
 * Added support for serialising/unserialising subfield searches. Fixes a bug with batch-edit.
 * Fixed a typo in the relation renderer in Extras
 * Auto phrase reloading now only happens if there is a current session, fixing an obscure sitatuation when a phrase is extracted without a session being open.
 * Slightly changed layout of the config-file tree view to be nicer.
 * Fixed typo in default_search_config in issues search
 * Added "tidy" to the end of the EPrints App Profile export. Makes it easier to understand.
 * Fixed an error in a regexp in Issues::SimilarTitles
 * Added new bit to view.css to make columns use 100% of available width. (columns to be added to views in coming commit)

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * make_link => render_link
 * Merged [3625]
 * Merged [3536]
 * Run-import command line tool (alpha)
 * Merged [3534] and [3604]
 * Small fix to prevent undef errors when no <userid> is given
 * Added a simple default citation style for imports
 * import->run() now replaces existing records and pulls in full-texts
 * Fixed bug in Session::get_secure that returned false in Auth stage
 * Secured oai_accesslogs script
 * Check tables exist before attempting to create them when creating dataset tables (allows update_database_structure to "fill in the gaps")
 * Merged [3580]
 * UTF8 => utf-8 in email charset, fixing #3370
 * Merged [3578]
 * Check current_user exists before accessing it in Subject plugin
 * Merged [3576]
 * Changed ordervalues columns to LONGTEXT from TEXT, fixing #3369
 * Support for "__COPYRIGHT__/__LICENSE__"
 * Updated GPL copyright date to 2008
 * Apply macro expansion to js/css/xml files
 * Rewrote insert_data to be a bit more readable (hopefully!)
 * Merged [3569],[3570],[3571],[3572]
 * Merged [3556]
 * Output a short list of commands with no arguments to epadmin
 * Clean up the list object in epadmin schema
 * Prevent uploaded PHP scripts from being executed
 * Typo - qw => qr
 * BibTeX import
 * fixed numeric ids not being parsed correctly
 * ignore the case of NAMES
 * don't decode_latex URLs or URIs
 * Reported by Leslie Carr
 * Removed redundant, unused "tags_and_labels" from DataObjs
 * Spotted by Adam White
 * Oops, should've been called get_ids_by_field_values
 * Added get_ids_by_value method to EPrints::Search, to get summary data for search results
 * Allow completely empty queries to get_ids_from_values
 * POD for get_ids_by_field_values
 * Reverted r3509
 * Use relative path to autocomplete scripts (seems autocomplete won't follow a secure redirect), fixing #3327
 * Fixed cellpading => cellpadding typo, seems to fix IE layout for #3332
 * Added methods to database/list to generate a histogram of unique values (needed by eprints.soton)
 * Make use of @STRING in BibTeX parsing to expand pre-defined NAMEs, fixing #3307
 * Allow "http(s)_root" to be empty, fixing #3319
 * Changed workflow autocomplete URLs to use http_cgiurl, fixing #3327
 * Added Apache rewrite rule for /archive/* to /*, fixing #3328

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2008-05-25 20:54:25 +0100 (Sun, 25 May 2008)

-------------------------------------------------------------------------------
EPrints (3.1.0-beta-2)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * beta-2
 * Added importid counter for generating new ids
 * Added user.roles to staff-edit-user workflow
 * Added phrases for user.roles
 * Changed priv config format to be an array of values. With :editor and :owner indicatng editor or owner only privs. This gets rid of the 2,4,8 stuff. The revision makes it easier to understand.
 * added link to wiki page for 3.1
 * typo in pod
 * Added 'refresh views' option to epadmin. Exactly like refresh abstracts.
 * Made an improvement to warnings and errors so it now shows file and line number.
 * Changed view-eprint icon to a magnifying glass.
 * Added a new field to user: roles, which assigns new roles or privs to individual users.
 * Added a config option for creating new roles, or overriding existing ones. This can be used to create "hats" to assign to people.
 * Moved toolbox to it's own dir.
 * moving toolbox to it's own dir for easier security management
 * Some minor bugfixes to remove newlines from abstracts in some export formats.
 * removed debug line
 * Added an optional /plugins/ directory to the repository cfg directory.
 * minor fix - this plugin only works on history dataobjs
 * typo
 * Added (slightly shonky) plugin to convert .doc to .pdf
 * minor undef fix.
 * In History search, now searches username not userid.
 * Made a <label> tag surround the checkbox and label in the respond to request screen.
 * added antiwordpdf to system settings.
 * Added a plugin to export history as ical.
 * Added a history citation to fix a bug that appears to have been introduced by the citation auto-reloader.
 * 
 * added extras thing to id_number render
 * Added renderer to extras to link DOI's if spotted in value.
 * Added "views.timestamp" to work like abstracts.timestamp
 * Added regenerate views and regenerate abstracts buttons.
 * Added user.username and user.name to the staff eprint serach. Closing #3236
 * EPrint & Document URI's now correctly redirect to the appropriate URL.
 * oops.

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2008-04-07 09:59:01 +0100 (Mon, 07 Apr 2008)

-------------------------------------------------------------------------------
EPrints (3.1.0-beta-1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * YAY!
 * Renamed issues to item_issues as a precaution against namespace clashes.
 * Renamed issues_first_seen to item_issues_timestamp as it's more correctly descriptive.
 * Added a bunch of fields to item_issues: reported_by, resolved_by, comments and status.
 * Renamed issues_count to item_issues_count.
 * Made related changes to issues search and citation.
 * Rendering issues only shows open issues.
 * Added option to use a custom citation file in saved search emails.
 * Fixed function which stopped the review form reading params.
 * missing phrase
 * Added column add/delete/rearrange options to Item and Review.
 * Made user.items_fields and user.review_fields volatile.
 * Removed those fields from the default user workflow.
 * Added a bunch of obscure missing phrases.
 * Moved export plugins to use map rather than get_records.
 * Added role and priv restrictions for cgi toolbox. Closing #3165
 * Added new basic variable type "DATE" to EP Script.
 * Supressed some perl warnings in EPScript, where undefs were compared.
 * Added today() method to EPScript which returns todays date.
 * Added datemath() method to EPScript which modifies a date by days, months or years.
 * Negative integers are now parsed by EPScript
 * When rendering a big set of checkboxes (more then 5), they are now displayed in two columns.
 * Added "required" to item_fields and review_fields as these should never be null.
 * Added fields to eprint for storing issues.
 * Added Issues finding plugin system.
 * Added Issues audit script.
 * Added Issues search plugin.
 * Added EPrint Issues tab.
 * Added issues related privs.
 * Added orderkey method to EPrint::Extras to strip an/a/the for ordering.
 * Made title use this method, by default.
 * Added initial issues plugin for XML config (with config file), exact titles and similar titles.
 * Added issues citation (to lib not defaultcfg) to show results of issues search.
 * Fixed bug in rendering input for MetaField::Fields
 * Renamed update_database_structure to update_database_structure
 * Added proper audio icon. Closing #3317.
 * icons svg generator
 * oops - upgrade_database_structure should check the dbversion is correct
 * Added update_database_structure option to epadmin (but not shown in the
 * -help yet.)

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * Weaken circular references to prevent memory leaks under unusual conditions (e.g. EPrints::abort)
 * Don't set the port if it's the default for the URI, fixing #3325
 * Reverted r3319 because it causes a memory leak
 * langid now uses UNDEFINED phrase for blanks
 * has_field checks all ordervalues tables for the existence of field components
 * add_field will fill in the missing bits for the given field (sub-fields or ordervalues)
 * Stopped update_database_structure checking sub-fields, fixing #3323
 * Added "Import full text" option to Import screen (if enable_web_imports is true)
 * Added PDF as a document to the OAI arXiv import stylesheet

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2008-04-03 12:33:07 +0100 (Thu, 03 Apr 2008)

-------------------------------------------------------------------------------
EPrints (3.1.0-alpha-1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * first alpha release of 3.1

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2008-03-27 19:38:09 +0000 (Thu, 27 Mar 2008)

-------------------------------------------------------------------------------
EPrints (3.0.5)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * 3.0.5 stable. (as compared with the minds of the creators)

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * Merged [3511]
 * Use relative path to autocomplete scripts (seems autocomplete won't follow a secure redirect), fixing #3327
 * Merged [3504]
 * Allow "http(s)_root" to be empty, fixing #3319
 * Merged [3006].
 * Change to DefaultXML import plugin to pass through attributes to the subclassing import plugin, fixing #3315.
 * Changed workflow autocomplete URLs to use http_cgiurl, fixing #3327
 * Quick search entry now points at http_cgiurl, fixing #3312
 * Merged [3498]
 * Added Apache rewrite rule for /archive/* to /*, fixing #3328
 * Don't set the port if it's the default for the URI, fixing #3325
 * Allow values to be used in views containing ':' or '.', fixing #3316

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2008-04-21 18:15:00 +0100 (Mon, 21 Apr 2008)

-------------------------------------------------------------------------------
EPrints (3.0.5-rc-1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * Multiple field tables now get a primary key, although this isn't created if you upgrade (yet).

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * 3.0.5rc1
 * Put javascripts inside CDATA sections, fixing #3303
 * Correction to previous commit - http_root needs to be available in Repository to work with generate_apacheconf
 * Fixed HTTPS support/sub-directory support simplified
 * Added config options: http_root, http_cgiroot, https_root, https_cgiroot, secureport
 * Added dynamic config variables for use in templates: rel_path, rel_cgipath
 * Added EPrints::URL utility module for URL handling things
 * Added dynamic config options: http_url, http_cgiurl, https_url, https_cgiurl
 * Modified default template to work in secure mode
 * Modified generate_apacheconf to automatically copy default template to secure, if securehost is configured
 * Modified stylesheets to use relative paths to images (relies on all the CSS being compiled into a single auto.css)
 * Fixed numerous uses of absolute URLs, mixing of base_url+"/cgi" and perl_url
 * Added backwards-compatibility for base_url/perl_url
 * Corrected typo in search alert email URL
 * Merged [3265]
 * Corrected link in editor alert email, fixing #3286
 * Fixed an undef warning in EPrints::Email
 * Request-a-copy email now goes to the correct person, fixing #3260
 * Emailed HTML now rendered with EPrints::XML::to_string
 * utf8 decode values before passing to Unidecode, fixing #3270
 * strip spaces and lowercase when normalising for comparison, fixing #3263
 * Updated explain_tables, fixing #3248
 * Merged add/remove fields scripts from [3081]
 * Merged [3305]
 * Make sure we actually remove index_queue entries, fixing #3256
 * Merged [3302]
 * Don't roll indexer logs on start/stop, only every 24 hours, fixing #2855
 * Merged [3300]
 * Updated to scriptaculous 1.8.1
 * Work-around for autocompletion not working in Opera, fixing #3041
 * Added an "id" attribute to <select> fields, which means that they can be found with prototype $F() method -- fixing some issues with autocomplete.
 * Merged [3297]
 * Only match whole words as logical operators, fixing #3252
 * Removed debug log message in Platform::exec
 * Added EPrints namespace to <eprints> in XML export
 * Merged [3290]
 * Merged [3288]
 * Merged [3285]
 * Don't fill in autocompletion on tab, fixing #3247
 * Merged [3281]
 * Merged [3279]
 * Merged [3276]
 * Reverted commit to wrong branch (see r3272 for trunk commit)
 * Upgrade multiple tables by extending the PRIMARY KEY over the pos field, fixing #3235
 * Merged [3269]
 * Another file missed from [3264]
 * Missed from previous commit
 * Merged [3263]
 * Merged [3260]
 * Merged [3257]
 * Added seconds granularity support to OAI-PMH interface, fixing #3227 in a different way
 * Added handler, fixing #3241
 * Using a pin with content twice will no longer repeat content, fixing #3027
 * Merged [3238]
 * Merged [3236]
 * Merged [3234]
 * Merged [3232]
 * Merged [3230]
 * Merged [3219]
 * Don't exit() on error, instead generate the error and return
 * Merged [3215]
 * Merged [3213]
 * Merged [3211]
 * Merged [3207]
 * Merged [3204]
 * Merged r2676 from trunk, which fixes unicode problems in title_duplicates, fixing #2815
 * Added a space between 'von' and 'family' parts in BibTeX import
 * Merged [3199]
 * Merged [3197]
 * Merged [3194]
 * Merged [3191]
 * fixed typo in [3070], fixing #3210
 * Merged [3186]
 * Merged [3181]
 * Merged [3178]
 * Merged [3172]
 * Merged [3170]
 * D'oh!
 * Merged [3167]
 * Merged [3164], [3165]
 * Merged [3162]
 * Merged the URL fix in [3003] that never made it into 3.0, fixing #3113

-- tagged-by Timothy David Brody <tdb01r@ecs.soton.ac.uk>  2008-03-06 11:05:41 +0000 (Thu, 06 Mar 2008)

-------------------------------------------------------------------------------
EPrints (3.0.4-rc-1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * 
 * generate_static now compiles the contents of files into auto.css, rather than it just containing @import lines. This improves the load time of page.
 * Fixed some bugs in the VLit code.

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * Merged [3143]
 * Don't render an Itemref field link inside a link, because it's always going to be linked itself, fixing #3189
 * Merged [3136]
 * Merged [3133]
 * Merged [3131]
 * Merged [3129]
 * Merged [3127]
 * Merged [3125]
 * Merged [2727]
 * Merged [3113]
 * Merged [3111]
 * Merged [3109]
 * Merged [3107]
 * Email change was actually commited here in r3106
 * Merged [3105]
 * Merged [3103]
 * Use has_role to determine whether a user is an editor or admin, fixing #2968
 * Merged [3099]
 * Merged [3097]
 * Merged [3095]
 * Merged [3093]
 * Merged [3091]
 * Merged [3089]
 * Don't substr an undefined value in Time fields, fixing #3111
 * Added method 'clear_changed' to DataObj
 * Removed redundant and broken fileinfo setting in eprint_fields_automatic
 * Objects read from the database will no longer always be committed, fixing #3156
 * Merged [3083]
 * Merged [3080]
 * Merged [3078]
 * Merged [3076]
 * Merged [3074]
 * Changelog for [3071]
 * Cap the maximum message size at 40,000 bytes from Import, fixing #3067

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2007-12-14 16:42:08 +0000 (Fri, 14 Dec 2007)

-------------------------------------------------------------------------------
EPrints (3.0.3)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * 303!

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * 3.0.3

-- tagged-by Timothy David Brody <tdb01r@ecs.soton.ac.uk>  2007-12-05 14:24:57 +0000 (Wed, 05 Dec 2007)

-------------------------------------------------------------------------------
EPrints (3.0.3-rc-1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * 303!
 * updating NEWS
 * Added config. hook to override current_user
 * Added config hook to set the URL to go to if there is no current_user
 * Import::DefaultXML now disposes of no-longer needed XML chunks, stopping memory links if using XML::DOM
 * Added method for caching all subjects. generate_views now uses these which gives a notable speed up.
 * Added on_logout hook which is called when the login page is accessed which allows non-eprints login cookies to be hosed.

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2007-08-28 18:09:09 +0100 (Tue, 28 Aug 2007)

-------------------------------------------------------------------------------
EPrints (3.0.3-beta-2)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * z
 * Fixed weird sort of error which didn't fail but should in xhtml_help.
 * Added support for <title> override in workflow.

Timothy Miles-Board <tmb@ecs.soton.ac.uk>
 * Fixed "action" parameter not being included in redirect_to_me_url

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2007-08-23 15:23:51 +0100 (Thu, 23 Aug 2007)

-------------------------------------------------------------------------------
EPrints (3.0.3-beta-1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * foo

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2007-07-02 17:35:31 +0100 (Mon, 02 Jul 2007)

-------------------------------------------------------------------------------
EPrints (3.0.2-beta-3)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * beta3 (3rd try)
 * Set all primary key fields to be can_clone=>0 (fixing bug introduced in new-version by the wrong dir fix earlier)
 * (merge)
 * Fixed bug in importing eprints which gave them the wrong "dir"
 * Fixed issue when migrating items that un-needed eprintid and userid's got created.
 * Simplified URL escape method. This fixes an issue with unknown URL schemes.

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2007-06-13 15:13:05 +0100 (Wed, 13 Jun 2007)

-------------------------------------------------------------------------------
EPrints (3.0.2-beta-2)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * w00t.
 * Fixed stray warning when a zero byte file is added to a document.
 * Fixed some problems with importing files with "/" or " " in the title. When create_from_data is passed a filename then it is used as-is, but checks for things like ../ still.
 * Fixed bug with "dir" when importing migration data.

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2007-06-07 13:28:19 +0100 (Thu, 07 Jun 2007)

-------------------------------------------------------------------------------
EPrints (3.0.2-beta-1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * 3.0.2-beta-1!
 * version 3.0.2 beta!
 * Fixed warning when pagerange met non digit data.

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2007-05-30 22:08:47 +0100 (Wed, 30 May 2007)

-------------------------------------------------------------------------------
EPrints (3.0.2-alpha-2)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * getting there.
 * Creating eprint now returns undef if add_record fails (eg. that the id already exists)
 * 2 new configure options: enable_import_ids and enable_import_datestamps
 * Corrected documentation on time/date system fields in EPrints dataobjs
 * Clarified error message when (failing in) writing an item with a existing ID.
 * XML plugin warnings now use absolute phrase paths, so that you don't need to keep duplicating the same phrase for multiple plugins.
 * Added warnings to import-from-file code if the source file does not exist, or if from-file imports are disabled.
 * import-from-file no longer deletes first file.
 * Added new options to import to allow correct importing of migration data.
 * removed (apparently) unused code.
 * removed defaultcfg from base of release

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2007-05-30 20:30:34 +0100 (Wed, 30 May 2007)

-------------------------------------------------------------------------------
EPrints (3.0.2-alpha-1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * work dammit!

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2007-05-25 17:41:09 +0100 (Fri, 25 May 2007)

-------------------------------------------------------------------------------
EPrints (3.0.1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * v3.0.1!

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2007-05-25 09:41:16 +0100 (Fri, 25 May 2007)

-------------------------------------------------------------------------------
EPrints (3.0.1-beta-2)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * another go
 * Fixed issue with database which meant that zero rows affected was treated as an unsuccessful operation. Which it isn't.

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2007-04-13 15:54:35 +0100 (Fri, 13 Apr 2007)

-------------------------------------------------------------------------------
EPrints (3.0.1-beta-1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * 3.0.1 beta 1
 * w00t
 * Fixed spelling mistake recieve => receive
 * Improved the help text regarding security documents and contact-email.
 * Added missing phrase: eprint_fieldname_producers_name
 * Added index to __index tables causing a great indexing speed improvemnt.
 * Bad db version now does an abort() instead of a log - that way the message appears in the web output.
 * Changed custom_order again to make it sort by name, then failing that name_name.
 * ordervalues now gets passed dataset.
 * Compound fields now have their ordervalues set.
 * Removed custom_order from lift_embargos which should fix a bug.
 * changed "authors" to "creators" in export/endnote
 * Fixed ordering of subjects in view. (sort by name_name rather than name)
 * more sane branch name
 * Don't index fileinfo field!
 * typo in SystemSettings fixer
 * remove quotes from systemsettings invocation
 * oops.
 * more changes - should simplify things.
 * 
 * sorting out new build system!
 * no longer needed
 * removed general release files and unused files
 * Bail out of an unpack if there is no mimetype, avoiding an undef warning.
 * changed some print statements in makepackage.pl
 * Commented out heavy regexps in indexer.pl
 * XML import finding an incorrect top level tag now tells you what it was actually expecting. In the case of Import::XML getting <eprintsdata> it gives some advice about v2 and v3 XML files.
 * Fixed bug which meant two subsequent 404's on one apache connection would blank the 2nd one.
 * Fixed an issue which meant that after removing a user the system went to an undefined screen. Now goes to the front which isn't ideal, but is better.
 * Change to make the document roll-up always open if there's but one document.
 * Caused only .xml files to be loaded in phrase directories.
 * Fixed spelling mistake in DOI import plugin volunme / volume.
 * Added missing phrases mentioned in #2873
 * Fixed issue in autocompleter file and simple_file which didn't lowercase keys.
 * Fixed bug in database which returned empty strings in list of index ids.
 * Fixed bug that meant subjects were not ordered in input.
 * fixed review screen bug
 * Pagerange now adds zero to to and from in ordering to force them to be numeric. so "foo" becomes "0" and "1234a" becomes "1234".
 * Cookie values are now randomised every time the login page is rendered.
 * If a title contains a link, it no longer shows the URL in the <title> element.
 * Added has_role method to User.pm
 * Fixed broken calls to $user->has_priv to use $user->has_role instead.
 * It is now possible to search for a null date using "","EX"
 * Editorial restrictions now in dataset "eprint" rather than "buffer".
 * Added cache to MetaField::Fields to prevent execsive rendering times.

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * quote command line arguments in invocation, using quotemeta
 * Merged r2616
 * Merged support for branch packages
 * mocha => trac.eprints.org
 * file_perms and dir_perms can now be strings in SystemSettings
 * Fixes to conversion plugins (tested using new Convert interface in 3.1)
 * If a document contains no files (shouldn't happen) don't throw lots of undef warnings
 * Added html_phrase_id method to Plugin.pm that returns the id of a plugin phrase (avoids getting phrases a lot when querying conversion plugins)
 * Merged with trunk:
 * Added support for RPM packaging
 * Added pdftotext, antiword, elinks to configure
 * Added LibXML to configure
 * License Eprints 2 => 3
 * Added command-line options for controlling license/archive format

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2007-04-13 15:04:33 +0100 (Fri, 13 Apr 2007)

-------------------------------------------------------------------------------
EPrints (3.0)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * 3.0
 * 3.0...
 * another little bug
 * fixed a typo missing ";"
 * prep for 3.0
 * Fixed security holes in lookup scripts
 * Removed SQL from lookup script.
 * Fixed bug in Session which caused buttons to do odd things for a few seconds after initial login. (due to failing to clear an apache note).

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2007-01-23 17:02:38 +0000 (Tue, 23 Jan 2007)

-------------------------------------------------------------------------------
EPrints (3.0-rc-2)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * take 4
 * minor bugfix
 * fix rolllogs to EPrints::Index::rolllogs in indexer
 * 3.0-rc-2
 * Fixed issue with &<> in autocomplete.
 * Fixed up confusing help in import
 * Added --force option to import
 * Public::RequestCopy stores actor as user's name (if logged in) or email address (if not).
 * Commented out autoloader in Tex::Encode to get rid of a warning.
 * made fileinfo not export in XML.
 * Changed INSERT to REPLACE on login tickets- should fix bug with IP changing on laptops.
 * Added $current_lang to available data in eprint script.
 * Moved exec'ing of SystemSetting binaries into Platform so that they can use custom code on non-UNIX platforms.
 * Set userid to be optional
 * Previous commit: Changed userid to use user dataset rather than document.
 * 
 * Changed INSERT to REPLACE on login tickets - should fix bug with IP changing on laptops.
 * fork off!

moj
 * Added exists_and_set checks to DC exporter.
 * Merged changes

Timothy Miles-Board <tmb@ecs.soton.ac.uk>
 * Forgot to add last change to CHANGELOG
 * Added the necessary code to make activating minimal users simple
 * Added first cut of metadata fields, phrases and citations for new eprint types.
 * Used TeX::Encode to provide some handling of accented characters in BibTeX import.
 * Moved EFetch URL out of code
 * Added filter on PubMed ID - must be an int
 * Used LWP::Simple to get PubMed XML - not wget
 * Used File::Temp for temp file in PubMed ID import
 * Added extra mappings to PubMed XML import
 * Used File::Temp for temp files in Import screen
 * Added more examples for Request Copy configuration (eg. first author)

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2007-01-17 17:59:04 +0000 (Wed, 17 Jan 2007)

-------------------------------------------------------------------------------
EPrints (3.0-rc-1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * ooops
 * wheeee!
 * updated news for 3.0 RC-1
 * Moved stty in Compat::Term::ReadKey so that it's only called if needed, not at the start time, which was producing a warning in cron.
 * Fixed broken user link in render page.
 * Added DOI Import
 * Fixed buggy use of param() in component which classed with plugin param method.
 * Fixed security hole in PubMedID import.
 * Fixed issue with importing data via compound fields.
 * Fixed odd situation when screen plugin forgot it's session
 * Added option to disable plugins by default and then de-disable them per repository.
 * Changed disable config option from {pluginid}->{disable} to {pluginid}->{params}->{disable} and updated plugins.pl to reflect this.
 * Removed unused secure template.
 * Document upload no longer required by default (but a warning is still given).
 * Registration errors now use proper error message style.
 * Minor change to lookup scripts to make them work in mysql 4.
 * Moved google-friendly headers into a plugin called "simple" and made it available as an export option.
 * pt1 of 2 part commit
 * Fixed rendering problem with itemref fields.
 * Tiny change to render_citation so that we can pass through a target param.
 * Used this to stop entire citation being a link in title_lookup
 * erase_eprints now offers to rebuild static pages.
 * added google scholar headers
 * moved LINKS in eprint_render to being done by plugins - cleaner eprint_render.pl
 * Added \n after header links to make produced page less annoying.
 * Fixed OldXML export.
 * Fixed bug that workflow next/prev didn't look at current data, but pre- update from form data.
 * set_value now does not abort if the field is not a real field, but it still gives a warning.
 * Added tidy method to dataobj to remove empty rows in multiple fields.
 * Called tidy from each commit() method
 * Removed broken blank-row-removed from database module.
 * Fixed warning in Boolean caused by recent changes.
 * Fixed typo in Access where timestamp should have been datestamp.
 * More attempts to fix that weird abstractsearch no results bug.
 * Fixed import to only ask about userid if we are actually importing.
 * New from data now handles compound datastructures
 * XML export now run through XML::tidy.
 * Import/Export XML does something nice with compound fields.
 * Fixed some $plugin->params which should have been ->param
 * namedset fields can have an option param. This is largely used to limit the options shown in workflows.
 * Added a way to override parameters of plugins.
 * Added "advertised" option to import/export plugins to allow them to still work, but not get advertised that they are available.
 * Added examples to plugins.pl
 * Boolean fields which are not required now get an UNSPECIFIED option
 * workflow can override the top subject field and the options from a set
 * Another attempt to supress the odd no-results bug we're seeing in the log.
 * Added a warning if no contact_email and no public docs.
 * Added description for subject::edit
 * Made multilang use $c->{languages} for their default list of langs.
 * ...or take it from a multifield property.
 * Added hook on files modified.
 * Added Subject::Edit
 * Fixed bug in filtered searches when searchfields were being OR'd so were filters. Which was bad.
 * Multilang subjects now don't spew warnings to log if they have undefined languages (although there should be a validation issue)
 * Added more code to keep abstract search from spewing warnings when it gets odd params.
 * Added subject editor to admin options.
 * added --verbose to the import testdata in testpackage
 * 
 * error on non-found perl module
 * warning about smtp server = "yes"
 * Fixed bug in "next" search results
 * List was leaving stray caches around. Fixed.
 * NULL dir field in EPrint now causes abort: it's too serious for just a warning.
 * Now removes expired login tickets.
 * Abstract search now does not abort on bad plugin in redirect substage.
 * updated readme
 * Added Readonly.pm
 * Changed cookies to expire on browser close.
 * Improved style of search field titles in editorial scope select
 * Added pretty styles to Import screen.
 * Changed eprint_render to call null action on request copy screen.
 * added better explanation of what "convert" does to configure script.
 * updated testpackage for new epadmin options
 * Added generate_static, import_subjects and generate_apacheconf to epadmin create and erase_data
 * Friendly error for owner of eprint on denied screens.
 * Fixed validate jump links for user area validate fields.
 * De-centered abstracts.
 * Fixed bug that export buffer exported all datasets
 * XML subject import now ok.
 * PubMedXML now only imports eprints, not all types.
 * Added a note about cookies being needed.
 * Fixed no add button bug - subject importer was broken.
 * Added new metadata type : multilang
 * Subject now uses multilang rather than the hack
 * Removed lots of old multilang code.
 * Made up/down arrows on multiple input css style nowrap.
 * Added lookup scripts to use files and directories.
 * Added an empty autocomplete directory.
 * Fixed a bug that workflow fields ignored required param
 * Fixed the some confusion that required was "1" in the fields config and "yes" in workflow.
 * Added a clear error if an unknown export plugin is called from the search.
 * Fixed bug that a failed login caused it to forget where we were going.
 * Added (!) warning box for "there is a newer version" messages and improved phrasing.
 * $session->current_user->get_value( "review_fields" );

moj
 * Removed a '!' and fixed the required fields bug
 * Added help for corp authors
 * Shifted time/date-related functions from Utils to Time.
 * Added moved functions to BackCompatibility
 * Searched/Replaced any functions that were moved and updated to Time.
 * Updated RequestDeletion to use the nicer mail format, and reworded email to avoid 'click here'.
 * Fixed 'to name' in RequestDeletion email (was not being converted from DOM to string).
 * Added maxdelta to password change mail_sent phrase
 * Changed confirmation email to put link around 'active password'.
 * Switched pages->pagerange

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * Increased dependency for LibXML to 1.62 (segfault under 1.58* that I can't identify).
 * Modified BackCompatibility to set %INC correctly (now works with Apache::Reload!)
 * getNodeName => nodeName
 * Removed runtime from code repository
 * Added modified apachectl
 * Apache environment
 * Configuration scripts to create a stand-alone EPrints apache environment

Timothy Miles-Board <tmb@ecs.soton.ac.uk>
 * Don't try and suggest duplicate titles unless at least 5 chars have been typed
 * Added eprintid param to title dup lookup so that the current record isn't suggested as a duplicate
 * Wrapping for warning/error messages in Import screen
 * Fixed typo in request copy phrase
 * Added redirect_to_me_url subs to fix Public::RequestCopy and Request::Respond screens
 * Removed "click here" from request copy email
 * Prettier import screen
 * Import screen complains if no file/data given
 * Test run and Test run + Import actions for import screen
 * added funders, projects and divisions fields
 * added default organisation structure hierarchy for divisions field
 * added lookup script which attempts to detect and prevent duplicate deposits by looking at the title being entered
 * Fixed bug with use of adminemail
 * valid_login got moved
 * Added broad strokes of Pubmed XML and Pubmed ID import plugins (needs refining later)
 * Fixed tmp file not getting deleted on test run
 * Added placeholders for new eprint types
 * Improved Import screen, added "Test Import" option
 * Changed POSTs to GETs as Request a Copy button does not invoke action

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2006-12-18 13:11:40 +0000 (Mon, 18 Dec 2006)

-------------------------------------------------------------------------------
EPrints (3.0-beta-3)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * 
 * Hopefully this time.
 * Fixed bug with messages and GDOME. (hopefully also fixed for LibXML, but not tested)
 * added beta-3 line fixed makepackage to only checkout release and system dirs
 * tidied reset_password form
 * added news
 * Improved the way columns shows no items
 * Fixed input_list call in testdata to be input_fh
 * Updated contributors list in AUTHORS and webpage.
 * Fixed bug with validating compound fields.
 * Fixed issue that Endnote and flatsubject import plugins didn't have "textfile" loaded.
 * Moved around some fields in workflows
 * Added optional params to lookup urls (for passing extra info, eg. user group)
 * Added LIMIT 40 to journal lookups
 * Added publisher to article type
 * Cleaned up user validation subroutine
 * Changed _foo to foo in params in searches - looks neater.
 * Added export to latest_tool
 * Added links to global feeds from front page.
 * Fixed issue with import script treating no --user as user "0"
 * import script now only frets about no --user if it's an eprint import
 * Import plugins now set eprint_status to buffer if no other value is available.
 * Fixed bug in ordering of search results.
 * Added form to change order of results from results page.
 * Changed all aborts to EPrints::abort()
 * Changed "Editorial Review" to "Review" (may still need some tweaks)
 * Added new history events: "note" and "other".
 * "note" appears in the "messages" tab.
 * Fixed issue with repeating background in toolboxes.
 * Upped user history page size to 50 from 5.
 * Added missing phrase.
 * Renamed a css file to lose the "_" in the filename
 * css'd the action list and action bar
 * Added MIME::Lite module
 * Actions now do POST but screen buttons still do GET
 * Fixed bug with thumbnails on new-version
 * Fixed bug with thumbnails on import
 * Fixed some method="form" oddness.
 * Removed some stray debug lines introduced in last commit.
 * Fixed a couple of bugs if abstractsearch gets the wrong subscreen or a non available export format.
 * Added config to disable plugins and link screens into new lists.
 * In EPScript = and one_of now do something sensible with multiple fields.
 * Fixed bug that pagerange was an INT in the database.
 * Shortened "fieldname UNSPECIFIED" to "UNSPECIFED".
 * Removed unused #! header from Script.pm
 * Better handling for broken messages so they don't crash the display.
 * Moved when thumbnails are triggered.
 * Made an abort in platform::unix call the abort() method explicitly.
 * Import screen now uses command line script to import.
 * bin/import now has --scripted option which gives machine readable info on what has been imported and if it completed ok.
 * Fixed bug that meant that to_string could contain non utf8 data if dirty data was used to create the DOM using XML::DOM
 * Fixed issues with internal buttons and values being passed int the new POST/GET system.
 * Fixed bug that surrounds lost the [?] help button.
 * Disposed of an XML which is tested but not used.
 * Removed get_internal_value_id - no longer used
 * removed get_internal_value from metafield
 * Fixed back button/re-post problem
 * Changed login system to set a cookie BEFORE you log in
 * stuff now creates a url of the static view for the resource after a post redirects.
 * Messages in a POST request now save to a db table to be shown the next time the current user gets a screen rendered.
 * Fixed bug in blister bar - did not highlight deposit stage.
 * Fixed bug in plugin loader.
 * Now removes unchanged files which are not in new release (but were in old) Changed files are "moved out of harms way" Fixed issue with testdata sig no longer makes LocalPlugin dir new hashes now saved in hash not array of lines.
 * Added local .js and .css files to show people where to add stuff.
 * Fixed plugin loader to only load files _ending_ in .pm
 * Changed ABSTRACT to DISABLE as the varname to disable a plugin.
 * Got rid of toggling menu at top of screen - moved actions into Admin.
 * Added some padding above and below the blister in editlink to stop it looking odd.
 * Added update button to upload component
 * Added styles to view pages.
 * Changed "number of items" text for subject views to make it clearer.
 * Added forgotten "blister arrow"
 * Broke up eprints.js
 * Renamed all js files to be prefixed with a number to make them look less confusing. ~
 * Fixed bug in using the same field in view and subheading.
 * Fixed error in subject upload if metadata subjects don't exist in subject tree.
 * Added information on where EPC scripts came from (phrase,citation etc.)
 * Internal buttons no longer trigger validation warmings
 * thumbnails now exist in document dir, not one big dir
 * thumbnails now pick up security of document they came from
 * Fixed some links to documents which were /02/ when that'll just redirect to /2/ so made it explicit in the link.
 * Fixed rendering of blister bar on deposit page
 * Link in "request a copy" email now goes to item control page.
 * RequestCopy screen now uses new icon link method
 * Added chown-for-eprints to convert plugins
 * Fixed bug that imagemagick convert plugins didn't handle uppercase suffixes.
 * Split thumbnail convert id into thumbnail_small etc.
 * Fixed EPC error in phrase in requestdoc
 * Browse by year now subdivides page into months
 * Added a little bit of vertical alignment on +/- icons in subject input.
 * Added a inline-based no_js class as well as the block one.
 * Fixed render issue with blister bar in EditLink
 * Added erase_eprints to epadmin (it was missing)
 * Moved ImageMagick plugins to a subdir for tidyness.
 * Fixed error with "prev" button in eprint edit
 * Shortened some of the admin option names.
 * Swapped order of views (doesn't really matter)
 * $subject_field->get_values() was returning values more than once if they occured twice in a lattice.
 * $search->render_condition_description no longer ends with "."
 * Search results pages now have a title of the search description
 * Fixed broken saved search export
 * Fixed broken feeds export
 * Export link now describes how many results will be exported.
 * Fixed problems with links in submission problems warning boxes.
 * EPrint screens now label explicit editor and depositor screens.
 * Added document thumbnail plugin
 * Added popup preview of files
 * Added redo_thumbnails to epadmin
 * mkdir now sets the correct gid
 * $doc->thumbnail_url now checks if the file exists on disk rather than if it theoretically should exist.
 * Added getgrnam to Platform
 * Fixed scroll on file roller to go to the outer element not the element being revealed.
 * Changed generate_static --remove to --prune
 * Shifted logged-in toolbar to appear in the dynamic template.
 * Changed the "more" in the template to a toggle.
 * generate_static now reports inexpected files in the website and removes them if --remove is set.
 * The editlink tab now shows the blister bar rather than a <ul>
 * Added help to search forms.
 * Reset password option now always shows on login page, but only if you are allowed.
 * Fixed import and it now obeys --user
 * Fixed issue in list that it warns if a cache should have been dropped and wasn't but couldn't be as the database had already been GC'd
 * Date didn't supress enter in the year input field. Now does.
 * Changed show/hide help to a [?] mark
 * Redesigned Upload component
 * Added new javascript Slide toggle which centers on the toggled thing.
 * New upload and collapsed component-show uses it.
 * Changed and onClick to be onclick
 * Renamed Files stage to Upload
 * Fixed pins in placeholder - they were not DOM
 * Changed the lines between bits in the blister into arrows.
 * Messed up import (will fix asap)
 * removed symlink
 * Redrew up & down sorting arrows
 * Redrew up & down multi-row rearranging arrows and changed the layout.
 * Added vertical aligning to +/- icons.
 * Redrew +/- icons
 * Redrew required star icon
 * Added an example image for other icons
 * Redrew delete file/document X icon.
 * Feeds are now rendered as links in the export bar.
 * Added some padding to the icons in message windows.
 * Removed a whole bunch of unused cgi scripts
 * Moved all admin tools into epadmin
 * Added recommit functionality to epadmin
 * Changed METS to call getChildNodes rather than childNodes
 * Removed bunch of unused CGI scripts
 * Moved /users/staff/export to users/export so that /users/staff could be removed.
 * Tidied help text and plugin-list output for import and export bins.
 * fixed bug in version history in install. probably.
 * Fixed typo in requestremoval
 * Added tab in a convert plugin
 * Autocomplete now sends values of all fields in row.
 * Autocomplete now handles absolute id's and block replacement (in addition to field-value replacement).
 * Name search now uses all values, not just current field.
 * Added warnings to deposit page.
 * No documents now causes a warning, even if it's legal.
 * Fixed rendering of language names
 * Added better error reporting if pins in a phrase are not DOM.
 * Started work on edit-subject but it's not really working yet.
 * Added removal request, including it creating a history event.
 * Removed some unused language code.
 * Removed some old cgi scripts.
 * Added a dark border to the mail textarea.
 * XML::DOM no longer encodes " outside of attributes.
 * Tidied up field definitions for users & eprints
 * Fixed bug in redirecting /perl/ if port!=80
 * Removed RequestWrapper
 * Fixed non-cookie login to use db authentication. maybe.
 * Moved DB login code to database, called nicely from $session->valid_login( $user,$pass)
 * Removed RequestWrapper
 * Fixed non-cookie login to use db authentication. maybe.
 * Added results citation for users which fixed a render bug.
 * Fixed bug in saved search xml export (from within user xml)
 * Added latitude and longitude fields to eprints and users.
 * Added view-user-history screen.
 * Added Thumbnails convert plugin
 * Added thumbnails directory for thumbnails
 * Rewrote fileicon code
 * fileinfo is now a core field
 * Added $doc->get_icon_url and $doc->render_icon_link
 * Added $session->get_full_url to get the, er, full url of the request.
 * Added New Version and Use as Template actions
 * Fixed a bug in loggin of email messages
 * Added "Message" tab to eprint view
 * Fixed typo and modified lay-out in ImageMagick.pm
 * Changed "no reason given" to "no reason was given" - nicer.
 * Fixed bug with null emails in list_user_emails
 * Added method require_if_exists which requires a perl module if possible, and caches failures to save time.
 * Used this to supress warnings in Import plugins
 * Added XML::trim_whitespace which removes whitespace at the start and end of XML chunks plus converts N whitespace to 1 space.
 * Used this to tidy up citations.
 * Added $session->get_full_url to get the, er, full url of the request.
 * Used this in RSS and ATOM feeds
 * Renamed feed exports to Feed: foo
 * Tweaked favicon - could still be better
 * Non existant archiveid now gives a nice error.

moj
 * Added pin delta to reset_password
 * Item(s)->Field(s)
 * 'No Tools Available' as FirstTool title
 * Added EngD thesis as thesis_type
 * Added Keynote as pres_type
 * Added relevant phrases
 * Added email link to activation email.
 * Reworded activation email a little.
 * Tweaked emails to be a bit more HTML (slightly larger font for headings, and bold around usernames/titles).
 * Created render_no_results as an opt to the Paginate module. This is rendered in place of the results if none are returned.
 * Added a render_no_results to render a tr with the correct colspan in Paginate::Columns
 * Altered password field help (no longer logged out when you change password).
 * Added cursor:pointer to dropdown (better than the text cursor)
 * Temporary fix to avoid errors with messages (puts <div> around strings). Probably a better way to do this.
 * Added citations for succeeds/commentary.
 * Added phrase to put HTML wrapper around mail.
 * Email.pm uses HTML wrapper phrase.
 * Missed phrase in XML, tidied up file a bit.
 * General testing with flawed XML import file.
 * Added phrases for import plugins (not for those in constructor, as no session is available at that point).
 * Renamed $name to $a_name/$e_name in BibTeX, as this was giving warnings.
 * Added phrases for unphrased admin actions
 * RequestRemoval/RemoveWithEmail/RejectWithEmail now use a phrase for 'click to edit'.
 * AbstractSearch uses phrase for bad subscreen
 * Upload's Hide/Show options are now phrases.
 * Tweaked exists_and_set to call is_set - was getting the value incorrectly so failing on compound fields.
 * Forgot changelog :)
 * Shifted mime_type from Convert to Document. Takes the local filename and prepends the path. If no filename, uses the main file.
 * Added can_invoke to Repository. This takes a cmd_id and map (as with invocation) and returns 1 if it can be invoked. This checks that the invocation exists, and also that all the slots $(SOURCE) etc are filled by the map.
 * Converted METS and Unpack to use the new mime_type call
 * Added indexer queue size to Status.pm
 * Fixed small bug in Convert.pm (if split on mime type returned undef)
 * Added link to repository version from View.pm (if item is in live archive).
 * Added inital version of event_by_name (passes back the event type, but this isn't handled by the autocompleter script yet)
 * Added export plugin for RSS 2.0
 * Added export plugin for Atom
 * Create human_delay in EPrints::Utils. This is similar to human_filesize, and returns a string in the form 'N hour(s)', 'N day(s)', or 'N week(s)'. It is not meant to be accurate (e.g. it doesn't say '3 days and 2 hours').
 * The registration mail now says how long the user has to confirm registration.
 * The reject email now has a link to the edit page.
 * Tidied up Reject/Remove a little.
 * Removed 10_core.pl, database.pl, and archive_name.xml from the repository
 * they are created by epadmin, and otherwise get in the way when making commits.
 * Added $self->{surround} to Component. This is overriden by XHTML and Upload to Light and None respectively. Any surround attributes in the workflow files override these defaults.
 * Added get_surround to component. This returns the relevant Surround object (Default if none is specified).
 * Tidied the %params bit in Stage.pm a little.
 * Forgot to commit changelog
 * Metafield.pm now uses the noenter input field (enter blocking wasn't working on some fields).
 * Added EPJS_enter_click - clicks a button when enter is pressed in a field.
 * Set reference rows to 15 (also fixes Safari bug)
 * Set subject quicksearch to use the enter javascript

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * Changed default for user arg in bin/import to undef, otherwise
 * -user 0 gives a confusing error (non-obvious users are 1-indexed)
 * Replaced input_list with input_file (read from filename) and input_fh (read from filehandle)
 * input_file opens file for reading, sets binmode and calls input_fh
 * Added Import::TextFile abstract plugin that subclasses input_file to detect Byte Order Marks and CRLF encoding
 * Removed CRLF encoding check from Import::FlatSubjects
 * Added error for STDIN to Import::BibTeX (unsupported)
 * Changed bin/import_subjects to use input_file
 * Added an OAI script to export access logs
 * Added BOM and CRLF detection to bin/import
 * Removed BOM and CRLF detection from EndNote
 * Removed user=0 dropping of the user argument
 * Added a confirmation to bin/import if user argument isn't set
 * Added experimental mapping from OpenURL resolver to OAI-PMH
 * Fix my fix for XML::LibXML::Text (ought to be toString, not
 * >data!)
 * Added support for File::BOM and dos-format files to Endnote import
 * Fix XML::LibXML::Text->toString returning undef on empty string
 * Version 0.4.6 (moved from hidden repository)
 * URI-OpenURL
 * Support modules and other customised stuff
 * Access log now ignores inline content
 * Forgot to commit this change with the other METS changes (adding METS to OAI output)
 * Added a not_found method to Session (compliments redirect)
 * Added a show_404 option to handle_404 that, if set in the connection notes and is false, suppresses the normal 404 response
 * Made openurl error messages more friendly - "not found" is now a system phrase
 * Added wrapper element around <METS> (unsure whether there is an 'official' wrapper?) #2647
 * Added export plugins for METS and MODS (see #2616)
 * MODS/METS fairly complete: Mime-type TODO, check on global ID usage, testing
 * End-of-day commit for work-in-progress on METS/MODS
 * ->session is now ->get_session
 * Abort if dir_perms isn't set and actually use the $perms argument (if given)
 * Documented EPrints::Platform
 * Moved mkdir to EPrints::Platform (#2632)

Timothy Miles-Board <tmb@ecs.soton.ac.uk>
 * Fixed creator output
 * Old CGI import converted to Screen - not ready prime time yet though
 * Authors and editors now imported correctly
 * Added LDAP starter code
 * Corrected record label %F
 * Use new render_icon function
 * Moved 'Request a copy' cfg into its own file
 * Typo meant BibTeX plugin would never be enabled
 * Replaced symlink with real file
 * Moved "Request a Copy" scripts to screens

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2006-12-05 18:50:46 +0000 (Tue, 05 Dec 2006)

-------------------------------------------------------------------------------
EPrints (3.0-beta-2)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * Trout!
 * Moved testing the correct UID into the Platform module because it won't work on all platforms.
 * Changed $dataobj->get_url( 1 ) to dataobj->get_control_url.
 * Fixed bug in getting new ids for saved searches.
 * Removed debug code from index-stopping-screen
 * Citations now can have /lib level ones as well as repository specific.
 * Fixed bug in edit-linking documents in Details.pm
 * Moved the administer user action to the bottom of the list.
 * Added the description of the search as a parameter to the savedsearch workflow.
 * Added a default citation for saved searches.
 * Removed extra info at the top of the run-saved-search page.
 * Name-Ajax-autocomplete now orders by number of eprints the name appaers on.
 * Removed unused coverimage code in eprint_render.pl
 * The last vestages of Apache::AuthDBI have been swept away.
 * Added label to user_radio_hideemail.
 * Added warning to indexer if a single session fails to start.
 * Reworked parser in Import::DefaultXML to be more SAXY.
 * Saved search workflows now are in the generic lib config, not part of the repository.
 * Added "Add User" feature
 * Tidied up citations/user/screen.xml
 * Fixed bug in rendering user/screen citation ~
 * Subjects now work inside compound fields
 * missed this in last commit
 * Workflow can now override help for a field.
 * Removed type-based help.
 * New XML utility method: contents_of which returns the children of a node in a doc fragment.
 * Warning on install if cgi/soap exists
 * Installer now correctly sets directiory permissions
 * Corrected issue with installing binary files.
 * Indexer now cleans up suicide file when it starts.
 * Indexer stop now tries the suicide file approach before trying kill.
 * Moved soap code out of normal cgi dir.
 * Fixed some broken parameters in render_citation_link
 * Changed the way searches are serialised. They now store both the field names and the alias. Also separates filters and normal search fields.
 * Can deserialise a search safely, into an existing search, or raw which creates all the conditions from the serialised search.
 * Removed UserPage and UserForm - no longer used.
 * Added option to save searches
 * Added saved search view, edit and remove
 * New MetaField type - Field
 * Made items_fields and review_fields type "field"
 * New option to multiple set fields to allow them to be ordered.
 * Added filtering options to Items page (needs tidying up)
 * Fixed bug with get_values which meant it returned values from all datasets of eprint, not just the requested one.
 * Added "public" field to saved searches.
 * Added "items_fields" and "review_fields" to users.
 * Added epadmin upgrade to update the database.
 * Added items_fields and review_fields to user workflow.
 * Fixed bug in expand/close on subjects with multiple parents
 * Search errors now show as a warning box, like in screens.
 * No-matches no counts as an error (so stays on search form page)
 * Moved message/error/warning render into Session
 * Metafield search form problems now return XML, not text
 * $session->render_row now just inserts a nbsp; without a : after it if undef is passed as the heading. Also now takes an array of <td> contents, not just one.
 * Status now uses $session->render_row
 * Corrected error message in EPC
 * The sub-parts of compound field are no show_in_html=>0
 * Added a flag to tell eprint_render if it's a preview or the final page.
 * Tests this flag for the "edit" button on the abstract page.
 * Added documents to the details screen.
 * Blister bar now occurs in form to allow buttons to work.
 * Upload component now places "add another file" under some javascript and pops up a warning before showing it.
 * lookup/name now filters on eprint_status=archive
 * Removed old subjects input code.
 * Added note about DOAR policies tool into oai.pl
 * Fixed plugins which use mime_types to just take the document type as the mime_type by default.
 * Changed blister bar to use buttons
 * Added jump action to deposit and edit eprint, to handle response to the blister buttons.
 * Fixed bug in render-date which showed wrong date by one month.
 * Added set_stage method to workflow to facilitate jumps
 * Flag on blister bar was inverted (said "isstaff" but actually meant "notstaff"). Fixed.
 * Journal autocomplete now works in a limited fashion.
 * Changed autocomplete param to "q="
 * Added a lookup directory for doing autocompletion responses
 * The workflow now points to the new autocompletion scripts
 * Made a nominal name completion script. Just works on-the-fly.
 * Changed searching from "editors" to "editors_name"
 * Fixed a broken link in index.xpage
 * Converted some embedded phrases in the phrase file to epc: (they were mistakenly epp:)
 * Removed dodgey "issn" autocompletion demonstrator.
 * Cleaned up warnings for __WARN__ and __DIE__ when tunning inside the $c->{} subroutines.
 * Added an environmental variable to disable checking the correct user
 * Used this to call eprints bin scripts from mod_perl

moj
 * Added send_status_line to AnApache - this takes a code and message, and does status and status_line on the request. This fixes the problem with redirecting.
 * Adjusted other modules to use send_status_line.
 * Missed this one
 * Fixed typo in epadmin config_db
 * Added event_parse subs to all XML parser modules. LibXML uses the SAX parser, and GDOME/DOM use the technique from Import::DefaultXML (with XML::Parser). Takes a filehandle to read from, and a handler object (see the example in Import::DefaultXML)
 * Added bulletted version of monica's suggestions

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * Added Compat::Term::ReadKey module to avoid Term::ReadKey requirement (linux support only via stty)
 * Modified Term::ReadKey usage to fallback to Compat::Term::ReadKey.
 * XML::LibXML::Element doesn't copy attributes on cloneNode, fixed in compatibility module
 * Eclipse ate the latin-1 stuff: reverted to r2051 and then patched to replace chomp(), see r2061
 * Check that copy succeeded
 * Added copy() to EPrints::Utils to copy files from one location to another in a cross-platform compatible manner
 * Removed file-handle based copying
 * Replaced all chomp()s with s/\015?\012?$/s
 * Added ownerDocument to XML::DOM compatibility
 * Modified get_input and get_input_hidden to remove return as well - #2581
 * Added more fields to openurl resolver
 * Added support for svc.fulltext=yes to openurl resolver
 * creators => creators_name
 * Dissertation schema was erroneously set to "journal"
 * /cgi/openurl is now runnable
 * $attr->name has issues with 'xmlns' (also use nodeName to be consistent)
 * Missed a getDocumentElement => documentElement
 * Added support for XML::LibXML
 * Changed (most) DOM calls to use the DOM Core method names
 * DOM spec fixes to XML::DOM, XML::LibXML
 * Added hasAttribute to XML::DOM (error in EPC.pm)
 * More examples from dom_compare.pl

Timothy Miles-Board <tmb@ecs.soton.ac.uk>
 * Added shortcut sub paginate_list_with_columns to Paginate.pm which displays the list as a table of field values, with sortable columns.
 * Columns in Items and Editorial Screens now displayed according to user preference
 * Updated format test to new values
 * Fixed and tidied 'request a copy' feature
 * Fixed bug with sig not showing in HTML email
 * Added hook for overriding default username/password check (e.g. for handing off to LDAP server)

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2006-11-14 16:56:12 +0000 (Tue, 14 Nov 2006)

-------------------------------------------------------------------------------
EPrints (3.0-beta-1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * yay!
 * 
 * missed this!
 * beta-1 here we come!
 * Reworked template and default homepage for beta release ZZ
 * related_url field no longer has up and down arrows in input
 * Moved a bunch of bin scripts away until they get combined into epadmin later. (recommit_dataset, rehash_documents, erase_eprints, reindex_dataset, erase_fulltext_cache)
 * create_tables is now part of epadmin
 * erase_archive is now part of epadmin
 * test_config is now part of epadmin
 * Renamed subscription dataset to saved_search
 * Renamed DataObj::Subscription to DataObj::SavedSearch
 * Renamed subscriptions to alerts in UI
 * Merged create_user into epadmin
 * Merged force_config reload into epadmin
 * Turned export_hashes into an export plugin
 * Removed the requirement that metafields of type search MUST have fields defined in the config.
 * XHTML is no longer tidied before output.
 * Local Repository Plugin code removed entirely.
 * Added a new field render function which just puts a css highlighted div around an item.
 * Made "suggestions" render with a highlight.
 * Saved Search option disabled for beta release.
 * Split render_field into also having render_field_actual which is not subject to the render_value config option.
 * Fixed bug in function pointer names containing :: in fields.
 * Made simple search simple
 * Removed some cruft from index.xpage
 * Removed /help/ from the template
 * Fixed bug in information.xpage
 * moving s/subscription/savedsearch/
 * Added additional test to $dataset->get_value_raw.
 * Compound fields now have an automatically created propert fields_cache which contains references to the actual subfield objects.
 * Compound sub-fields now inherit multiple from their parents.
 * Compound sub-fields now have a sub name and parent name and their sql name is the two joined.
 * Added get_basic_input_elements to set so that it can render single input elements for use in compound list.
 * Fixed bug in SQL in indexer.
 * "creators" and "editors" are now compound fields with sub-parts name and id.
 * date_issue, date_sub and date_effective become date and date_type.
 * Updated plugins and config files to reflect this.
 * Removed input_id_cols as we don't use id parts in ep3.
 * Added loads of new document types
 * Documents now use mime types as their ids
 * File icons replace "/" with "_" for file icons.
 * Added corporate creator field
 * Removed ImportXML (ep2 importer)
 * Added related_url which is a list of urls and types.
 * Removed some id part related code.
 * Removed repository specific plugin dir (we're not doing it that way)
 * import_subjects now uses Import plugins
 * testdata/bin/import_test_data now uses gziped ep3xml data
 * s/allowed/action_allowed/
 * Moved use Apache::SubProcess into AnApache so it handles mod_perl 1.99 correctly.

moj
 * s/children/get_children/ in Subject (and Extras/Session)
 * Added has_help to Component, made has_help in Field check the content of the help DOM, made Surround only show help on the field if there's help content. Note that this should be refined to use colspan if there is a mixture of fields with help/no help.
 * s/auth/author/ for the url types.
 * Added help for the Personal Details fields.
 * Tweaked Subject to avoid deprecation warning
 * Moved db ok/down to phrase file
 * Tweaked Staff/Edit:Description to be less 'tech'
 * Moved phrases_map out of the way
 * Added phrases for missing fields
 * Rearranged user workflow slightly to have Account/Personal sections
 * Rearranged AUTHORS for EP3
 * Added /eprints/ dir for EPrints-related docs
 * Trimmed information.xpage to just have a link to the EPrints docs.
 * Changed software.eprints.org to eprints.org/software/
 * Changed EPrints 2 to EPrints 3 where applicable
 * Added eprints/index.xpage with some info about the EPrints project
 * Removed licences from Workflow etc and replaced with __LICENSE__
 * Changed copyright to 2000-2006
 * Renamed Indexer.pm to IndexerControl.pm and updated Status.pm accordingly.
 * Renamed phrases to use IndexerControl
 * Moved edit-subject and edit-user privs into admin, along with admin-indexer
 * EPrints::Index::stop_indexer now writes a indexer.suicide file, and waits for 8 seconds to see if the indexer has exited before trying the cmdline approach.
 * Put the logfile path in the 'couldn't start/stop' phrase for now, should be a link to a screen soon.
 * Moved the indexer warning code to Status and put in indexer_warnings
 * Added 'Indexer Status' to the status view as well as a few phrases
 * Form now uses 'inline' to keep the button in the right place.
 * Moved stop_indexer to cleanup_indexer
 * Added 'has_stalled' to Index - returns true if the tick file is out of date.
 * Added 'force_start' to Index - stops the indexer (with no checking of the result - just to kill off any remaining process), unlinks the pid and tick files, and then starts the indexer and returns the result.
 * Added force_start_indexer to the Admin/Index screen
 * Rejigged Screen.pl to take $params (a hash array that can contain 'hidden'). This replaces 'passthrough'.
 * Added Admin.pm. This warns if the indexer is not started, or needs force restarting, with buttons to carry these out. It also shows a list of available admin tools.
 * Added the relevant phrases for the start/stop/force_start
 * Adjusted indexer.pl to use has_stalled
 * Added necessary roles to User.pm
 * Created render_action_button in Screen that is used by action_bar and action_list.
 * Added render_action_button_if_allowed - only returns a button if it is allowed to be viewed. Returns an empty doc fragment otherwise.
 * Created 'allowed' to return true if an action is allowed (used by action_list and render_action_button_if_allowed)

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * Added LibXML DOM option
 * Modified to_dom to use isa (otherwise inheritence will break comparison)
 * Added dom_compare tool to, er, compare DOM implementations

Timothy Miles-Board <tmb@ecs.soton.ac.uk>
 * Replaced hardcoded "subjects" with $field->get_name
 * Email body and sig weren't getting cloned properly - added 'deep' clone flag

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2006-10-26 18:49:47 +0100 (Thu, 26 Oct 2006)

-------------------------------------------------------------------------------
EPrints (3.0-beta-0)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * heh he
 * w00t!
 * stuff for 3.0-beta-0 (preview glimpse)
 * Fixed bug in oai2, rss and latest_tool which was looking for the config option
 * Added "n" to latest_tool to make it render result citation correctly
 * Login now no longer talks about IPs and sessions. We can maybe add those features later.
 * Moved collapse conditions to EPrints::XML::EPC::process
 * Added screen citiation formats for headers of EPrint and User screens.
 * Modified generate_static to find title and body directly rather than use XML::find_elements
 * Removed now unused XML::find_elements
 * don't need generate_apacheconf twice
 * missed this last big commit
 * removed debug line
 * blah
 * i
 * still working on installer
 * making test and package work
 * Fixed some issues in platform code
 * Renamed neat citation to result
 * Added a warning for the case of a citation style not existing.
 * Removed hide from metadata visibility
 * Changed citations files to neatly redirect user.brief to default
 * Renamed neat citation to result
 * Added a warning for the case of a citation style not existing.
 * enroute
 * Renamed /perl/ to /cgi/
 * Improved rendering of details tab
 * Removed test script lookup_demo
 * Changed export text on search
 * Fixed typo in workflow/eprint/default.xml
 * Added current user to the state available to epscript
 * Improved a debug message in epscript
 * Reworked citation methods to take parameters which are passed into epscript.
 * Cleaned up search rendering
 * Cleaned up items page
 * Search results now obey page_size
 * Added option to turn off ordering in multiple fields. It hides the numbers and arrows.
 * Added the option to editperms
 * Fixed a typo s/()/{}/ in Import::Endnote
 * Added a FlatSubjects import that can replace import_subjects
 * Changed the default search results size to 20 as 100 was very slow.
 * Added some missing phrases
 * Screens now ignore "login" action (which sometimes get sent if someone hits back/reload after logging in)
 * Styled Pagination
 * +  * Fixed undef error when an eprint tried to get the lowest pos of doc when +     there wasn't one at all. +  * Renamed indexqueue table to index_queue
 * Indexing config now sets "index" to true (or else no indexing happens)
 * Moved $FOO style indexing constants to $c->{indexing}->{foo} style.
 * Deposit button on owner-view page now goes to deposit screen, not action.
 * Named Sets now search correctly and have a correct help phrase.
 * Added action lists for all variations of eprint status and owner/editor
 * These are now used to generate quick-link buttons at the top and bottom of the view page.
 * All lists of actions with descriptions are now generated by a single method.
 * Moved New EPrint to a screen of its own
 * Added a new actions list which is used on the top of the items page.
 * Fixed tiny bug introduced by call code which broke guessing file format.
 * Fixed regexps to match new style document ids.
 * Fixed pos of new documents.
 * Added style to upload document fields table.
 * Right aligned document fields titles.
 * removed more unused scripts added phrase for userview screen title
 * removed unused scripts and modules
 * Added Platform code (defaults to UNIX) so that cross platform issues can be easily handled.
 * Made chmod and chown platform based functions.
 * Made it possible to pass a type as well as a value in EPC state.
 * Made STAFF_ONLY have type "BOOLEAN"
 * Reorder now doesn't bother if there's zero or one results.
 * Subjects Search now uses a nested view. Not perfect, but better.
 * render_input_field and render_input_field_actual no longer pass the type.
 * Session now uses XML::to_string to convert strings to XHTML, as does repository template loading. This fixes a few bugs including the xmlns in HTML one.
 * Added $session->reload_current_user and made logout call this.
 * Reworked user workflow
 * s/in_owner/has_owner/ in DataObj/User
 * Added view and edit user (both own and other)
 * minor tweaks to layout
 * chmod abstraction
 * Indexer now updates .pid every "tick"
 * Fixed minor bug in javascript tabs caused by the "tidy" HTML output.
 * Rewrote document security to use rewrite rules not symlinks!
 * Removed concept of "areas" in apache security
 * Removed the secure/ dir as this was just used for symlinks
 * Documents URLs are now /444/1/ not /444/01/ but the old style will redirect and the filesystem still uses "01" not "1".
 * Added pos to Document and Subscription. This will be used to order them.
 * Added documentid counter to generate unique ID's for documents
 * Documents now use integer to acutally identify themselves.
 * Removed support for not short_urls
 * Fixed a bug that stopped you logging out.
 * Removed code which checks we're not running as root, and removed code that tries to do a change uid if we're root. Even if it works, the taint flag still applies.
 * Added warning on running scripts as root.
 * Fixed bug in render-set-long
 * Added xml tidy to pins so that we can debug the HTML. This needs to become a config option.
 * Show/Hide of help, subjects and collapsed components now uses animation.
 * Help for multiple components is now inlined into the table.
 * Moved js files around so they load in the right order.
 * Put dotted lines between elements in multi-component.
 * Removed the "may be ommited" text from date input.
 * jiggerypokery
 * Added a new input_style to set which shows the items as a short list of radio buttons.
 * Made most sets use this input style.
 * Added citation function to epscript
 * Added yesno function to epscript
 * Fixing some knock on effects from namespacing the XML files.
 * Phrases now use collapse to insert their pins.
 * Changes the margins on the surround css.
 * Removed a stray collapse option from the subjects input component in the default workflow.
 * Added a little padding to the top of the tabs
 * Added some warnings when XML functions are passed undefined nodes.
 * Moved document type guesser into cfg.d/document_upload.pl
 * Fixed a couple of namespace change issues
 * resolved
 * tweaks - still debugging
 * Fixed bug in render multifield component which caused the title to vanish when uncollapsing.
 * Made top of default surround a bit darker to look more like the top of window.
 * Made the text in the surround title bar bigger and bold
 * Made the collapsed bar look like the title bar.
 * fixed missing } in template
 * added -I to perl #! line
 * Added labels to the refereed field.
 * moving namespaces towards ep3
 * Removed GEO IP code from Apache/LogHandler - this will be handled in the batch script.
 * Added labels and style to eprint-type (and long-view sets in general)
 * Removed entities.pl
 * No longer copies entites-en.dtd per language - now just makes one copy names entities.dtd
 * Changed the header of all XML files to reflect this.
 * Renamed archivename.pl to archive_name.pl
 * rename
 * 
 * Moved upgrade into tools - we'll need it later but not until the ep2>ep3 script.
 * Config now looks for dirs not .xml files
 * moving stuff around still.
 * back where it belongs, nearly.

moj
 * Fixed indexer spawning in Index.pm
 * Created Admin/Indexer.pm and Admin/Reload.pm and moved actions into the correct places.
 * Added render_common_actions to Status, as Reload/Indexer extend it.
 * Renamed phrases and added Admin/Indexer:title
 * Added a setsid to indexer
 * Added _run_indexer to avoid redundant code
 * Added is_running to Index
 * Added actions for start/stop indexer and force-config reload
 * Added necessary phrases
 * Added roles to admin (nb: known bug - indexer currently stopping on apache reload)
 * Moved several bin/indexer functions into Index.pm
 * Added tick file (separate from pid file)
 * Added functions to Index.pm to allow start/stop from within EPrints (these call bin/indexer)
 * Added is_empty function to XML.pm to return true if node has no children.
 * Shifted _render_fileicon to its own sub in $c->{render_fileicon}
 * Altered eprint_render and fileinfo_render to use this.
 * Added call support to Apache/Auth and Session for dynamic templates
 * Adapted can_call to allow multiple args (for cases such as $c->{dynamic_template}->{function}).
 * Removed previous namespace calls - now just uses the new approach.
 * Returns and prints error if invalid call (note that it can't use $self->log, as this uses call.
 * Converted all subs in cfg.d to be $c->{mysub} = sub
 * Converted Repository::call and can_call to handle this
 * Converted most &{...} calls to use Repository::call - some still need changing, but will need an alteration to the call method.
 * Added some missing phrases to system.xml
 * Added missing namespace info to epadmin
 * missed one
 * Added namespaces throughout lib
 * Converted system.xml
 * Converted files with entities to use EPScript and phrases
 * generate_apacheconf now loads the repository to make sure the config is there

Timothy David Brody <tdb01r@ecs.soton.ac.uk>
 * alpha openURL resolver (needs more work/specifying before documenting further)
 * EPrints-e-fied the code as much as possible
 * Added some more documentation
 * Fixed brace style to EPrints in-house
 * Moved test_pod to /tools
 * Documented overload (!)
 * Expanded default coverage to all EPrints modules
 * test_pod script checks for presence of POD for public methods in EPrints modules
 * Added missing POD in TempDir
 * Required by generate_apacheconf
 * New trunk (replaces /archives/trunk)

-- tagged-by Christopher Gutteridge <cjg@ecs.soton.ac.uk>  2006-10-23 20:55:30 +0100 (Mon, 23 Oct 2006)

-------------------------------------------------------------------------------
EPrints (2.3.14.alpha.5)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * 2.3.14-alpha-5
 * Added new config option "match_start_of_name". This allows name searching to work more like it did in version 2.2
 * Added new type of search condition: "index_start". This matches search keys which start with the given value.

-- tagged-by cvs2svn  2005-09-26 15:28:18 +0100 (Mon, 26 Sep 2005)

-------------------------------------------------------------------------------
EPrints (2.3.14.alpha.4)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * 2.3.14.a.4
 * Documented many methods in EPrints::Session
 * Added /testdata/ directory. This contains a script to load test data into a repository, and the files containing that data.
 * Applied patch to core_bibtex to add grave characters.

-- tagged-by cvs2svn  2005-09-23 15:55:15 +0100 (Fri, 23 Sep 2005)

-------------------------------------------------------------------------------
EPrints (2.3.14.alpha.3)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * 2.3.14.a.3
 * Fixed typo in install.pl.in "eq" should have been "ne"
 * typo

-- tagged-by cvs2svn  2005-09-20 16:18:50 +0100 (Tue, 20 Sep 2005)

-------------------------------------------------------------------------------
EPrints (2.3.14.alpha.2)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * next release.
 * Fixed bug in install.pl.in which did a numerical compare when it should have been string compare.
 * Added plugins directory to the installer.
 * Made changes to tech_docs and makepackage to reflect new paths in eprint.org website.
 * New method $eprint->skip_validation which returns false unless the config option skip_validation is defined, in which case it is called as a function pointer and returns true if the eprint should _not_ be validated.
 * Added skip_validation test to all eprint & document validation routines.
 * Added commented-out skip_validation stub to the default ArchiveConfig.pm
 * Moved text for export-search results and cgi/export to phrases file.
 * export-results now offers only output modes for the current dataset.
 * Added method $eprint->render_export_links which returns a <ul> of all things an eprint an eprint can be output as.
 * Added multilang support to output/core_xml
 * Added "/perl/export" which exports an eprint in a named output format. If no format is specified, it lists legal formats.
 * Added method to all output plugins which returns the URL which will export a given dataobj in that format.
 * ** empty log message ***
 * Significant changes to SearchExpression:
 * Added documentation for many methods
 * perform_search now returns a SearchResults object.
 * cache_results, dispose, count, map, get_records and get_ids have been moved to SearchResults, but stubs have been left in SearchExpression to keep existing code working.
 * process_webpage has been split into several more subroutines to improve readability.
 * the search results now have two additional actions.
 * action=export_redir just redirects to the same URL but with a pretend filename suitable for the export format. eg. export_soton_xml.xml
 * action=export takes a serialised expression and a cacheid, and a output plugin id and exports the search results in that format. If the cacheid has expired then the search will be silently re-done.
 * SearchResults has an "export" method which calls an output plugin on the ressults.
 * Correction to $session->plugin_call - @array changed to %hash
 * New method $session->plugin_list. This returns the ids of available plugins, optionally filtered by various paramaters.
 * Commented out debug code in EPrints::Archive
 * New method $archive->plugin_list which returns the id's off all plugins available to the archive (not system plugins).
 * Commented out debug code in EPrints::Plugins
 * New subroutine: EPrints::Plugins::plugin_list() which returns the ids of all system level plugins.
 * added $dataobj->export method which exports a single dataobject using a single output plugin.
 * Public and staff search now ignore everything after a second slash. this makes /perl/search/simple/foo.txt legal. This is used to provide sane filenames when exporting via plugins.
 * XML Plugin now ensures utf8() of strings, so duff data will not produce an invalid file.
 * Fixed bug in $eprint->last_in_thread which reported a loop error, even when there wasn't one.

-- tagged-by cvs2svn  2005-09-15 00:44:51 +0100 (Thu, 15 Sep 2005)

-------------------------------------------------------------------------------
EPrints (2.3.14.alpha.1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * getting plugins into the package.
 * Fixed the "use" lines for the new plugin modules.
 * EPrints::Plugins now loads system plugins when it is "use"d.
 * forgot one of the dirs
 * stuff for plugins
 * core XML export plugin
 * Added start of export plugin support. This includes:
 * New module Plugins which loads plugins and knows about system level plugins.
 * New module Plugin which contains a class which represents a single instance of a plugin.
 * New top level config /opt/eprints2/plugins/output/
 * New archive config .../foo/cfg/plugins/output/
 * Two initial output types: xml & bibtex
 * Changed "deny, allow" to "deny,allow" - apache didn't like the space.

-- tagged-by cvs2svn  2005-08-31 19:35:31 +0100 (Wed, 31 Aug 2005)

-------------------------------------------------------------------------------
EPrints (2.3.13)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * ** empty log message ***
 * 2.3.13!
 * Dataset unknown field error now reports the archiveid for better debugging.
 * Fixed bug in package creator which meant the codename didn't get set correctly.

-- tagged-by cvs2svn  2005-07-21 15:19:50 +0100 (Thu, 21 Jul 2005)

-------------------------------------------------------------------------------
EPrints (2.3.13.beta.1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * preping 2.3.13.b.1
 * preparing for release
 * [#1089] The deprecated cache option warning in SearchExpression
 * >new now tells the file and line that passed the deprecated option.
 * [#1158] On user area page, begin new item, and items-in-workarea are now seperate boxes. The box with the items-in-workarea is now called "Undeposited Items".
 * Corrected a missing ; in eprints.css
 * [#1178] Editors may now not modify (edit) items in the buffer "deletion". They can undelete them and then modify them. There is a new config option allow_edit_deleted to turn off this restriction.
 * [#1164] When an editor removes an item from a user workarea the default email message is now different to the one sent when an eprint is removed from buffer.
 * [#1176] configure now checks for DBD::mysql
 * In "install.pl.in" renamed $c to $from_configure to make the code clearer.
 * Also renamed $syssettings to $system_settings_file for the same reason.
 * Added a subroutine set($$$$) to update simple system settings values, with an optional default if no value already exists or was provided.
 * [#1191][#1315] set() is now used to set smtp_server, enable-gdome, show_ids_in_log and apache.
 * [#1192] In an install (not upgrade), install.pl will warn if no value for smtp_server has been set.
 * test commit
 * Changed the message at the end of configure from "...to install" to "...to install/upgrade". Should be less worrying for people.
 * [#1167] When configure tests for a perl module is now says that it's a perl module. Before it said "looking for Apache2... no" which confused people
 * The configuration subroutines: "update_archived_eprint" and "update_submitted_eprint" are now only called by EPrints::EPrint if they exist. They are considered deprecated.
 * Added new configuration option, a function handle called "eprint_status_change" which, if it exists, is called each time an eprint successfully moves between buffers.
 * Removed "update_archived_eprint" and "update_submitted_eprint" from the default configuration.
 * Added method to EPrints::Archive, "can_call" which tests to see if it is possible to call a subroutine in the config. package.
 * Added method to EPrints::Archive. "try_call" which acts like "call" but first checks that it can can_call, and if not silently fails, rather than cause a perl error.
 * Added option "show_ids_in_log" which causes the id of the archive causing the log message to be prefixed to every line it logs. This can be set at the archive level, but is more useful in SystemSettings to control all archives.
 * [#1005] Code in EPrints.pm which handles threads now checks to make sure that loops don't exist. Before it just got into a tight loop and never exited! If a loop is detected then the code is exited and a warning is logged. If rendering a thread HTML list then a warning message is placed at the point the loop was detected.
 * [#1159] Fixed a bug which meant that edit_eprint would give a 500 error rather than a clean warning in the situation that no dataset was given AND the eprintid did not exist.
 * #1090 Cleaned up error messages to be less worrying when non-essential tools are missing.
 * fixed issue with not processing __LICENSE__ on some directories.
 * [#1182] Added default values to user fields "frequency" and "mailempty" this will stop new editors being bugged for values which should have sensible defaults.
 * [#1146] Added an empty phrase to the top of /cgi/latest in case people want to add an introduction.
 * [#1097] The any/all of these fields option is now hidden if there is only a single search field.
 * [#1210] Fixed typo.
 * Added new method EPrints::Utils::email_date which gives the current date and time encoded for an email header.
 * [#1290] Added Date: headers to both send_email_via_smtp and via_sendmail.
 * [#972] Caused indexer to reopen STDIN and STDOUT as /dev/null and the indexer log file - this prevents a warning about re-opening STDOUT as input etc.
 * [#1193] fixed spelling mistake in can't-send-email error.
 * cgi/users/status now uses $ds->render_name to show the name of the datasets in the last-indexed section.
 * Renamed "records" to "items" on default front page.
 * DataSet::get_sql_dataset_ids now just returns a hard wired array, rather than get it from $INFO. is_sql_dataset is now unneeded and removed.
 * Added new method $dataset->render_name which returns the name of this dataset (in the current language).
 * Corrections to terms in phrase file.
 * Renamed "records" to "items" on default front page.
 * [#862] Added an allow from all to the base html directory.
 * Changed PERL to Perl in information.xpage.
 * ** empty log message ***
 * [#1174] Made sure that "buffer" is titled correctly as "editorial buffer" in the user interface and configuration files.
 * [#1173] Replaced all occurrances of "archive" in user interface with "repository" instead. (except for self-archiving and open-archives)
 * Added new registration intro to archive-phrase-file so as not to change the message on existing archvies.

-- tagged-by cvs2svn  2005-07-14 16:22:58 +0100 (Thu, 14 Jul 2005)

-------------------------------------------------------------------------------
EPrints (2.3.13.alpha.1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * eprints 2.3.13-a-1
 * fixes to configure for new mod_perl API
 * Removed debug code in RequestWrapper2
 * Removed debug code in generate_static
 * [#1140] If using mod_perl 2 then detect if the old or new API is in effect and make AnApache work accordingly.
 * Added a new method to AnApache : get_request which gets the current Apache request, using the old or new API. All calls to Apache->request have been replaced with this.
 * [#1140] Modified ReqestWrapper2 to work correctly with the new API.
 * If expecting mod_perl 1 and it's not, then both API's are checked for when testing if mod_perl 2 is installed to give advice about it.
 * oops.

-- tagged-by cvs2svn  2005-06-08 13:28:49 +0100 (Wed, 08 Jun 2005)

-------------------------------------------------------------------------------
EPrints (2.3.12)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * 2.3.12

-- tagged-by cvs2svn  2005-05-24 17:53:28 +0100 (Tue, 24 May 2005)

-------------------------------------------------------------------------------
EPrints (2.3.11.99.6-beta)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * ready for eprints 2.3.12 (beta 6)
 * $args is now parsed to handlers in VLit
 * VLit now uses the system wide path for 'convert' rather than a hard-wired one.
 * VLit now has a "human" mode for area transclusions.
 * [#1047] If "skip_buffer" is in effect, the "new version"- and "use as template" buttons on edit_eprint make the new eprints appear in the live archive, not the submission buffer.

-- tagged-by cvs2svn  2005-05-24 16:26:50 +0100 (Tue, 24 May 2005)

-------------------------------------------------------------------------------
EPrints (2.3.11.99.5-beta)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * commit for beta release
 * [#1025] Added missing phrase "lib/searchfield:help_itemref"
 * [#1027] Moved hard-wired "Continue" from Session.pm into the phrase file.
 * cgi/users/staff/edit_eprint used to assume the "archive" dataset if no dataset id was specified. Now it hunts through all datasets to find the item.
 * [#962] Added new option to staff/edit_eprint: Use as Template: called "copy" internally. This clones the eprint into the buffer but does not set the succeeds field and does not copy the documents. Nb. that the new version will have the same "userid" as the copied version, it does not currently get the userid from the editor who clones it.
 * [#962] "Use as Template" is available on eprints in all buffers. "New Version" is now only available on eprints in the "archive" or "deletion" buffers.
 * [#970] The script cgi/users/status now correctly checks that the user has the view-status priv.
 * [#982] The "whitedot" now loads of the https server if we are in https mode.
 * Modified $dataset->get_type_fields to log a warning if an unknown type is passed to it, and return [] rather than fail.
 * [#979] Added a new callback configuration option: sql_adjust. This takes an SQL string and returns a modifed version. It is called just before the SQL is passed to- the database.
 * Added test to detect if apache setting appears wrong. ie. If setting is for apache 1 but only mod_perl 2 is installed. If so print a helpful warning. [#1028]
 * misc.
 * [#876] New configuration option: allow_reset_password. If undefined it is assumed to be true. If set to false it causes the reset_password page to display a "this feature is disabled" message.
 * If you can't register via the web or reset passwords then set_password shows the same "feature disabled" message.
 * generate_apacheconf now causes the apache config to set an environment variable indicating the apache version it is intended for use with. If this ENV is set then it compares it to the setting in SystemSettings and if they don't match it prints a helpful error and quits. [#885]
 * code layout
 * When AnApache loads it checks to see if it can require the appropriate Apache or Apache2 module. If not it prints an error then sees if the other is available. If it is then it prints a suggestion that the SystemSettings param may be wrong.  [#884]
 * Value of secret fields now displays as [hidden] unless for some strange reason they are multiple, multilang or hasid. [#859]
 * Fixed bug: It was possible to select the "------" divide in set search form fields. [#853]
 * If no SMTP server is configured, and an attempt to send- mail via STMP is made, the system now logs a warning with advice on how to set the SMTP server. [#973]
 * removed test code from cgi/register
 * The deletion request on "cgi/users/review" now warns (via webpage) if the email did not get sent
 * The "cgi/users/change_email" form now warns (via webpage) if the email did not get sent.
 * The "cgi/reset_password" form now warns (via webpage) if the email did not get sent.
 * Changed the "email_failed" phrase to be generic as it will be used in several places.
 * added comments
 * Made the "problems" in the register page appear as css class problems (big red box). This way they are more obvious, and in the same style as problems in the submission form.
 * skipping testing apache 1.3 use's for now.
 * If cgi/register fails to send email, it removes the new user it just created and redisplays to registration form with a warning at the top. [#848]
 * Added a script to run all current tests in a harness.
 * Added warning to be sent to log if mail does not get sent correctly. [#848]
 * Fixed bug introduced in 2.3.7, EPrints would fail to set a mysql users password in mysql versions < 4.1 [#1010]
 * Render error now sends warnings to log when in online mode. [#841]
 * Fixed bug by adding code to ensure that $db->get_index_ids does not return any duplicates. [#841]
 * fixed incorrect attribute name in <style> elements in default template.
 * commented out some stray debug code in edit_eprint
 * Some initial tests. These will need much better planning as they grow.
 * Up and down arrows graphics now use https if appropriate
 * Fixed bug in logging

-- tagged-by cvs2svn  2005-05-18 16:53:14 +0100 (Wed, 18 May 2005)

-------------------------------------------------------------------------------
EPrints (2.3.11.99.4-beta)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2005-04-07 16:46:29 +0100 (Thu, 07 Apr 2005)

-------------------------------------------------------------------------------
EPrints (2.3.11.99.3-beta)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2005-04-04 18:13:13 +0100 (Mon, 04 Apr 2005)

-------------------------------------------------------------------------------
EPrints (2.3.11-99-2-beta)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2005-03-21 17:12:07 +0000 (Mon, 21 Mar 2005)

-------------------------------------------------------------------------------
EPrints (2.3.11-99-1-beta)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2005-03-18 16:20:39 +0000 (Fri, 18 Mar 2005)

-------------------------------------------------------------------------------
EPrints (2.3.11)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2005-03-08 16:44:52 +0000 (Tue, 08 Mar 2005)

-------------------------------------------------------------------------------
EPrints (2.3.10.99.1-beta)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2005-03-08 15:33:57 +0000 (Tue, 08 Mar 2005)

-------------------------------------------------------------------------------
EPrints (2.3.10)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2005-03-02 16:03:33 +0000 (Wed, 02 Mar 2005)

-------------------------------------------------------------------------------
EPrints (2.3.9-99-1)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2005-03-01 17:40:59 +0000 (Tue, 01 Mar 2005)

-------------------------------------------------------------------------------
EPrints (2.3.9)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2005-02-17 18:15:59 +0000 (Thu, 17 Feb 2005)

-------------------------------------------------------------------------------
EPrints (2.3.8)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2005-02-16 17:27:27 +0000 (Wed, 16 Feb 2005)

-------------------------------------------------------------------------------
EPrints (2.3.7.99.4-beta)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2005-02-16 14:42:38 +0000 (Wed, 16 Feb 2005)

-------------------------------------------------------------------------------
EPrints (2.3.7.99.3-beta)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2005-02-16 14:41:58 +0000 (Wed, 16 Feb 2005)

-------------------------------------------------------------------------------
EPrints (2.3.7.99.2-beta)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2005-01-19 18:28:18 +0000 (Wed, 19 Jan 2005)

-------------------------------------------------------------------------------
EPrints (2.3.7.3)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2005-01-18 13:41:49 +0000 (Tue, 18 Jan 2005)

-------------------------------------------------------------------------------
EPrints (2.3.7.2)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2005-01-17 19:27:41 +0000 (Mon, 17 Jan 2005)

-------------------------------------------------------------------------------
EPrints (2.3.7.1)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2004-12-03 15:50:36 +0000 (Fri, 03 Dec 2004)

-------------------------------------------------------------------------------
EPrints (2.3.7.99.1-beta)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2004-12-01 16:39:56 +0000 (Wed, 01 Dec 2004)

-------------------------------------------------------------------------------
EPrints (2.3.7)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2004-11-25 18:09:29 +0000 (Thu, 25 Nov 2004)

-------------------------------------------------------------------------------
EPrints (2.3.6.99.4-beta)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2004-11-24 18:23:38 +0000 (Wed, 24 Nov 2004)

-------------------------------------------------------------------------------
EPrints (2.3.6.99.3-beta)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2004-11-22 18:44:39 +0000 (Mon, 22 Nov 2004)

-------------------------------------------------------------------------------
EPrints (2.3.6.99.2-beta)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2004-09-29 13:36:25 +0100 (Wed, 29 Sep 2004)

-------------------------------------------------------------------------------
EPrints (2.3.6.99.1-beta)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2004-09-20 04:25:21 +0100 (Mon, 20 Sep 2004)

-------------------------------------------------------------------------------
EPrints (2.3.6)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * ** empty log message ***

-- tagged-by cvs2svn  2004-08-09 13:09:31 +0100 (Mon, 09 Aug 2004)

-------------------------------------------------------------------------------
EPrints (2.3.5)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * Fixed spelling mistake in Fulltext.pm
 * Made noxmlns actually cause/not cause xmlns to be stripped in XML to_string (bug fix)

-- tagged-by cvs2svn  2004-08-06 16:56:46 +0100 (Fri, 06 Aug 2004)

-------------------------------------------------------------------------------
EPrints (2.3.4.99.1.beta)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * ** empty log message ***
 * Added code to SQL prepare and do so that it tries to reconnect if the mysql connection goes away (not yet for 'execute' however)
 * Modified Fulltext field type to cache extracted index codes to reduce CPU load.
 * Added Hungarian chars to freetext index map
 * New options to indexer --once, --notdaemon, --loglevel, --rollcount
 * Indexer now creates log files
 * Commented-out un-needed command in SearchExpression
 * Fixed xmlns filtering so it only occurs on XHTML output, not XML
 * Fixed a call in Config to use AnApache, so it'll work with v1.3 & 2
 * Fixed a bug in MetaField/Set; it didn't show the currently selected value in any/all menus.
 * documents_url option removed. It's hardwired to /archive/ in lots of places.
 * Added support for short URLs for records, so you can use /33/ instead of /archive/00000033/
 * added config option 'shorturl' to make the short version the canonnical one.

-- tagged-by cvs2svn  2004-08-06 15:25:13 +0100 (Fri, 06 Aug 2004)

-------------------------------------------------------------------------------
EPrints (2.3.4)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * Cleaned up some error messages
 * Fixed bug in oai2 interface that sometimes printed empty resumption tokens.
 * Changed options to /bin/cp in Document.pm to some which should work on more platforms.
 * Some validation things in EPrint never got added to @problems list. Fixed.
 * Fixed bug in new subjects input field, didn't add subjects which were top level.
 * Fixed bug with changing username.
 * XML exported now strips xmlns attributes so that output is legal XHTML.
 * XML comments should now be exported correctly.
 * Upped maximum pagerange field width to 120 from 10.
 * Fixed typo in system phrases.

-- tagged-by cvs2svn  2004-07-05 15:24:15 +0100 (Mon, 05 Jul 2004)

-------------------------------------------------------------------------------
EPrints (2.3.3)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * ** empty log message ***

-- tagged-by cvs2svn  2004-03-04 18:59:30 +0000 (Thu, 04 Mar 2004)

-------------------------------------------------------------------------------
EPrints (2.3.2.99.1.alpha)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * Added a new script - explain_sql_tables, which explains what all the SQL tables are used for.
 * Another try to fix the hideempty bugs in generate_views while making the subjects list show totals for super-catagories.
 * Chopped up generate_views into subroutines a little - may be a bit clearer to understand now (maybe not).
 * Hacked the bundled Apache::DBI module to use log_error rather than log_reason (v1 and v2 mod_perl compliant)
 * The name of a language can now be specified in an language specific phrase file. Added a new method to session: render_language_name which renders the given name in the right language. Everywhere which mentions language names now uses this. Maybe set_lang should not.
 * Added a feature which looks for optional extra 'join' phrases to use in the first and/or last join of a sequence of values. ie. you can use name_join = ', ' and name_join.last = ' and '
 * Changed all Apache::exit's to just be exit's for apache 2 compatability.
 * Fixed bug in searches so that a single search on a multiple table can no longer return two instances of the same item (added a DISTINCT!)
 * Changed all remaining occurances of "iso-latin-1" to "iso-8859-1"
 * Added a fix to mkdir to make sure that the dir string is not a Unicode::String (as this causes an error).
 * Updated copyright statement to 2004!
 * XML to_string function now correctly handles <!-- comments -->
 * ordervalue for an undefined int is now "" (was causing warning)
 * ** empty log message ***

-- tagged-by cvs2svn  2004-03-03 15:47:15 +0000 (Wed, 03 Mar 2004)

-------------------------------------------------------------------------------
EPrints (2.3.2)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * Commented out a filter in ArchiveOAIConfig.pm that should not have been active by default.

-- tagged-by cvs2svn  2004-02-25 17:11:16 +0000 (Wed, 25 Feb 2004)

-------------------------------------------------------------------------------
EPrints (2.3.1.99.3-beta)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2004-02-24 17:20:46 +0000 (Tue, 24 Feb 2004)

-------------------------------------------------------------------------------
EPrints (2.3.1.99.2-beta)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * Swaped the header_in and header_out functions 1.3 and 2.0 ones were the wrong way around. d'oh.

-- tagged-by cvs2svn  2004-02-24 17:20:46 +0000 (Tue, 24 Feb 2004)

-------------------------------------------------------------------------------
EPrints (2.3.1.99.1-beta)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * Changed all $r->connection->user to $r->user for libapreq2 compatability.
 * Added header_in header_out and send_http_headers to AnApche to abstract differences between v1 and v2 API.
 * Used new AnApache functions to replace current calls throughout.
 * Added 'hideempty' option to default browse subject view.
 * Changed configure_archive to just do GRANT ALL.
 * Made generate_views correctly show two combined subject trees.
 * Fixed bug in generate_views. hideempty works correctly again.
 * Changed header_in to headers_in to work with libapreq v2 AND v1
 * Fixed a bug which meant <options> tags could sometimes have illegal characters in.
 * import_subjects now dies with an error if a naughty subjectid is used.

-- tagged-by cvs2svn  2004-02-24 16:50:58 +0000 (Tue, 24 Feb 2004)

-------------------------------------------------------------------------------
EPrints (2.3.1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * Fixed some typos in phrase files
 * Added 'last indexed' info on search results page
 * Browse by 'name' type fields now works
 * Hooks for input field renderers so that it can be made dependent on properties of the associated object. If any.
 * Patched the XML/DOM which ships with EPrints to fix some problems with running under Perl 5.8
 * Fixed a bug in 'lang' when $multilingual options are set to true
 * Added escaping for cachecodes in database. a ' could cause an SQL error before.
 * Made the ordering stage use a left join rather than an inner join so that items not in the order table for some reason don't show. not that that should ever happen.
 * Metafields are now dynamically loaded modules, don't need to 'use' them.
 * Changed paracite code so that the SEEK button now generates a POST rather than a GET request. This stops search engines form following these links and hammering the server.
 * The name_match search condition now works for searches but not on does-it-match? calls yet.
 * Total rewrite of the generate_views code which escapes the filename to escape any uncode character.
 * Fixed VLit code to handle an archive on a sub path.
 * added todoc and intro

-- tagged-by cvs2svn  2004-02-05 17:05:52 +0000 (Thu, 05 Feb 2004)

-------------------------------------------------------------------------------
EPrints (2.3.0)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * ooops. up/down buttons bug.
 * ** empty log message ***
 * Added "perlmodules.pl" utility which should make installing the required perl modules much easier.
 * Added new config option "send_email" which allows the normal email method (using sendmail) to be over-ridden.
 * Fixed subjects linking to view pages with multiple levels.
 * removed debug line from SearchExpression
 * split words (Basic) now splits on whitespace again not any split char.
 * Fixed subject-browse so there's a mini-tree at the top again.

-- tagged-by cvs2svn  2004-01-06 14:23:16 +0000 (Tue, 06 Jan 2004)

-------------------------------------------------------------------------------
EPrints (2.2.99.6-beta)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * Fixed bug in form renderer of multilang fields.
 * Improved interface to subject editor (and fixed some bugs)
 * Added current version to counter script.
 * Internal Buttons now work again on user forms.
 * Removed silly BONG message at startup.
 * Startup now lists all archives which have been loaded.
 * Text Searches now correctly stem words to be searched.

-- tagged-by cvs2svn  2003-12-08 20:07:00 +0000 (Mon, 08 Dec 2003)

-------------------------------------------------------------------------------
EPrints (2.2.99.5-beta)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * Option to use CGI script "mimetex" for Latex rendering. Rewrite now ignores any requests to /cgi/ and if enable_mimetex is set then an extra ScriptAlias is added to the apache conf and the Latex render_single_value points at that URL instead.
 * Tidied some config files.
 * Improved install.pl to rename old files to format ".YYYY-MM-DD.N" rather than ".old"
 * Improved install so as not to trash .old files

-- tagged-by cvs2svn  2003-12-02 18:17:12 +0000 (Tue, 02 Dec 2003)

-------------------------------------------------------------------------------
EPrints (2.2.99.4-beta)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * ** empty log message ***
 * Cleaned up browse_view config.
 * Cleaned up search config.
 * Fixed bug in indexer (didn't give up STDOUT etc).
 * Removed debug code from generate_views
 * Submission form validate page now only has submit buttons at the bottom of the page if the eprint is valid.
 * Fixed search form on default index page.
 * Added Proc/Reliable and Unicode/Normalise to bundled stuff.
 * Cleaned up browse_view config.
 * Cleaned up search config.
 * Fixed bug in indexer (didn't give up STDOUT etc).
 * Removed debug code from generate_views
 * Submission form validate page now only has submit buttons at the bottom of the page if the eprint is valid.
 * Fixed search form on default index page.

-- tagged-by cvs2svn  2003-11-28 18:11:48 +0000 (Fri, 28 Nov 2003)

-------------------------------------------------------------------------------
EPrints (2.2.99.3-alpha)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * start of 2.3 sdocsZZZZZXZZ i2.3 docsZ
 * Fixed bug that status page erased half-done index tables with "dispose"
 * renamed $index->dispose to "cleanup" as it's not a required dispose function.
 * Made AnApache eval the subroutines for that apache to avoid any confusion.
 * Added apache2 upload file routines to AnApache
 * fixed typo in Document.pm (add_archive x2. one should have been add_file)
 * Fixed bug that full text searching lowercased and stemmed words when it shouldn't.
 * Apache 2 post trans handler does not map "/" to "/index.html" so Rewrite now does it.
 * Fixed warning if accept-language is not set.
 * Userpage list-of-eprints now links to correct new search URL
 * Renamed arrow images to all start with "multi" so that the upgrading admins can use "multi*"
 * Added some code to wrapper differences between file uploads in apache 1.3 & 2.
 * Removed some debugging code from generate_views
 * Fixed a warning in generate_views
 * indexer now shows current object id it's working on as it's $0
 * indexer now nice's to 8 not 20
 * removed more useless "untaint" code
 * hide_lineage/honourific renamed to {field_defaults}->{hide_lineage}. added some code to Config to deal with old 2.2 config files.
 * added add_archive and add_file to Document (like upload, but take filenames not handles).
 * added sanitise to document. Handles cleaning up the uploaded file names (no longer clears .* as that's not desirable.
 * Escaped values in indexer so that we can index "don't"
 * Improved file uploads interface a little (new style)
 * Escaped values in toString'd XML attributes.
 * Added checks for appropriate apache modules (1.3 or 2) in configure
 * Fixed some problems in exporting apache constants in apache 1.3
 * ..and some with AuthDBI requiring only Apache.pm not AnApache
 * Fixed a bug with attr->toString not working in newer gdome's
 * [c] Added demo subject search. remove it or comment it out before release.
 * [c] hideemail is now a radio button not a checkbox
 * Added AnApache.pm which decides if it should "use" Apache or Apache2. it also loads related libraries for that mod_perl. All calls to use Apache now replaced with use EPrintsAnApache
 * disabled buggy return-to-previous on set_lang
 * generate_apacheconf now uses correct v1/v2 modperl registry module
 * s/apache_version/apache/
 * Added release version of paracite code.
 * Added $dataset->has_field
 * Used it to make paracite cgi script use authors or creators - whichever.
 * Added new CGI script /users/search which does ALL staffmode searches. This replaces both eprint_search and user_search
 * Added some missing phrases
 * Improved examples for date search
 * Deprecated links to user_search & eprints_search. Scripts now just forward to /users/search
 * Everything is now in BINMODE for perl 5.8 compatability issues. Now requres Proc/Reliable
 * B CVS ----------------------------------------------------------------------
 * Added code to upgrade database to v2.3
 * Added "contact" page to statics, rather than email on all pages.
 * Browse views can now have subheadings within one page. New options to views: subheadings and heading_level
 * Fixed bug which given "aa bb " searched for "aa" & "bb" & ""
 * Fixed bug which meant when a live document is made secure after being public the public symlink was not removed. Now when an eprint makes it's static files, it unlinks them first.
 * Fixed merge function so that it can deal with the first value in either array being undef.
 * Fixed a bug in the validation of users when editing a user record in staff mode.
 * Added some code to cleanly handle undefined date fields.
 * duh
 * moved in release dohdahds
 * Made searches use "neat" citation again.
 * Fixed bug in Metadata defaults
 * Fixed bug in render_nbsp. Didn't always give the right unicode value.

-- tagged-by cvs2svn  2003-11-27 19:15:34 +0000 (Thu, 27 Nov 2003)

-------------------------------------------------------------------------------
EPrints (2.2.99.2-alpha)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2003-11-07 15:33:57 +0000 (Fri, 07 Nov 2003)

-------------------------------------------------------------------------------
EPrints (2.2.99.1-alpha)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2003-11-06 18:18:57 +0000 (Thu, 06 Nov 2003)

-------------------------------------------------------------------------------
EPrints (2.2.99.0-alpha)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2003-11-05 17:44:20 +0000 (Wed, 05 Nov 2003)

-------------------------------------------------------------------------------
EPrints (2.3.0-pre-2)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2003-06-24 17:51:55 +0100 (Tue, 24 Jun 2003)

-------------------------------------------------------------------------------
EPrints (2.3.0-pre-1)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2003-06-17 18:34:10 +0100 (Tue, 17 Jun 2003)

-------------------------------------------------------------------------------
EPrints (2.3.0-tardis-2)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2003-06-10 18:27:19 +0100 (Tue, 10 Jun 2003)

-------------------------------------------------------------------------------
EPrints (2.3.0-tardis-1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * [c] Added submission_long_types config option and made the default true.
 * [doc] New config options allow_user_checkout_eprint and submission_long_types.
 * [c] Changed default pin timeout number from 3 hours to a week!
 * - [c] Messed around with the citations file. Will need to be cleaned up before next release.
 * - [c] Messed around with the metadata-types file. Will need cleanup.
 * Changed latex2png so that it no longer spawns a cat command using backticks, but does it all in Perl instead.
 * [api] Changed occurances of $user->get_eprints to be $user->get_owned_eprints in "user_eprints" & "home" so that eprints related, but not directly submitted by someone appear as theres too.
 * Started work on "checkout" option to allow people to remove their items from the archive and edit them. Not 100% sure of the interface & rules yet.
 * [doc] New config option "submission_stage_last_for_staff_edit" which indicates if the last page of the submission format is different to normal (files) so that people swapping the order of fields won't break the staff edit mode.
 * - [doc] Added support for "paged" input of metadata, indicated by a <page /> tag in metadata-types. Still needs to be made to look nicer.
 * [doc] When getting fields from citations or $obj->get_value, qualifiers such as .id or .res=D are now allowed.
 * [doc] Added support for data resolutions. min_resolution and max_resolution. min_resolution is the resolution Y/M/D which must be entered. max_resolution is the resolution which is returned from get_value(s) etc. (This can be set "on the fly" with submission.res=Y style qualifiers.
 * Date search improved to handle YYYY-YYYY, YYYY-MM-, -YYYY-MM-DD etc. not just (YYYY-MM-DD)?|(-(YYYY-MM-DD)?)? but (YYYY(-MM(-DD)?)?)?|(-(YYYY(-MM(-DD)?)?)?)? (sheesh)
 * added page_order, staff_pages and pages instance variables to dataset.
 * [doc] Added new input_style for sets and datatype fields: "long" which renders them as a <dl> list with radio buttons.
 * Fixed a '\n' to be "\n" instead in an error in Archive.pm
 * New function: @fields = $ds->get_page_fields( $type, $page, $staff )
 * New function: @pages = $ds->get_type_pages( $type );
 * [db] Database now stores date 2000 as 2000-00-00 (which is the mysql way. This is not super portable, but hey.
 * New function:  EPrints::Database::trim_date( $mysql_date )
 * New function:  EPrints::Database::pad_date( $mysql_date, [$inc] )
 * These functions convert from eprints date format to mysql and back (strip/add -00's).
 * in Document.pm, changed "cp" to "/bin/cp" which is still a touch flakey as it's shelling out, but is an absolute path and avoids some problems on securer systems.
 * in EPrints.pm changed an "if defined $obj->get_value(x)" to "if $obj->is_set(x)"
 * - New function: $eprint->validate_meta_page( $page, [$for_archive] ) for validating each page of the meta data entry (so you don't have to wait until the end). * does not have a callback yet *
 * Now the render_latex function removes trailing whitespace if any is left over after it's shenanigens (it was adding a single space on the end which screwed up citations.)
 * - [api] New function: $xhtml = $field->render_help( $session ) now used in preference to display_help. ** maybe display_help can be removed? **
 * Improved rendering of date type so that it renders at it's max_resolution.
 * - Added a really odd hack to editperms so that it only shows extra input boxes if explicitly clicked. That can't be right!
 * Added a charset = utf-8 to textarea input fields.
 * Made it so that a field of type search with a "null" search is now considered unset, lots of empty searches were getting stored.
 * Made the "EX" search flag mean nothing for date fields. This might be changed later, but for now means that 1999 = 1999-09-01 even in "EX" mode.
 * - Fiddled with "height" code for pick lists. It's still not right.
 * - hacked "DOCTYPES" into the top of pages. Gotta be a better way.
 * [api] new option to submission forms: $autosend. This causes the form to store the resultant XHTML for the next page of the form in a way that can be requested, rather then render it right away as a page.
 * submission form now uses $user->is_owner($eprint) to establish ownership, rather than checking that user submitted it.
 * Added a couple of lines to Subscription.pm to deal with the fact that mailempty might not be defined (gets rid of a warning)
 * [api][doc] Changed  $user->get_owned_eprints() to be $thing->get_owned_eprints( $dataset ). Now returns all the eprints created by that user, in that dataset. UNLESS the config option "get_users_owned_eprints" is set in which case it calls that as a function and returns the result of that instead.
 * Improved field_from_config_string so that it can now have any number of qualifications after a fieldname, if desired. eg. foo.main.res=Y (not sure why you'd want to, but let's keep it rebust eh?)
 * - New function:  EPrints::XML::write_xhtml_file( $node, $filename ) this outputs the node just like write_xml_file but prints a DOCTYPE at the top. Bit of a hack really.
 * (in tools/update_phrase_file) improved the layout of the translation flagging and the flags now include the reference code.
 * ** empty log message ***
 * x
 * #2
 * test#4
 * blah

-- tagged-by cvs2svn  2003-05-20 14:28:25 +0100 (Tue, 20 May 2003)

-------------------------------------------------------------------------------
EPrints (2.2.1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * fixed bug in EPrints::XML which used toStringEnc even if we were using XML::DOM (and broke configure_archive)
 * [c] fixed a missing ";" in the commented-out catch404 example in ArchiveConfig.pm
 * Fixed bug with export_xml (the vital "print" was missing)
 * added a missing $searchexp->dispose() to generate_views
 * generate_views now uses new sub: EPrints::Utils::escape_filename to escape the non-filesystem characters.
 * commented out illegal   $delfield->set_dataset( $ds_del ); in oai & oai2
 * fixed bug in oai2 which returned only eprints IN a subject, and not those in subjects under it.
 * fixed view_eprint to work (never worked since ep2.0). Still a bit shoddy.
 * is_browsable also now uses EPrints::Utils::escape_filename to link.
 * fixed bug in "search defaults" which meant that a boolean setting of no-preference failed to over-ride the default!
 * removed render_subject_desc from Session. It's never used.
 * fixed bug in searchexp unserialise, which did not set fields in the target exp to null if they were not mentioned in the serial- ised version. This caused defaults to appear again when you select "refine search".

-- tagged-by cvs2svn  2002-11-14 12:39:55 +0000 (Thu, 14 Nov 2002)

-------------------------------------------------------------------------------
EPrints (2.2)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * typo in reqsoftware

-- tagged-by cvs2svn  2002-10-31 12:27:11 +0000 (Thu, 31 Oct 2002)

-------------------------------------------------------------------------------
EPrints (2.2-pre-2)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * ** empty log message ***
 * cjg
 * [c] Cleaned up the default config files. Added examples of all the new options.
 * Fixed some issues with documents which have been orphened (have no eprints)
 * docs update

-- tagged-by cvs2svn  2002-10-31 01:41:02 +0000 (Thu, 31 Oct 2002)

-------------------------------------------------------------------------------
EPrints (2.2-pre-1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * staff eprint search now defaults to showing "archive" as the selected dataset
 * phrases no longer log unused parameters (but still log missing ones)
 * "extra" search fields can now have defaults
 * corrected some spelling
 * changed links on default pages to go to software.eprints.org and call the software GNU EPrints not eprints.org software.
 * export_xml was using XML::DOM (now uses EPrints::XML)
 * ** empty log message ***
 * Cleaned up ArchiveConfig.pm (views etc)
 * Citations may now use @title@ instead of &title; although this is optional
 * Changed default citation file to use @title@ format
 * Removed some junk from metadata-types.xml (junk comment)
 * Improved text about restarting apache in configure_archive
 * Added a --all option to export_hashes
 * Fixed bug in UTC timestamp function (now uses gmtime, like it was supposed to)
 * Added parse_xml_string to EPrints::XML to do the obvious
 * Added Paracite module and cgi script to render reference links. Added Citation/Parser to bundled libraries. Added a "seek" image for links to paracite.
 * No edit rules now means an editor can edit anything not nothing
 * new method "make_comment" in EPrints::Session
 * Fixed VLit & configure_archive to use whichever XML library is prefered.
 * more work on the tools/update_phrase_file utility to aid translation. Still not finished.
 * Fixed a bug in subjects multiple render join. Subject "join" is now <br/>
 * Renamed use_gdome to be enable_gdome for configure-like goodness.
 * <securehost> and <securepath> are now optional (in archive.xml)
 * Fixed a bug in the 2.1->2.2 SQL in bin/upgrade
 * whatever.
 * changed editperms in User.pm to be a multiple field, and made changes where this is used. Each search is "OR" not "AND". Changed "upgrade" to add the table (rather than just a field).
 * eprints no longer have a "hash" value after all. It's just stored in the XML files.
 * Fixed OAI2 bug which meant it did not complain when identifiers did not match the oai regexp. Should now, finally, be 100% compliant.
 * Some improvements to the archive loader, should hopefully express more errors in the perl config modules.
 * the from_buffer method in Database now takes offset, count and justids params as used elsewhere.
 * Added Probity.pm which hashes files and outputs in the probity XML format.
 * Document rehash() now uses Probity.pm everytime any document modifying method is called.
 * export_hashes now works with the XML probity format. (.xsh)
 * Added phrases for seperators in multiple value rendering (eg. the " and " in name lists. Searches are seperated by " <strong>OR<strong> "
 * added "boolean" to the is_browsable list. It acts like a 2 value set.
 * SearchExpressions now always call from_buffer with the offset, count and justids, if set.
 * Fixed icky error in SearchField::item_matches which halted if a subject no longer exists for some reason. Now logs an warning and muddles on.
 * Added a get_UTC_timestamp to Utils
 * Fixed the VLit non-port-80 bug. Added some new functionality, including a "scale" factor, and a "fax" detector.
 * [c] Added skip_buffer config option which makes articles go from the work area directly to the archive.
 * [c] Default abstract page now lists eprint type.
 * [c] Default render_user_full now lists subscriptions too.
 * fixed typo in cgi/confirm s/timepout/timeout/
 * fixed bug in MD5 hash code and added hook to use different hash if required.
 * [c] override default hash method.
 * added <ep:ifmatch> and <ep:ifnotmatch> to citations. These implement conditionals using some of the eprints search semantics.
 * new script - export_hashes - which dumps all the hash values of documents in an archive.
 * [c] Fixed ArchiveConfig.pm so that a user can always view a document they deposited even if it's secure.
 * Added regexp to make_text to remove all characters < ord(32) except 0x09, 0x0a and 0x0d. They're not legal in XML!
 * Modified the selection field renderer so that if the specified height is 2 or more, the actual height will always be at least 2. (so it does not become a pull-down).
 * Fixed a bug in SubmissionForm so that "cancel" on the "eprinttype" page does not store any change in type.
 * Added a "submit later" button to Deposit Page.
 * Changed the submission form "thanks" page to mention that it is awaiting approval by an editor.
 * Fixed an error in "lib/userform:blurb" phrase which linked to set_email rather than change_email.
 * Added google_site which appends "site:whatever.com" to a search param and redirects that search to google.
 * Added EPrints::Utils::make_name_string to return a utf-8 string from a name structure. Replaced render_name with it in some places.
 * [conf] Added editperms and related fields to metadata-types.xml
 * generate_views can now do "name" fields. Name fields are "browse-able"
 * [doc] notimestamp & hideempty are new paramaters to views.
 * Editor alerts: mailed out at same time as subscription to tell what editors have in the "buffer".
 * Subject editors: editors may now be properly limited to a search set.
 * phrases generation now is more careful about garbage collection. Esp. unused pin values.
 * [api] render_input_field has new optional param: $staff which is used to render id fields with the id_editors_only condtional. Also in render_input_form to pass through.
 * SubmissionForm and UserForm tell render_input_form if they are in staff mode.
 * [doc] New metadata fields:
 * id_editors_only for has_id fields to show the "id" input bit to editors only or everyone?
 * allow_set_order for search fields to show the "order" selector?
 * fixed bug in OpenArchives that only looked for oai 1 identifiers in from_oai_identifier.
 * [api] Removed set_value from SearchField (not used)
 * Changed the phrase for mailing subscriptions to be one big phrase so layout change is possible.
 * added to User.pm: $thing->send_out_editor_alert and EPrints::User::process_editor_alerts( $session, $frequency );
 * changed email encoding for latin from iso-latin-1 to iso-8859-1 probably make no difference.
 * EPrints::XML::dom can now take a list of types, not just one.
 * Improved EPrints::XML::to_string to make <br/> into <br />
 * [api] Added EPrints::XML to handle abstraction of XML::DOM/XML::GDOME
 * Added new option is SystemSettings to allow users to turn on gdome support.
 * [c] Changed use XML::DOM to EPrints::XML in ArchiveConfig.pm
 * [c] removed SYSTEM "entities-en.dtd" from the DOCTYPE of ruler.xml
 * Improved much of the DOM code to be faster and more stable, using new functions in EPrints::XML where appropriate. Specifically in phrase pin insertion, page pin insertion and citation rendering.
 * [api] MetaField objects no longer know what dataset they belong to.
 * [api] removed $metafield->get_dataset() and $metafield->set_dataset()
 * [api] $metafield->get_values( $session ) is now $metafield->get_values( $session, $dataset )
 * [api] $archive->parse_xml( $filename, %config ) is now $archive->parse_xml( $filename, $no_expand ) as %config was XML::DOM specific.
 * [api] EPrints::Config::parse_xml() removed. Use EPrints::XML functions instead.
 * DataSet now caches configurations so that it can share the same configur- ation between inbox,buffer,archive,deletion and eprint which saves a chunk of RAM.
 * DataSet now keeps track of which fields are required for a type, rather than cloning MetaFields and setting their required property.
 * [api] To find out if a metafield is required within a specific type of eprint there is a new DataSet method $boolean = $ds->field_required_in_type( $field, $type ) the field property now just indicates if it is globally required.
 * [api] The Database method  $db->get_values( $field ) is now $db->get_values( $field, $dataset )
 * [api] $field->render_input_field now additionally takes optional parameters of $dataset, $type which if defined will be used to see if the field is required for the specified type when rendering it.
 * $session now keeps a handle on a document {doc} in addition to the current page {page} which must be owned by {doc}.
 * [api] $session->new_page() is removed (and no longer required)
 * [api] two new options for $session->render_input_form: field & type which if set will be passed to render_input_field (see above).
 * [api] $session->take_ownership removed. Use clone_for_me instead.
 * [api] New method for $session: $session->clone_and_own( $node, $deep ) which clones the specified node, but owned by the sessions own document (and thus can be part of the output page). If $deep is 0 then only the node is cloned and not it's children too.
 * [api] Please use EPrints::XML::to_string( $node ) rather than $node->toString as in GDOME this does not work properly on DocumentFragments
 * Fixed a bug in oai2 which meant it occasionally used the wrong session in munge_date.
 * [c] some mess ups to the default views (need to fix before release)
 * new method: EPrints::DataSet::get_sql_dataset_ids which returns an array of all the datasets which map directly into sets of SQL tables. This is used by create tables to get the list.
 * Added check to bin/create_tables to check if there are more than 32 fields requiring SQL Indexes in the main table.
 * Added a --force option to bin/create_tables to override warnings.
 * Added option to bin/generate_abstract to generate a single abstract.
 * Added PerlFreshRestart to apache conf from generate_apacheconf to make apache reload the perlmodules and eprints config on apache reload.
 * "options" to timestamp subject views and to only show subjects which have 1 or more things in them. Although they are not yet options, they soon will be.
 * added new system metadata field to document: "hash" which contains the MD5 of the files in the document. bin/upgrade will now add it to v2.1 databases.
 * [c] added default values for searches. New config options advanced_search_defaults & simple_search_defaults which are references to hashes. Does not handle things like "ANY/ALL" just the text.
 * Tidied up bin/status to look nicer and also have report on subscriptions how many of each frequency and when the last mailing for that frequency was.
 * Archive config now remebers when it was last changed and if /archvies/FOO/cfg/.changed has changed since then it reloads the archive.
 * Now does "do" rather than "require" on ArchiveConfig.pm so that it can be repeated to reload the module.
 * Some code in Config.pm tries to change UID to "eprints" (or whatever) if running as root. But it does not work properly as the code gets "tainted".
 * Added a much clearer warning when errors in the config modules are encountered.
 * Added count_indexes to DataSet which returns how many SQL indexes are required for the main table of that dataset.
 * Added rehash function to Document, which recalculates the hash of the files in the document (the will later be overridable with a config opion). All functions which add or remove files to the document now call rehash.
 * [c] Added new metadata field property (sql_index). Which defaults to true but if set to zero will supress the field having an SQL index.
 * Fixed bugs in OpenArchives code which used OAI v1.1 id for part of OAI2.0
 * Fixed display bug: Buttons are now rendered in their own little <div>.
 * Cleaned up submission form for the case where there are NO required formats.
 * Subscriptions now obey "MailEmpty"? or not field.
 * Fixed bug in subscriptions which made them mail out multiple times.
 * Sucessful sending of subscriptions for a frequency cause a file called /opt/eprints2/archive/FOO/cfg/subscription-FREQUENCY.timestamp the timestamp of which is used in the archive "status" page.
 * Added $subscription->get_last_timestamp($session,$frequency) which gives a neat interface to that value.
 * Fixed a view in User.pm where the URL for a given user was wrong (eprint 1 URL)
 * Added code which won't get documented just yet to citation renderer which processes @year@ in an ATTRIBUTE of a citation like it would &year; eg. <a href="http://www.google.com/search?v=@year@+papers+from">&year;</a>
 * Added Utils::get_timestamp which returns a neat time stamp string, similar to that from UNIX date command.
 * [c] Increased default results page size to 100 from 10.
 * [c] Increased default witdth of abstract input to 90 cols.
 * [c] Increased default number of author input fields to 6.
 * [c] Some tweaks to default citations.
 * [c] Made "publication" field optional in all types.
 * [c] Added a new config file to archives - apachevhost.conf - which is included into the configuration inside the virutalhost definition.
 * Modified apacheconf rewrite rules so that a trailing "/" is not required to get record abstract pages.
 * Modified generate_views so that files for values which contain " " or "/" have "_" in their stead.
 * [db] Added new system fields to the database. DB version is now 2.2. bin/upgrade will make the changes. Changes are:
 * in dataset "subscription"
 * add a new boolean field "mailempty"
 * in dataset "user"
 * remove the field "editorsubjects"
 * add the following fields: + editperms (search) + mailempty (boolean) + frequency (set)
 * [c] New configuration option "catch404" which may be undefined, but may be a reference to a subroutine which takes ($session, $url) and returns either a new URL to redirect to or undef if it's really a 404. This is to handle migration from eprints 1 or other systems.
 * [c] New "priv" for users: "no_edit_own_record" which actually removes the edit my record option from the user page (for DB's where the users are imported not web-registered.)
 * Edit subscriptions page now includes extra option to indicate if a user wants a mail when there are zero matches.
 * Changed the layout of the subscriptions summary page to be a bit clearer.
 * Added a check in get_conf to prevent null reference errors in the case of an optional hash table. Eg $c->{a} = { c=>4, b=>5 } OR $c->{a} = undef; and someone requests $archive->get_conf( "a", "c" ) - will return "4" in 1st case and undef in the 2nd.
 * [c] Added new metadata parameter "can_clone" which defaults to 1. If set to 0 then the field is not cloned when the record containing it is cloned.
 * added a test to prevent a warning when unserialising an undefined value as a search expression (and treat it like an empty string).
 * fixed bug in SubmissionForm. Now only lists the required formats, and asks for at least one if there is at least one required format.
 * added some checks to render_name in Utils.pm to avoid warnings in the case of undefined values.
 * fixed render_citation so that it should now not crash on nested <isset> elements.
 * Added PNGs to replace GIFs for logos in the static/image directory.
 * [c] Made stylesheet link in the default template link to the full URL rather than relative link. Eeep. That's not going to work - it'll give an error. Dammit.
 * [c] Added 2 new archive config settings: securehost and securepath for running https.
 * generate_apacheconf now generates all the apache confs (does not take an archive id, anymore). Also now generates extra auto file to be Include'd into a sercure virtualhost config. Played around with the config file which gets generated to make it work both secure & not.
 * tweak to /perl/users/home to make change_user work on secure setting.
 * made the Auth.pm module accept /00/00/00/00/00/ format document paths for authentications in addition to /0000000/00/. (needed for https mode).
 * Fixed ANOTHER minor issue in OAI2 code. At the end of a List there should have been (and now is) an empty resumptionToken.
 * New method added to MetaField: list_values. This takes flattens out multilang, multiple and non-multiple fields so that a list of values of that field is returned.
 * To avoid an error in oai, if datestamp is not set, datestamp now defaults to 0001-01-01.
 * SearchExpresion->dispose now does not try and dispose an undefined tmptable.
 * new method in SearchExpression: item_matches. This takes an item of the type appropriate for the search and returns true if the search expression matches on that item. Also a item_matches method on SearchField used by the one in SearchExpression.
 * [c] removed all the darn GIF's. Set a CSS "style" on the 1x1 image in searchforms to "display: none". Also it now links to a PNG instead. Also updated the "information" page a bit more. Removed GIF's from default homepage too.
 * new function is Utils.pm: is_in which takes searches in a list for items in a second list. Two modes: success if one found or success if all found.

-- tagged-by cvs2svn  2002-10-29 17:57:53 +0000 (Tue, 29 Oct 2002)

-------------------------------------------------------------------------------
EPrints (2.1.1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * tidy up for 2.1.1

-- tagged-by cvs2svn  2002-07-04 14:41:47 +0100 (Thu, 04 Jul 2002)

-------------------------------------------------------------------------------
EPrints (2.1.1.pre-1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * "
 * Fixed bug in OAI 2.0 (Still using OAI 1.1 namespace in one place)
 * [c] Changed ArchiveOAIConfig.pm so that now archiveid, sample identifier and base_url are now all seperately configured for OAI 2.0 (and changed cgi/oai2 and OpenArchives.pm to honour this)

-- tagged-by cvs2svn  2002-07-04 14:28:38 +0100 (Thu, 04 Jul 2002)

-------------------------------------------------------------------------------
EPrints (2.1)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2002-07-03 17:00:59 +0100 (Wed, 03 Jul 2002)

-------------------------------------------------------------------------------
EPrints (2.1.pre-5)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * ** empty log message ***

-- tagged-by cvs2svn  2002-07-03 17:00:59 +0100 (Wed, 03 Jul 2002)

-------------------------------------------------------------------------------
EPrints (2.1.pre-4)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * ** empty log message ***
 * last minute stuff - fixed an issue in Subject.pm the caused a warning when "cmp"ing undef'd strings.

-- tagged-by cvs2svn  2002-07-03 15:44:51 +0100 (Wed, 03 Jul 2002)

-------------------------------------------------------------------------------
EPrints (2.1.pre-3)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * ** empty log message ***
 * Bug in scoping for DF_AVAILABLE in Utils.pm - fixed.

-- tagged-by cvs2svn  2002-07-03 15:01:18 +0100 (Wed, 03 Jul 2002)

-------------------------------------------------------------------------------
EPrints (2.1.pre-2)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * oopos
 * ** empty log message ***
 * Fixed typo in MetaField.pm - had "searchfield" not "search" which meant search fields were ending up as VARCHAR not TEXT.
 * Missing subject titles now display as [Subjectid=footle]
 * Fixed some typos in installer
 * generate_views now treats a SystemSettings->virtualhost of "" as undefined.
 * Subjects now sort into correct order(yay!)
 * Hopefully configure will now make a chmod'd install.pl

-- tagged-by cvs2svn  2002-07-03 12:42:41 +0100 (Wed, 03 Jul 2002)

-------------------------------------------------------------------------------
EPrints (2.1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * ** empty log message ***
 * Fixed bug in render_ruler : it failed to take ownership of the new fuler.
 * Added more details into "information" page in default config. And a GNU linking to gnu.org.
 * Fixed some typos.
 * Gone back to using configure! Almost works expcept generated install.pl file is not executable!
 * Added Uni Copyright info.
 * Getting docs ready for v2.1 Now does TEXINFO docs
 * Added "submission_stages" config to allow override of order of SubmissionForms
 * Loosened regexp for passwords in configure_archive (now allows upper case too)
 * [c] Added new SystemSettings option: "virtualhost" which is now used by generate_apacheconf as the NameVirtualHost value (or "*" if it's not set)
 * Added page id's to each build_page so that stuff can be hooked onto them.
 * generate_views now orders the index page (using results from get_values) unless it's a view of multiple combined fields in which case it does not.
 * bin/upgrade turns the "commentary", "replacedby" and "succeeds" in the tables "archive","deletion","inbox" and "buffer" from VARCHAR to INTEGER. These fields should have been INT's in the first place. This is done as root. bin/upgrade now makes a root dbh connection if needed. The origional values of the fields are dumped to /tmp first in case of disaster.
 * [c] Added new metafield configs: make_value_orderkey and make_single_value_orderkey which can be used to override the normal orderkey generation - eg. could turn field with format "4.9d" into key "00000004.00000009d" that will sort alphabetically correctly.
 * Now correctly generates orderkeys for subjects sets and datatype's fields.
 * year orderkeys now pad 6 not 4 (just in case)
 * removed code which always put <a name="t"></a> at the top of pages when an "internal" button was pushed. This broke the whole idea of the #t jump to where you were before.
 * sigh
 * Now oai 2.0 Compliant.
 * [conf] Added an oai2 oai_dc XML render function to ArchiveOAIConfig.pm AND added oai2 config section for keeping namespaces etc seperate.
 * [db] Added subscriptions! including a send_subscriptions bin script, a cgi page to edit them (subscribe) and added the link to the user home page.
 * added a new bin script: "upgrade" which upgrades the database tables to the latest version. (sorts out the subscription tables for 2.0->2.1)
 * [db] added a new db id counter - subscriptionid
 * turned _create_table in Database.pm into create_dataset_tables so that upgrade could use it.
 * fixed a bug in the sql escaping code - escaped '.' when it didn't have to.
 * added a whole bunch of $sth->finish commands to clean up more after db functions to hopefully reduce memory leaks.
 * added "version" concept to the database tables to reflect what version of eprints they are suitable for the automatic "upgrade" script. Database.pm gained: create_version_table, set_version, has_table, get_tables, get_version, is_latest_version.
 * session now uses "is_latest_version" to check the DB is ok and reports a different warning if the "archive" tables exists. (wrong version vs. no tables.)
 * SearchExpressions can now be rendered into a screenable description using
 * >render_description - SearchField also gained a render_description which is called by the SearchExpression method.
 * MetaField gained "make_searchexp" which is only legal on search type fields and returns the searchexp described by the given value.
 * Fixed a typo in the message about not having a top-level-subject.
 * Added a hack to SearchExpression which gets the fields for a search-type field from the subscription_fields conf setting if the property is set to "subscriptionfields" rather than an array.
 * SearchExp again; made render_order_menu a seperate function so that it can be used when rendering a inlined searchexp (eg. for a search-type-field)
 * SearchExp and SearchField no longer return the bad words from a search. This is now handled by putting the searchexp description at the top of the search results page as part of the "blurb" which now lays out the data about the search (so you can change the order, eg. Timing info first, or even not at all)
 * added set_property to SearchExpression so that you can change properties of an existing searchexpression. Useful to set use_oneshot_cache on a searchexp created from de-serialising.
 * Added "pagehook" feature to allow certain pages to have extra body attibutes and "stuff" in the top of the head and body elements. For javascript. Mostly for Steve Harris in AKT.
 * Added "pageid"'s to all the submission form pages.
 * [c] Added examples of pagehooks to config.
 * added an "export_as_xml" attribute to fields which defaults to true but if false then the field is not exported in an XML dump - now used by subject to supress dumping ancestors.
 * fixed bug in abort() which attempted to report to the apache request while under modperl even at startup (so no request -> error ).
 * Added POD Documentation for Language.pm, Latex.pm, MetaField.pm
 * Added xhtml-entities.dtd to system cfg dir - contains all XHTML entites such as &nbsp; - these are now included in the archive dtd files which means that &nbsp; &euro; etc. now work in phrase files, the template and the static pages but NOT the citations.
 * staff eprint edit now updates the eprints static page if needed.
 * added "layout" option to views configuration. Allows <p>, <ul> or <ol> style lists. A custom citation no longer automatically turns off the <p> wrapper.
 * [api] changed syntax of EPrints::Eprint->new so that the optional param "dataset" is now the last option. This means that it can be called exactly like any other EPrints::DataObj->new (which is neater). Updated all uses of this call in the code.
 * [conf] changed call to EPrints::EPrint->new in the commenarty bit of ArchiveRenderConfig
 * [api] EPrints::EPrint::create() - removed the "userid" parameter which must now be set seperately. Updated all the code to reflect this change.
 * Removed $EPrints::EPrint::id_code_digits and hardwired it to "8" as I've got no intentions of changing it and other parts of the code already assume 8.
 * Added POD documentation to Document.pm , EPrint.pm , ImportXML.pm and RequestWrapper.pm
 * Removed DIGITS from Document and hardwired occurances to 2.
 * Added render_xhtml_field to Utils.pm - this acts as a special field renderer like the one in Latex.pm (but renders as XML).
 * added pod docs for Database.pm
 * Added pod templates for comments to all subroutines!
 * Added pod docs to Archive.pm Auth.pm Config.pm Dataset.pm
 * "search" metadata fields now work - rendering form and from the form.
 * removed {datasetname} from DataSet - replaced it with {id}
 * also in DataSet renamed {typeorder} to {type_order} and {stafftypes} to {staff_types}
 * added an optional prefix to searchexpression cgi field ids, so that more than one can appear in a single form.
 * changed $searchfield->get_form_name to ->get_id which returns an id for that searchfield in the expression (without the CGI prefix)
 * added is_blank method to searchexpression and searchfield which returns true if there is no conditions for searchexp or for searchfield if it does not have a condition.
 * added from_string method to searchexp which unserialises the string and applies the "safe" parts. Does not add any new searchfields or change the dataset.
 * [config] some test stuff added to default config. Should be removed before next release. (metadata types & fields)
 * removed a number of doubled-up => symbols in scripts.
 * POD doc'd DataObj
 * Added 'search' metafield type. Does not work fully yet.
 * in search expression, split the part which renders the actual search fields from the search page renderer. This allows it to be called by the search field type input form renderer.
 * 20/05/2002
 * [config] changed "Contact site admin" text at bottom of page template to look less like an order (people thought it indicated an error)
 * added --silent as a synonym for --quiet - part of GNU regs.
 * added --version option to all command line options to print command name, EPrints release version and license.
 * fixed bug in cgi/oai - from and until were ignored!
 * added an option to SystemSettings; disable_df. This makes cgi/status and the create EPrints subroutine skip looking at disk-free.
 * metafield now returns the text of a text field as its value label. It returned an error before!
 * added EPrints::Utils::cmd_version($progname) to automate generation of
 * -version outputs.
 * changed syntax of image quoting locspecs in VLit module.

-- tagged-by cvs2svn  2002-07-01 17:26:58 +0100 (Mon, 01 Jul 2002)

-------------------------------------------------------------------------------
EPrints (2.0.1)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * BUGGER
 * argh
 * !!!
 * added <ep:linkhere> to plain user and eprint  citations
 * added a CHANGELOG.summary file which people might actually read.

-- tagged-by cvs2svn  2002-04-16 19:16:24 +0100 (Tue, 16 Apr 2002)

-------------------------------------------------------------------------------
EPrints (2.0.1.pre-1)
-------------------------------------------------------------------------------


-- tagged-by cvs2svn  2002-04-16 16:42:45 +0100 (Tue, 16 Apr 2002)

-------------------------------------------------------------------------------
EPrints (2.0)
-------------------------------------------------------------------------------

Christopher Gutteridge <cjg@ecs.soton.ac.uk>
 * removed <p> tag around URL's in emails - don't want them word wrapped!
 * ** empty log message ***
 * 14/02/2002
 * Added my own url_escape routine which makes a URL then tostrings it. Due to change in functionality of uri_escape in URI 1.18
 * All URL's now escape using EPrints::Utils::url_escape
 * cleaned up the default front page to look nicer under Netscape 4
 * made the vlit icon on the about page point to the vlit permission page.
 * tidied up vlit permission page.
 * Removed  subs_foo as they don't work yet.
 * Removed "generate_dtd" - it now regenerates the DTD each time it loads the archive configuration. One less annoyance!
 * Bye Bye DBI

Mike Jewel
 * ** empty log message ***

-- tagged-by cvs2svn  2002-10-31 01:35:53 +0000 (Thu, 31 Oct 2002)

-------------------------------------------------------------------------------
EPrints (2.0.pre-6)
-------------------------------------------------------------------------------

-- tagged-by cvs2svn  2002-02-13 21:36:02 +0000 (Wed, 13 Feb 2002)

