New Features in EPrints 3.2

From EPrints Documentation
Revision as of 20:07, 5 February 2010 by Cjg (talk | contribs) (New and alterd Config options)
Jump to: navigation, search

This page is now describing actual features, rather than planned.

The Planned Features may be useful to improve the quality of descriptions on this page.


  • We now recommend LibXML in preference to GDOME. It's less buggy, and easier to install.
  • Upgrade may take several hours as it cleans up the unicode issues in the database.


  • In addition to MySQL, EPrints 3.2 now supports Postgres and Oracle


  • This release features a formal API. Not all functionality is yet available via the API, but will be added slowly and carefully in future releases.
  • The bugbear of EPrints internals, EPrints::Session has been merged into EPrints::Repository. All old code will still work.


  • Thumbnails are now documents in their own right
  • Built in document-format icons, as well as those you configure yourself

Deposit Interface

  • Edit Locking locks records reduces risk of 2 people editing a record at the same time.
  • Option to extract metadata and images from OpenXML files (.docx and .pptx)
  • Offers options to users and editors on the deposit screen if there are problems
  • Document upload screen has been redesgined to be clearer.
  • Split document uploading into adding a new document and editing existing documents
  • The documents inside an EPrint may now be re-ordered
  • Progress bar on file upload
  • Document upload methods (file, url, zip etc.) are now plugin-based and can be extended
  • When attempting to deposit an eprint with problems show Save button
  • Made it an option to provide action buttons top and bottom in workflow

Search & Indexing

  • The search library has been entirely re-written to reduce use of cache tables and to improve performance. Simple searches are now over ten times faster.
  • The indexer now uses plugins, so you can schedule other tasks, like thumbnail conversion, to be done in the background.
  • Added config option "cache_max" to limit the cachemap tables used


  • EPrints use of unicode has been significantly improved.


  • A "REST" style interface to objects, via /rest/eprint/23/title.txt, for example. This can also support "PUT" to alter fields!


  •  ???


  •  ???

Semantic Web Support

  • RDF+XML Format
  • N3 Format
  • URIs for all objects, including non dataobjs. eg. Authors, Events, Locations.
  • BIBO Ontology
  • Extendable
  • URIs now use content negotiation to decide which export plugin to redirect to, based on mime-types supplied by plugins and the "accept" header.

Storage Layer

  • Now uses plugins to store files
    • Local Filesystem
    • Amazon S3
    • Sun Cloud Storage


  • Search & Indexing much faster
  • Import is faster
  • Other parts of the code have been audited for speed, and optimised.


  • Modified Import UI to allow a per-plugin/single/bulk workflow

EPC & EPrints Script

  • New EPC tag type: epc:debug, which is like print but sends the XML to STDERR for debugging purposes.
  • New EPScript methods: citation_link, dataset, related_objects, url, doc_size, is_public, thumbnail_url, preview_link, icon, human_filesize, control_url, contact_email, property, substr, filter_compound_list, to_data_array, pretty_list, array_concat, action_list, action_button, action_title, action_description, action_icon
  • Improvements to the epc:foreach processing (better handling of multiple object types in lists)
  • New Script method: property() which takes a string and returns a property from a hash or dataobj.
  • New EPrints Script datatype: DATA_ARRAY: Represents a list of tuples of [$value, $epscript_type]


  • Stateless OAI Interface means no timing-out
  • Support for multiple constraints in custom OAI sets

Unit Tests

  • We have introduced unit-tests to improve both the short and long term quality of our code.

Metadata Types

  • Counter (incrementing value)
  • Timestamp (defaults to the current time)
  • UUID
  • 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)
  • A captcha pseudo-field based on
  • added "repeat_secret" property to secret fields that will render a confirmation box which is checked with validate()

Administration Interface

  • Converted Admin screen into several tabs.
  • Improved the BatchEdit interface
  • Show a progress bar while records are updated (batch edit?)

Editorial Interface

  • Improved "Review" Screen
  • The "Review buffer" can now be filtered for better management of large review buffers.
  • When an editor provide the "Move to Review" button if there are problems

User Defined Datasets

  • Allows 3rd party tools to create their own additional datasets
  • Suite of interface screens to work with these new datasets

Command Line Tools

  • Allow eprint ids to be specified for redo_thumbnails


  • Added support for JSONP
  • Added support for an 'n' argument to search exports
  • 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.

Abstract Page

  • Now generated with a citation
  • Shows an "action list", so plugins can register to appear on this page


  • Primary method of editing phrases is now the web interface
  • Added "ref" option to phrases, which will cause the referenced phrase to be used instead - Equivalent to calling the referenced phrase directly


  • Entire rendering of item lists and menus can be over-ridden by a function

Misc. Changes

  • Can now disable a repository through a system configuration setting
  • 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.
  • Can now apply multiple changes to the same field (???? I assume this means metafield?)
  • Preference field for users (to store k/v pairs in)

Key Bugfixes

  • Fixed login page not using phrase for title
  • Fixed spurious history objects being created on document upload
  • Fixed an HTML insertion bug in the <title> element [Brian D. Gregg]
  • Fixed schema errors in uketd_dc and METS/MODS export plugins
  • Fixed bug in Compound creation of Set types that squashed the set options
  • Fixed order static directories are searched to: repository->theme->system
  • Support long values in browse views by using the MD5 of the value,
  • Subject inputform component can now be used with singular values
  • Fixed bug that is_advertised property on export plugins was being ignored.
  • Fixed bug in indexer which meant it didn't index in a round-robin fashion.

New and altered Config options

These need documenting and noting which ones we recommend setting/altering when upgrading.

  • Broke up SystemSettings into logically named files
  • Can now disable a repository through a system configuration setting
  • Moved most of into a citation file: summary_page.xml
  • Updated defaults to show current config.
  • Improved layout to make it easier to add/remove suffix to mimetype mappings.
  • Added URI to EPrint Summary Page
  • Added RDF+XML and N3 Document formats
  • New metafield option: $defaults{render_max_search_values} = 5;
  • Added "show_help" option to workflow component to disable collapsing
  • Usage: show_help="no"
  • show_help={always,toggle,never}
  • Added config option "cache_max" to limit the cachemap tables used
  • Can now disable a repository through a system configuration setting
  • user defined datasets
  • Made it an option to provide action buttons top and bottom in workflow
    • $c->{locking}->{eprint}->{enable} = 1;
    • $c->{locking}->{eprint}->{timeout} = 600;
  • rest privs
  • check registation email callback
  • epc:debug,
  • lots of eprints script functions
    • "DEFAULT;render_fn=render_view_items_3col_boxes",
    • render_menu => "render_view_menu_3col_boxes"
    • ranges & variations were introduced in 3.1.? but need documenting.