updated changelog, wrote changelog generator
diff --git a/weinre.build/scripts/gen-changelog.py b/weinre.build/scripts/gen-changelog.py
new file mode 100755
index 0000000..afaed0f
--- /dev/null
+++ b/weinre.build/scripts/gen-changelog.py
@@ -0,0 +1,83 @@
+#!/usr/bin/env python
+
+#-------------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#-------------------------------------------------------------------------------
+
+import os
+import re
+import sys
+import urllib2
+import xml.dom
+import xml.dom.minidom
+
+Node = xml.dom.Node
+
+URL = "https://issues.apache.org/jira/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=project+%3D+CB+AND+component+%3D+weinre+AND+status+%3D+Resolved+ORDER+BY+key+ASC&tempMax=1000"
+
+#-------------------------------------------------------------------------------
+def main():
+    iFile = urllib2.urlopen(URL)
+    contents = iFile.read()
+    iFile.close()
+    
+    dom = xml.dom.minidom.parseString(contents)
+    items = dom.getElementsByTagName("item")
+    
+    for item in items:
+        title = getText(item, "title").strip()
+        link  = getText(item, "link").strip()
+        key   = getText(item, "key").strip()
+        
+        
+        title = re.sub(r'^\[.*?\]',"",title,1).strip()
+        title = re.sub(r'^\[.*?\]',"",title,1).strip()
+        
+        print '<li><a href="%s">%s</a>  - %s' % (link, key, title)
+    
+#-------------------------------------------------------------------------------
+def getText(element, childTag=None):
+    result = []
+    
+    if None == childTag:
+        elements = element.childNodes
+    else:
+        elements = element.getElementsByTagName(childTag)
+    
+    for element in elements:
+        if element.nodeType == Node.TEXT_NODE:          result.append(element.data)
+        if element.nodeType == Node.CDATA_SECTION_NODE: result.append(element.data)
+        if element.nodeType == Node.ENTITY_NODE:        result.append(element.nodeValue)
+        if element.nodeType == Node.ELEMENT_NODE:       result.append(getText(element))
+            
+    return "".join(result)
+
+#-------------------------------------------------------------------------------
+def log(message):
+    message = "%s: %s" % (PROGRAM_NAME, message)
+    print >>sys.stderr, message
+
+#-------------------------------------------------------------------------------
+def error(message):
+    log(message)
+    sys.exit(-1)
+
+#-------------------------------------------------------------------------------
+PROGRAM_NAME = os.path.basename(sys.argv[0])
+
+main()
diff --git a/weinre.doc/ChangeLog.body.html b/weinre.doc/ChangeLog.body.html
index 6d52e57..b5167a7 100644
--- a/weinre.doc/ChangeLog.body.html
+++ b/weinre.doc/ChangeLog.body.html
@@ -28,22 +28,23 @@
 
 <p>issues resolved:
 <ul>
-<li><a href="https://issues.apache.org/jira/browse/CB-10" >CB-10</a>  - Apache source headers in callback-weinre
-<li><a href="https://issues.apache.org/jira/browse/CB-36" >CB-36</a>  - move/delete GitHub issues at phonegap/weinre and callback/callback-weinre into the Apache Callback JIRA
-<li><a href="https://issues.apache.org/jira/browse/CB-83" >CB-83</a>  - implement the server in node
-<li><a href="https://issues.apache.org/jira/browse/CB-100">CB-100</a> - fix issues regarding pre-req licenses for weinre distribution
-<li><a href="https://issues.apache.org/jira/browse/CB-175">CB-175</a> - error when XHR contentType is null
-<li><a href="https://issues.apache.org/jira/browse/CB-176">CB-176</a> - add vendor files to weinre instead of pulling in at build time
-<li><a href="https://issues.apache.org/jira/browse/CB-182">CB-182</a> - error when XHR contentType is null
-<li><a href="https://issues.apache.org/jira/browse/CB-232">CB-232</a> - rename assets from PhoneGap to Cordova
-<li><a href="https://issues.apache.org/jira/browse/CB-257">CB-257</a> - the README.md in the weinre-node distribution is bogus
-<li><a href="https://issues.apache.org/jira/browse/CB-259">CB-259</a> - create a weinre tarball as a build archive that is npm install-able
-<li><a href="https://issues.apache.org/jira/browse/CB-266">CB-266</a> - weinre runtime error if you don't have a ~/.weinre/server.settings file	Unassigned
-<li><a href="https://issues.apache.org/jira/browse/CB-284">CB-284</a> - invocation exception on WeinreClientEventsImpl.connectionCreated(): TypeError: Cannot read property 'url' of undefined
-<li><a href="https://issues.apache.org/jira/browse/CB-288">CB-288</a> - re-version as 2.0.0
-<li><a href="https://issues.apache.org/jira/browse/CB-293">CB-293</a> - bullet-proof modjewel
-<li><a href="https://issues.apache.org/jira/browse/CB-294">CB-294</a> - various exceptions thrown in the target in WeinreTargetEventsImpl.connectionCreated()
-<li><a href="https://issues.apache.org/jira/browse/CB-315">CB-315</a> - generate valid Apache release artifact names
+<li><a href="https://issues.apache.org/jira/browse/CB-10">CB-10</a>  - Apache source headers in callback-weinre
+<li><a href="https://issues.apache.org/jira/browse/CB-36">CB-36</a>  - move/delete GitHub issues at phonegap/weinre and callback/callback-weinre into the Apache Callback JIRA
+<li><a href="https://issues.apache.org/jira/browse/CB-83">CB-83</a>  - implement the server in node
+<li><a href="https://issues.apache.org/jira/browse/CB-100">CB-100</a>  - fix issues regarding pre-req licenses for weinre distribution
+<li><a href="https://issues.apache.org/jira/browse/CB-175">CB-175</a>  - error when XHR contentType is null
+<li><a href="https://issues.apache.org/jira/browse/CB-176">CB-176</a>  - add vendor files to weinre instead of pulling in at build time
+<li><a href="https://issues.apache.org/jira/browse/CB-182">CB-182</a>  - error when XHR contentType is null
+<li><a href="https://issues.apache.org/jira/browse/CB-232">CB-232</a>  - rename assets from PhoneGap to Cordova
+<li><a href="https://issues.apache.org/jira/browse/CB-257">CB-257</a>  - the README.md in the weinre-node distribution is bogus
+<li><a href="https://issues.apache.org/jira/browse/CB-259">CB-259</a>  - create a weinre tarball as a build archive that is npm install-able
+<li><a href="https://issues.apache.org/jira/browse/CB-266">CB-266</a>  - weinre runtime error if you don't have a ~/.weinre/server.settings file
+<li><a href="https://issues.apache.org/jira/browse/CB-284">CB-284</a>  - invocation exception on WeinreClientEventsImpl.connectionCreated(): TypeError: Cannot read property 'url' of undefined
+<li><a href="https://issues.apache.org/jira/browse/CB-288">CB-288</a>  - re-version as 2.0.0
+<li><a href="https://issues.apache.org/jira/browse/CB-293">CB-293</a>  - bullet-proof modjewel
+<li><a href="https://issues.apache.org/jira/browse/CB-294">CB-294</a>  - various exceptions thrown in the target in WeinreTargetEventsImpl.connectionCreated()
+<li><a href="https://issues.apache.org/jira/browse/CB-315">CB-315</a>  - generate valid Apache release artifact names
+<li><a href="https://issues.apache.org/jira/browse/CB-540">CB-540</a>  - ability to easily navigate to particular place in DOM via bookmarks/jump to selector
 </ul>
 
 <!-- ======================================================================= -->