<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,4 +1,4 @@
-Copyright (c) 2003-2008 Ralph Meijer
+Copyright (c) 2003-2009 Ralph Meijer
 
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of this software and associated documentation files (the</diff>
      <filename>LICENSE</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,38 @@
+0.5.0 (2009-04-07)
+==================
+
+This release drops support for Twisted versions older than 8.0, including
+Twisted 2.5 / Twisted Words 0.5.
+ 
+Features
+--------
+
+ - Support for sending and receiving Publish-Subscribe node delete
+   notifications with redirect.
+ - Service Discovery client support, including an overhaul of disco data
+   classes (#28).
+ - Initial support for building XMPP servers has been added:
+   - XmlStreamServerFactory has been backported from Twisted Words (#29).
+   - An XMPP router has been added (#30).
+   - A server-side component authenticator has been added (#30).
+   - A new server-side component service, that connects to a router within the
+     same process, was added (#31).
+
+
+Fixes
+-----
+
+ - Publish-Subscribe subscriptions requests work again (#22).
+ - Publish-Subscribe delete node requests now have the correct namespace (#27).
+ - NodeIDs in Service Discovery requests are now returned in responses (#7).
+ - The presence of stanzaType in toResponse is now checked correctly (#34).
+ - Data Form fields are now rendered depending on form type (#40).
+ - Data Form type checking issues were addressed (#41).
+ - Some compatibility fixes for Twisted 8.0 and 8.1.
+ - Various other fixes (#37, #42) and tracking changes to code already in
+   Twisted.
+
+
 0.4.0 (2008-08-05)
 ==================
 </diff>
      <filename>NEWS</filename>
    </modified>
    <modified>
      <diff>@@ -1,30 +1,53 @@
-Wokkel 0.4.0
+Wokkel 0.5.0
 
 What is this?
 =============
 
-Wokkel is a Python module for experimenting with future enhancements
-to Twisted Words. Everything is aimed to be included in the Twisted
-main development tree eventually.
+Wokkel is a Python module for experimenting with future enhancements to Twisted
+Words, that should eventually be included in the main Twisted main development
+tree. Some of the code in Wokkel has already made that transition, but is still
+included to be used with older Twisted releases.
 
-Dependencies
+
+Requirements
 ============
 
-This module depends on Twisted Words 0.5 or later.
+ - Python 2.4 or later.
+ - Twisted 8.0.0 or later.
+
 
-Copyright
+Resources
 =========
 
-The code in this distribution is Copyright (c) 2003-2008 Ralph Meijer, unless
+Wokkel's home is &lt;http://wokkel.ik.nu/&gt;. 
+
+Besides the general Twisted resources, help is available on the Twisted-Jabber
+mailing list::
+
+  &lt;https://mailman.ik.nu/mailman/listinfo/twisted-jabber&gt;
+
+
+Copyright and Warranty
+======================
+
+The code in this distribution is Copyright (c) 2003-2009 Ralph Meijer, unless
 excplicitely specified otherwise.
 
 Wokkel is made available under the MIT License. The included LICENSE file
 describes this in detail.
 
-Contact
-=======
 
-Questions, comments or suggestions are welcome!
+Contributors
+============
+
+ - Christopher Zorn
+ - Jack Moffitt
+ - Mike Malone
+ - Pablo Martin
+
+
+Author
+======
 
 Ralph Meijer
 &lt;xmpp:ralphm@ik.nu&gt;</diff>
      <filename>README</filename>
    </modified>
    <modified>
      <diff>@@ -1,12 +1,12 @@
 #!/usr/bin/env python
 
-# Copyright (c) 2003-2008 Ralph Meijer
+# Copyright (c) 2003-2009 Ralph Meijer
 # See LICENSE for details.
 
 from setuptools import setup
 
 setup(name='wokkel',
-      version='0.4.0',
+      version='0.5.0',
       description='Twisted Jabber support library',
       author='Ralph Meijer',
       author_email='ralphm@ik.nu',</diff>
      <filename>setup.py</filename>
    </modified>
    <modified>
      <diff>@@ -7,40 +7,6 @@ from twisted.internet import protocol
 from twisted.words.protocols.jabber import xmlstream
 from twisted.words.xish import domish
 
-def toResponse(stanza, stanzaType=None):
-    &quot;&quot;&quot;
-    Create a response stanza from another stanza.
-
-    This takes the addressing and id attributes from a stanza to create a (new,
-    empty) response stanza. The addressing attributes are swapped and the id
-    copied. Optionally, the stanza type of the response can be specified.
-
-    @param stanza: the original stanza
-    @type stanza: L{domish.Element}
-    @param stanzaType: optional response stanza type
-    @type stanzaType: C{str}
-    @return: the response stanza.
-    @rtype: L{domish.Element}
-    &quot;&quot;&quot;
-
-    toAddr = stanza.getAttribute('from')
-    fromAddr = stanza.getAttribute('to')
-    stanzaID = stanza.getAttribute('id')
-
-    response = domish.Element((None, stanza.name))
-    if toAddr:
-        response['to'] = toAddr
-    if fromAddr:
-        response['from'] = fromAddr
-    if stanzaID:
-        response['id'] = stanzaID
-    if stanzaType:
-        response['type'] = stanzaType
-
-    return response
-
-
-
 class BootstrapMixin(object):
     &quot;&quot;&quot;
     XmlStream factory mixin to install bootstrap event observers.</diff>
      <filename>wokkel/compat.py</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 # -*- test-case-name: wokkel.test.test_subprotocols -*-
 #
-# Copyright (c) 2001-2007 Twisted Matrix Laboratories.
+# Copyright (c) 2001-2009 Twisted Matrix Laboratories.
 # See LICENSE for details.
 
 &quot;&quot;&quot;
@@ -12,14 +12,10 @@ from zope.interface import implements
 from twisted.internet import defer
 from twisted.python import log
 from twisted.words.protocols.jabber import error, xmlstream
+from twisted.words.protocols.jabber.xmlstream import toResponse
 from twisted.words.xish import xpath
 from twisted.words.xish.domish import IElement
 
-try:
-    from twisted.words.protocols.jabber.xmlstream import toResponse
-except ImportError:
-    from wokkel.compat import toResponse
-
 from wokkel.iwokkel import IXMPPHandler, IXMPPHandlerCollection
 
 class XMPPHandler(object):</diff>
      <filename>wokkel/subprotocols.py</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
-# Copyright (c) 2001-2007 Twisted Matrix Laboratories.
-# Copyright (c) 2008 Ralph Meijer
+# Copyright (c) 2001-2008 Twisted Matrix Laboratories.
+# Copyright (c) 2008-2009 Ralph Meijer
 # See LICENSE for details.
 
 &quot;&quot;&quot;
@@ -12,7 +12,7 @@ from twisted.internet.interfaces import IProtocolFactory
 from twisted.trial import unittest
 from twisted.words.xish import domish, utility
 from twisted.words.protocols.jabber import xmlstream
-from wokkel.compat import toResponse, BootstrapMixin, XmlStreamServerFactory
+from wokkel.compat import BootstrapMixin, XmlStreamServerFactory
 
 class DummyProtocol(protocol.Protocol, utility.EventDispatcher):
     &quot;&quot;&quot;
@@ -80,75 +80,6 @@ class BootstrapMixinTest(unittest.TestCase):
 
 
 
-class ToResponseTest(unittest.TestCase):
-
-    def test_toResponse(self):
-        &quot;&quot;&quot;
-        Test that a response stanza is generated with addressing swapped.
-        &quot;&quot;&quot;
-        stanza = domish.Element(('jabber:client', 'iq'))
-        stanza['type'] = 'get'
-        stanza['to'] = 'user1@example.com'
-        stanza['from'] = 'user2@example.com/resource'
-        stanza['id'] = 'stanza1'
-        response = toResponse(stanza, 'result')
-        self.assertNotIdentical(stanza, response)
-        self.assertEqual(response['from'], 'user1@example.com')
-        self.assertEqual(response['to'], 'user2@example.com/resource')
-        self.assertEqual(response['type'], 'result')
-        self.assertEqual(response['id'], 'stanza1')
-
-    def test_toResponseNoFrom(self):
-        &quot;&quot;&quot;
-        Test that a response is generated from a stanza without a from address.
-        &quot;&quot;&quot;
-        stanza = domish.Element(('jabber:client', 'iq'))
-        stanza['type'] = 'get'
-        stanza['to'] = 'user1@example.com'
-        response = toResponse(stanza)
-        self.assertEqual(response['from'], 'user1@example.com')
-        self.failIf(response.hasAttribute('to'))
-
-    def test_toResponseNoTo(self):
-        &quot;&quot;&quot;
-        Test that a response is generated from a stanza without a to address.
-        &quot;&quot;&quot;
-        stanza = domish.Element(('jabber:client', 'iq'))
-        stanza['type'] = 'get'
-        stanza['from'] = 'user2@example.com/resource'
-        response = toResponse(stanza)
-        self.failIf(response.hasAttribute('from'))
-        self.assertEqual(response['to'], 'user2@example.com/resource')
-
-    def test_toResponseNoAddressing(self):
-        &quot;&quot;&quot;
-        Test that a response is generated from a stanza without any addressing.
-        &quot;&quot;&quot;
-        stanza = domish.Element(('jabber:client', 'message'))
-        stanza['type'] = 'chat'
-        response = toResponse(stanza)
-        self.failIf(response.hasAttribute('to'))
-        self.failIf(response.hasAttribute('from'))
-
-    def test_noID(self):
-        &quot;&quot;&quot;
-        Test that a proper response is generated without id attribute.
-        &quot;&quot;&quot;
-        stanza = domish.Element(('jabber:client', 'message'))
-        response = toResponse(stanza)
-        self.failIf(response.hasAttribute('id'))
-
-
-    def test_noType(self):
-        &quot;&quot;&quot;
-        Test that a proper response is generated without type attribute.
-        &quot;&quot;&quot;
-        stanza = domish.Element(('jabber:client', 'message'))
-        response = toResponse(stanza)
-        self.failIf(response.hasAttribute('type'))
-
-
-
 class XmlStreamServerFactoryTest(BootstrapMixinTest):
     &quot;&quot;&quot;
     Tests for L{XmlStreamServerFactory}.</diff>
      <filename>wokkel/test/test_compat.py</filename>
    </modified>
    <modified>
      <diff>@@ -10,6 +10,7 @@ from zope.interface import implements
 from twisted.internet import defer
 from twisted.trial import unittest
 from twisted.words.protocols.jabber.jid import JID
+from twisted.words.protocols.jabber.xmlstream import toResponse
 from twisted.words.xish import domish
 
 from wokkel import data_form, disco
@@ -17,11 +18,6 @@ from wokkel.generic import parseXml
 from wokkel.subprotocols import XMPPHandler
 from wokkel.test.helpers import TestableRequestHandlerMixin, XmlStreamStub
 
-try:
-    from twisted.words.protocols.jabber.xmlstream import toResponse
-except ImportError:
-    from wokkel.compat import toResponse
-
 NS_DISCO_INFO = 'http://jabber.org/protocol/disco#info'
 NS_DISCO_ITEMS = 'http://jabber.org/protocol/disco#items'
 </diff>
      <filename>wokkel/test/test_disco.py</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-# Copyright (c) 2003-2008 Ralph Meijer
+# Copyright (c) 2003-2009 Ralph Meijer
 # See LICENSE for details.
 
 &quot;&quot;&quot;
@@ -12,15 +12,11 @@ from twisted.internet import defer
 from twisted.words.xish import domish
 from twisted.words.protocols.jabber import error
 from twisted.words.protocols.jabber.jid import JID
+from twisted.words.protocols.jabber.xmlstream import toResponse
 
 from wokkel import data_form, disco, iwokkel, pubsub, shim
 from wokkel.test.helpers import TestableRequestHandlerMixin, XmlStreamStub
 
-try:
-    from twisted.words.protocols.jabber.xmlstream import toResponse
-except ImportError:
-    from wokkel.compat import toResponse
-
 NS_PUBSUB = 'http://jabber.org/protocol/pubsub'
 NS_PUBSUB_CONFIG = 'http://jabber.org/protocol/pubsub#node_config'
 NS_PUBSUB_ERRORS = 'http://jabber.org/protocol/pubsub#errors'</diff>
      <filename>wokkel/test/test_pubsub.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>ffa8b1cd12f90f9cf5ecfbdb91bec5efb2db94b4</id>
    </parent>
  </parents>
  <author>
    <name>Ralph Meijer</name>
    <email>ralphm@ik.nu</email>
  </author>
  <url>http://github.com/dustin/wokkel/commit/95360c99e43bc92da1757a9d58046c46cfdffb72</url>
  <id>95360c99e43bc92da1757a9d58046c46cfdffb72</id>
  <committed-date>2009-04-07T03:13:08-07:00</committed-date>
  <authored-date>2009-04-07T03:13:08-07:00</authored-date>
  <message>Release Wokkel 0.5.0.


git-svn-id: https://svn.ik.nu/wokkel/trunk@165 b33ecbfc-034c-dc11-8662-000475d9059e</message>
  <tree>2d3dde54dd804fcb268786a23091a3357bb79e61</tree>
  <committer>
    <name>Ralph Meijer</name>
    <email>ralphm@ik.nu</email>
  </committer>
</commit>
