ldaptor (0.0.26) unstable; urgency=low

  * Documentation changes:
    - Archive sketch of the interfaces (with no explanation :).

  * Bugfixes:
    - Override __eq__ and __ne__ in pureber.BERBase too, otherwise
      UserList's implementation of those overrode BERBase.__cmp__ and
      caused false equalities.
    - Reimplement ldapfilter, with Unit Test flavor. Use pyparsing
      to make it really handle extra data and backslash escaping.
    - When calling filt.asText() for LDAP filters, make sure to
      backslash escape special characters.

  * Cleanups:
    - Typo in docstring.
    - Add nicer repr of pureldap.LDAPMatchingRuleAssertion, to make the
      problem easier to spot.

  * Packaging:
    - Depend on pythonX.Y-pyparsing.
    - New enough dia is in unstable, so upload to unstable again.

  * Administrivia:
    - Add TODO notes.

 -- Tommi Virtanen <tv@debian.org>  Sat, 26 Jun 2004 14:34:06 +0300

ldaptor (0.0.25) experimental; urgency=low

  * Pre-generate documentation in build target, don't wait until
    install target. Makes dia work with dpkg-buildpackage
    -rfakeroot, because "debian/rules build" is run without
    fakeroot, and then dia can scribble in the home directory of
    the real user, not /root/.dia. Ungh. I'm filing a bug on dia.

 -- Tommi Virtanen <tv@debian.org>  Mon, 17 May 2004 19:51:11 +0300

