================
oaipmh changelog
================

2.3.1 (2009-04-24)
================

Changes
-------

* Raise correct error when from and until parameters have different granularities
2.3 (2009-04-23)
================

Changes
-------

* Fixed bug and added tests for handling invalid dateTime formats, 
  the server will now respond with a BadArgument (XML) error instead
  of a python traceback.

* Use buildout to create testrunner and environment as opposed to
  ``test.py`` script. 

  Install buildout by:

    $ python bootstrap.py
    $ bin/buildout

  Run the tests by doing:
 
    $ bin/test

  To get a python interpreter with the ``oaipmh`` library importable::

    $ bin/devpython

2.2.1 (2008-04-04)
================

Changes
-------

* Added xml declaration to server output
* Prettyprint xml output
* compatibility fix: should be compatible with lxml 2.0 now
* server resumption tokens now work with POST requests.
* Fix for client code that handles 503 response from server.

2.2 (2006-11-20)
================

Changes
-------

* Support for BatchingServer. A BatchingServer implements the
  IBatchingOAI interface. This is very similar to IOAI, but methods
  get a 'cursor' and 'batch_size' argument. This can be used to
  efficiently implement batching OAI servers on top of relational
  databases.

* Make it possible to explicitly pass None as the from_ or until parameters
  for a OAIPMH client.

* an extra nsmap argument to Server and BatchingServer allows the
  programmer to specify either namespace prefix -> namespace URI mappings
  that should be used in the server output.

* fixed a bug where the output wasn't encoded properly as UTF-8.

2.1.5 (2006-09-18)
==================

Changes
-------

* compatibility fix: it should work with lxml 1.1 now.

2.1.4 (2006-06-16)
==================

Changes
-------

* Distribute as an egg.

2.1.3
=====

Changes
-------

* Add infrastructure to deal with non-XML compliant OAI-PMH feeds;
  an XMLSyntaxError is raised in that case.

* added tolerant_datestamp_to_datetime which is a bit more tolerant
  than the normal datestamp_to_datetime when encountering bad 
  datestamps.

* Split off datestamp handling into separate datestamp module.

2.0
===

Changes
-------

* Add support for day-only granularity (YYYY-MM-DD) in client.
  calling 'updateGranularity' with the client will check with the
  server (using identify()) to see what granularity the server
  supports.  If the server only supports day level granularity, the
  client will make sure only YYYY-MM-DD timestamps are sent.

2.0b1
=====

Changes
-------

* Added framework for implementing OAI-PMH compliant servers.

* Changed package structure: now a oaipmh namespace package. Client
  functionality now in oaipmh.client.

* Refactoring of oaipmh.py module to reuse code for both client and
  server.

* Extended testing infrastructure.

* Switched over from using libxml2 Python wrappers to the lxml binding.

* Use generators instead of hacked up __getitem__. This means that the
  return from listRecords, listIdentifiers and listSets are now not
  normal lists but iterators. They can easily be turned into a normal
  list by using list() on them, however.

1.0.1 
=====

Bugs fixed
----------

* Typo in oaipmh.py

1.0
===

Bugs fixed
----------

* Added an encoding parameter to the serialize call, which fixes a
  unicode bug.

0.7.4
=====

Bugs fixed
----------

* A harvest can return records with <header status="deleted"> that
  contain no metadata and are merely an indication that that
  metadata-set for that resource is no longer on the OAI service.
  These records should be used to remove metadata from the catalog if
  it is there, bur should never be stored or catalogued
  themselves. They aren't now. (Fixed in zope/OAICore/core.py)

0.7 
===

Initial public release.