ldaptor (0.0.24) experimental; urgency=low

  * Applications changes:
    - Can now generate diffs of two LDAP entries, or even two full trees,
      and use that either to modify LDAP entries at a server, or generate
      LDIF modification commands. Can also parse LDIF modification files.
      See ldaptor-ldifdiff, ldaptor-ldifpatch.

  * Documentation changes:
    - Addressbook example source:
      - Bugfixes and cleanups.
      - Rewrite addressbook examples to use nevow instead of woven
        and make them runnable via .tac files.
    - Modernize addressbook-slides:
      - Remove htmldiff hack, use meld instead. Simplify things a bit.
      - Add new addressbook-slides-server.tac that launches meld
        automatically when you load that page, useful for presentations.
      - Add CSS stylesheet.
      - New DTD version, fix to conform to DTD.
      - Split 01_repl into screen-size chunks.
    - In addressbook slides, use smaller pictures to make sure they fit on
      screen.
    - In addressbook examples, let one user have a valid password and edit
      access, so the same server can be used to demo ldaptor-webui.
    - Note in ldap-intro documentation that OpenLDAP doesn't allow
      changing objectClasses of existing objects.
    - Fix typo in doc/examples/ldif2ldif.
    - Docstring cleanup.
    - Switch from graphviz to dia for figures. (Closes: #242147)
    - In example LDIFs, rename Erkki Esim to Ample Exam, for i18n.

  * API changes:
    - First stages of LDIFTree work; initial support for storing LDIFs in a
      tree form.
    - Add inmemory data backend.
    - Start using interfaces, abstract common LDAP entry things into
      ldaptor.entry, ldaptor.attributeset.
    - Add module ldaptor.delta.
    - Add LDAPEntry.match().
    - Add IConnectedLDAPEntry.lookup().
    - The LDAP server prototype code has changed a lot, not summarizing
      here.
    - Rename ldifprotocol.LDIF.completed() to more specific
      gotEntry(), so inmemory DB loading can have .gotDatabase() or
      something, and .completed() won't look confusing there.
    - Switch ldifprotocol into producing BaseLDAPEntries.
    - Add ldaptor.entry.EditableLDAPEntry, make
      ldapsyntax.LDAPEntryWithClient inherit EditableLDAPEntry.
    - Make LDAPConnector accepts dns also as strings.
    - LDAPConnector accepts overrides that are callable, and lets them
      take control of the connecting. This is mostly meant for unit
      testing.

  * Internal refactorings:
    - Refactor to remove client-specific details from LDAPAttributeSet and
      to generalize the concept of a Modification so it can be used with
      LDIF also.
    - Refactor LDAPAttributeSet to interits Set.
    - Switch BaseLDAPEntry to a be a new-style class.

  * Bugfixes:
    - Fix webui search basedn navilinks.
    - In ldaptor-fetchschema, start logging so errors are reported to the
      user.
    - Ignore case in attributeType names.
    - LDIF parsing:
      - Support splitted lines in ldifprotocol.LDIF.
      - Fix LDIF parsing when values have no leading space.
      - Protect against "<" values (external URL) in LDIF parsing.
      - Make ldifprotocol support versioned LDIF files.
    - Make LDAPServer error handling to actually talk sane
      things on the wire.
    - Detect truncated LDIF files, raise
      ldifprotocol.LDIFTruncatedError.
    - Handle different capitalizations of 'objectClass' in
      BaseLDAPEntry.
    - Finish schema parsing.
    - Fix bug where ldapserver raises an exception on non-anonymous
      binds. It was missed in ldaperrors refactor, add unit tests so it
      will not be missed again. (Closes: #244543)
    - When LDAPServer receives unknown protocol requests, reply sanely and
      do not close the connection. Thanks to Guido Trotter.
      (Closes: #244861)
    - Notice differences in attributeType when comparing
      LDAPAttributeSets.
    - In LDAPAttributeSet, override those parts of sets.Set which
      assume class creation works without arguments (as we need the
      key always).

  * Cleanups:
    - Start gathering unit tests for the server protocol.
    - Stringify MutableStrings to simplify things. MutableStrings
      shouldn't leak out of pureber and pureldap.
    - Use the canonical way to write objectClass in
      pureldap.LDAPFilterMatchAll; especially needed as the server code is
      currently case-dependent.
    - Nicer repr for LDAPAttributeSets.
    - Make sure BaseLDAPEntry LDIFfication lists attribute values in
      sorted order for reproducability.
    - Add comparisons to RelativeDistingushedName in order to have
      stable unit test results.

  * Packaging:
    - Build-depend on dia (new enough dia to not need X11 at build time)
      => uploading to experimental.

 -- Tommi Virtanen <tv@debian.org>  Mon, 17 May 2004 19:27:00 +0300

ldaptor (0.0.23) unstable; urgency=low

  * Bugfixes:
    - Fix a totally embarassing bug that left ldaptor-webui.deb
      almost empty.

 -- Tommi Virtanen <tv@debian.org>  Fri, 12 Mar 2004 17:20:03 +0200

ldaptor (0.0.22) unstable; urgency=low

  * Applications changes:
    - Partial rewrite of ldaptor-webui add to handle structural
      objectclasses separately from auxiliary objectclasses.

  * Documentation changes:
    - Add an example of using ldaptor-webui via twisted-web.

  * API changes:
    - Removed ldaptor.cred, it is no longer used.

  * Refactorings to adapt to Twisted APIs:
    - Switch from twisted.web.static.redirectTo() to
      twisted.web.util.redirectTo(), don't import static anymore.

  * Internal refactorings:
    - Move resource creation from ldaptor-webui script to library.

  * Bugfixes:
    - Make sure errors in ldaptor-webui add are passed along.
    - Explicitly fail when schema objectclasses refer to unknown
      attributetypes.
    - Make ldaptor-webui baseDN form work even when it's not at the root
      of the web server.

  * Cleanups:
    - Remove unused import in ldaptor-webui.

 -- Tommi Virtanen <tv@debian.org>  Fri, 12 Mar 2004 16:58:12 +0200

ldaptor (0.0.21) unstable; urgency=low

  * Documentation changes:
    - Added document "Introduction to LDAP".
    - Added example web-based application, a simple addressbook
      search, and slides demonstrating how one might write one
      incrementally. These might not make much sense without
      the talk (or even with it), my apologies for that.
    - Upgrade to docbook-slides 3.2.0.
    - Allow xsltproc to use net in case the XML catalog isn't well
      setup -- will re-enable --nonet when docbook-slides registers
      with xml-core.

  * API changes:
    - Add a new utility function
      ldapconnector.LDAPClientCreator.connectAnonymously(), which does
      an anonymous bind on behalf of the caller.
    - Allow ldaptor.apps.webui.htmlify.htmlify_attributes() to work on
      sets and sequences alike.
    - Search supports new sizeLimitIsNonFatal flag, that makes
      sizeLimitExceeded errors from server just truncate the result
      list instead of aborting the search.
    - Implement LDAPExtendedResponse.

  * Refactorings to adapt to Ldaptor APIs:

  * Refactorings to adapt to Twisted APIs:
    - Adapt to Twisted changing Options superclass from UserDict to
      dict: Options mixins can no longer inherit Options, as otherwise
      python2.3 throws a TypeError: Cannot create a consistent method
      resolution order (MRO) for bases. Closes: #232255, 223632,
      232022.
    - Add twisted newcred support.
    - Partial woven support (twisted.web.widgets is deprecated, but
      now woven is deprecated too, in favor of newov! I can't keep
      up!)
      - Woven integration of the basic LDAP objects.
      - ldaptor-webui search, delete and change_password
    - Ldaptor-webui refactoring
      - newcred and simpleguard
      - get rid of twisted.internet.app

  * Internal refactorings:
    - Refactor LDAP filter parsing to have all the things looking like
      (key=...) in one function.
    - Refactor ldaperrors to actually use the exception classes.
    - Modularize the experimental LDAP server implementation.

  * Bugfixes:
    - Fix webui moves: typo in variable name, handle
      distinguishednames as objects and not strings.
    - Make sure the port number is an integer before using it in
      LDAPConnector.
    - Add proper stringification to LDAPClientConnectionLostException;
      used to cause tuple index errors in LDAPException.__str__().
    - Make URLs like http://localhost:38980/dc=example,dc=com (no
      trailing slash) work in ldaptor-webui.
    - In ldaptor-webui search, do not show the default twisted form
      error screen when there was no form submitted. Ugly workaround
      that provides default values instead of '', I can't seem to find
      a nicer way.

  * Cleanups:
    - Remove unused methods and imports.
    - Remove BidirDict, it's not used anymore.
    - Remove debug prints.
    - Move from equality comparison to identity comparison when
      comparing against None. Cleaner and should even be faster.
    - Cleanup doc/Makefile
      - split the massive "do all" target into smaller targets
      - protect targets against missing parent directories of target
        file
      - move the HTML diff files and such out of doc/examples/
    - Cleanup LDAPException stringification, protect against
      exceptions with neither arguments nor class attribute name.
    - Cleanup indentation.
    - Pychecker cleanups.

  * Packaging:
    - Add build-depends needed for generating the documentation.
    - Move examples/ to doc/examples/
    - Make sure the documents can be built automatically.
    - Build-Depend on things needed for generating the documentation.
    - Add a new binary package, ldaptor-doc, that will contain the
      documentation.
    - Depend on a new enough version of Twisted.

  * Administrivia:
    - Edit TODO notes.
    - Ignore documentation generated files.
    - Add unit test coverage checking.
    - When rsyncing documentation to pyramid.twistedmatrix.com, rsync
      the full directories of slides, not just the index.html.

 -- Tommi Virtanen <tv@debian.org>  Sun, 29 Feb 2004 00:23:15 +0200

ldaptor (0.0.20) unstable; urgency=low

  * Applications changes:
    - Whoops, the syntax for singe-element tuple literals bit me
      again. Switch webui change_password to using lists, it's what Guido
      wants.

  * Bugfixes:
    - Explicitly stringify the dn to transparently work with
      DistinguishedName objects.

  * Packaging:
    - Drop python2.1, Twisted no longer supports it. Closes: #196038.
    - Let dh_python handle removing *.pyc from the deb and generating them
      in postinst (and use dh_clean to clean up after it). Make
      python-ldaptor's dependency to python be a versioned one. Not using
      dh_python's automagic, as it doesn't seem to work right. Closes:
      #205398.

  * Administrivia:
    - Add TODO entry about some SyntaxWarnings triggered by scoping.
    - Fix typo in setup-*.py.

 -- Tommi Virtanen <tv@debian.org>  Mon, 25 Aug 2003 22:22:20 +0300

ldaptor (0.0.19) unstable; urgency=low

  * Fix reference to non-existent local variable dn in webui
    change_password.py
  * Python 2.3 is now the default.

 -- Tommi Virtanen <tv@debian.org>  Sat,  9 Aug 2003 14:18:15 +0300

ldaptor (0.0.18) unstable; urgency=low

  * Bugfixes:
    - Make serviceLocationOverrides work once again in LDAPConnector.

 -- Tommi Virtanen <tv@debian.org>  Sun,  3 Aug 2003 10:17:00 +0300

ldaptor (0.0.17) unstable; urgency=low

  * API changes:
    - Add LDAPClientCreator.

 -- Tommi Virtanen <tv@debian.org>  Sun,  3 Aug 2003 10:01:19 +0300

ldaptor (0.0.16) unstable; urgency=low

  * Applications changes:
    - Make ldaptor-passwd actually follow it's usage. Defaults to
      changing password of the bind DN, if unspecified.
    - Make ldaptor-passwd Samba password changing more intelligent;
      instead of a Boolean, it's now a tristate option, with the new
      value "auto" checking for objectClass and setting the Samba
      password if and only if it sees the value sambaAccount there.
    - ldaptor-passwd now always changes all applicable passwords.
    - Hierarchical structure editing in ldaptor-webui is done, remove from
      TODO.
    - In ldaptor-webui change_password, don't make the DN a form
      field, there's no point in changing it at that time.
    - In ldaptor-webui, parse invalid base DNs and complain to user.
    - In ldaptor-webui, store DNs as DistinguishedNames, not as
      strings.
    - We fully support DNS SRV records now.
    - Add sample app bin/ldaptor-fetchschema, and notes on it's
      future direction. The current output looks ugly.

  * API changes:
    - LDAPObject.namingContext returns the naming context containing
      the LDAP object.
    - Deprecate LDAPModifyAttributes in LDAPObject, ldaptor-webui.
    - Add password changing support to LDAPObject.
    - LDAPModifyPassword is no longer used anywhere, remove it.
    - Add LDAPObject.items().
    - Add LDAPObject.fetch().
    - Support partial fetching in LDAPObject.fetch().
    - Add LDAPObject.setPassword_Samba().
    - Remove LDAPModifySambaPassword, it has no users anymore.
    - LDAPObject.setPassword() password setting now changes all
      applicable passwords automatically.
    - Remove LDAPModifyAttributes as obsolete.
    - "key in ldapobject" support, better iteration support for
      LDAPObject keys and key values.
    - Move authentication bits from ldaptor-webui main script to
      ldaptor.cred module.
    - Prevent removing attributes that are in the RDN of the object.
    - DistinguishedName now parses the actual values in DNs into
      attributetypes and values, and raises
      InvalidRelativeDistinguishedName for malformed RDNs.
    - Add preliminary support for LDAP object data content
      suggestions. Still need to implement a lot more hints and
      integrate into ldaptor-webui.
    - Add simple&stupid server-side support. Only knows bind/unbind
      and search, and all searches return no items.
    - Add LDIF parsing support.
    - Move ldaptor.protocols.ldap.ldapfilter to ldaptor.ldapfilter.
    - Split LDAP schema implementation into pure-ASCII parsing part
      and LDAP client remote schema fetching.
    - Rename the module that does LDAP schema fetching over the
      client connection to fetchschema, to better separate it from
      the ASCII schema parser.
    - Rename LDAPObject to LDAPEntry, that might be a bit more
      descriptive.

  * Refactorings to adapt to Ldaptor APIs:
    - Deleting LDAP object is now done via LDAPObject.delete().
    - Switch from ldapclient helpers to LDAPObjects in ldaptor-webui
      mass_change_password.
    - Change ldaptor-webui change_password to use
      LDAPObject.setPassword() instead of LDAPModifyPassword.
    - In ldaptor-passwd, use LDAPObject.setPassword_Samba() instead
      of LDAPModifySambaPassword.
    - Rewrite more code away from LDAPSearch.
    - Refactor ldaptor-ldap2passwd to use LDAPObjects.
    - Refactor ldaptor-webui add and delete to use LDAPObjects and
      DistinguishedNames more.
    - Modernize the ldap_parallelsearch.py example to use
      LDAPEntries.

  * Refactorings to adapt to Twisted APIs:
    - Authorizer.setApplication() has been obsoleted, apparently
      .setServiceCollection() does the same thing.
    - Use new-style maybeDeferred.
    - Switch from standard unittest to Twisted's trial. Also
      reorganized the package to match trial's expectations; that
      is, removed the lib/ dir.
    - Move from my own waitForDeferred to twisted's deferredResult,
      deferredError.
    - Rewrite the ldap_parallelsearch.py example to suit
      twisted.internet.protocol.ClientCreator and to not use global
      variables.

  * Refactorings to adapt to Python APIs:
    - Avoid using deprecated features of python.

  * Internal refactorings:
    - ldaptor-webui's Gadget() does not need or want the base DN; it
      asks it from the user.
    - Work towards running ldaptor-webui from an .rpy: add state
      serialization support, make serviceLocationOverride optional.

  * Bugfixes:
    - Use a python2.1 scope rules compatible lambda.
    - Add missing module ldapconnector to package
      ldaptor.protocols.ldap's __all__ list.
    - Make LDAPSearchRequest inherit BERSequence so that it has a
      comparison function.
    - Make sure the other dn is not just a string in
      DistinguishedName.contains().
    - Fix broken test and implementation for
      LDAPObject.setPassword() -- used to change the password for the
      bind DN.
    - Be more explicit by stringifying DNs before trying to do
      string-like operations on them.
    - Avoid requesting LDAPIdentities before the necessary LDAP
      connection has opened.

  * Cleanups:
    - Cleanup unit tests and merge similar functionality into helper
      functions.
    - Remove unintelligible comments in md4.py.
    - Avoid non-ASCII in source (but still keep it in the test).
    - Add unit tests for NT password hashing.
    - Add test for LDAPObject.keys().
    - Clean up LDAPObject journal handling. Rename journal operation
      classes, provide a superclass to inherit, and give
      LDAPAttributeSet a real API to submit changes.
    - Actually call fail.getErrorMessage, don't just print the
      function.

  * Packaging:
    - Depend on twisted >= 1.0.6
    - Change Debian section for python{,2.1,2.2}-ldaptor from
      interpreters to python.

  * Administrivia:
    - API documentation:
      - Support setting PYTHONPATH outside the script (to use CVS
        Twisted).
      - New home page URL.
      - Support uploading the API docs.
    - Ignore editor backup files.
    - Ignore Twisted tap files.
    - Fix admin/doctest-all.py that got broken in the lib/
      reorganization.

 -- Tommi Virtanen <tv@debian.org>  Sat,  2 Aug 2003 14:06:32 +0300

ldaptor (0.0.15) unstable; urgency=low

  * Typo fix.

 -- Tommi Virtanen <tv@debian.org>  Sat, 25 Jan 2003 18:11:31 +0200

ldaptor (0.0.14) unstable; urgency=low

  * Refactor ldaptor-webui add to use new-style getFreeNumber --
    missed this the first time around.
  * Python 2.1 namespace handling compatibility.

 -- Tommi Virtanen <tv@debian.org>  Sat, 25 Jan 2003 18:05:11 +0200

ldaptor (0.0.13) unstable; urgency=low

  * Bring test suite up to date.
  * Beginnings of a more Pythonic LDAP API.
  * Make ldapclient.LDAPModifyAttributes use Deferreds.
  * Pass ldapclient when creating LDAPObject, not at every use.
  * Simplify filter handling in ldaptor-search.
  * Add comparison functions for LDAPObjects.
  * LDAPObject.search now supports kwarg callback, which allows
    processing search results one by one.
  * Support creating API docs with epydoc.
  * Add bin/ldaptor-ldap2pdns
  * Docs and TODO update.
  * Allow empty base setting.
  * Support for parsing and generating string representations of
    LDAP Distinguished Names (DNs).
  * Display usage to stderr in ldaptor-namingcontexts.
  * Support for finding the domain name, and via DNS SRV, the
    server, related to an LDAP DN.
  * ldaptor-webui SRV support: options --host and --port are gone,
    finds LDAP servers for domainComponent-style DNs via DNS SRV
    records. If you don't have them, and don't want to fix that,
    use --service-location='dc=example,dc=com:ldap.example.com'.
  * Increase DNS timeout to 5 seconds.
  * Add DistinguishedName.contains()
  * Make DistinguishedName hashable.
  * Use the client for this session to fetch the attributes, don't
    open up a new connection.
  * Enable log to stderr in ldaptor-webui.
  * Runtime-changeable base DN support in ldaptor-webui: the base
    DN is now the first path segment in the URL, and you can
    navigate in the tree freely.
  * Bugfix for ldaptor-ldap2dhcpconf, used to assert when there
    were no sharedNets.
  * Fix an uninterruptible infinite loop in ldaptor-webui
    shutdown.
  * In ldaptor-webui, support search scopes.
  * In ldaptor-webui, show base object when no search has been
    done.
  * LDAP DN renaming support.
  * Various minor bugfixes.

 -- Tommi Virtanen <tv@debian.org>  Sun, 19 Jan 2003 17:32:03 +0200

ldaptor (0.0.12) unstable; urgency=low

  * Be epydoc-friendly in docstrings.
  * LDAP server closing connection due to idle timeout is now
    handled properly.
  * Added option --identity-base, setting the base dn for the
    search of identities (done with --identity-search).

 -- Tommi Virtanen <tv@debian.org>  Sat,  7 Dec 2002 13:57:19 +0200

ldaptor (0.0.11) unstable; urgency=low

  * New options-based, changeable search fields. To get the old
    behaviour, use --search-field=Name='(cn=%(input)s)'
    --search-field=UserID='(uid=%(input)s)'
    --search-field=Email='(mail=%(input)s)'.

 -- Tommi Virtanen <tv@debian.org>  Sun, 24 Nov 2002 21:16:23 +0200

ldaptor (0.0.10) unstable; urgency=low

  * ldaptor-ldap2dhcp bugfixes, cleanup, and support for
    per-subnet DNS and WINS servers.
  * Be more careful about the Debian section information.
  * In ldaptor-webui, allow editing missing optional fields of
    objects.

 -- Tommi Virtanen <tv@debian.org>  Thu, 31 Oct 2002 20:14:36 +0200

ldaptor (0.0.9) unstable; urgency=low

  * Copy over my MutableString implementation from Twisted, they
    are deprecating it. The one in UserString has very different
    behaviour. Closes: #163772.
  * Twisted Process wants the reactor.. Let's play along.
  * Handle no change -case better in ldaptor-webui mass password
    change.
  * Update TODO to reflect current situation.
  * Lots of places refer to ldaperrors.other, provide that.
  * Work on ldaptor-ldap2dhcpconf, ldaptor-ldap2maradns.
  * Bug fix in ldaptor-webui add.

 -- Tommi Virtanen <tv@debian.org>  Sun, 27 Oct 2002 12:28:14 +0200

ldaptor (0.0.8) unstable; urgency=low

  * Take out the python2.3 support, Twisted doesn't support 2.3
    yet anyway.

 -- Tommi Virtanen <tv@debian.org>  Thu, 19 Sep 2002 20:06:26 +0300

ldaptor (0.0.7) unstable; urgency=low

  * Don't leave LDAP connections open, cleanup.
  * ldaptor-webui search no longer leaks LDAP server connections
    for every search
  * Misc bug fixes.
  * Use Failures.
  * Default ldaptor-webui port is now 38980 (think "ldap and
    http").
  * New tool ldaptor-ldap2passwd
  * Added TODO notes.
  * Support changing Samba passwords.
  * Add functionality to get free uidNumbers.
  * Find free uidNumber/gidNumber in ldaptor-webui add.
  * Avoid Twisted deprecation warnings.
  * Support adding objects composed of multiple objectclasses.
  * Mark mandatory attributes with an asterisk.
  * Some pychecker cleanups.
  * Protect setup-*.py against pychecker importing them.
  * Packaging cleanups; python2.2 as default, python2.3 support,
    better descriptions.
  * Fix upstream location.

 -- Tommi Virtanen <tv@debian.org>  Thu,  8 Aug 2002 10:21:51 +0300

ldaptor (0.0.6) unstable; urgency=low

  * Twisted ClientFactory and Protocol connectionLost refactor.

 -- Tommi Virtanen <tv@debian.org>  Thu,  8 Aug 2002 10:21:07 +0300

ldaptor (0.0.5) unstable; urgency=low

  * ldaptor-passwd generated password setting failed as it tried
    to handle a list of one string as a string.
  * Depend on pwgen.
  * Add change_password.
  * Rename mass_password_change to mass_change_password, to fit
    the task-oriented naming convention.
  * Don't accept empty passwords in ldaptor-webui change_password.
  * Get rid of the rest of the implicit localhosts.
  * Moving bidirdict into ldaptor package as distutils can't
    handle it otherwise.
  * Added asText method for LDAPFilter_substrings, webui search
    should no longer fail.
  * LDAPClient.bind() now returns a Deferred.
    LDAPClient.handle_bind_success() and
    LDAPClient.handle_bind_fail() are gone.
  * LDAPClient.bind() deferred bugfixes.
  * Added ability to use shorthands for Identity names.
  * Lots of minor bugfixes.

 -- Tommi Virtanen <tv@debian.org>  Thu,  8 Aug 2002 10:16:19 +0300

ldaptor (0.0.4) unstable; urgency=low

  * Remove the obsolete ldaptor.twisted package.

 -- Tommi Virtanen <tv@debian.org>  Sat,  3 Aug 2002 16:20:21 +0300

ldaptor (0.0.3) unstable; urgency=low

  * NOTE: Requires a CVS version of twisted!
  * New upstream version.
  * tcp.Client -> reactor.clientTCP
  * Removed old code in ldaptor.twisted that got in the way of
    imports.
  * Added options --generate and --bind-auth-fd
  * Fix widget in ldaptor-webui search page.
  * Twisted Connector refactor.
  * Add hint that 'description' attributetype is always multiline.
  * Starting to use Deferreds everywhere.
  * Exception-based errors.
  * Add asText() methods to LDAPFilter*-classes, convert objects
    to textual filter representation.
  * Implement LDAPFilter_not.
  * Add mass_password_change to ldaptor-webui.
  * Added utility to generate debian/changelog automatically from
    BitKeeper.

 -- Tommi Virtanen <tv@debian.org>  Sat,  3 Aug 2002 15:55:09 +0300

ldaptor (0.0.2) unstable; urgency=low

  * NOTE: Requires a CVS version of twisted!
  * NOTE: Upgrade from 0.0.1 can fail.
  * Split package into library, ldaptor-webui and
    ldaptor-utils. Support multiple python versions in library.
  * Added new command line utilities:
    - ldaptor-namingcontexts to list naming contexts of a server.
    - ldaptor-ldap2dhcpconf is the start of a tool to export host
      entries from LDAP in a format suitable for a DHCP server.
    - ldaptor-ldap2maradns does pretty much the same for DNS, in
      (partial) maradns zone format; it was just so much easier.
    - note that the ldaptor-ldap2{dhcpconf,maradns} input format
      will change as I try to cram in a few more features
      (separate physical network location from DNS domain -- they
      are currently bound together).
    - ldaptor-search aims to be a full replacement for ldapsearch.
    - ldaptor-passwd allows changing passwords (as per RFC3062).
  * ldaptor-webui:
    - added support for "Advanced" searching with raw LDAP filter
      strings.
    - change parameter --port to --http-port, for clarity.
    - fix navi links.
  * Make all LDAP server, port and base settings explicit.
  * Add ldapfilter and ldif modules.
  * Create ldaptor.usage to store common option processing.
  * Change twisted.python.defer to twisted.internet.defer and
    twisted.protocols.protocol to twisted.internet.protocol.
  * Handle unsolicited LDAP notifications.
  * New test subsystem.
  * Rewrite LDAP protocol error number storage to be
    bi-directional; you can resolve a number to a string.

 -- Tommi Virtanen <tv@debian.org>  Sun, 28 Jul 2002 20:30:06 +0300

ldaptor (0.0.1) unstable; urgency=low

  * Initial Release.

 -- Tommi Virtanen <tv@debian.org>  Sun, 26 May 2002 18:08:30 +0300

