<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>commits@couchdb.apache.org Archives</title>
<link rel="self" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/?format=atom"/>
<link href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/"/>
<id>http://mail-archives.apache.org/mod_mbox/couchdb-commits/</id>
<updated>2009-12-07T22:26:17Z</updated>
<entry>
<title>=?utf-8?q?=5BCouchdb_Wiki=5D_Update_of_=22Configurationfile=5Fcouch=2Eini?= =?utf-8?q?=22_by_Ben_Ramsey?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091207175008.12443.63872@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091207175008-12443-63872@eos-apache-org%3e</id>
<updated>2009-12-07T17:50:08Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "Configurationfile_couch.ini" page has been changed by Ben Ramsey.
The comment on this change is: Updated to use default config file for version 0.10.0. Need
to add description of each option..
http://wiki.apache.org/couchdb/Configurationfile_couch.ini?action=diff&amp;rev1=5&amp;rev2=6

--------------------------------------------------

- The default location of the couch.ini file is in /usr/local/etc/couchdb.  It is the local
configuration file for the couch server.
+ The default location of the default.ini file is in /usr/local/etc/couchdb.  It is the local
configuration file for the CouchDB server. Please note that upgrading CouchDB will overwrite
default.ini, so it is a good idea to make changes to local.ini (or to use your own INI file
for each CouchDB instance running).
  
  The default configuration file is shown, with each option described in detail.
  
  {{{
- ; etc/couchdb/couch.ini.tpl.  Generated from couch.ini.tpl.in by configure.
+ ; etc/couchdb/default.ini.tpl.  Generated from default.ini.tpl.in by configure.
+ 
+ ; Upgrading CouchDB will overwrite this file.
+ 
- [Couch]
+ [couchdb]
- ConsoleStartupMsg=Apache CouchDB is starting.
- DbRootDir=/usr/local/var/lib/couchdb
+ database_dir = /usr/local/var/lib/couchdb
+ view_index_dir = /usr/local/var/lib/couchdb
+ util_driver_dir = /usr/local/lib/couchdb/erlang/lib/couch-0.10.0/priv/lib
+ max_document_size = 4294967296 ; 4 GB
+ max_attachment_chunk_size = 4294967296 ; 4GB
+ os_process_timeout = 5000 ; 5 seconds. for view and external servers.
+ max_dbs_open = 100
+ delayed_commits = true
+ batch_save_size = 1000 ; number of docs at which to save a batch
+ batch_save_interval = 1000 ; milliseconds after which to save batches
+ 
+ [httpd]
- Port=5984
+ port = 5984
- BindAddress=192.168.109.162
- DocumentRoot=/usr/local/share/couchdb/www
+ bind_address = 127.0.0.1
+ authentication_handlers = {couch_httpd_oauth, oauth_authentication_handler}, {couch_httpd_auth,
default_authentication_handler}
+ default_handler = {couch_httpd_db, handle_request}
+ WWW-Authenticate = Basic realm="administrator"
+ 
+ [log]
- LogFile=/usr/local/var/log/couchdb/couch.log
+ file = /usr/local/var/log/couchdb/couch.log
- UtilDriverDir=/usr/local/lib/couchdb/erlang/lib/couch-0.8.0-incubating/priv/lib
- LogLevel=info
- [Couch Query Servers]
+ level = info
+ 
+ [couch_httpd_auth]
+ authentication_db = users
+ secret = replace this with a real secret in your local.ini file
+ require_valid_user = false
+ 
+ [query_servers]
- javascript=/usr/local/bin/couchjs /usr/local/share/couchdb/server/main.js
+ javascript = /usr/local/bin/couchjs /usr/local/share/couchdb/server/main.js
+ 
+ ; Changing reduce_limit to false will disable reduce_limit.
+ ; If you think you're hitting reduce_limit with a "good" reduce function,
+ ; please let us know on the mailing list so we can fine tune the heuristic.
+ [query_server_config]
+ reduce_limit = true
+ 
+ ; enable external as an httpd handler, then link it with commands here.
+ ; note, this api is still under consideration.
+ ; [external]
+ ; mykey = /path/to/mycommand
+ 
+ [daemons]
+ view_manager={couch_view, start_link, []}
+ external_manager={couch_external_manager, start_link, []}
+ db_update_notifier={couch_db_update_notifier_sup, start_link, []}
+ batch_save={couch_batch_save_sup, start_link, []}
+ query_servers={couch_query_servers, start_link, []}
+ httpd={couch_httpd, start_link, []}
+ stats_aggregator={couch_stats_aggregator, start, []}
+ stats_collector={couch_stats_collector, start, []}
+ 
+ [httpd_global_handlers]
+ / = {couch_httpd_misc_handlers, handle_welcome_req, &lt;&lt;"Welcome"&gt;&gt;}
+ favicon.ico = {couch_httpd_misc_handlers, handle_favicon_req, "/usr/local/share/couchdb/www"}
+ 
+ _utils = {couch_httpd_misc_handlers, handle_utils_dir_req, "/usr/local/share/couchdb/www"}
+ _all_dbs = {couch_httpd_misc_handlers, handle_all_dbs_req}
+ _active_tasks = {couch_httpd_misc_handlers, handle_task_status_req}
+ _config = {couch_httpd_misc_handlers, handle_config_req}
+ _replicate = {couch_httpd_misc_handlers, handle_replicate_req}
+ _uuids = {couch_httpd_misc_handlers, handle_uuids_req}
+ _restart = {couch_httpd_misc_handlers, handle_restart_req}
+ _stats = {couch_httpd_stats_handlers, handle_stats_req}
+ _log = {couch_httpd_misc_handlers, handle_log_req}
+ _sleep = {couch_httpd_misc_handlers, handle_sleep_req}
+ _session = {couch_httpd_auth, handle_session_req}
+ _oauth = {couch_httpd_oauth, handle_oauth_req}
+ _user = {couch_httpd_auth, handle_user_req}
+ 
+ [httpd_db_handlers]
+ _view_cleanup = {couch_httpd_db, handle_view_cleanup_req}
+ _compact = {couch_httpd_db, handle_compact_req}
+ _design = {couch_httpd_db, handle_design_req}
+ _view = {couch_httpd_view, handle_db_view_req}
+ _temp_view = {couch_httpd_view, handle_temp_view_req}
+ _changes = {couch_httpd_db, handle_changes_req}
+ 
+ ; The external module takes an optional argument allowing you to narrow it to a
+ ; single script. Otherwise the script name is inferred from the first path section
+ ; after _external's own path.
+ ; _mypath = {couch_httpd_external, handle_external_req, &lt;&lt;"mykey"&gt;&gt;}
+ ; _external = {couch_httpd_external, handle_external_req}
+ 
+ [httpd_design_handlers]
+ _view = {couch_httpd_view, handle_view_req}
+ _show = {couch_httpd_show, handle_doc_show_req}
+ _list = {couch_httpd_show, handle_view_list_req}
+ _info = {couch_httpd_db,   handle_design_info_req}
+ _update = {couch_httpd_show, handle_doc_update_req}
  }}}
  
- === Couch section ===
-  * {{{ConsoleStartupMsg}}}
-  * {{{DbRootDir}}}
-  * {{{Port}}}
-  * {{{BindAddress}}} - you probably need to change this to your outward facing network interface.
Use 0.0.0.0 to bind to all interfaces.
-  * {{{DocumentRoot}}}
-  * {{{LogFile}}}
-  * {{{UtilDriverDir}}}
-  * {{{LogLevel}}} - values 'none', 'error', 'info', 'debug'
- 
- === Couch Query Servers section ===
-  * {{{javascript}}}
- 


</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BCouchdb_Wiki=5D_Update_of_=22Error=5Fmessages=22_by_ThomasVa?= =?utf-8?q?nderStichele?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091207141254.24871.44242@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091207141254-24871-44242@eos-apache-org%3e</id>
<updated>2009-12-07T14:12:54Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "Error_messages" page has been changed by ThomasVanderStichele.
The comment on this change is: add explanation about ssl problem which could also just be
a missing package.
http://wiki.apache.org/couchdb/Error_messages?action=diff&amp;rev1=17&amp;rev2=18

--------------------------------------------------

  
  === Solution ===
  
+ You are missing erlang SSL support.
+ 
+ You may not have installed the package that provides it (for example, erlang-ssl).  Check
$(libdir)/erlang/lib/ssl-*/ and make sure it contains more than just an include/ subdirectory.
+ 
- You need to install the OpenSSL libraries and recompile Erlang with SSL enabled.
+ If you compiled by hand, you need to install the OpenSSL libraries and recompile Erlang
with SSL enabled.
  
  &lt;&lt;Anchor(IncorrectPermissions)&gt;&gt;
  == Incorrect Permissions ==


</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r887791 - in /couchdb/trunk/share: server/render.js www/script/test/show_documents.js</title>
<author><name>jchris@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091206224707.06CFE23889CF@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091206224707-06CFE23889CF@eris-apache-org%3e</id>
<updated>2009-12-06T22:47:06Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: jchris
Date: Sun Dec  6 22:47:05 2009
New Revision: 887791

URL: http://svn.apache.org/viewvc?rev=887791&amp;view=rev
Log:
fix COUCHDB-593, thanks Roger Binns for reporting

Modified:
    couchdb/trunk/share/server/render.js
    couchdb/trunk/share/www/script/test/show_documents.js

Modified: couchdb/trunk/share/server/render.js
URL: http://svn.apache.org/viewvc/couchdb/trunk/share/server/render.js?rev=887791&amp;r1=887790&amp;r2=887791&amp;view=diff
==============================================================================
--- couchdb/trunk/share/server/render.js (original)
+++ couchdb/trunk/share/server/render.js Sun Dec  6 22:47:05 2009
@@ -197,6 +197,21 @@
   responseContentType = null;  
 };
 
+// from http://javascript.crockford.com/remedial.html
+function typeOf(value) {
+    var s = typeof value;
+    if (s === 'object') {
+        if (value) {
+            if (value instanceof Array) {
+                s = 'array';
+            }
+        } else {
+            s = 'null';
+        }
+    }
+    return s;
+};
+
 function runShow(showFun, doc, req, funSrc) {
   try {
     resetProvides();
@@ -206,8 +221,9 @@
       resp = runProvides(req);
       resp = applyContentType(maybeWrapResponse(resp), responseContentType);
     }
-    
-    if (resp) {
+
+    var type = typeOf(resp);
+    if (type == 'object' || type == 'string') {
       respond(["resp", maybeWrapResponse(resp)]);
     } else {
       renderError("undefined response from show function");

Modified: couchdb/trunk/share/www/script/test/show_documents.js
URL: http://svn.apache.org/viewvc/couchdb/trunk/share/www/script/test/show_documents.js?rev=887791&amp;r1=887790&amp;r2=887791&amp;view=diff
==============================================================================
--- couchdb/trunk/share/www/script/test/show_documents.js (original)
+++ couchdb/trunk/share/www/script/test/show_documents.js Sun Dec  6 22:47:05 2009
@@ -56,6 +56,9 @@
       "render-error" : stringFun(function(doc, req) {
         return noSuchVariable;
       }),
+      "empty" : stringFun(function(doc, req) {
+          return "";
+        }),
       "xml-type" : stringFun(function(doc, req) {
          return {
            "headers" : {
@@ -159,6 +162,10 @@
   xhr = CouchDB.request("GET", "/test_suite_db/_design/template/_show/hello");
   T(xhr.responseText == "Empty World");
 
+  // hello template world (no docid)
+  xhr = CouchDB.request("GET", "/test_suite_db/_design/template/_show/empty");
+  T(xhr.responseText == "");
+
   // // hello template world (non-existing docid)
   xhr = CouchDB.request("GET", "/test_suite_db/_design/template/_show/hello/nonExistingDoc");
   T(xhr.responseText == "New World");




</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BCouchdb_Wiki=5D_Update_of_=22Generating_HTML_from_Javascript?= =?utf-8?q?_shows_and_lists=22_by_RogerBinns?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091205080720.4128.62054@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091205080720-4128-62054@eos-apache-org%3e</id>
<updated>2009-12-05T08:07:20Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "Generating HTML from Javascript shows and lists" page has been changed by RogerBinns.
The comment on this change is: Mention html generation functions in best practises, move html
escaping there.  Add Google's Closure Templating..
http://wiki.apache.org/couchdb/Generating%20HTML%20from%20Javascript%20shows%20and%20lists?action=diff&amp;rev1=3&amp;rev2=4

--------------------------------------------------

  
  == Best Practise ==
  Generate clear concise simple HTML from your show/list functions.  The resulting HTML interface
should be usable from constrained devices (eg cell phones, set top boxes) as well as being
accessible (eg screen readers) and easy to index for search engines.  This is also easier
to automatically test.  You can then run Javascript in the browser (if the browser supports
Javascript and it is turned on) to enhance what is being displayed (eg add extra information,
tooltips, icons, previews of next/previous content, enhanced menus and interaction etc).
+ 
+ It is a '''very''' good idea to use a library that automatically escapes values (eg replacing
&lt; with ampersand lt semicolon) otherwise your application will be prone to [[http://en.wikipedia.org/wiki/Cross-site_scripting|cross
site scripting attacks]].  It should also provide a way of disabling the escaping when you
are intentionally providing raw HTML.
+ 
+ It is convenient if the library has functions for emitting html.  For example it may have
a function to insert an image where you provide the URL and the function generates all the
wrapping HTML, including width/height/caption attributes if you provided them.
  
  == Constraints ==
  The Javascript view server and the environment the code run in mean that some existing Javascript
templating libraries will not work.
@@ -14, +18 @@

   * Some work on complete documents whereas your show and especially list functions are often
working on multiple strings and template fragments
   * Some only do HTML - this is good if they ensure the result is correct HTML
   * Some do any form of templating (eg plain text) which means your resulting HTML can be
invalid
-  * It is a very good idea to use a library that automatically escapes values (eg replacing
&lt; with ampersand lt semicolon) otherwise your application will be prone to [[http://en.wikipedia.org/wiki/Cross-site_scripting|cross
site scripting attacks]].  It should also provide a way of disabling the escaping when you
are intentionally providing raw HTML.
   * Size can be a problem.  Some templating libraries are rather large and depend on other
libraries. They can create many layers of intermediary functions and caching making it hard
to debug what is happening.
  
  == Solutions ==
@@ -34, +37 @@

      Foo is not true-ish
  &lt;% } %&gt;
  }}}
+ 
+ Note that this library has no support, bug tracker or development/test/release process.
+ 
  === mustache.js ===
  [[http://github.com/janl/mustache.js|mustache.js]] is a Javascript version of a Ruby templating
library.  The name refers to the { and } characters looking like a mustache.  Download http://github.com/janl/mustache.js/raw/master/mustache.js
to get the latest version which drops right in using !json/!code as is.
  
@@ -42, +48 @@

  === underscore ===
  [[http://documentcloud.github.com/underscore/|Underscore]] is a small library of miscellaneous
functions that also includes simple [[http://documentcloud.github.com/underscore/#template|templating]]
substantially similar to John Resig's micro templating above.  The templating is not HTML
specific and there is no automatic HTML escaping.
  
+ === closure ===
+ [[http://code.google.com/closure/templates/|closure templates]] are a Google project used
behind the scenes in places like gmail and Google docs.  It is different from the other libraries
in that the templates are compiled to Javascript code and you just include that Javascript
code.  This has the advantage that errors in your templates are detected at build time not
run time.  Values are automatically HTML escaped.  In order for soyutils.js to work, you should
include this line before including it:
+ 
+ {{{
+ var navigator={userAgent: ""};
+ }}}
+ 


</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BCouchdb_Wiki=5D_Trivial_Update_of_=22How-To=5FGuides=22_by_R?= =?utf-8?q?ogerBinns?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091204200949.11165.62019@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091204200949-11165-62019@eos-apache-org%3e</id>
<updated>2009-12-04T20:09:49Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "How-To_Guides" page has been changed by RogerBinns.
The comment on this change is: Add link to HTML templates and Javascript.
http://wiki.apache.org/couchdb/How-To_Guides?action=diff&amp;rev1=14&amp;rev2=15

--------------------------------------------------

-   * [[How_to_create_tests]]
+  * [[How_to_create_tests]]
-   * [[How_to_implement_tagging]]
+  * [[How_to_implement_tagging]]
-   * [[How_to_make_filesystem_backups]]
+  * [[How_to_make_filesystem_backups]]
-   * [[How_to_page_through_results]]
+  * [[How_to_page_through_results]]
-   * [[How_to_serve_applications]]
+  * [[How_to_serve_applications]]
-   * [[How_to_store_hierarchical_data]]
+  * [[How_to_store_hierarchical_data]]
-   * [[How_to_replicate_a_database]]
+  * [[How_to_replicate_a_database]]
-   * [[How_to_design_for_replication]]
+  * [[How_to_design_for_replication]]
-   * [[Apache_As_a_Reverse_Proxy]]: How to put CouchDB behind proxy (for access control and/or
high availability)
+  * [[Apache_As_a_Reverse_Proxy]]: How to put CouchDB behind proxy (for access control and/or
high availability)
-   * [[Nginx_As_a_Reverse_Proxy]]
+  * [[Nginx_As_a_Reverse_Proxy]]
-   * [[How_to_add_client-side_security]]
+  * [[How_to_add_client-side_security]]
-   * [[How_to_change_the_front_page]]
+  * [[How_to_change_the_front_page]]
-   * [[How to import your SQL dump to CouchDB]]
+  * [[How to import your SQL dump to CouchDB]]
-   * [[How_to_handle_stats_aggregation]]
+  * [[How_to_handle_stats_aggregation]]
-   * [[How_to_intercept_document_updates_and_perform_additional_server-side_processing]]
+  * [[How_to_intercept_document_updates_and_perform_additional_server-side_processing]]
-   * EnableErlangViews - How to enable the native Erlang view server (since CouchDB 0.10.0)
+  * EnableErlangViews - How to enable the native Erlang view server (since CouchDB 0.10.0)
-   * HackingFuton - Without building CouchDB from source.
+  * HackingFuton - Without building CouchDB from source.
+  * [[Generating HTML from Javascript shows and lists]]
  


</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BCouchdb_Wiki=5D_Trivial_Update_of_=22Generating_HTML_from_Ja?= =?utf-8?q?vascript_shows_and_lists=22_by_RogerBinns?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091204080743.10870.59208@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091204080743-10870-59208@eos-apache-org%3e</id>
<updated>2009-12-04T08:07:43Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "Generating HTML from Javascript shows and lists" page has been changed by RogerBinns.
The comment on this change is: wording.
http://wiki.apache.org/couchdb/Generating%20HTML%20from%20Javascript%20shows%20and%20lists?action=diff&amp;rev1=2&amp;rev2=3

--------------------------------------------------

  = Generating HTML from Javascript shows and lists =
- You can generate output from [[http://books.couchdb.org/relax/design-documents/shows|shows]]
and [[http://books.couchdb.org/relax/design-documents/lists|lists]].  Typically this would
be HTML intended for a browser but any format can be generated. CouchDB already includes [[http://en.wikipedia.org/wiki/ECMAScript_for_XML|Javascript
support]] for XML derived formats (eg Atom feeds). It is impractical to generate HTML directly
so some sort of templating is recommended.
+ You can generate output from [[http://books.couchdb.org/relax/design-documents/shows|shows]]
and [[http://books.couchdb.org/relax/design-documents/lists|lists]].  Typically this would
be HTML intended for a browser but any format can be generated. CouchDB already includes [[http://en.wikipedia.org/wiki/ECMAScript_for_XML|Javascript
support]] for XML derived formats (eg Atom feeds). It is impractical to output HTML directly
so some sort of templating is recommended.
  
  == Best Practise ==
  Generate clear concise simple HTML from your show/list functions.  The resulting HTML interface
should be usable from constrained devices (eg cell phones, set top boxes) as well as being
accessible (eg screen readers) and easy to index for search engines.  This is also easier
to automatically test.  You can then run Javascript in the browser (if the browser supports
Javascript and it is turned on) to enhance what is being displayed (eg add extra information,
tooltips, icons, previews of next/previous content, enhanced menus and interaction etc).


</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BCouchdb_Wiki=5D_Update_of_=22Generating_HTML_from_Javascript?= =?utf-8?q?_shows_and_lists=22_by_RogerBinns?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091204075055.10779.29797@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091204075055-10779-29797@eos-apache-org%3e</id>
<updated>2009-12-04T07:50:55Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "Generating HTML from Javascript shows and lists" page has been changed by RogerBinns.
The comment on this change is: Add mustache and underscore.
http://wiki.apache.org/couchdb/Generating%20HTML%20from%20Javascript%20shows%20and%20lists?action=diff&amp;rev1=1&amp;rev2=2

--------------------------------------------------

  You can generate output from [[http://books.couchdb.org/relax/design-documents/shows|shows]]
and [[http://books.couchdb.org/relax/design-documents/lists|lists]].  Typically this would
be HTML intended for a browser but any format can be generated. CouchDB already includes [[http://en.wikipedia.org/wiki/ECMAScript_for_XML|Javascript
support]] for XML derived formats (eg Atom feeds). It is impractical to generate HTML directly
so some sort of templating is recommended.
  
  == Best Practise ==
- Generate clear concise simple HTML from your show/list functions.  The resulting HTML interface
should be usable from constrained devices (eg cell phones, set top boxes) as well as being
accessible (eg for screen readers for blind people) and easy to index for search engines.
 This is also easier to automatically test.  You can then run Javascript in the browser (if
the browser supports Javascript and it is turned on) to enhance what is being displayed (eg
add extra information, tooltips, icons, previews of next/previous content, enhanced menus
and interaction etc).
+ Generate clear concise simple HTML from your show/list functions.  The resulting HTML interface
should be usable from constrained devices (eg cell phones, set top boxes) as well as being
accessible (eg screen readers) and easy to index for search engines.  This is also easier
to automatically test.  You can then run Javascript in the browser (if the browser supports
Javascript and it is turned on) to enhance what is being displayed (eg add extra information,
tooltips, icons, previews of next/previous content, enhanced menus and interaction etc).
  
  == Constraints ==
  The Javascript view server and the environment the code run in mean that some existing Javascript
templating libraries will not work.
@@ -15, +15 @@

   * Some only do HTML - this is good if they ensure the result is correct HTML
   * Some do any form of templating (eg plain text) which means your resulting HTML can be
invalid
   * It is a very good idea to use a library that automatically escapes values (eg replacing
&lt; with ampersand lt semicolon) otherwise your application will be prone to [[http://en.wikipedia.org/wiki/Cross-site_scripting|cross
site scripting attacks]].  It should also provide a way of disabling the escaping when you
are intentionally providing raw HTML.
-  * Size can be a problem.  Some templating libraries are rather large and depend on other
libraries. They can create many layersof intermediary functions and caching making it hard
to debug what is happening.
+  * Size can be a problem.  Some templating libraries are rather large and depend on other
libraries. They can create many layers of intermediary functions and caching making it hard
to debug what is happening.
  
  == Solutions ==
  The solutions listed below are known to work with CouchDB show and list functions, generating
HTML and working with CouchDB deployment conventions (ie !json string templates and !code
inclusion into the show/list functions).
  
+  . '''Recommendation: '''Use mustache.js
+ 
  === John Resig's micro-templating ===
- This engine is a screenful of code and can be downloaded at http://ejohn.org/blog/javascript-micro-templating.
 You can read about using it in the [[http://books.couchdb.org/relax/design-documents/shows#Using%20Templates|CouchDB
book]].  Example usage can be found in the [[http://github.com/jchris/sofa|Sofa blog application]].
 It does not do HTML escaping so you will need to be very careful.  The templating is not
HTML specific so you can generate other formats.  (The tags are HTML syntax though.)
+ This engine is a screenful of code described at http://ejohn.org/blog/javascript-micro-templating
(download a CouchDB version [[http://github.com/jchris/sofa/raw/master/vendor/couchapp/template.js|here]]).
 You can read about using it in the [[http://books.couchdb.org/relax/design-documents/shows#Using%20Templates|CouchDB
book]].  Example usage can be found in the [[http://github.com/jchris/sofa|Sofa blog application]].
 It does not do HTML escaping so you will need to be very careful.  The templating is not
HTML specific so you can generate other formats.  (The tags are HTML syntax though.)
  
  This is an example of how to do conditionals:
  
@@ -32, +34 @@

      Foo is not true-ish
  &lt;% } %&gt;
  }}}
+ === mustache.js ===
+ [[http://github.com/janl/mustache.js|mustache.js]] is a Javascript version of a Ruby templating
library.  The name refers to the { and } characters looking like a mustache.  Download http://github.com/janl/mustache.js/raw/master/mustache.js
to get the latest version which drops right in using !json/!code as is.
  
+ The library is complete and does not put Javascript code into your template, but does have
all the expected features (looping, conditionals etc).  Although the intention is to generate
HTML the templates are not HTML specific.  The only exception is that substitutions by default
are HTML escaped (use triple braces for no escaping).  This is a very good thing.
+ 
+ === underscore ===
+ [[http://documentcloud.github.com/underscore/|Underscore]] is a small library of miscellaneous
functions that also includes simple [[http://documentcloud.github.com/underscore/#template|templating]]
substantially similar to John Resig's micro templating above.  The templating is not HTML
specific and there is no automatic HTML escaping.
+ 


</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BCouchdb_Wiki=5D_Update_of_=22Generating_HTML_from_Javascript?= =?utf-8?q?_shows_and_lists=22_by_RogerBinns?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091204060232.2017.15195@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091204060232-2017-15195@eos-apache-org%3e</id>
<updated>2009-12-04T06:02:32Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "Generating HTML from Javascript shows and lists" page has been changed by RogerBinns.
The comment on this change is: Info about Javascript templating.
http://wiki.apache.org/couchdb/Generating%20HTML%20from%20Javascript%20shows%20and%20lists

--------------------------------------------------

New page:
= Generating HTML from Javascript shows and lists =
You can generate output from [[http://books.couchdb.org/relax/design-documents/shows|shows]]
and [[http://books.couchdb.org/relax/design-documents/lists|lists]].  Typically this would
be HTML intended for a browser but any format can be generated. CouchDB already includes [[http://en.wikipedia.org/wiki/ECMAScript_for_XML|Javascript
support]] for XML derived formats (eg Atom feeds). It is impractical to generate HTML directly
so some sort of templating is recommended.

== Best Practise ==
Generate clear concise simple HTML from your show/list functions.  The resulting HTML interface
should be usable from constrained devices (eg cell phones, set top boxes) as well as being
accessible (eg for screen readers for blind people) and easy to index for search engines.
 This is also easier to automatically test.  You can then run Javascript in the browser (if
the browser supports Javascript and it is turned on) to enhance what is being displayed (eg
add extra information, tooltips, icons, previews of next/previous content, enhanced menus
and interaction etc).

== Constraints ==
The Javascript view server and the environment the code run in mean that some existing Javascript
templating libraries will not work.

 * There is no network/file access so templates cannot be loaded over the network or from
a file.  Instead they must be strings already included into your Javascript code.  (See the
!json directive of couchapp which does this for you).  They must also return strings.
 * There is no [[http://en.wikipedia.org/wiki/Document_Object_Model|DOM]] available (templating
libraries often assume that they are running in a browser working on the currently displayed
document)
 * Some work on complete documents whereas your show and especially list functions are often
working on multiple strings and template fragments
 * Some only do HTML - this is good if they ensure the result is correct HTML
 * Some do any form of templating (eg plain text) which means your resulting HTML can be invalid
 * It is a very good idea to use a library that automatically escapes values (eg replacing
&lt; with ampersand lt semicolon) otherwise your application will be prone to [[http://en.wikipedia.org/wiki/Cross-site_scripting|cross
site scripting attacks]].  It should also provide a way of disabling the escaping when you
are intentionally providing raw HTML.
 * Size can be a problem.  Some templating libraries are rather large and depend on other
libraries. They can create many layersof intermediary functions and caching making it hard
to debug what is happening.

== Solutions ==
The solutions listed below are known to work with CouchDB show and list functions, generating
HTML and working with CouchDB deployment conventions (ie !json string templates and !code
inclusion into the show/list functions).

=== John Resig's micro-templating ===
This engine is a screenful of code and can be downloaded at http://ejohn.org/blog/javascript-micro-templating.
 You can read about using it in the [[http://books.couchdb.org/relax/design-documents/shows#Using%20Templates|CouchDB
book]].  Example usage can be found in the [[http://github.com/jchris/sofa|Sofa blog application]].
 It does not do HTML escaping so you will need to be very careful.  The templating is not
HTML specific so you can generate other formats.  (The tags are HTML syntax though.)

This is an example of how to do conditionals:

{{{
&lt;% if (o.foo) { %&gt;
    Foo is true-ish
&lt;% } else { %&gt;
    Foo is not true-ish
&lt;% } %&gt;
}}}


</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BCouchdb_Wiki=5D_Trivial_Update_of_=22How-To=5FGuides=22_by_R?= =?utf-8?q?ogerBinns?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091204052328.27673.1261@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091204052328-27673-1261@eos-apache-org%3e</id>
<updated>2009-12-04T05:23:28Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "How-To_Guides" page has been changed by RogerBinns.
The comment on this change is: Link for html javascript templating.
http://wiki.apache.org/couchdb/How-To_Guides?action=diff&amp;rev1=14&amp;rev2=15

--------------------------------------------------

-   * [[How_to_create_tests]]
+  * [[How_to_create_tests]]
-   * [[How_to_implement_tagging]]
+  * [[How_to_implement_tagging]]
-   * [[How_to_make_filesystem_backups]]
+  * [[How_to_make_filesystem_backups]]
-   * [[How_to_page_through_results]]
+  * [[How_to_page_through_results]]
-   * [[How_to_serve_applications]]
+  * [[How_to_serve_applications]]
-   * [[How_to_store_hierarchical_data]]
+  * [[How_to_store_hierarchical_data]]
-   * [[How_to_replicate_a_database]]
+  * [[How_to_replicate_a_database]]
-   * [[How_to_design_for_replication]]
+  * [[How_to_design_for_replication]]
-   * [[Apache_As_a_Reverse_Proxy]]: How to put CouchDB behind proxy (for access control and/or
high availability)
+  * [[Apache_As_a_Reverse_Proxy]]: How to put CouchDB behind proxy (for access control and/or
high availability)
-   * [[Nginx_As_a_Reverse_Proxy]]
+  * [[Nginx_As_a_Reverse_Proxy]]
-   * [[How_to_add_client-side_security]]
+  * [[How_to_add_client-side_security]]
-   * [[How_to_change_the_front_page]]
+  * [[How_to_change_the_front_page]]
-   * [[How to import your SQL dump to CouchDB]]
+  * [[How to import your SQL dump to CouchDB]]
-   * [[How_to_handle_stats_aggregation]]
+  * [[How_to_handle_stats_aggregation]]
-   * [[How_to_intercept_document_updates_and_perform_additional_server-side_processing]]
+  * [[How_to_intercept_document_updates_and_perform_additional_server-side_processing]]
-   * EnableErlangViews - How to enable the native Erlang view server (since CouchDB 0.10.0)
+  * EnableErlangViews - How to enable the native Erlang view server (since CouchDB 0.10.0)
-   * HackingFuton - Without building CouchDB from source.
+  * HackingFuton - Without building CouchDB from source.
+  * [[Generating HTML from Javascript shows and lists]]
  


</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BCouchdb_Wiki=5D_Update_of_=22CouchDB=5Fin=5Fthe=5Fwild=22_by?= =?utf-8?q?_AlexPedenko?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091203192624.13424.73928@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091203192624-13424-73928@eos-apache-org%3e</id>
<updated>2009-12-03T19:26:24Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "CouchDB_in_the_wild" page has been changed by AlexPedenko.
http://wiki.apache.org/couchdb/CouchDB_in_the_wild?action=diff&amp;rev1=46&amp;rev2=47

--------------------------------------------------

    * [[http://ubuntuone.com]] Ubuntu One is a suite of web services for enhancing collaboration
between Ubuntu users. Initially a file sharing service is available.
    * [[http://www.gabadoo.com|Gabadoo]] Uses CouchDB to store all of its data (users, their
favorites, session information, etc.). Uses Apache httpd to proxy between CouchDB and web
services written in PHP.
    * [[http://saucelabs.com|Sauce Labs]], a Selenium-based web app testing cloud service,
uses CouchDB for all its database needs.
+   * [[http://friendsell.com|friendsell.com]] A social marketplace application. Uses couchdb
for all its database needs and couchdb-lucene for all search operations.
  
  == Facebook Applications ==
    * [[http://apps.facebook.com/ukissme/|Will you Kissme]], Dating game


</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886334 - in /couchdb/trunk: share/server/filter.js src/couchdb/couch_httpd_db.erl src/couchdb/couch_query_servers.erl test/view_server/query_server_spec.rb</title>
<author><name>jchris@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091202230530.009E423889D1@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091202230530-009E423889D1@eris-apache-org%3e</id>
<updated>2009-12-02T23:05:29Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: jchris
Date: Wed Dec  2 23:05:28 2009
New Revision: 886334

URL: http://svn.apache.org/viewvc?rev=886334&amp;view=rev
Log:
removed add_fun optimization for filters, this provides better concurrency at the cost of
some function transfer/eval overhead, which will be optimized in a future patch.

Modified:
    couchdb/trunk/share/server/filter.js
    couchdb/trunk/src/couchdb/couch_httpd_db.erl
    couchdb/trunk/src/couchdb/couch_query_servers.erl
    couchdb/trunk/test/view_server/query_server_spec.rb

Modified: couchdb/trunk/share/server/filter.js
URL: http://svn.apache.org/viewvc/couchdb/trunk/share/server/filter.js?rev=886334&amp;r1=886333&amp;r2=886334&amp;view=diff
==============================================================================
--- couchdb/trunk/share/server/filter.js (original)
+++ couchdb/trunk/share/server/filter.js Wed Dec  2 23:05:28 2009
@@ -11,11 +11,13 @@
 // the License.
 
 var Filter = {
-  filter : function(docs, req, userCtx) {
+  filter : function(funSrc, docs, req, userCtx) {
+    var filterFun = compileFunction(funSrc);
+    
     var results = [];
     try {
       for (var i=0; i &lt; docs.length; i++) {
-        results.push((funs[0](docs[i], req, userCtx) &amp;&amp; true) || false);
+        results.push((filterFun(docs[i], req, userCtx) &amp;&amp; true) || false);
       };
       respond([true, results]);
     } catch (error) {

Modified: couchdb/trunk/src/couchdb/couch_httpd_db.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_httpd_db.erl?rev=886334&amp;r1=886333&amp;r2=886334&amp;view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_httpd_db.erl (original)
+++ couchdb/trunk/src/couchdb/couch_httpd_db.erl Wed Dec  2 23:05:28 2009
@@ -82,7 +82,7 @@
     send_chunk(Resp, "{\"results\":[\n").
 
 handle_changes_req(#httpd{method='GET',path_parts=[DbName|_]}=Req, Db) -&gt;
-    {FilterFun, EndFilterFun} = make_filter_funs(Req, Db),
+    FilterFun = make_filter_fun(Req, Db),
     {ok, Info} = couch_db:get_db_info(Db),
     Seq = proplists:get_value(update_seq, Info),
     {Dir, StartSeq} = case couch_httpd:qs_value(Req, "descending", "false") of 
@@ -110,7 +110,7 @@
                             {httpd, clients_requesting_changes}),
         try
             keep_sending_changes(Req, Resp, Db, StartSeq, &lt;&lt;""&gt;&gt;, Timeout,
-                TimeoutFun, ResponseType, Limit, FilterFun, EndFilterFun)
+                TimeoutFun, ResponseType, Limit, FilterFun)
         after
             couch_db_update_notifier:stop(Notify),
             get_rest_db_updated() % clean out any remaining update messages
@@ -123,7 +123,7 @@
             start_sending_changes(Resp, ResponseType),
             {ok, {_, LastSeq, _Prepend, _, _, _, _, _}} =
                     send_changes(Req, Resp, Db, Dir, StartSeq, &lt;&lt;""&gt;&gt;, "normal",
-                        Limit, FilterFun, EndFilterFun),
+                        Limit, FilterFun),
             end_sending_changes(Resp, LastSeq, ResponseType)
         end)
     end;
@@ -154,9 +154,9 @@
     end_json_response(Resp).
 
 keep_sending_changes(#httpd{user_ctx=UserCtx,path_parts=[DbName|_]}=Req, Resp,
-        Db, StartSeq, Prepend, Timeout, TimeoutFun, ResponseType, Limit, Filter, End) -&gt;
+        Db, StartSeq, Prepend, Timeout, TimeoutFun, ResponseType, Limit, Filter) -&gt;
     {ok, {_, EndSeq, Prepend2, _, _, _, NewLimit, _}} = send_changes(Req, Resp, Db, fwd,
StartSeq,
-        Prepend, ResponseType, Limit, Filter, End),
+        Prepend, ResponseType, Limit, Filter),
     couch_db:close(Db),
     if
     Limit &gt; NewLimit, ResponseType == "longpoll" -&gt;
@@ -167,7 +167,7 @@
             case couch_db:open(DbName, [{user_ctx, UserCtx}]) of
             {ok, Db2} -&gt;
                 keep_sending_changes(Req, Resp, Db2, EndSeq, Prepend2, Timeout,
-                    TimeoutFun, ResponseType, NewLimit, Filter, End);
+                    TimeoutFun, ResponseType, NewLimit, Filter);
             _Else -&gt;
                 end_sending_changes(Resp, EndSeq, ResponseType)
             end;
@@ -178,7 +178,7 @@
 
 changes_enumerator(DocInfos, {Db, _, _, FilterFun, Resp, "continuous", Limit, IncludeDocs})
-&gt;
     [#doc_info{id=Id, high_seq=Seq, revs=[#rev_info{deleted=Del,rev=Rev}|_]}|_] = DocInfos,
-    Results0 = [FilterFun(DocInfo) || DocInfo &lt;- DocInfos],
+    Results0 = FilterFun(DocInfos),
     Results = [Result || Result &lt;- Results0, Result /= null],
     Go = if Limit =&lt; 1 -&gt; stop; true -&gt; ok end,
     case Results of
@@ -191,7 +191,7 @@
     end;
 changes_enumerator(DocInfos, {Db, _, Prepend, FilterFun, Resp, _, Limit, IncludeDocs}) -&gt;
     [#doc_info{id=Id, high_seq=Seq, revs=[#rev_info{deleted=Del,rev=Rev}|_]}|_] = DocInfos,
-    Results0 = [FilterFun(DocInfo) || DocInfo &lt;- DocInfos],
+    Results0 = FilterFun(DocInfos),
     Results = [Result || Result &lt;- Results0, Result /= null],
     Go = if Limit =&lt; 1 -&gt; stop; true -&gt; ok end,
     case Results of
@@ -212,27 +212,24 @@
 deleted_item(true) -&gt; [{deleted,true}];
 deleted_item(_) -&gt; [].
 
-send_changes(Req, Resp, Db, Dir, StartSeq, Prepend, ResponseType, Limit, FilterFun, End)
-&gt;
+send_changes(Req, Resp, Db, Dir, StartSeq, Prepend, ResponseType, Limit, FilterFun) -&gt;
     Style = list_to_existing_atom(
             couch_httpd:qs_value(Req, "style", "main_only")),
     IncludeDocs = list_to_existing_atom(
             couch_httpd:qs_value(Req, "include_docs", "false")),
-    try
-        couch_db:changes_since(Db, Style, StartSeq, fun changes_enumerator/2, 
-            [{dir, Dir}], {Db, StartSeq, Prepend, FilterFun, Resp, ResponseType, Limit, IncludeDocs})
-    after
-        End()
-    end.
+    couch_db:changes_since(Db, Style, StartSeq, fun changes_enumerator/2, 
+            [{dir, Dir}], {Db, StartSeq, Prepend, FilterFun, Resp, ResponseType, Limit, IncludeDocs}).
 
-make_filter_funs(Req, Db) -&gt;
+make_filter_fun(Req, Db) -&gt;
     Filter = couch_httpd:qs_value(Req, "filter", ""),
     case [list_to_binary(couch_httpd:unquote(Part))
             || Part &lt;- string:tokens(Filter, "/")] of
     [] -&gt;
-    {fun(#doc_info{revs=[#rev_info{rev=Rev}|_]}) -&gt;
-            {[{rev, couch_doc:rev_to_str(Rev)}]}
-        end,
-        fun() -&gt; ok end};
+        fun(DocInfos) -&gt;
+        % doing this as a batch is more efficient for external filters
+            [{[{rev, couch_doc:rev_to_str(Rev)}]} ||
+                #doc_info{revs=[#rev_info{rev=Rev}|_]} &lt;- DocInfos]
+        end;
     [DName, FName] -&gt;
         DesignId = &lt;&lt;"_design/", DName/binary&gt;&gt;,
         case couch_db:open_doc(Db, DesignId) of
@@ -244,21 +241,15 @@
                 throw({bad_request, "invalid filter function"})
             end,
             Lang = proplists:get_value(&lt;&lt;"language"&gt;&gt;, Props, &lt;&lt;"javascript"&gt;&gt;),
-            {ok, Pid} = couch_query_servers:start_filter(Lang, FilterSrc),
-            FilterFun = fun(DInfo = #doc_info{revs=[#rev_info{rev=Rev}|_]}) -&gt;
-                {ok, Doc} = couch_db:open_doc(Db, DInfo, [deleted]),
-                {ok, Pass} = couch_query_servers:filter_doc(Pid, Doc, Req, Db),
-                case Pass of
-                true -&gt;
-                    {[{rev, couch_doc:rev_to_str(Rev)}]};
-                false -&gt;
-                    null
-                end
-            end,
-            EndFilterFun = fun() -&gt;
-                couch_query_servers:end_filter(Pid)
-            end,
-            {FilterFun, EndFilterFun};
+            fun(DocInfos) -&gt;
+                Docs = [Doc || {ok, Doc} &lt;- [
+                    {ok, Doc} = couch_db:open_doc(Db, DInfo, [deleted])
+                    || DInfo &lt;- DocInfos]],
+                {ok, Passes} = couch_query_servers:filter_docs(Lang, FilterSrc, Docs, Req,
Db),
+                [{[{rev, couch_doc:rev_to_str(Rev)}]}
+                    || #doc_info{revs=[#rev_info{rev=Rev}|_]} &lt;- DocInfos, 
+                    Pass &lt;- Passes, Pass == true]
+            end;
         _Error -&gt;
             throw({bad_request, "invalid design doc"})
         end;

Modified: couchdb/trunk/src/couchdb/couch_query_servers.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_query_servers.erl?rev=886334&amp;r1=886333&amp;r2=886334&amp;view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_query_servers.erl (original)
+++ couchdb/trunk/src/couchdb/couch_query_servers.erl Wed Dec  2 23:05:28 2009
@@ -20,7 +20,7 @@
 -export([reduce/3, rereduce/3,validate_doc_update/5]).
 -export([render_doc_show/6, render_doc_update/6, start_view_list/2,
         render_list_head/4, render_list_row/4, render_list_tail/1]).
--export([start_filter/2, filter_doc/4, end_filter/1]).
+-export([filter_docs/5]).
 % -export([test/0]).
 
 -include("couch_db.hrl").
@@ -231,22 +231,15 @@
     ok = ret_os_process(Proc),
     JsonResp.
 
-start_filter(Lang, FilterSrc) -&gt;
-    Proc = get_os_process(Lang),
-    true = proc_prompt(Proc, [&lt;&lt;"add_fun"&gt;&gt;, FilterSrc]),
-    {ok, Proc}.
-
-filter_doc(Proc, Doc, Req, Db) -&gt;
+filter_docs(Lang, Src, Docs, Req, Db) -&gt;
     JsonReq = couch_httpd_external:json_req_obj(Req, Db),
-    JsonDoc = couch_doc:to_json_obj(Doc, [revs]),
+    JsonDocs = [couch_doc:to_json_obj(Doc, [revs]) || Doc &lt;- Docs],
     JsonCtx = couch_util:json_user_ctx(Db),
-    [true, [Pass]] = proc_prompt(Proc,
-        [&lt;&lt;"filter"&gt;&gt;, [JsonDoc], JsonReq, JsonCtx]),
-    {ok, Pass}.
-
-end_filter(Proc) -&gt;
-    ok = ret_os_process(Proc).
-    
+    Proc = get_os_process(Lang),
+    [true, Passes] = proc_prompt(Proc,
+        [&lt;&lt;"filter"&gt;&gt;, Src, JsonDocs, JsonReq, JsonCtx]),
+    ret_os_process(Proc),
+    {ok, Passes}.    
 
 init([]) -&gt;
 

Modified: couchdb/trunk/test/view_server/query_server_spec.rb
URL: http://svn.apache.org/viewvc/couchdb/trunk/test/view_server/query_server_spec.rb?rev=886334&amp;r1=886333&amp;r2=886334&amp;view=diff
==============================================================================
--- couchdb/trunk/test/view_server/query_server_spec.rb (original)
+++ couchdb/trunk/test/view_server/query_server_spec.rb Wed Dec  2 23:05:28 2009
@@ -606,10 +606,9 @@
     before(:all) do
       @fun = functions["filter-basic"][LANGUAGE]
       @qs.reset!
-      @qs.add_fun(@fun).should == true
     end
     it "should only return true for good docs" do
-      @qs.run(["filter", [{"key"=&gt;"bam", "good" =&gt; true}, {"foo" =&gt; "bar"}, {"good"
=&gt; true}], {"req" =&gt; "foo"}]).
+      @qs.run(["filter", @fun, [{"key"=&gt;"bam", "good" =&gt; true}, {"foo" =&gt; "bar"},
{"good" =&gt; true}], {"req" =&gt; "foo"}]).
         should ==  [true, [true, false, true]]
     end
   end




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886319 - in /couchdb/trunk/src/couchdb: couch_external_manager.erl couch_external_server.erl couch_os_process.erl</title>
<author><name>mhammond@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091202214448.8A9D1238898B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091202214448-8A9D1238898B@eris-apache-org%3e</id>
<updated>2009-12-02T21:44:48Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: mhammond
Date: Wed Dec  2 21:44:47 2009
New Revision: 886319

URL: http://svn.apache.org/viewvc?rev=886319&amp;view=rev
Log:
COUCHDB-588: don't make log noise when an OS process chooses to terminate normally

Modified:
    couchdb/trunk/src/couchdb/couch_external_manager.erl
    couchdb/trunk/src/couchdb/couch_external_server.erl
    couchdb/trunk/src/couchdb/couch_os_process.erl

Modified: couchdb/trunk/src/couchdb/couch_external_manager.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_external_manager.erl?rev=886319&amp;r1=886318&amp;r2=886319&amp;view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_external_manager.erl (original)
+++ couchdb/trunk/src/couchdb/couch_external_manager.erl Wed Dec  2 21:44:47 2009
@@ -37,6 +37,7 @@
 % gen_server API
 
 init([]) -&gt;
+    process_flag(trap_exit, true),
     Handlers = ets:new(couch_external_manager_handlers, [set, private]),
     couch_config:register(fun config_change/2),
     {ok, Handlers}.
@@ -81,12 +82,19 @@
 handle_cast(_Whatever, State) -&gt;
     {noreply, State}.
 
-handle_info({'EXIT', Reason, Pid}, Handlers) -&gt;
-    ?LOG_DEBUG("EXTERNAL: Server ~p died. (reason: ~p)", [Pid, Reason]),
+handle_info({'EXIT', Pid, normal}, Handlers) -&gt;
+    ?LOG_INFO("EXTERNAL: Server ~p terminated normally", [Pid]),
+    % The process terminated normally without us asking - Remove Pid from the
+    % handlers table so we don't attempt to reuse it
+    ets:match_delete(Handlers, {'_', Pid}),
+    {noreply, Handlers};
+
+handle_info({'EXIT', Pid, Reason}, Handlers) -&gt;
+    ?LOG_INFO("EXTERNAL: Server ~p died. (reason: ~p)", [Pid, Reason]),
     % Remove Pid from the handlers table so we don't try closing
     % it a second time in terminate/2.
     ets:match_delete(Handlers, {'_', Pid}),
-    {stop, Handlers}.
+    {stop, normal, Handlers}.
 
 code_change(_OldVsn, State, _Extra) -&gt;
     {ok, State}.

Modified: couchdb/trunk/src/couchdb/couch_external_server.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_external_server.erl?rev=886319&amp;r1=886318&amp;r2=886319&amp;view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_external_server.erl (original)
+++ couchdb/trunk/src/couchdb/couch_external_server.erl Wed Dec  2 21:44:47 2009
@@ -34,6 +34,7 @@
 init([Name, Command]) -&gt;
     ?LOG_INFO("EXTERNAL: Starting process for: ~s", [Name]),
     ?LOG_INFO("COMMAND: ~s", [Command]),
+    process_flag(trap_exit, true),
     Timeout = list_to_integer(couch_config:get("couchdb", "os_process_timeout",
         "5000")),
     {ok, Pid} = couch_os_process:start_link(Command, [{timeout, Timeout}]),

Modified: couchdb/trunk/src/couchdb/couch_os_process.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_os_process.erl?rev=886319&amp;r1=886318&amp;r2=886319&amp;view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_os_process.erl (original)
+++ couchdb/trunk/src/couchdb/couch_os_process.erl Wed Dec  2 21:44:47 2009
@@ -162,6 +162,9 @@
     ?LOG_DEBUG("OS Proc: Unknown cast: ~p", [Msg]),
     {noreply, OsProc}.
 
+handle_info({Port, {exit_status, 0}}, #os_proc{port=Port}=OsProc) -&gt;
+    ?LOG_INFO("OS Process terminated normally", []),
+    {stop, normal, OsProc};
 handle_info({Port, {exit_status, Status}}, #os_proc{port=Port}=OsProc) -&gt;
     ?LOG_ERROR("OS Process died with status: ~p", [Status]),
     {stop, {exit_status, Status}, OsProc};




</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BCouchdb_Wiki=5D_Update_of_=22Release=5Fprocedure=22_by_NoahS?= =?utf-8?q?later?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091202192130.20139.7483@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091202192130-20139-7483@eos-apache-org%3e</id>
<updated>2009-12-02T19:21:30Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "Release_procedure" page has been changed by NoahSlater.
http://wiki.apache.org/couchdb/Release_procedure?action=diff&amp;rev1=28&amp;rev2=29

--------------------------------------------------

   * [[https://issues.apache.org/jira/secure/project/ManageVersions.jspa?pid=12310780|Update
versions]] in JIRA.
     * If the currently released version is 0.1.0, JIRA should have options for 0.1.1, 0.2.0,
and 0.3.0.
   * Update the links on this page to most recent email archives.
-  * Call a discussion on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]]
mailing list about updating the [[http://couchdb.apache.org/roadmap.html|roadmap]].
+  * Call a discussion on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]]
mailing list about updating the [[http://couchdb.apache.org/roadmap.html|roadmap]] and archiving
old releases.
  
  == Useful Resources ==
  


</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886272 - in /couchdb/branches/0.10.x: CHANGES NEWS</title>
<author><name>nslater@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091202191639.1C0D523888C5@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091202191639-1C0D523888C5@eris-apache-org%3e</id>
<updated>2009-12-02T19:16:38Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: nslater
Date: Wed Dec  2 19:16:38 2009
New Revision: 886272

URL: http://svn.apache.org/viewvc?rev=886272&amp;view=rev
Log:
backported news and changes

Modified:
    couchdb/branches/0.10.x/CHANGES
    couchdb/branches/0.10.x/NEWS

Modified: couchdb/branches/0.10.x/CHANGES
URL: http://svn.apache.org/viewvc/couchdb/branches/0.10.x/CHANGES?rev=886272&amp;r1=886271&amp;r2=886272&amp;view=diff
==============================================================================
--- couchdb/branches/0.10.x/CHANGES (original)
+++ couchdb/branches/0.10.x/CHANGES Wed Dec  2 19:16:38 2009
@@ -43,6 +43,13 @@
  * Added optional cookie-based authentication handler.
  * Added optional two-legged OAuth authentication handler.
 
+Version 0.9.2
+-------------
+
+ * Remove branch callbacks to allow building couchjs against newer versions of
+   Spidermonkey.
+ * Fix replication with 0.10 servers initiated by an 0.9 server (COUCHDB-559).
+
 Version 0.9.1
 -------------
 

Modified: couchdb/branches/0.10.x/NEWS
URL: http://svn.apache.org/viewvc/couchdb/branches/0.10.x/NEWS?rev=886272&amp;r1=886271&amp;r2=886272&amp;view=diff
==============================================================================
--- couchdb/branches/0.10.x/NEWS (original)
+++ couchdb/branches/0.10.x/NEWS Wed Dec  2 19:16:38 2009
@@ -36,6 +36,13 @@
  * Added modular configuration file directories.
  * Miscellaneous improvements to build, system integration, and portability.
 
+Version 0.9.2
+-------------
+
+ * Remove branch callbacks to allow building couchjs against newer versions of
+   Spidermonkey.
+ * Fix replication with 0.10 servers initiated by an 0.9 server.
+
 Version 0.9.1
 -------------
 




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886270 - /couchdb/trunk/NEWS</title>
<author><name>nslater@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091202191508.7A75923888C5@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091202191508-7A75923888C5@eris-apache-org%3e</id>
<updated>2009-12-02T19:15:08Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: nslater
Date: Wed Dec  2 19:15:07 2009
New Revision: 886270

URL: http://svn.apache.org/viewvc?rev=886270&amp;view=rev
Log:
minor change

Modified:
    couchdb/trunk/NEWS

Modified: couchdb/trunk/NEWS
URL: http://svn.apache.org/viewvc/couchdb/trunk/NEWS?rev=886270&amp;r1=886269&amp;r2=886270&amp;view=diff
==============================================================================
--- couchdb/trunk/NEWS (original)
+++ couchdb/trunk/NEWS Wed Dec  2 19:15:07 2009
@@ -65,7 +65,7 @@
 
  * Remove branch callbacks to allow building couchjs against newer versions of
    Spidermonkey.
- * Fix replication with 0.10+ servers initiated by an 0.9 server.
+ * Fix replication with 0.10 servers initiated by an 0.9 server.
 
 Version 0.9.1
 -------------




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886269 - in /couchdb/branches/0.9.x: CHANGES NEWS</title>
<author><name>nslater@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091202191434.795FD23888D1@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091202191434-795FD23888D1@eris-apache-org%3e</id>
<updated>2009-12-02T19:14:33Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: nslater
Date: Wed Dec  2 19:14:32 2009
New Revision: 886269

URL: http://svn.apache.org/viewvc?rev=886269&amp;view=rev
Log:
minor change

Modified:
    couchdb/branches/0.9.x/CHANGES
    couchdb/branches/0.9.x/NEWS

Modified: couchdb/branches/0.9.x/CHANGES
URL: http://svn.apache.org/viewvc/couchdb/branches/0.9.x/CHANGES?rev=886269&amp;r1=886268&amp;r2=886269&amp;view=diff
==============================================================================
--- couchdb/branches/0.9.x/CHANGES (original)
+++ couchdb/branches/0.9.x/CHANGES Wed Dec  2 19:14:32 2009
@@ -6,7 +6,7 @@
 
  * Remove branch callbacks to allow building couchjs against newer versions of
    Spidermonkey.
- * Fix replication with 0.10+ servers initiated by an 0.9 server (COUCHDB-559).
+ * Fix replication with 0.10 servers initiated by an 0.9 server (COUCHDB-559).
 
 Version 0.9.1
 -------------

Modified: couchdb/branches/0.9.x/NEWS
URL: http://svn.apache.org/viewvc/couchdb/branches/0.9.x/NEWS?rev=886269&amp;r1=886268&amp;r2=886269&amp;view=diff
==============================================================================
--- couchdb/branches/0.9.x/NEWS (original)
+++ couchdb/branches/0.9.x/NEWS Wed Dec  2 19:14:32 2009
@@ -12,7 +12,7 @@
 
  * Remove branch callbacks to allow building couchjs against newer versions of
    Spidermonkey.
- * Fix replication with 0.10+ servers initiated by an 0.9 server.
+ * Fix replication with 0.10 servers initiated by an 0.9 server.
 
 Version 0.9.1
 -------------




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886267 - /couchdb/trunk/CHANGES</title>
<author><name>nslater@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091202191315.080C923888D1@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091202191315-080C923888D1@eris-apache-org%3e</id>
<updated>2009-12-02T19:13:14Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: nslater
Date: Wed Dec  2 19:13:13 2009
New Revision: 886267

URL: http://svn.apache.org/viewvc?rev=886267&amp;view=rev
Log:
minor change

Modified:
    couchdb/trunk/CHANGES

Modified: couchdb/trunk/CHANGES
URL: http://svn.apache.org/viewvc/couchdb/trunk/CHANGES?rev=886267&amp;r1=886266&amp;r2=886267&amp;view=diff
==============================================================================
--- couchdb/trunk/CHANGES (original)
+++ couchdb/trunk/CHANGES Wed Dec  2 19:13:13 2009
@@ -83,7 +83,7 @@
 
  * Remove branch callbacks to allow building couchjs against newer versions of
    Spidermonkey.
- * Fix replication with 0.10+ servers initiated by an 0.9 server (COUCHDB-559).
+ * Fix replication with 0.10 servers initiated by an 0.9 server (COUCHDB-559).
 
 Version 0.9.1
 -------------




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886265 - in /couchdb/site: build htdocs/community/committers.html htdocs/community/lists.html htdocs/downloads.html htdocs/downloads.txt</title>
<author><name>nslater@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091202191145.EC13823888C5@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091202191145-EC13823888C5@eris-apache-org%3e</id>
<updated>2009-12-02T19:11:45Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: nslater
Date: Wed Dec  2 19:11:43 2009
New Revision: 886265

URL: http://svn.apache.org/viewvc?rev=886265&amp;view=rev
Log:
updated site

Modified:
    couchdb/site/build
    couchdb/site/htdocs/community/committers.html
    couchdb/site/htdocs/community/lists.html
    couchdb/site/htdocs/downloads.html
    couchdb/site/htdocs/downloads.txt

Modified: couchdb/site/build
URL: http://svn.apache.org/viewvc/couchdb/site/build?rev=886265&amp;r1=886264&amp;r2=886265&amp;view=diff
==============================================================================
--- couchdb/site/build (original)
+++ couchdb/site/build Wed Dec  2 19:11:43 2009
@@ -2,4 +2,4 @@
 
 cd "`dirname \"$0\"`"
 
-./bin/build.py
\ No newline at end of file
+./bin/build.py

Modified: couchdb/site/htdocs/community/committers.html
URL: http://svn.apache.org/viewvc/couchdb/site/htdocs/community/committers.html?rev=886265&amp;r1=886264&amp;r2=886265&amp;view=diff
==============================================================================
--- couchdb/site/htdocs/community/committers.html (original)
+++ couchdb/site/htdocs/community/committers.html Wed Dec  2 19:11:43 2009
@@ -73,50 +73,50 @@
 &lt;/div&gt;
       &lt;div id="content"&gt;&lt;h1&gt;Committers&lt;/h1&gt;
 
-&lt;p&gt;&lt;a href="http://damienkatz.net/"&gt;Damien Katz&lt;/a&gt;, &lt;a href="&amp;#109;&amp;#x61;i&amp;#x6C;&amp;#x74;&amp;#111;:d&amp;#x61;&amp;#x6D;&amp;#105;&amp;#x65;&amp;#110;&amp;#64;&amp;#x61;&amp;#112;&amp;#97;&amp;#99;&amp;#x68;&amp;#101;&amp;#46;&amp;#x6F;&amp;#x72;&amp;#103;"&gt;d&amp;#x61;&amp;#x6D;&amp;#105;&amp;#x65;&amp;#110;&amp;#64;&amp;#x61;&amp;#112;&amp;#97;&amp;#99;&amp;#x68;&amp;#101;&amp;#46;&amp;#x6F;&amp;#x72;&amp;#103;&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;&lt;a href="http://damienkatz.net/"&gt;Damien Katz&lt;/a&gt;, &lt;a href="&amp;#x6D;&amp;#x61;&amp;#x69;&amp;#x6C;&amp;#116;&amp;#111;:&amp;#x64;&amp;#97;&amp;#x6D;&amp;#105;&amp;#x65;&amp;#x6E;&amp;#64;&amp;#97;&amp;#112;&amp;#x61;&amp;#99;&amp;#x68;&amp;#x65;&amp;#46;&amp;#111;&amp;#x72;&amp;#103;"&gt;&amp;#x64;&amp;#97;&amp;#x6D;&amp;#105;&amp;#x65;&amp;#x6E;&amp;#64;&amp;#97;&amp;#112;&amp;#x61;&amp;#99;&amp;#x68;&amp;#x65;&amp;#46;&amp;#111;&amp;#x72;&amp;#103;&lt;/a&gt;&lt;/p&gt;
 
 &lt;p&gt;Original developer and remains the project lead.&lt;/p&gt;
 
-&lt;p&gt;&lt;a href="http://jan.prima.de/"&gt;Jan Lehnardt&lt;/a&gt;, &lt;a href="&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#x74;&amp;#111;:&amp;#x6A;&amp;#97;&amp;#110;&amp;#64;&amp;#x61;&amp;#x70;&amp;#97;&amp;#x63;&amp;#x68;&amp;#101;&amp;#x2E;&amp;#x6F;&amp;#114;&amp;#x67;"&gt;&amp;#x6A;&amp;#97;&amp;#110;&amp;#64;&amp;#x61;&amp;#x70;&amp;#97;&amp;#x63;&amp;#x68;&amp;#101;&amp;#x2E;&amp;#x6F;&amp;#114;&amp;#x67;&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;&lt;a href="http://jan.prima.de/"&gt;Jan Lehnardt&lt;/a&gt;, &lt;a href="&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#116;&amp;#111;:&amp;#x6A;&amp;#97;&amp;#110;&amp;#64;&amp;#x61;&amp;#112;&amp;#97;&amp;#x63;&amp;#104;&amp;#101;&amp;#46;&amp;#111;&amp;#114;&amp;#x67;"&gt;&amp;#x6A;&amp;#97;&amp;#110;&amp;#64;&amp;#x61;&amp;#112;&amp;#97;&amp;#x63;&amp;#104;&amp;#101;&amp;#46;&amp;#111;&amp;#114;&amp;#x67;&lt;/a&gt;&lt;/p&gt;
 
 &lt;p&gt;Worked on the original UNIX port and now works on all ends in CouchDB.
    He is a freelancing CouchDB consultant and gives presentations around the
    world.&lt;/p&gt;
 
-&lt;p&gt;&lt;a href="http://tumbolia.org/nslater"&gt;Noah Slater&lt;/a&gt;, &lt;a href="&amp;#x6D;&amp;#97;&amp;#105;&amp;#108;&amp;#116;&amp;#x6F;:&amp;#x6E;s&amp;#x6C;&amp;#x61;&amp;#x74;&amp;#101;&amp;#x72;&amp;#64;&amp;#x61;&amp;#x70;&amp;#97;&amp;#99;&amp;#x68;&amp;#x65;&amp;#46;&amp;#x6F;&amp;#x72;&amp;#103;"&gt;&amp;#x6E;s&amp;#x6C;&amp;#x61;&amp;#x74;&amp;#101;&amp;#x72;&amp;#64;&amp;#x61;&amp;#x70;&amp;#97;&amp;#99;&amp;#x68;&amp;#x65;&amp;#46;&amp;#x6F;&amp;#x72;&amp;#103;&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;&lt;a href="http://tumbolia.org/nslater"&gt;Noah Slater&lt;/a&gt;, &lt;a href="&amp;#x6D;&amp;#97;&amp;#x69;&amp;#x6C;t&amp;#111;:&amp;#110;&amp;#x73;&amp;#108;&amp;#x61;&amp;#116;&amp;#101;&amp;#x72;&amp;#64;&amp;#x61;&amp;#x70;a&amp;#99;&amp;#104;&amp;#x65;&amp;#x2E;&amp;#111;&amp;#x72;&amp;#x67;"&gt;&amp;#110;&amp;#x73;&amp;#108;&amp;#x61;&amp;#116;&amp;#101;&amp;#x72;&amp;#64;&amp;#x61;&amp;#x70;a&amp;#99;&amp;#104;&amp;#x65;&amp;#x2E;&amp;#111;&amp;#x72;&amp;#x67;&lt;/a&gt;&lt;/p&gt;
 
 &lt;p&gt;Developed and maintains the Autotools build system and application
    infrastructure. He is CouchDB&amp;#8217;s release manager and maintains a number of
    related packages for Debian GNU/Linux.&lt;/p&gt;
 
-&lt;p&gt;&lt;a href="http://www.cmlenz.net/"&gt;Christopher Lenz&lt;/a&gt;, &lt;a href="&amp;#x6D;&amp;#x61;&amp;#x69;&amp;#x6C;&amp;#116;&amp;#x6F;:c&amp;#x6D;l&amp;#101;&amp;#x6E;&amp;#x7A;&amp;#64;&amp;#97;&amp;#x70;&amp;#x61;&amp;#99;&amp;#x68;&amp;#101;&amp;#x2E;o&amp;#114;&amp;#x67;"&gt;c&amp;#x6D;l&amp;#101;&amp;#x6E;&amp;#x7A;&amp;#64;&amp;#97;&amp;#x70;&amp;#x61;&amp;#99;&amp;#x68;&amp;#101;&amp;#x2E;o&amp;#114;&amp;#x67;&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;&lt;a href="http://www.cmlenz.net/"&gt;Christopher Lenz&lt;/a&gt;, &lt;a href="&amp;#x6D;a&amp;#x69;&amp;#108;&amp;#x74;&amp;#111;:&amp;#99;&amp;#109;&amp;#108;&amp;#x65;&amp;#x6E;&amp;#122;&amp;#64;&amp;#x61;&amp;#112;&amp;#97;&amp;#x63;&amp;#x68;e&amp;#46;&amp;#x6F;&amp;#x72;&amp;#103;"&gt;&amp;#99;&amp;#109;&amp;#108;&amp;#x65;&amp;#x6E;&amp;#122;&amp;#64;&amp;#x61;&amp;#112;&amp;#97;&amp;#x63;&amp;#x68;e&amp;#46;&amp;#x6F;&amp;#x72;&amp;#103;&lt;/a&gt;&lt;/p&gt;
 
 &lt;p&gt;Developed and maintains Futon, the Web administration console. He works on
    the JavaScript view engine, SpiderMonkey and MochiWeb integration in
    addition to an external Python client.&lt;/p&gt;
 
-&lt;p&gt;&lt;a href="http://jchris.mfdz.com"&gt;J. Chris Anderson&lt;/a&gt;, &lt;a href="m&amp;#97;&amp;#105;&amp;#x6C;&amp;#x74;o:&amp;#106;&amp;#x63;&amp;#104;&amp;#114;&amp;#105;&amp;#x73;&amp;#64;&amp;#97;&amp;#x70;&amp;#97;&amp;#x63;h&amp;#101;&amp;#46;&amp;#111;&amp;#114;&amp;#x67;"&gt;&amp;#106;&amp;#x63;&amp;#104;&amp;#114;&amp;#105;&amp;#x73;&amp;#64;&amp;#97;&amp;#x70;&amp;#97;&amp;#x63;h&amp;#101;&amp;#46;&amp;#111;&amp;#114;&amp;#x67;&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;&lt;a href="http://jchris.mfdz.com"&gt;J. Chris Anderson&lt;/a&gt;, &lt;a href="&amp;#x6D;&amp;#97;i&amp;#108;&amp;#x74;&amp;#111;:&amp;#106;&amp;#99;hr&amp;#x69;&amp;#x73;&amp;#64;&amp;#x61;&amp;#x70;&amp;#97;&amp;#x63;&amp;#104;&amp;#101;&amp;#x2E;&amp;#x6F;r&amp;#x67;"&gt;&amp;#106;&amp;#99;hr&amp;#x69;&amp;#x73;&amp;#64;&amp;#x61;&amp;#x70;&amp;#97;&amp;#x63;&amp;#104;&amp;#101;&amp;#x2E;&amp;#x6F;r&amp;#x67;&lt;/a&gt;&lt;/p&gt;
 
 &lt;p&gt;Upgraded the Erlang JSON term format. Integrates community patches,
   particularly related to the HTTP API and the MapReduce system. Gives talks and
   presentations about CouchDB, with an eye toward recruiting more developers.&lt;/p&gt;
 
-&lt;p&gt;&lt;a href="http://www.davispj.com/"&gt;Paul J. Davis&lt;/a&gt;, &lt;a href="&amp;#109;&amp;#x61;i&amp;#108;&amp;#x74;&amp;#111;:&amp;#100;a&amp;#x76;&amp;#x69;&amp;#115;&amp;#112;&amp;#64;&amp;#x61;&amp;#x70;&amp;#97;&amp;#99;&amp;#x68;&amp;#x65;&amp;#x2E;o&amp;#x72;&amp;#x67;"&gt;&amp;#100;a&amp;#x76;&amp;#x69;&amp;#115;&amp;#112;&amp;#64;&amp;#x61;&amp;#x70;&amp;#97;&amp;#99;&amp;#x68;&amp;#x65;&amp;#x2E;o&amp;#x72;&amp;#x67;&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;&lt;a href="http://www.davispj.com/"&gt;Paul J. Davis&lt;/a&gt;, &lt;a href="&amp;#109;&amp;#x61;i&amp;#108;&amp;#x74;&amp;#111;:&amp;#100;&amp;#x61;&amp;#x76;is&amp;#x70;&amp;#64;&amp;#x61;&amp;#x70;&amp;#97;&amp;#x63;&amp;#104;&amp;#x65;&amp;#x2E;&amp;#111;&amp;#x72;&amp;#x67;"&gt;&amp;#100;&amp;#x61;&amp;#x76;is&amp;#x70;&amp;#64;&amp;#x61;&amp;#x70;&amp;#97;&amp;#x63;&amp;#104;&amp;#x65;&amp;#x2E;&amp;#111;&amp;#x72;&amp;#x67;&lt;/a&gt;&lt;/p&gt;
 
 &lt;p&gt;Developed features for the HTTP API as well as helped with recent upgrades
   to the MapReduce system. Spends time tracking down various bugs reported in
   JIRA.&lt;/p&gt;
 
-&lt;p&gt;Adam Kocoloski, &lt;a href="m&amp;#x61;&amp;#105;&amp;#x6C;&amp;#x74;&amp;#111;:&amp;#107;o&amp;#x63;o&amp;#108;&amp;#111;&amp;#115;&amp;#107;&amp;#64;&amp;#x61;p&amp;#x61;&amp;#99;&amp;#x68;&amp;#101;&amp;#x2E;&amp;#111;&amp;#x72;&amp;#x67;"&gt;&amp;#107;o&amp;#x63;o&amp;#108;&amp;#111;&amp;#115;&amp;#107;&amp;#64;&amp;#x61;p&amp;#x61;&amp;#99;&amp;#x68;&amp;#101;&amp;#x2E;&amp;#111;&amp;#x72;&amp;#x67;&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;Adam Kocoloski, &lt;a href="&amp;#x6D;&amp;#97;&amp;#105;&amp;#x6C;&amp;#x74;&amp;#111;:&amp;#x6B;o&amp;#x63;&amp;#x6F;&amp;#108;&amp;#x6F;&amp;#x73;&amp;#107;&amp;#64;&amp;#x61;&amp;#x70;ac&amp;#104;&amp;#101;&amp;#x2E;&amp;#111;&amp;#114;&amp;#103;"&gt;&amp;#x6B;o&amp;#x63;&amp;#x6F;&amp;#108;&amp;#x6F;&amp;#x73;&amp;#107;&amp;#64;&amp;#x61;&amp;#x70;ac&amp;#104;&amp;#101;&amp;#x2E;&amp;#111;&amp;#114;&amp;#103;&lt;/a&gt;&lt;/p&gt;
 
 &lt;p&gt;Maintains and extends the replicator. Hacks on various other parts of the
   core database.&lt;/p&gt;
 
-&lt;p&gt;Mark Hammond, &lt;a href="&amp;#x6D;&amp;#x61;i&amp;#108;&amp;#x74;&amp;#x6F;:&amp;#109;&amp;#104;&amp;#x61;&amp;#x6D;&amp;#109;&amp;#x6F;&amp;#x6E;&amp;#100;&amp;#64;&amp;#x61;&amp;#112;&amp;#x61;&amp;#x63;&amp;#x68;e&amp;#46;&amp;#111;&amp;#114;&amp;#103;"&gt;&amp;#109;&amp;#104;&amp;#x61;&amp;#x6D;&amp;#109;&amp;#x6F;&amp;#x6E;&amp;#100;&amp;#64;&amp;#x61;&amp;#112;&amp;#x61;&amp;#x63;&amp;#x68;e&amp;#46;&amp;#111;&amp;#114;&amp;#103;&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;Mark Hammond, &lt;a href="&amp;#109;&amp;#97;i&amp;#x6C;&amp;#116;&amp;#x6F;:&amp;#109;&amp;#x68;&amp;#97;&amp;#x6D;&amp;#109;&amp;#x6F;n&amp;#x64;&amp;#64;&amp;#x61;&amp;#x70;&amp;#97;&amp;#99;&amp;#104;&amp;#101;&amp;#x2E;&amp;#111;&amp;#x72;&amp;#103;"&gt;&amp;#109;&amp;#x68;&amp;#97;&amp;#x6D;&amp;#109;&amp;#x6F;n&amp;#x64;&amp;#64;&amp;#x61;&amp;#x70;&amp;#97;&amp;#99;&amp;#104;&amp;#101;&amp;#x2E;&amp;#111;&amp;#x72;&amp;#103;&lt;/a&gt;&lt;/p&gt;
 
 &lt;p&gt;Windows support.&lt;/p&gt;
 
-&lt;p&gt;&lt;a href="http://www.jasondavies.com/"&gt;Jason Davies&lt;/a&gt;, &lt;a href="&amp;#109;&amp;#x61;&amp;#105;&amp;#x6C;&amp;#116;&amp;#x6F;:&amp;#106;&amp;#x61;&amp;#115;&amp;#111;&amp;#110;&amp;#x64;&amp;#97;&amp;#x76;&amp;#105;&amp;#101;&amp;#115;&amp;#64;&amp;#97;&amp;#112;&amp;#97;&amp;#x63;&amp;#x68;&amp;#101;&amp;#46;&amp;#x6F;&amp;#114;&amp;#103;"&gt;&amp;#106;&amp;#x61;&amp;#115;&amp;#111;&amp;#110;&amp;#x64;&amp;#97;&amp;#x76;&amp;#105;&amp;#101;&amp;#115;&amp;#64;&amp;#97;&amp;#112;&amp;#97;&amp;#x63;&amp;#x68;&amp;#101;&amp;#46;&amp;#x6F;&amp;#114;&amp;#103;&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;&lt;a href="http://www.jasondavies.com/"&gt;Jason Davies&lt;/a&gt;, &lt;a href="&amp;#x6D;a&amp;#x69;&amp;#x6C;&amp;#116;&amp;#111;:&amp;#x6A;a&amp;#x73;&amp;#x6F;&amp;#110;&amp;#x64;&amp;#x61;&amp;#x76;&amp;#105;&amp;#x65;&amp;#x73;&amp;#64;&amp;#x61;&amp;#112;a&amp;#x63;&amp;#x68;&amp;#x65;&amp;#46;&amp;#x6F;&amp;#114;&amp;#103;"&gt;&amp;#x6A;a&amp;#x73;&amp;#x6F;&amp;#110;&amp;#x64;&amp;#x61;&amp;#x76;&amp;#105;&amp;#x65;&amp;#x73;&amp;#64;&amp;#x61;&amp;#112;a&amp;#x63;&amp;#x68;&amp;#x65;&amp;#46;&amp;#x6F;&amp;#114;&amp;#103;&lt;/a&gt;&lt;/p&gt;
 
 &lt;p&gt;Developed various authentication features including cookie-based
   authentication and OAuth support.&lt;/p&gt;

Modified: couchdb/site/htdocs/community/lists.html
URL: http://svn.apache.org/viewvc/couchdb/site/htdocs/community/lists.html?rev=886265&amp;r1=886264&amp;r2=886265&amp;view=diff
==============================================================================
--- couchdb/site/htdocs/community/lists.html (original)
+++ couchdb/site/htdocs/community/lists.html Wed Dec  2 19:11:43 2009
@@ -89,11 +89,11 @@
 
 &lt;ul&gt;
 &lt;li&gt;To &lt;strong&gt;subscribe&lt;/strong&gt;, send an email to
-&lt;a href="&amp;#109;&amp;#x61;i&amp;#108;&amp;#x74;&amp;#x6F;:&amp;#117;&amp;#115;&amp;#x65;&amp;#x72;-&amp;#x73;ub&amp;#115;&amp;#x63;&amp;#114;&amp;#105;&amp;#x62;&amp;#101;&amp;#64;&amp;#99;&amp;#111;&amp;#x75;&amp;#99;hd&amp;#98;&amp;#x2E;&amp;#x61;&amp;#x70;&amp;#x61;&amp;#x63;&amp;#x68;&amp;#101;&amp;#x2E;&amp;#x6F;&amp;#x72;&amp;#x67;"&gt;&amp;#117;&amp;#115;&amp;#x65;&amp;#x72;-&amp;#x73;ub&amp;#115;&amp;#x63;&amp;#114;&amp;#105;&amp;#x62;&amp;#101;&amp;#64;&amp;#99;&amp;#111;&amp;#x75;&amp;#99;hd&amp;#98;&amp;#x2E;&amp;#x61;&amp;#x70;&amp;#x61;&amp;#x63;&amp;#x68;&amp;#101;&amp;#x2E;&amp;#x6F;&amp;#x72;&amp;#x67;&lt;/a&gt;.&lt;/li&gt;
+&lt;a href="&amp;#109;&amp;#97;&amp;#x69;&amp;#108;&amp;#116;&amp;#x6F;:&amp;#x75;&amp;#x73;&amp;#x65;&amp;#114;&amp;#45;&amp;#115;&amp;#x75;&amp;#x62;&amp;#x73;&amp;#x63;&amp;#114;&amp;#x69;b&amp;#x65;&amp;#64;&amp;#x63;&amp;#111;&amp;#117;&amp;#x63;&amp;#x68;&amp;#100;&amp;#x62;&amp;#46;&amp;#97;&amp;#112;&amp;#97;&amp;#99;&amp;#x68;&amp;#101;&amp;#46;&amp;#x6F;&amp;#x72;&amp;#x67;"&gt;&amp;#x75;&amp;#x73;&amp;#x65;&amp;#114;&amp;#45;&amp;#115;&amp;#x75;&amp;#x62;&amp;#x73;&amp;#x63;&amp;#114;&amp;#x69;b&amp;#x65;&amp;#64;&amp;#x63;&amp;#111;&amp;#117;&amp;#x63;&amp;#x68;&amp;#100;&amp;#x62;&amp;#46;&amp;#97;&amp;#112;&amp;#97;&amp;#99;&amp;#x68;&amp;#101;&amp;#46;&amp;#x6F;&amp;#x72;&amp;#x67;&lt;/a&gt;.&lt;/li&gt;
 &lt;li&gt;To &lt;strong&gt;unsubscribe&lt;/strong&gt; send empty email to
-&lt;a href="&amp;#x6D;&amp;#97;&amp;#105;&amp;#108;&amp;#x74;&amp;#x6F;:&amp;#117;&amp;#x73;&amp;#x65;&amp;#x72;&amp;#x2D;&amp;#x75;&amp;#110;&amp;#x73;&amp;#117;b&amp;#115;&amp;#99;&amp;#x72;&amp;#105;&amp;#x62;&amp;#101;&amp;#64;&amp;#x63;&amp;#x6F;&amp;#x75;&amp;#x63;&amp;#x68;&amp;#100;&amp;#x62;.&amp;#97;&amp;#112;&amp;#x61;&amp;#99;&amp;#x68;&amp;#x65;&amp;#x2E;&amp;#111;r&amp;#103;"&gt;&amp;#117;&amp;#x73;&amp;#x65;&amp;#x72;&amp;#x2D;&amp;#x75;&amp;#110;&amp;#x73;&amp;#117;b&amp;#115;&amp;#99;&amp;#x72;&amp;#105;&amp;#x62;&amp;#101;&amp;#64;&amp;#x63;&amp;#x6F;&amp;#x75;&amp;#x63;&amp;#x68;&amp;#100;&amp;#x62;.&amp;#97;&amp;#112;&amp;#x61;&amp;#99;&amp;#x68;&amp;#x65;&amp;#x2E;&amp;#111;r&amp;#103;&lt;/a&gt;&lt;/li&gt;
+&lt;a href="&amp;#x6D;a&amp;#105;&amp;#x6C;&amp;#x74;&amp;#111;:&amp;#x75;&amp;#115;&amp;#101;&amp;#x72;&amp;#45;&amp;#x75;&amp;#110;&amp;#x73;&amp;#x75;&amp;#x62;&amp;#115;cr&amp;#x69;&amp;#98;&amp;#x65;&amp;#64;&amp;#x63;&amp;#111;&amp;#117;&amp;#x63;&amp;#104;&amp;#100;&amp;#98;&amp;#x2E;&amp;#x61;&amp;#112;&amp;#97;&amp;#99;&amp;#x68;&amp;#x65;&amp;#46;&amp;#x6F;&amp;#x72;&amp;#103;"&gt;&amp;#x75;&amp;#115;&amp;#101;&amp;#x72;&amp;#45;&amp;#x75;&amp;#110;&amp;#x73;&amp;#x75;&amp;#x62;&amp;#115;cr&amp;#x69;&amp;#98;&amp;#x65;&amp;#64;&amp;#x63;&amp;#111;&amp;#117;&amp;#x63;&amp;#104;&amp;#100;&amp;#98;&amp;#x2E;&amp;#x61;&amp;#112;&amp;#97;&amp;#99;&amp;#x68;&amp;#x65;&amp;#46;&amp;#x6F;&amp;#x72;&amp;#103;&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;Finally, to post a message to the list use the address
-&lt;a href="&amp;#109;&amp;#97;&amp;#x69;lt&amp;#x6F;:&amp;#117;&amp;#115;&amp;#101;&amp;#x72;&amp;#64;&amp;#x63;&amp;#111;&amp;#x75;&amp;#x63;&amp;#104;&amp;#100;&amp;#98;&amp;#46;&amp;#97;p&amp;#x61;&amp;#x63;&amp;#104;&amp;#101;&amp;#46;&amp;#111;&amp;#x72;&amp;#103;"&gt;&amp;#117;&amp;#115;&amp;#101;&amp;#x72;&amp;#64;&amp;#x63;&amp;#111;&amp;#x75;&amp;#x63;&amp;#104;&amp;#100;&amp;#98;&amp;#46;&amp;#97;p&amp;#x61;&amp;#x63;&amp;#104;&amp;#101;&amp;#46;&amp;#111;&amp;#x72;&amp;#103;&lt;/a&gt;&lt;/li&gt;
+&lt;a href="&amp;#109;&amp;#x61;&amp;#105;l&amp;#x74;&amp;#111;:&amp;#x75;&amp;#x73;&amp;#x65;&amp;#114;&amp;#64;&amp;#99;&amp;#x6F;&amp;#117;&amp;#x63;&amp;#104;&amp;#100;&amp;#x62;&amp;#46;&amp;#97;&amp;#112;&amp;#97;c&amp;#104;&amp;#101;&amp;#x2E;&amp;#x6F;&amp;#114;&amp;#x67;"&gt;&amp;#x75;&amp;#x73;&amp;#x65;&amp;#114;&amp;#64;&amp;#99;&amp;#x6F;&amp;#117;&amp;#x63;&amp;#104;&amp;#100;&amp;#x62;&amp;#46;&amp;#97;&amp;#112;&amp;#97;c&amp;#104;&amp;#101;&amp;#x2E;&amp;#x6F;&amp;#114;&amp;#x67;&lt;/a&gt;&lt;/li&gt;
 &lt;/ul&gt;
 
 &lt;p&gt;The archives for this list can also be &lt;a href="http://mail-archives.apache.org/mod_mbox/couchdb-user/"&gt;browsed
online&lt;/a&gt;.&lt;/p&gt;
@@ -110,11 +110,11 @@
 
 &lt;ul&gt;
 &lt;li&gt;To &lt;strong&gt;subscribe&lt;/strong&gt;, send an email to
-&lt;a href="&amp;#109;&amp;#97;&amp;#x69;&amp;#x6C;&amp;#116;&amp;#111;:&amp;#100;&amp;#x65;&amp;#x76;&amp;#x2D;&amp;#115;u&amp;#98;&amp;#115;&amp;#99;&amp;#x72;&amp;#x69;&amp;#98;&amp;#x65;&amp;#64;&amp;#99;&amp;#111;&amp;#117;&amp;#99;&amp;#104;&amp;#x64;&amp;#x62;&amp;#46;&amp;#97;&amp;#x70;&amp;#97;&amp;#99;&amp;#x68;&amp;#101;&amp;#46;o&amp;#x72;&amp;#x67;"&gt;&amp;#100;&amp;#x65;&amp;#x76;&amp;#x2D;&amp;#115;u&amp;#98;&amp;#115;&amp;#99;&amp;#x72;&amp;#x69;&amp;#98;&amp;#x65;&amp;#64;&amp;#99;&amp;#111;&amp;#117;&amp;#99;&amp;#104;&amp;#x64;&amp;#x62;&amp;#46;&amp;#97;&amp;#x70;&amp;#97;&amp;#99;&amp;#x68;&amp;#101;&amp;#46;o&amp;#x72;&amp;#x67;&lt;/a&gt;.&lt;/li&gt;
+&lt;a href="&amp;#x6D;&amp;#x61;&amp;#105;&amp;#x6C;&amp;#116;&amp;#111;:&amp;#100;&amp;#101;&amp;#118;-&amp;#x73;u&amp;#x62;&amp;#115;&amp;#99;&amp;#x72;&amp;#x69;b&amp;#101;&amp;#64;&amp;#99;&amp;#x6F;&amp;#x75;&amp;#x63;&amp;#104;&amp;#x64;b&amp;#x2E;a&amp;#x70;&amp;#x61;&amp;#99;&amp;#x68;e.&amp;#x6F;&amp;#114;&amp;#103;"&gt;&amp;#100;&amp;#101;&amp;#118;-&amp;#x73;u&amp;#x62;&amp;#115;&amp;#99;&amp;#x72;&amp;#x69;b&amp;#101;&amp;#64;&amp;#99;&amp;#x6F;&amp;#x75;&amp;#x63;&amp;#104;&amp;#x64;b&amp;#x2E;a&amp;#x70;&amp;#x61;&amp;#99;&amp;#x68;e.&amp;#x6F;&amp;#114;&amp;#103;&lt;/a&gt;.&lt;/li&gt;
 &lt;li&gt;To &lt;strong&gt;unsubscribe&lt;/strong&gt; send empty email to
-&lt;a href="&amp;#x6D;&amp;#97;&amp;#x69;&amp;#x6C;t&amp;#x6F;:&amp;#x64;e&amp;#x76;-u&amp;#110;&amp;#x73;&amp;#117;&amp;#x62;&amp;#115;&amp;#99;&amp;#114;&amp;#105;be&amp;#64;&amp;#x63;o&amp;#117;&amp;#x63;&amp;#x68;&amp;#100;&amp;#98;&amp;#46;&amp;#97;&amp;#112;&amp;#x61;&amp;#99;&amp;#104;e&amp;#x2E;&amp;#x6F;&amp;#114;&amp;#x67;"&gt;&amp;#x64;e&amp;#x76;-u&amp;#110;&amp;#x73;&amp;#117;&amp;#x62;&amp;#115;&amp;#99;&amp;#114;&amp;#105;be&amp;#64;&amp;#x63;o&amp;#117;&amp;#x63;&amp;#x68;&amp;#100;&amp;#98;&amp;#46;&amp;#97;&amp;#112;&amp;#x61;&amp;#99;&amp;#104;e&amp;#x2E;&amp;#x6F;&amp;#114;&amp;#x67;&lt;/a&gt;&lt;/li&gt;
+&lt;a href="&amp;#x6D;&amp;#97;&amp;#x69;&amp;#108;&amp;#x74;&amp;#111;:&amp;#x64;&amp;#x65;&amp;#x76;&amp;#45;&amp;#117;&amp;#110;s&amp;#x75;&amp;#98;&amp;#115;&amp;#99;&amp;#x72;&amp;#105;&amp;#98;e&amp;#64;&amp;#99;&amp;#111;&amp;#x75;c&amp;#104;&amp;#x64;&amp;#x62;&amp;#46;&amp;#97;&amp;#112;&amp;#97;&amp;#x63;&amp;#x68;&amp;#x65;&amp;#x2E;&amp;#x6F;&amp;#114;&amp;#x67;"&gt;&amp;#x64;&amp;#x65;&amp;#x76;&amp;#45;&amp;#117;&amp;#110;s&amp;#x75;&amp;#98;&amp;#115;&amp;#99;&amp;#x72;&amp;#105;&amp;#98;e&amp;#64;&amp;#99;&amp;#111;&amp;#x75;c&amp;#104;&amp;#x64;&amp;#x62;&amp;#46;&amp;#97;&amp;#112;&amp;#97;&amp;#x63;&amp;#x68;&amp;#x65;&amp;#x2E;&amp;#x6F;&amp;#114;&amp;#x67;&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;Finally, to post a message to the list use the address
-&lt;a href="&amp;#x6D;&amp;#x61;&amp;#x69;&amp;#108;&amp;#x74;&amp;#111;:d&amp;#x65;&amp;#x76;&amp;#64;&amp;#x63;&amp;#111;&amp;#x75;&amp;#x63;&amp;#x68;&amp;#100;&amp;#98;.&amp;#97;&amp;#112;&amp;#x61;c&amp;#104;&amp;#x65;&amp;#46;&amp;#111;&amp;#x72;&amp;#x67;"&gt;d&amp;#x65;&amp;#x76;&amp;#64;&amp;#x63;&amp;#111;&amp;#x75;&amp;#x63;&amp;#x68;&amp;#100;&amp;#98;.&amp;#97;&amp;#112;&amp;#x61;c&amp;#104;&amp;#x65;&amp;#46;&amp;#111;&amp;#x72;&amp;#x67;&lt;/a&gt;&lt;/li&gt;
+&lt;a href="&amp;#x6D;&amp;#x61;&amp;#x69;&amp;#108;&amp;#x74;&amp;#x6F;:&amp;#100;&amp;#101;&amp;#x76;&amp;#64;&amp;#99;&amp;#111;&amp;#117;c&amp;#x68;&amp;#x64;&amp;#x62;&amp;#46;a&amp;#112;&amp;#x61;&amp;#x63;&amp;#x68;e&amp;#46;&amp;#x6F;&amp;#x72;&amp;#103;"&gt;&amp;#100;&amp;#101;&amp;#x76;&amp;#64;&amp;#99;&amp;#111;&amp;#117;c&amp;#x68;&amp;#x64;&amp;#x62;&amp;#46;a&amp;#112;&amp;#x61;&amp;#x63;&amp;#x68;e&amp;#46;&amp;#x6F;&amp;#x72;&amp;#103;&lt;/a&gt;&lt;/li&gt;
 &lt;/ul&gt;
 
 &lt;p&gt;The archives for this list can also be &lt;a href="http://mail-archives.apache.org/mod_mbox/couchdb-dev/"&gt;browsed
online&lt;/a&gt;.&lt;/p&gt;
@@ -129,9 +129,9 @@
 
 &lt;ul&gt;
 &lt;li&gt;To &lt;strong&gt;subscribe&lt;/strong&gt;, send an email to
-&lt;a href="&amp;#x6D;&amp;#97;&amp;#x69;&amp;#x6C;t&amp;#111;:c&amp;#111;&amp;#x6D;&amp;#x6D;&amp;#105;&amp;#x74;&amp;#115;&amp;#45;&amp;#115;&amp;#x75;&amp;#98;&amp;#x73;&amp;#99;&amp;#114;&amp;#105;&amp;#x62;&amp;#x65;&amp;#64;&amp;#99;&amp;#111;&amp;#117;&amp;#x63;&amp;#x68;&amp;#100;&amp;#98;&amp;#46;&amp;#x61;&amp;#112;ac&amp;#104;&amp;#x65;&amp;#46;&amp;#111;&amp;#114;&amp;#103;"&gt;c&amp;#111;&amp;#x6D;&amp;#x6D;&amp;#105;&amp;#x74;&amp;#115;&amp;#45;&amp;#115;&amp;#x75;&amp;#98;&amp;#x73;&amp;#99;&amp;#114;&amp;#105;&amp;#x62;&amp;#x65;&amp;#64;&amp;#99;&amp;#111;&amp;#117;&amp;#x63;&amp;#x68;&amp;#100;&amp;#98;&amp;#46;&amp;#x61;&amp;#112;ac&amp;#104;&amp;#x65;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&lt;/a&gt;.&lt;/li&gt;
+&lt;a href="&amp;#109;&amp;#97;&amp;#x69;&amp;#108;&amp;#116;&amp;#111;:&amp;#99;&amp;#111;&amp;#109;&amp;#x6D;&amp;#105;&amp;#x74;&amp;#x73;&amp;#x2D;&amp;#x73;&amp;#117;&amp;#98;&amp;#x73;&amp;#x63;&amp;#114;&amp;#x69;&amp;#98;&amp;#101;&amp;#64;&amp;#99;o&amp;#117;&amp;#99;&amp;#104;&amp;#100;&amp;#98;&amp;#46;&amp;#x61;&amp;#112;&amp;#x61;&amp;#99;&amp;#x68;&amp;#x65;&amp;#46;&amp;#111;&amp;#114;&amp;#103;"&gt;&amp;#99;&amp;#111;&amp;#109;&amp;#x6D;&amp;#105;&amp;#x74;&amp;#x73;&amp;#x2D;&amp;#x73;&amp;#117;&amp;#98;&amp;#x73;&amp;#x63;&amp;#114;&amp;#x69;&amp;#98;&amp;#101;&amp;#64;&amp;#99;o&amp;#117;&amp;#99;&amp;#104;&amp;#100;&amp;#98;&amp;#46;&amp;#x61;&amp;#112;&amp;#x61;&amp;#99;&amp;#x68;&amp;#x65;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&lt;/a&gt;.&lt;/li&gt;
 &lt;li&gt;To &lt;strong&gt;unsubscribe&lt;/strong&gt; send empty email to
-&lt;a href="&amp;#109;&amp;#x61;i&amp;#108;&amp;#116;o:&amp;#99;&amp;#111;&amp;#x6D;&amp;#109;&amp;#105;&amp;#116;&amp;#115;&amp;#x2D;&amp;#x75;&amp;#110;&amp;#x73;&amp;#x75;&amp;#x62;&amp;#115;cri&amp;#x62;&amp;#101;&amp;#64;&amp;#99;&amp;#111;&amp;#117;&amp;#99;&amp;#104;&amp;#x64;&amp;#98;&amp;#x2E;&amp;#x61;&amp;#x70;&amp;#x61;&amp;#99;&amp;#104;&amp;#101;&amp;#46;&amp;#111;&amp;#x72;&amp;#103;"&gt;&amp;#99;&amp;#111;&amp;#x6D;&amp;#109;&amp;#105;&amp;#116;&amp;#115;&amp;#x2D;&amp;#x75;&amp;#110;&amp;#x73;&amp;#x75;&amp;#x62;&amp;#115;cri&amp;#x62;&amp;#101;&amp;#64;&amp;#99;&amp;#111;&amp;#117;&amp;#99;&amp;#104;&amp;#x64;&amp;#98;&amp;#x2E;&amp;#x61;&amp;#x70;&amp;#x61;&amp;#99;&amp;#104;&amp;#101;&amp;#46;&amp;#111;&amp;#x72;&amp;#103;&lt;/a&gt;&lt;/li&gt;
+&lt;a href="&amp;#x6D;a&amp;#x69;&amp;#x6C;t&amp;#x6F;:&amp;#99;o&amp;#109;&amp;#x6D;&amp;#105;&amp;#116;&amp;#115;&amp;#x2D;&amp;#x75;n&amp;#x73;&amp;#117;b&amp;#115;&amp;#x63;&amp;#114;&amp;#105;&amp;#x62;&amp;#x65;&amp;#64;&amp;#x63;o&amp;#117;&amp;#99;&amp;#104;&amp;#x64;&amp;#x62;&amp;#46;&amp;#97;p&amp;#97;&amp;#x63;h&amp;#101;&amp;#46;&amp;#111;&amp;#114;&amp;#103;"&gt;&amp;#99;o&amp;#109;&amp;#x6D;&amp;#105;&amp;#116;&amp;#115;&amp;#x2D;&amp;#x75;n&amp;#x73;&amp;#117;b&amp;#115;&amp;#x63;&amp;#114;&amp;#105;&amp;#x62;&amp;#x65;&amp;#64;&amp;#x63;o&amp;#117;&amp;#99;&amp;#104;&amp;#x64;&amp;#x62;&amp;#46;&amp;#97;p&amp;#97;&amp;#x63;h&amp;#101;&amp;#46;&amp;#111;&amp;#114;&amp;#103;&lt;/a&gt;&lt;/li&gt;
 &lt;/ul&gt;
 
 &lt;p&gt;The archives for this list can also be &lt;a href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/"&gt;browsed
online&lt;/a&gt;.&lt;/p&gt;

Modified: couchdb/site/htdocs/downloads.html
URL: http://svn.apache.org/viewvc/couchdb/site/htdocs/downloads.html?rev=886265&amp;r1=886264&amp;r2=886265&amp;view=diff
==============================================================================
--- couchdb/site/htdocs/downloads.html (original)
+++ couchdb/site/htdocs/downloads.html Wed Dec  2 19:11:43 2009
@@ -75,6 +75,29 @@
 
 &lt;h2&gt;Current Releases&lt;/h2&gt;
 
+&lt;h3&gt;0.10.1&lt;/h3&gt;
+
+&lt;h4&gt;Files&lt;/h4&gt;
+
+&lt;ul&gt;
+&lt;li&gt;&lt;a href="http://www.apache.org/dyn/closer.cgi?path=/couchdb/0.10.1/apache-couchdb-0.10.1.tar.gz"&gt;apache-couchdb-0.10.1.tar.gz&lt;/a&gt;
+[&lt;a href="http://www.apache.org/dist/couchdb/0.10.1/apache-couchdb-0.10.1.tar.gz.asc"&gt;OpenPGP&lt;/a&gt;]
+[&lt;a href="http://www.apache.org/dist/couchdb/0.10.1/apache-couchdb-0.10.1.tar.gz.md5"&gt;MD5&lt;/a&gt;]
+[&lt;a href="http://www.apache.org/dist/couchdb/0.10.1/apache-couchdb-0.10.1.tar.gz.sha"&gt;SHA&lt;/a&gt;]&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h4&gt;Changes&lt;/h4&gt;
+
+&lt;ul&gt;
+&lt;li&gt;Fixed test suite to work with build system.&lt;/li&gt;
+&lt;li&gt;Fixed a problem with statistics timers and system sleep.&lt;/li&gt;
+&lt;li&gt;Fixed an edge case for HTTP redirects during replication.&lt;/li&gt;
+&lt;li&gt;Fixed HTTP timeout handling for replication.&lt;/li&gt;
+&lt;li&gt;Fixed query parameter handling in OAuth&amp;#8217;d replication.&lt;/li&gt;
+&lt;li&gt;Fixed a bug preventing mixing languages with lists and views.&lt;/li&gt;
+&lt;li&gt;Avoid OS process leaks in lists.&lt;/li&gt;
+&lt;/ul&gt;
+
 &lt;h3&gt;0.10.0&lt;/h3&gt;
 
 &lt;h4&gt;Files&lt;/h4&gt;
@@ -105,6 +128,25 @@
 &lt;li&gt;Miscellaneous improvements to build, system integration, and portability.&lt;/li&gt;
 &lt;/ul&gt;
 
+&lt;h3&gt;0.9.2&lt;/h3&gt;
+
+&lt;h4&gt;Files&lt;/h4&gt;
+
+&lt;ul&gt;
+&lt;li&gt;&lt;a href="http://www.apache.org/dyn/closer.cgi?path=/couchdb/0.9.2/apache-couchdb-0.9.2.tar.gz"&gt;apache-couchdb-0.9.2.tar.gz&lt;/a&gt;
+[&lt;a href="http://www.apache.org/dist/couchdb/0.9.2/apache-couchdb-0.9.2.tar.gz.asc"&gt;OpenPGP&lt;/a&gt;]
+[&lt;a href="http://www.apache.org/dist/couchdb/0.9.2/apache-couchdb-0.9.2.tar.gz.md5"&gt;MD5&lt;/a&gt;]
+[&lt;a href="http://www.apache.org/dist/couchdb/0.9.2/apache-couchdb-0.9.2.tar.gz.sha"&gt;SHA&lt;/a&gt;]&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h4&gt;Changes&lt;/h4&gt;
+
+&lt;ul&gt;
+&lt;li&gt;Remove branch callbacks to allow building couchjs against newer versions of
+Spidermonkey.&lt;/li&gt;
+&lt;li&gt;Fix replication with 0.10 servers initiated by an 0.9 server.&lt;/li&gt;
+&lt;/ul&gt;
+
 &lt;h3&gt;0.9.1&lt;/h3&gt;
 
 &lt;h4&gt;Files&lt;/h4&gt;

Modified: couchdb/site/htdocs/downloads.txt
URL: http://svn.apache.org/viewvc/couchdb/site/htdocs/downloads.txt?rev=886265&amp;r1=886264&amp;r2=886265&amp;view=diff
==============================================================================
--- couchdb/site/htdocs/downloads.txt (original)
+++ couchdb/site/htdocs/downloads.txt Wed Dec  2 19:11:43 2009
@@ -10,6 +10,25 @@
 Current Releases
 ----------------
 
+### 0.10.1
+
+#### Files
+
+ * [apache-couchdb-0.10.1.tar.gz](http://www.apache.org/dyn/closer.cgi?path=/couchdb/0.10.1/apache-couchdb-0.10.1.tar.gz)
+   [[OpenPGP](http://www.apache.org/dist/couchdb/0.10.1/apache-couchdb-0.10.1.tar.gz.asc)]
+   [[MD5](http://www.apache.org/dist/couchdb/0.10.1/apache-couchdb-0.10.1.tar.gz.md5)]
+   [[SHA](http://www.apache.org/dist/couchdb/0.10.1/apache-couchdb-0.10.1.tar.gz.sha)]
+
+#### Changes
+
+ * Fixed test suite to work with build system.
+ * Fixed a problem with statistics timers and system sleep.
+ * Fixed an edge case for HTTP redirects during replication.
+ * Fixed HTTP timeout handling for replication.
+ * Fixed query parameter handling in OAuth'd replication.
+ * Fixed a bug preventing mixing languages with lists and views.
+ * Avoid OS process leaks in lists.
+
 ### 0.10.0
 
 #### Files
@@ -36,6 +55,21 @@
  * Added modular configuration file directories.
  * Miscellaneous improvements to build, system integration, and portability.
 
+### 0.9.2
+
+#### Files
+
+ * [apache-couchdb-0.9.2.tar.gz](http://www.apache.org/dyn/closer.cgi?path=/couchdb/0.9.2/apache-couchdb-0.9.2.tar.gz)
+   [[OpenPGP](http://www.apache.org/dist/couchdb/0.9.2/apache-couchdb-0.9.2.tar.gz.asc)]
+   [[MD5](http://www.apache.org/dist/couchdb/0.9.2/apache-couchdb-0.9.2.tar.gz.md5)]
+   [[SHA](http://www.apache.org/dist/couchdb/0.9.2/apache-couchdb-0.9.2.tar.gz.sha)]
+
+#### Changes
+
+ * Remove branch callbacks to allow building couchjs against newer versions of
+   Spidermonkey.
+ * Fix replication with 0.10 servers initiated by an 0.9 server.
+
 ### 0.9.1
 
 #### Files




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886242 - in /couchdb/trunk: CHANGES NEWS</title>
<author><name>nslater@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091202183642.2ED4E23889DE@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091202183642-2ED4E23889DE@eris-apache-org%3e</id>
<updated>2009-12-02T18:36:36Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: nslater
Date: Wed Dec  2 18:36:30 2009
New Revision: 886242

URL: http://svn.apache.org/viewvc?rev=886242&amp;view=rev
Log:
added 0.9.2 changes/news to trunk

Modified:
    couchdb/trunk/CHANGES
    couchdb/trunk/NEWS

Modified: couchdb/trunk/CHANGES
URL: http://svn.apache.org/viewvc/couchdb/trunk/CHANGES?rev=886242&amp;r1=886241&amp;r2=886242&amp;view=diff
==============================================================================
--- couchdb/trunk/CHANGES (original)
+++ couchdb/trunk/CHANGES Wed Dec  2 18:36:30 2009
@@ -25,7 +25,7 @@
 
 Storage System
 
- * Adds batching of multiple updating requests, to improve throughput with many 
+ * Adds batching of multiple updating requests, to improve throughput with many
    writers. Removed the now redundant couch_batch_save module.
 
 Runtime Statistics
@@ -78,6 +78,13 @@
  * Added optional cookie-based authentication handler.
  * Added optional two-legged OAuth authentication handler.
 
+Version 0.9.2
+-------------
+
+ * Remove branch callbacks to allow building couchjs against newer versions of
+   Spidermonkey.
+ * Fix replication with 0.10+ servers initiated by an 0.9 server (COUCHDB-559).
+
 Version 0.9.1
 -------------
 

Modified: couchdb/trunk/NEWS
URL: http://svn.apache.org/viewvc/couchdb/trunk/NEWS?rev=886242&amp;r1=886241&amp;r2=886242&amp;view=diff
==============================================================================
--- couchdb/trunk/NEWS (original)
+++ couchdb/trunk/NEWS Wed Dec  2 18:36:30 2009
@@ -21,7 +21,7 @@
  * Bug fix for partial updates during view builds.
  * Bug fix for building couch.app's module list.
  * Fixed a problem with statistics timers and system sleep.
- * Adds batching of multiple updating requests, to improve throughput with many 
+ * Adds batching of multiple updating requests, to improve throughput with many
    writers. Removed the now redundant couch_batch_save module.
  * Bug fix for premature termination of chunked responses.
  * Improved speed and concurrency of config lookups.
@@ -60,6 +60,13 @@
  * Added modular configuration file directories.
  * Miscellaneous improvements to build, system integration, and portability.
 
+Version 0.9.2
+-------------
+
+ * Remove branch callbacks to allow building couchjs against newer versions of
+   Spidermonkey.
+ * Fix replication with 0.10+ servers initiated by an 0.9 server.
+
 Version 0.9.1
 -------------
 




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886061 - /couchdb/trunk/src/couchdb/priv/spawnkillable/couchspawnkillable_win.c</title>
<author><name>mhammond@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091202063823.DCDE023889ED@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091202063823-DCDE023889ED@eris-apache-org%3e</id>
<updated>2009-12-02T06:38:23Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: mhammond
Date: Wed Dec  2 06:38:23 2009
New Revision: 886061

URL: http://svn.apache.org/viewvc?rev=886061&amp;view=rev
Log:
ensure the child exit code is reported correctly to couch

Modified:
    couchdb/trunk/src/couchdb/priv/spawnkillable/couchspawnkillable_win.c

Modified: couchdb/trunk/src/couchdb/priv/spawnkillable/couchspawnkillable_win.c
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/priv/spawnkillable/couchspawnkillable_win.c?rev=886061&amp;r1=886060&amp;r2=886061&amp;view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/priv/spawnkillable/couchspawnkillable_win.c (original)
+++ couchdb/trunk/src/couchdb/priv/spawnkillable/couchspawnkillable_win.c Wed Dec  2 06:38:23
2009
@@ -16,7 +16,8 @@
 // * Write a line to stdout, consisting of the path to ourselves, plus
 //   '--kill {pid}' where {pid} is the PID of the newly created process.
 // * Un-suspend the new process.
-// * Terminate
+// * Wait for the process to terminate.
+// * Terminate with the child's exit-code.
 
 // Later, couch will call us with --kill and the PID, so we dutifully
 // terminate the specified PID.
@@ -112,6 +113,7 @@
     char out_buf[1024];
     int rc;
     DWORD cbwritten;
+    DWORD exitcode;
     PROCESS_INFORMATION pi;
     if (argc==3 &amp;&amp; strcmp(argv[1], "--kill")==0) {
         HANDLE h = OpenProcess(PROCESS_TERMINATE, 0, atoi(argv[2]));
@@ -134,6 +136,10 @@
               &amp;cbwritten, NULL);
     // Let the child process go...
     ResumeThread(pi.hThread);
-    // and that is all - we can die...
-    return 0;
+    // Wait for the process to terminate so we can reflect the exit code
+    // back to couch.
+    WaitForSingleObject(pi.hProcess, INFINITE);
+    if (!GetExitCodeProcess(pi.hProcess, &amp;exitcode))
+        return 6;
+    return exitcode;
 }




</pre>
</div>
</content>
</entry>
<entry>
<title>buildbot failure in ASF Buildbot on couchdb-trunk</title>
<author><name>buildbot@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091202023327.7E6C22803C@ceres.apache.org%3e"/>
<id>urn:uuid:%3c20091202023327-7E6C22803C@ceres-apache-org%3e</id>
<updated>2009-12-02T02:33:27Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
The Buildbot has detected a failed build of couchdb-trunk on ASF Buildbot.
Full details are available at:
 http://ci.apache.org/builders/couchdb-trunk/builds/115

Buildbot URL: http://ci.apache.org/

Buildslave for this Build: bb-vm_ubuntu

Build Reason: forced: by IRC user &lt;gmcdonald&gt; on channel #couchdb: testing after slave
rebuild
Build Source Stamp: HEAD
Blamelist: 

BUILD FAILED: failed compile_5

sincerely,
 -The Buildbot



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886034 - in /couchdb/trunk: license.skip test/bench/Makefile.am</title>
<author><name>davisp@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091202021408.7037723889B8@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091202021408-7037723889B8@eris-apache-org%3e</id>
<updated>2009-12-02T02:14:08Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: davisp
Date: Wed Dec  2 02:14:07 2009
New Revision: 886034

URL: http://svn.apache.org/viewvc?rev=886034&amp;view=rev
Log:
Fixes for make distcheck in the test/bench directory.


Modified:
    couchdb/trunk/license.skip
    couchdb/trunk/test/bench/Makefile.am

Modified: couchdb/trunk/license.skip
URL: http://svn.apache.org/viewvc/couchdb/trunk/license.skip?rev=886034&amp;r1=886033&amp;r2=886034&amp;view=diff
==============================================================================
--- couchdb/trunk/license.skip (original)
+++ couchdb/trunk/license.skip Wed Dec  2 02:14:07 2009
@@ -74,6 +74,8 @@
 ^src/ibrowse/*
 ^src/mochiweb/*
 ^stamp-h1
+^test/bench/Makefile
+^test/bench/Makefile.in
 ^test/etap/temp.*
 ^test/etap/.*beam
 ^test/local.ini

Modified: couchdb/trunk/test/bench/Makefile.am
URL: http://svn.apache.org/viewvc/couchdb/trunk/test/bench/Makefile.am?rev=886034&amp;r1=886033&amp;r2=886034&amp;view=diff
==============================================================================
--- couchdb/trunk/test/bench/Makefile.am (original)
+++ couchdb/trunk/test/bench/Makefile.am Wed Dec  2 02:14:07 2009
@@ -10,7 +10,7 @@
 ## License for the specific language governing permissions and limitations under
 ## the License.
 
-EXTRA_DIST = benchbulk.sh benches.js
+EXTRA_DIST = benchbulk.sh bench_marks.js run.tpl
 
 noinst_SCRIPTS = run
 CLEANFILES = run




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885994 - /couchdb/trunk/test/view_server/query_server_spec.rb</title>
<author><name>jchris@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091201225921.D20FD238898B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091201225921-D20FD238898B@eris-apache-org%3e</id>
<updated>2009-12-01T22:59:21Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: jchris
Date: Tue Dec  1 22:59:21 2009
New Revision: 885994

URL: http://svn.apache.org/viewvc?rev=885994&amp;view=rev
Log:
fixed paths for query_server_spec.rb

Modified:
    couchdb/trunk/test/view_server/query_server_spec.rb

Modified: couchdb/trunk/test/view_server/query_server_spec.rb
URL: http://svn.apache.org/viewvc/couchdb/trunk/test/view_server/query_server_spec.rb?rev=885994&amp;r1=885993&amp;r2=885994&amp;view=diff
==============================================================================
--- couchdb/trunk/test/view_server/query_server_spec.rb (original)
+++ couchdb/trunk/test/view_server/query_server_spec.rb Tue Dec  1 22:59:21 2009
@@ -11,9 +11,9 @@
 # the License.
 
 # to run (requires ruby and rspec):
-# spec test/query_server_spec.rb -f specdoc --color
+# spec test/view_server/query_server_spec.rb -f specdoc --color
 
-COUCH_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(COUCH_ROOT)
+COUCH_ROOT = "#{File.dirname(__FILE__)}/../.." unless defined?(COUCH_ROOT)
 LANGUAGE = ENV["QS_LANG"] || "js"
 
 puts "Running query server specs for #{LANGUAGE} query server"




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885954 - /couchdb/trunk/share/www/script/test/changes.js</title>
<author><name>jchris@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091201214527.AA60D23889D0@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091201214527-AA60D23889D0@eris-apache-org%3e</id>
<updated>2009-12-01T21:45:27Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: jchris
Date: Tue Dec  1 21:45:27 2009
New Revision: 885954

URL: http://svn.apache.org/viewvc?rev=885954&amp;view=rev
Log:
change some timings to make the changes test more robust

Modified:
    couchdb/trunk/share/www/script/test/changes.js

Modified: couchdb/trunk/share/www/script/test/changes.js
URL: http://svn.apache.org/viewvc/couchdb/trunk/share/www/script/test/changes.js?rev=885954&amp;r1=885953&amp;r2=885954&amp;view=diff
==============================================================================
--- couchdb/trunk/share/www/script/test/changes.js (original)
+++ couchdb/trunk/share/www/script/test/changes.js Tue Dec  1 21:45:27 2009
@@ -222,9 +222,10 @@
 
     // filter with continuous
     xhr = CouchDB.newXhr();
-    xhr.open("GET", "/test_suite_db/_changes?feed=continuous&amp;filter=changes_filter/bop&amp;timeout=100",
true);
+    xhr.open("GET", "/test_suite_db/_changes?feed=continuous&amp;filter=changes_filter/bop&amp;timeout=200",
true);
     xhr.send("");
     db.save({"_id":"rusty", "bop" : "plankton"});
+    T(db.ensureFullCommit().ok);
     sleep(200);
     var lines = xhr.responseText.split("\n");
     T(JSON.parse(lines[1]).id == id);




</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BCouchdb_Wiki=5D_Update_of_=22Release=5Fprocedure=22_by_NoahS?= =?utf-8?q?later?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091201210206.1234.90867@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091201210206-1234-90867@eos-apache-org%3e</id>
<updated>2009-12-01T21:02:06Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "Release_procedure" page has been changed by NoahSlater.
http://wiki.apache.org/couchdb/Release_procedure?action=diff&amp;rev1=27&amp;rev2=28

--------------------------------------------------

   * [[https://issues.apache.org/jira/secure/project/ManageVersions.jspa?pid=12310780|Update
versions]] in JIRA.
     * If the currently released version is 0.1.0, JIRA should have options for 0.1.1, 0.2.0,
and 0.3.0.
   * Update the links on this page to most recent email archives.
-  * Call a discussion on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]]
mailing list about updating the [[http://couchdb.apache.org/roadmap.html|roadmap]]
+  * Call a discussion on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]]
mailing list about updating the [[http://couchdb.apache.org/roadmap.html|roadmap]].
  
  == Useful Resources ==
  


</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BCouchdb_Wiki=5D_Update_of_=22Release=5Fprocedure=22_by_NoahS?= =?utf-8?q?later?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091201210131.5462.60031@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091201210131-5462-60031@eos-apache-org%3e</id>
<updated>2009-12-01T21:01:31Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "Release_procedure" page has been changed by NoahSlater.
http://wiki.apache.org/couchdb/Release_procedure?action=diff&amp;rev1=26&amp;rev2=27

--------------------------------------------------

   * [[https://issues.apache.org/jira/secure/project/ManageVersions.jspa?pid=12310780|Update
versions]] in JIRA.
     * If the currently released version is 0.1.0, JIRA should have options for 0.1.1, 0.2.0,
and 0.3.0.
   * Update the links on this page to most recent email archives.
+  * Call a discussion on the [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/|couchdb-dev]]
mailing list about updating the [[http://couchdb.apache.org/roadmap.html|roadmap]]
  
  == Useful Resources ==
  


</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BCouchdb_Wiki=5D_Update_of_=22Release=5Fprocedure=22_by_NoahS?= =?utf-8?q?later?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091201205927.5462.96862@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091201205927-5462-96862@eos-apache-org%3e</id>
<updated>2009-12-01T20:59:27Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "Release_procedure" page has been changed by NoahSlater.
http://wiki.apache.org/couchdb/Release_procedure?action=diff&amp;rev1=25&amp;rev2=26

--------------------------------------------------

    * [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/200907.mbox/%3C20090716211304.GA17172@tumbolia.org%3E|example
couchdb-dev vote]]
    * [[http://mail-archives.apache.org/mod_mbox/couchdb-dev/200907.mbox/%3C20090722214200.GA11737@tumbolia.org%3E|example
couchdb-dev vote results]]
  
- Update these links to most recent vote after it has been archived.
- 
  === Making the Release ===
  
   * Copy the release directory to `/www/www.apache.org/dist/couchdb` on `people.apache.org`.
@@ -91, +89 @@

     * [[http://mail-archives.apache.org/mod_mbox/www-announce/200806.mbox/%3C20080625173452.GA14650@bytesexual.org%3E|example
release announcement]]
   * [[https://issues.apache.org/jira/secure/project/ManageVersions.jspa?pid=12310780|Update
versions]] in JIRA.
     * If the currently released version is 0.1.0, JIRA should have options for 0.1.1, 0.2.0,
and 0.3.0.
+  * Update the links on this page to most recent email archives.
  
  == Useful Resources ==
  


</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BCouchdb_Wiki=5D_Trivial_Update_of_=22Source_Code_Repository_?= =?utf-8?q?Organization=22_by_JanLehnardt?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091201145110.8981.78925@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091201145110-8981-78925@eos-apache-org%3e</id>
<updated>2009-12-01T14:51:10Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "Source Code Repository Organization" page has been changed by JanLehnardt.
http://wiki.apache.org/couchdb/Source%20Code%20Repository%20Organization?action=diff&amp;rev1=1&amp;rev2=2

--------------------------------------------------

  
  Each release of major version (1.0.0, 1.0.1, ..., 1.1.0, 1.1.1, etc) is guaranteed to work
in backwards compatible ways (as well as we humanly guarantee it :). New major versions may
have incompatibilities. Upgrades between bugfix versions (0.11.0 to 0.11.1) should be seamless,
upgrading minor or major versions might require extra work.
  
- == tags/z.x.y == 
+ == tags/z.x.y ==
  
  When the 0.11.x branch is deemed ready for a first release a new ''tag'' tags/0.11.0 is
created that is a snapshot of the CouchDB source code that is the 0.11.0 release. Bugfixes
to the 0.11.x line of release go into branches/0.11.x. When a new version 0.11.1 is released
because enough bugfixes went into branches/0.11.x, a new tag tags/0.11.1 is created to snapshot
the next release and so on.
  


</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BCouchdb_Wiki=5D_Update_of_=22Source_Code_Repository_Organiza?= =?utf-8?q?tion=22_by_JanLehnardt?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091201145003.8997.3187@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091201145003-8997-3187@eos-apache-org%3e</id>
<updated>2009-12-01T14:50:03Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "Source Code Repository Organization" page has been changed by JanLehnardt.
The comment on this change is: add repo organization.
http://wiki.apache.org/couchdb/Source%20Code%20Repository%20Organization

--------------------------------------------------

New page:
This page describes how the CouchDB source repository is organized.

= The Repository =

The main and central repository lives at http://svn.apache.org/repos/asf/couchdb/. If you
prefer git to svn, you can use the official [[http://git.apache.org/|Apache Git mirror]].
It mirrors the svn repository's structure.

(Committers should use the SSL-secured server at https://svn.apache.org/repos/asf/couchdb/).


== trunk ==

http://svn.apache.org/repos/asf/couchdb/trunk or ''trunk'' is where day-to-day development
happens. New features and bugfixes are committed here. [[Feature Branches|http://wiki.apache.org/couchdb/Branch_management]]
are merged into trunk in case new features have been developed in isolation.


== branches/z.y.x ==

Branches that are not feature branches are ''release branches''. ''Major versions'' are represented
by the first number (z) in the version triplet. The middle number (y) denotes minor versions
and the third number (z) represents ''bugfix releases''.

Once the developers decide trunk is in a good state to produce a new version of CouchDB, a
release branch is created with the appropriate version numbers: Say trunk is deemed ready
to be the basis for a future 0.11.0 release (where the current release is 0.10.1), a new branch
branches/0.11.x is created to ''track'' the development of the 0.11.x series of CouchDB releases.

Each release of major version (1.0.0, 1.0.1, ..., 1.1.0, 1.1.1, etc) is guaranteed to work
in backwards compatible ways (as well as we humanly guarantee it :). New major versions may
have incompatibilities. Upgrades between bugfix versions (0.11.0 to 0.11.1) should be seamless,
upgrading minor or major versions might require extra work.

== tags/z.x.y == 

When the 0.11.x branch is deemed ready for a first release a new ''tag'' tags/0.11.0 is created
that is a snapshot of the CouchDB source code that is the 0.11.0 release. Bugfixes to the
0.11.x line of release go into branches/0.11.x. When a new version 0.11.1 is released because
enough bugfixes went into branches/0.11.x, a new tag tags/0.11.1 is created to snapshot the
next release and so on.


</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BCouchdb_Wiki=5D_Update_of_=22Development=22_by_JanLehnardt?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200912.mbox/%3c20091201142719.4732.27118@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091201142719-4732-27118@eos-apache-org%3e</id>
<updated>2009-12-01T14:27:19Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "Development" page has been changed by JanLehnardt.
The comment on this change is: add repo organization.
http://wiki.apache.org/couchdb/Development?action=diff&amp;rev1=12&amp;rev2=13

--------------------------------------------------

  == Getting Started ==
    * [[How_to_contribute_(for_Non-Committers)]]
    * [[Running CouchDB in Dev Mode]]
+   * [[Source Code Repository Organization]]
    * [[Branch_management]]
    * [[Release_procedure]]
    * [[http://horicky.blogspot.com/2008/10/couchdb-implementation.html|Implementation overview]]


</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885542 - in /couchdb/trunk/src/couchdb: couch_db_updater.erl couch_doc.erl couch_stream.erl</title>
<author><name>jan@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200911.mbox/%3c20091130191008.DAAD123889EC@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091130191008-DAAD123889EC@eris-apache-org%3e</id>
<updated>2009-11-30T19:10:08Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: jan
Date: Mon Nov 30 19:10:08 2009
New Revision: 885542

URL: http://svn.apache.org/viewvc?rev=885542&amp;view=rev
Log:
Fix two issues for databases upgraded from 0.9.x:
 - Compaction would fail.
 - GET /db/doc?attachments=true would generate a 500.

Modified:
    couchdb/trunk/src/couchdb/couch_db_updater.erl
    couchdb/trunk/src/couchdb/couch_doc.erl
    couchdb/trunk/src/couchdb/couch_stream.erl

Modified: couchdb/trunk/src/couchdb/couch_db_updater.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_db_updater.erl?rev=885542&amp;r1=885541&amp;r2=885542&amp;view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_db_updater.erl (original)
+++ couchdb/trunk/src/couchdb/couch_db_updater.erl Mon Nov 30 19:10:08 2009
@@ -704,6 +704,10 @@
             % 09 UPGRADE CODE
             {NewBinSp, Len, Md5} = couch_stream:copy_to_new_stream(SrcFd, BinSp, DestFd),
             {Name, Type, NewBinSp, Len, Pos, Md5};
+        ({Name, Type, BinSp, Len, RevPos, &lt;&lt;&gt;&gt;}) when is_tuple(BinSp) orelse
BinSp == null -&gt;
+            % 09 UPGRADE CODE
+            {NewBinSp, Len, Md5} = couch_stream:old_copy_to_new_stream(SrcFd, BinSp, Len,
DestFd),
+            {Name, Type, NewBinSp, Len, Len, Md5};
         ({Name, Type, BinSp, Len, RevPos, Md5}) -&gt;
             {NewBinSp, Len, Md5} = couch_stream:copy_to_new_stream(SrcFd, BinSp, DestFd),
             {Name, Type, NewBinSp, Len, RevPos, Md5}

Modified: couchdb/trunk/src/couchdb/couch_doc.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_doc.erl?rev=885542&amp;r1=885541&amp;r2=885542&amp;view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_doc.erl (original)
+++ couchdb/trunk/src/couchdb/couch_doc.erl Mon Nov 30 19:10:08 2009
@@ -285,9 +285,9 @@
     Bin;
 att_to_iolist(#att{data=Iolist}) when is_list(Iolist) -&gt;
     Iolist;
-att_to_iolist(#att{data={Fd,Sp},md5=Md5}) -&gt;
-    lists:reverse(couch_stream:foldl(Fd, Sp, Md5, 
-            fun(Bin,Acc) -&gt; [Bin|Acc] end, []));
+att_to_iolist(#att{data={Fd,Sp}}=Att) -&gt;
+    lists:reverse(att_foldl(Att,
+        fun(Bin,Acc) -&gt; [Bin|Acc] end, []));
 att_to_iolist(#att{data=DataFun, len=Len}) when is_function(DataFun)-&gt;
     lists:reverse(fold_streamed_data(DataFun, Len,
             fun(Data, Acc) -&gt; [Data | Acc] end, [])).

Modified: couchdb/trunk/src/couchdb/couch_stream.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_stream.erl?rev=885542&amp;r1=885541&amp;r2=885542&amp;view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_stream.erl (original)
+++ couchdb/trunk/src/couchdb/couch_stream.erl Mon Nov 30 19:10:08 2009
@@ -73,7 +73,8 @@
 old_foldl(_Fd, null, 0, _Fun, Acc) -&gt;
     Acc;
 old_foldl(Fd, OldPointer, Len, Fun, Acc) when is_tuple(OldPointer)-&gt;
-    old_stream_data(Fd, OldPointer, Len, ?DEFAULT_STREAM_CHUNK, Fun, Acc).
+    {ok, Acc2, _} = old_stream_data(Fd, OldPointer, Len, ?DEFAULT_STREAM_CHUNK, Fun, Acc),
+    Acc2.
 
 foldl(_Fd, [], _Fun, Acc) -&gt;
     Acc;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885535 - in /couchdb/branches/0.10.x/src/couchdb: couch_db_updater.erl couch_doc.erl couch_httpd_auth.erl couch_stream.erl</title>
<author><name>jan@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200911.mbox/%3c20091130185336.C8CA123889C5@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091130185336-C8CA123889C5@eris-apache-org%3e</id>
<updated>2009-11-30T18:53:36Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: jan
Date: Mon Nov 30 18:53:36 2009
New Revision: 885535

URL: http://svn.apache.org/viewvc?rev=885535&amp;view=rev
Log:
Fix two issues for databases upgraded from 0.9.x:
 - Compaction would fail.
 - GET /db/doc?attachments=true would generate a 500.

Modified:
    couchdb/branches/0.10.x/src/couchdb/couch_db_updater.erl
    couchdb/branches/0.10.x/src/couchdb/couch_doc.erl
    couchdb/branches/0.10.x/src/couchdb/couch_httpd_auth.erl
    couchdb/branches/0.10.x/src/couchdb/couch_stream.erl

Modified: couchdb/branches/0.10.x/src/couchdb/couch_db_updater.erl
URL: http://svn.apache.org/viewvc/couchdb/branches/0.10.x/src/couchdb/couch_db_updater.erl?rev=885535&amp;r1=885534&amp;r2=885535&amp;view=diff
==============================================================================
--- couchdb/branches/0.10.x/src/couchdb/couch_db_updater.erl (original)
+++ couchdb/branches/0.10.x/src/couchdb/couch_db_updater.erl Mon Nov 30 18:53:36 2009
@@ -641,6 +641,10 @@
             % 09 UPGRADE CODE
             {NewBinSp, Len, Md5} = couch_stream:copy_to_new_stream(SrcFd, BinSp, DestFd),
             {Name, Type, NewBinSp, Len, Pos, Md5};
+        ({Name, Type, BinSp, Len, RevPos, &lt;&lt;&gt;&gt;}) when is_tuple(BinSp) orelse
BinSp == null -&gt;
+            % 09 UPGRADE CODE
+            {NewBinSp, Len, Md5} = couch_stream:old_copy_to_new_stream(SrcFd, BinSp, Len,
DestFd),
+            {Name, Type, NewBinSp, Len, Len, Md5};
         ({Name, Type, BinSp, Len, RevPos, Md5}) -&gt;
             {NewBinSp, Len, Md5} = couch_stream:copy_to_new_stream(SrcFd, BinSp, DestFd),
             {Name, Type, NewBinSp, Len, RevPos, Md5}

Modified: couchdb/branches/0.10.x/src/couchdb/couch_doc.erl
URL: http://svn.apache.org/viewvc/couchdb/branches/0.10.x/src/couchdb/couch_doc.erl?rev=885535&amp;r1=885534&amp;r2=885535&amp;view=diff
==============================================================================
--- couchdb/branches/0.10.x/src/couchdb/couch_doc.erl (original)
+++ couchdb/branches/0.10.x/src/couchdb/couch_doc.erl Mon Nov 30 18:53:36 2009
@@ -284,8 +284,8 @@
     Bin;
 att_to_iolist(#att{data=Iolist}) when is_list(Iolist) -&gt;
     Iolist;
-att_to_iolist(#att{data={Fd,Sp},md5=Md5}) -&gt;
-    lists:reverse(couch_stream:foldl(Fd, Sp, Md5, fun(Bin,Acc) -&gt; [Bin|Acc] end, [])).
+att_to_iolist(#att{data={Fd,Sp}}=Att) -&gt;
+    lists:reverse(att_foldl(Att, fun(Bin,Acc) -&gt; [Bin|Acc] end, [])).
 
 get_validate_doc_fun(#doc{body={Props}}) -&gt;
     Lang = proplists:get_value(&lt;&lt;"language"&gt;&gt;, Props, &lt;&lt;"javascript"&gt;&gt;),

Modified: couchdb/branches/0.10.x/src/couchdb/couch_httpd_auth.erl
URL: http://svn.apache.org/viewvc/couchdb/branches/0.10.x/src/couchdb/couch_httpd_auth.erl?rev=885535&amp;r1=885534&amp;r2=885535&amp;view=diff
==============================================================================
--- couchdb/branches/0.10.x/src/couchdb/couch_httpd_auth.erl (original)
+++ couchdb/branches/0.10.x/src/couchdb/couch_httpd_auth.erl Mon Nov 30 18:53:36 2009
@@ -114,7 +114,6 @@
     % then fall back to querying the db.
     case couch_config:get("admins", ?b2l(UserName)) of
     "-hashed-" ++ HashedPwdAndSalt -&gt;
-        io:format("hashed: '~p'~n", [hashed]),
         [HashedPwd, Salt] = string:tokens(HashedPwdAndSalt, ","),
         [{&lt;&lt;"roles"&gt;&gt;, [&lt;&lt;"_admin"&gt;&gt;]},
           {&lt;&lt;"salt"&gt;&gt;, ?l2b(Salt)},

Modified: couchdb/branches/0.10.x/src/couchdb/couch_stream.erl
URL: http://svn.apache.org/viewvc/couchdb/branches/0.10.x/src/couchdb/couch_stream.erl?rev=885535&amp;r1=885534&amp;r2=885535&amp;view=diff
==============================================================================
--- couchdb/branches/0.10.x/src/couchdb/couch_stream.erl (original)
+++ couchdb/branches/0.10.x/src/couchdb/couch_stream.erl Mon Nov 30 18:53:36 2009
@@ -73,7 +73,8 @@
 old_foldl(_Fd, null, 0, _Fun, Acc) -&gt;
     Acc;
 old_foldl(Fd, OldPointer, Len, Fun, Acc) when is_tuple(OldPointer)-&gt;
-    old_stream_data(Fd, OldPointer, Len, ?DEFAULT_STREAM_CHUNK, Fun, Acc).
+    {ok, Acc2, _} = old_stream_data(Fd, OldPointer, Len, ?DEFAULT_STREAM_CHUNK, Fun, Acc),
+    Acc2.
 
 foldl(_Fd, [], _Fun, Acc) -&gt;
     Acc;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885533 - /couchdb/trunk/share/www/script/test/changes.js</title>
<author><name>jchris@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200911.mbox/%3c20091130185233.92CAF23889E8@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091130185233-92CAF23889E8@eris-apache-org%3e</id>
<updated>2009-11-30T18:52:33Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: jchris
Date: Mon Nov 30 18:52:33 2009
New Revision: 885533

URL: http://svn.apache.org/viewvc?rev=885533&amp;view=rev
Log:
passing test for filtered continuous changes

Modified:
    couchdb/trunk/share/www/script/test/changes.js

Modified: couchdb/trunk/share/www/script/test/changes.js
URL: http://svn.apache.org/viewvc/couchdb/trunk/share/www/script/test/changes.js?rev=885533&amp;r1=885532&amp;r2=885533&amp;view=diff
==============================================================================
--- couchdb/trunk/share/www/script/test/changes.js (original)
+++ couchdb/trunk/share/www/script/test/changes.js Mon Nov 30 18:52:33 2009
@@ -219,6 +219,17 @@
     var resp = JSON.parse(xhr.responseText);
     T(resp.last_seq == 9);
     T(resp.results &amp;&amp; resp.results.length &gt; 0 &amp;&amp; resp.results[0]["id"]
== id, "filter the correct update");
+
+    // filter with continuous
+    xhr = CouchDB.newXhr();
+    xhr.open("GET", "/test_suite_db/_changes?feed=continuous&amp;filter=changes_filter/bop&amp;timeout=100",
true);
+    xhr.send("");
+    db.save({"_id":"rusty", "bop" : "plankton"});
+    sleep(200);
+    var lines = xhr.responseText.split("\n");
+    T(JSON.parse(lines[1]).id == id);
+    T(JSON.parse(lines[2]).id == "rusty");
+    T(JSON.parse(lines[3]).last_seq == 10);
   }
 
   // error conditions
@@ -246,7 +257,7 @@
   var req = CouchDB.request("GET", 
     "/test_suite_db/_changes?filter=changes_filter/bop&amp;style=all_docs");
   var resp = JSON.parse(req.responseText);
-  TEquals(2, resp.results.length, "should return two rows");
+  TEquals(3, resp.results.length, "should return matching rows");
   
   // test for userCtx
   run_on_modified_server(




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885529 - in /couchdb/trunk: share/www/script/test/etags_views.js share/www/script/test/list_views.js src/couchdb/couch_httpd_show.erl src/couchdb/couch_httpd_view.erl</title>
<author><name>kocolosk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200911.mbox/%3c20091130183400.7986223889C5@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091130183400-7986223889C5@eris-apache-org%3e</id>
<updated>2009-11-30T18:34:00Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: kocolosk
Date: Mon Nov 30 18:33:59 2009
New Revision: 885529

URL: http://svn.apache.org/viewvc?rev=885529&amp;view=rev
Log:
ETags on POSTs to _view and _list should depend on Keys.  COUCHDB-586

Modified:
    couchdb/trunk/share/www/script/test/etags_views.js
    couchdb/trunk/share/www/script/test/list_views.js
    couchdb/trunk/src/couchdb/couch_httpd_show.erl
    couchdb/trunk/src/couchdb/couch_httpd_view.erl

Modified: couchdb/trunk/share/www/script/test/etags_views.js
URL: http://svn.apache.org/viewvc/couchdb/trunk/share/www/script/test/etags_views.js?rev=885529&amp;r1=885528&amp;r2=885529&amp;view=diff
==============================================================================
--- couchdb/trunk/share/www/script/test/etags_views.js (original)
+++ couchdb/trunk/share/www/script/test/etags_views.js Mon Nov 30 18:33:59 2009
@@ -63,6 +63,29 @@
   });
   T(xhr.status == 304);
 
+  // confirm ETag changes with different POST bodies
+  xhr = CouchDB.request("POST", "/test_suite_db/_design/etags/_view/basicView",
+    {body: JSON.stringify({keys:[1]})}
+  );
+  var etag1 = xhr.getResponseHeader("etag");
+  xhr = CouchDB.request("POST", "/test_suite_db/_design/etags/_view/basicView",
+    {body: JSON.stringify({keys:[2]})}
+  );
+  var etag2 = xhr.getResponseHeader("etag");
+  T(etag1 != etag2, "POST to map view generates key-depdendent ETags");
+
+  xhr = CouchDB.request("POST",
+    "/test_suite_db/_design/etags/_view/withReduce?group=true",
+    {body: JSON.stringify({keys:[1]})}
+  );
+  etag1 = xhr.getResponseHeader("etag");
+  xhr = CouchDB.request("POST",
+    "/test_suite_db/_design/etags/_view/withReduce?group=true",
+    {body: JSON.stringify({keys:[2]})}
+  );
+  etag2 = xhr.getResponseHeader("etag");
+  T(etag1 != etag2, "POST to reduce view generates key-depdendent ETags");
+  
   // all docs
   xhr = CouchDB.request("GET", "/test_suite_db/_all_docs");
   T(xhr.status == 200);

Modified: couchdb/trunk/share/www/script/test/list_views.js
URL: http://svn.apache.org/viewvc/couchdb/trunk/share/www/script/test/list_views.js?rev=885529&amp;r1=885528&amp;r2=885529&amp;view=diff
==============================================================================
--- couchdb/trunk/share/www/script/test/list_views.js (original)
+++ couchdb/trunk/share/www/script/test/list_views.js Mon Nov 30 18:33:59 2009
@@ -224,6 +224,17 @@
     headers: {"if-none-match": etag}
   });
   T(xhr.status == 304);
+  
+  // confirm ETag changes with different POST bodies
+  xhr = CouchDB.request("POST", "/test_suite_db/_design/lists/_list/basicBasic/basicView",
+    {body: JSON.stringify({keys:[1]})}
+  );
+  var etag1 = xhr.getResponseHeader("etag");
+  xhr = CouchDB.request("POST", "/test_suite_db/_design/lists/_list/basicBasic/basicView",
+    {body: JSON.stringify({keys:[2]})}
+  );
+  var etag2 = xhr.getResponseHeader("etag");
+  T(etag1 != etag2, "POST to map _list generates key-depdendent ETags");
 
   // test the richness of the arguments
   xhr = CouchDB.request("GET", "/test_suite_db/_design/lists/_list/basicJSON/basicView");
@@ -310,6 +321,17 @@
   });
   T(xhr.status == 304);
 
+  // confirm ETag changes with different POST bodies
+  xhr = CouchDB.request("POST", "/test_suite_db/_design/lists/_list/simpleForm/withReduce?group=true",
+    {body: JSON.stringify({keys:[1]})}
+  );
+  var etag1 = xhr.getResponseHeader("etag");
+  xhr = CouchDB.request("POST", "/test_suite_db/_design/lists/_list/simpleForm/withReduce?group=true",
+    {body: JSON.stringify({keys:[2]})}
+  );
+  var etag2 = xhr.getResponseHeader("etag");
+  T(etag1 != etag2, "POST to reduce _list generates key-depdendent ETags");
+
   // verify the etags expire correctly
   var docs = makeDocs(11, 12);
   db.bulkSave(docs);

Modified: couchdb/trunk/src/couchdb/couch_httpd_show.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_httpd_show.erl?rev=885529&amp;r1=885528&amp;r2=885529&amp;view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_httpd_show.erl (original)
+++ couchdb/trunk/src/couchdb/couch_httpd_show.erl Mon Nov 30 18:33:59 2009
@@ -191,7 +191,7 @@
     Headers = MReq:get(headers),
     Hlist = mochiweb_headers:to_list(Headers),
     Accept = proplists:get_value('Accept', Hlist),
-    CurrentEtag = couch_httpd_view:view_group_etag(Group, Db, {Lang, ListSrc, Accept, UserCtx}),
+    CurrentEtag = couch_httpd_view:view_group_etag(Group, Db, {Lang, ListSrc, Accept, UserCtx,
Keys}),
     couch_httpd:etag_respond(Req, CurrentEtag, fun() -&gt;
         % get the os process here
         % pass it into the view fold with closures

Modified: couchdb/trunk/src/couchdb/couch_httpd_view.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_httpd_view.erl?rev=885529&amp;r1=885528&amp;r2=885529&amp;view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_httpd_view.erl (original)
+++ couchdb/trunk/src/couchdb/couch_httpd_view.erl Mon Nov 30 18:33:59 2009
@@ -202,7 +202,7 @@
         skip = Skip,
         group_level = GroupLevel
     } = QueryArgs,
-    CurrentEtag = view_group_etag(Group, Db),
+    CurrentEtag = view_group_etag(Group, Db, Keys),
     couch_httpd:etag_respond(Req, CurrentEtag, fun() -&gt;
         {ok, GroupRowsFun, RespFun} = make_reduce_fold_funs(Req, GroupLevel, QueryArgs, CurrentEtag,
#reduce_fold_helper_funs{}),
         {Resp, _RedAcc3} = lists:foldl(




</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BCouchdb_Wiki=5D_Update_of_=22Running_CouchDB_in_Dev_Mode=22_?= =?utf-8?q?by_RogerBinns?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200911.mbox/%3c20091130062353.23330.81567@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091130062353-23330-81567@eos-apache-org%3e</id>
<updated>2009-11-30T06:23:53Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "Running CouchDB in Dev Mode" page has been changed by RogerBinns.
The comment on this change is: Tidy up older information, add new info (bootstrap) and give
details about what to do on Ubuntu 9.10.
http://wiki.apache.org/couchdb/Running%20CouchDB%20in%20Dev%20Mode?action=diff&amp;rev1=5&amp;rev2=6

--------------------------------------------------

  ## page was renamed from Running_Couchdb_in_Dev_Mode
- This only applies if you need to make changes to the CouchDB server or to the Futon web
front-end. 
+ This only applies if you need to make changes to the CouchDB server or to the Futon web
front-end.
  
  === Prerequisites ===
  You need to have installed CouchDB from source. See [[Installing_from_source]].
@@ -10, +10 @@

  The following commands set up a CouchDB configuration that points to the location of your
SVN checkout.
  
  Run these commands:
+ 
  {{{
  $ cd YOUR_COUCHDB_CHECKOUT_DIRECTORY
+ $ ./bootstrap
+ $ ./configure
- $ make dev 
+ $ make dev
  }}}
+ You can change defaults such as port number and passwords in `./etc/couchdb/local_dev.ini`.
Now start CouchDB by calling this command:
  
- Now start CouchDB by calling this command:
  {{{
  $ utils/run
  }}}
+ Your CouchDB server has been started as a foreground process.  You should see messages similar
to this:
  
- Your CouchDB server has been started as a foreground process. You can make it a background
process by calling this instead:
  {{{
- $ utils/run &amp;
+ Apache CouchDB 0.11.0b885334 (LogLevel=info) is starting.
+ Apache CouchDB has started. Time to relax.
+ [info] [&lt;0.32.0&gt;] Apache CouchDB has started on http://127.0.0.1:5984/
- }}}.
+ }}}
+ You can change to background, reset config files, redirect output etc via command line arguments.
 (Note only one dash in front of help.)
  
- You should see the following message:
  {{{
+ $ utils/run -help
- Apache CouchDB 0.9.0a729754-incubating (LogLevel=error) is starting.
- Apache CouchDB has started. Time to relax.
  }}}
  
+ === Ubuntu 9.10 ===
+ 
+ This is how you can run the dev version side by side with the Ubuntu version. The main difficulties
are Javascript engine paths as documented by [[http://mattgoodall.blogspot.com/2009/09/build-couchdb-on-ubuntu-910-karmic.html|Matt
Goodall]].  You need to specify `LD_RUN_PATH=/usr/lib/xulrunner-1.9.1.5` before every command
as well as provide extra parameters to configure.
+ 
+ Get all the needed build time packages:
+ 
+ {{{
+ $ sudo apt-get install libtool help2man erlang-nox erlang-dev libicu-dev xulrunner-dev libcurl4-openssl-dev
build-essential
+ }}}
+ 
+ Checkout source code and build it:
+ {{{
+ $ svn co http://svn.apache.org/repos/asf/couchdb/trunk couchdb
+ $ cd couchdb
+ $ ./bootstrap
+ $ LD_RUN_PATH=/usr/lib/xulrunner-1.9.1.5 ./configure --with-js-lib=/usr/lib/xulrunner-devel-1.9.1.5/lib/
--with-js-include=/usr/lib/xulrunner-devel-1.9.1.5/include
+ $ LD_RUN_PATH=/usr/lib/xulrunner-1.9.1.5 make dev
+ }}}
+ 
+ Now edit `./etc/default/local_dev.ini` and change the port.  I use 5984 (default) for the
Ubuntu install and 5985 for this dev version.
+ 
+ {{{
+ $ LD_RUN_PATH=/usr/lib/xulrunner-1.9.1.5 utils/run
+ }}}
+ 


</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885329 - in /couchdb/trunk: share/www/script/test/changes.js src/couchdb/couch_httpd_db.erl</title>
<author><name>jchris@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200911.mbox/%3c20091130035903.4DAB923889E8@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091130035903-4DAB923889E8@eris-apache-org%3e</id>
<updated>2009-11-30T03:59:03Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: jchris
Date: Mon Nov 30 03:59:02 2009
New Revision: 885329

URL: http://svn.apache.org/viewvc?rev=885329&amp;view=rev
Log:
work on COUCHDB-582, fixes issues with filtered longpoll requests closing early

Modified:
    couchdb/trunk/share/www/script/test/changes.js
    couchdb/trunk/src/couchdb/couch_httpd_db.erl

Modified: couchdb/trunk/share/www/script/test/changes.js
URL: http://svn.apache.org/viewvc/couchdb/trunk/share/www/script/test/changes.js?rev=885329&amp;r1=885328&amp;r2=885329&amp;view=diff
==============================================================================
--- couchdb/trunk/share/www/script/test/changes.js (original)
+++ couchdb/trunk/share/www/script/test/changes.js Mon Nov 30 03:59:02 2009
@@ -26,10 +26,10 @@
   var resp = JSON.parse(req.responseText);
 
   T(resp.results.length == 0 &amp;&amp; resp.last_seq==0, "empty db")
-
   var docFoo = {_id:"foo", bar:1};
   T(db.save(docFoo).ok);
-
+  T(db.ensureFullCommit().ok);
+  
   req = CouchDB.request("GET", "/test_suite_db/_changes");
   var resp = JSON.parse(req.responseText);
 
@@ -186,6 +186,7 @@
   T(resp.results.length == 0); 
 
   db.save({"bop" : "foom"});
+  db.save({"bop" : false});
   
   var req = CouchDB.request("GET", "/test_suite_db/_changes?filter=changes_filter/bop");
   var resp = JSON.parse(req.responseText);
@@ -199,6 +200,27 @@
   resp = JSON.parse(req.responseText);
   T(resp.results.length == 1);
 
+  if (!is_safari &amp;&amp; xhr) { // full test requires parallel connections
+    // filter with longpoll
+    // longpoll filters full history when run without a since seq
+    xhr = CouchDB.newXhr();
+    xhr.open("GET", "/test_suite_db/_changes?feed=longpoll&amp;filter=changes_filter/bop",
true);
+    xhr.send("");
+    sleep(100);
+    var resp = JSON.parse(xhr.responseText);
+    T(resp.last_seq == 7);
+    // longpoll waits until a matching change before returning
+    xhr = CouchDB.newXhr();
+    xhr.open("GET", "/test_suite_db/_changes?feed=longpoll&amp;since=7&amp;filter=changes_filter/bop",
true);
+    xhr.send("");
+    db.save({"bop" : ""}); // empty string is falsy
+    var id = db.save({"bop" : "bingo"}).id;
+    sleep(100);
+    var resp = JSON.parse(xhr.responseText);
+    T(resp.last_seq == 9);
+    T(resp.results &amp;&amp; resp.results.length &gt; 0 &amp;&amp; resp.results[0]["id"]
== id, "filter the correct update");
+  }
+
   // error conditions
 
   // non-existing design doc
@@ -224,7 +246,7 @@
   var req = CouchDB.request("GET", 
     "/test_suite_db/_changes?filter=changes_filter/bop&amp;style=all_docs");
   var resp = JSON.parse(req.responseText);
-  TEquals(1, resp.results.length, "should return one result row");
+  TEquals(2, resp.results.length, "should return two rows");
   
   // test for userCtx
   run_on_modified_server(
@@ -248,6 +270,7 @@
 
       var docResp = db.save({"user" : "Chris Anderson"});
       T(docResp.ok);
+      T(db.ensureFullCommit().ok);
       req = CouchDB.request("GET", "/test_suite_db/_changes?filter=changes_filter/userCtx",
authOpts);
       resp = JSON.parse(req.responseText);
       T(resp.results.length == 1, "userCtx");

Modified: couchdb/trunk/src/couchdb/couch_httpd_db.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_httpd_db.erl?rev=885329&amp;r1=885328&amp;r2=885329&amp;view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_httpd_db.erl (original)
+++ couchdb/trunk/src/couchdb/couch_httpd_db.erl Mon Nov 30 03:59:02 2009
@@ -159,7 +159,7 @@
         Prepend, ResponseType, Limit, Filter, End),
     couch_db:close(Db),
     if
-    EndSeq &gt; StartSeq, ResponseType == "longpoll" -&gt;
+    Limit &gt; NewLimit, ResponseType == "longpoll" -&gt;
         end_sending_changes(Resp, EndSeq, ResponseType);
     true -&gt;
         case wait_db_updated(Timeout, TimeoutFun) of




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885287 - /couchdb/trunk/.gitignore</title>
<author><name>jchris@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200911.mbox/%3c20091129231049.3A34123889E7@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091129231049-3A34123889E7@eris-apache-org%3e</id>
<updated>2009-11-29T23:10:49Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: jchris
Date: Sun Nov 29 23:10:48 2009
New Revision: 885287

URL: http://svn.apache.org/viewvc?rev=885287&amp;view=rev
Log:
add *.la and test/bench/run to .gitignore

Modified:
    couchdb/trunk/.gitignore

Modified: couchdb/trunk/.gitignore
URL: http://svn.apache.org/viewvc/couchdb/trunk/.gitignore?rev=885287&amp;r1=885286&amp;r2=885287&amp;view=diff
==============================================================================
--- couchdb/trunk/.gitignore (original)
+++ couchdb/trunk/.gitignore Sun Nov 29 23:10:48 2009
@@ -3,6 +3,7 @@
 *.tpl
 *.o
 *.lo
+*.la
 *.m4
 *.in
 *~
@@ -87,6 +88,7 @@
 # for make check
 
 test/etap/temp.*
+test/bench/run
 couchdb.stderr
 couchdb.stdout
 




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885286 - /couchdb/trunk/share/www/script/test/basics.js</title>
<author><name>jchris@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200911.mbox/%3c20091129231044.91AAA23889CB@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091129231044-91AAA23889CB@eris-apache-org%3e</id>
<updated>2009-11-29T23:10:44Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: jchris
Date: Sun Nov 29 23:10:43 2009
New Revision: 885286

URL: http://svn.apache.org/viewvc?rev=885286&amp;view=rev
Log:
add assertion that _all_dbs API exists

Modified:
    couchdb/trunk/share/www/script/test/basics.js

Modified: couchdb/trunk/share/www/script/test/basics.js
URL: http://svn.apache.org/viewvc/couchdb/trunk/share/www/script/test/basics.js?rev=885286&amp;r1=885285&amp;r2=885286&amp;view=diff
==============================================================================
--- couchdb/trunk/share/www/script/test/basics.js (original)
+++ couchdb/trunk/share/www/script/test/basics.js Sun Nov 29 23:10:43 2009
@@ -45,6 +45,7 @@
 
   // Get the database info, check the db_name
   T(db.info().db_name == "test_suite_db");
+  T(CouchDB.allDbs().indexOf("test_suite_db") != -1)
 
   // Get the database info, check the doc_count
   T(db.info().doc_count == 0);




</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BCouchdb_Wiki=5D_Update_of_=22Installing=5Fon=5FFreeBSD=22_by?= =?utf-8?q?_Vlad_GURDIGA?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200911.mbox/%3c20091128234454.7684.67455@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091128234454-7684-67455@eos-apache-org%3e</id>
<updated>2009-11-28T23:44:54Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "Installing_on_FreeBSD" page has been changed by Vlad GURDIGA.
http://wiki.apache.org/couchdb/Installing_on_FreeBSD?action=diff&amp;rev1=15&amp;rev2=16

--------------------------------------------------

  
  If you get {{{aclocal: not found}}} on {{{./bootstrap}}} you need to {{{pkg_add -r automake19}}}.
  
+ If you get {{{libtoolize: not found}}} on {{{./bootstrap}}} you need to {{{pkg_add -r libtool}}}.
+ 
  If you get {{{error: Could not find the js library}}} on {{{./configure}}} you need to {{{pkg_add
-r spidermonkey}}}.
  
  If you get {{{error: Library requirements (ICU) not met}}} on {{{./configure}}} you need
to {{{pkg_add -r icu}}}.
+ 
+ If you get {{{error: Library requirements (curl) not met}}} on {{{./configure}}} you need
to {{{pkg_add -r curl}}}.
  
  = Current TODO =
   * Change /var/lib/couchdb/ to /var/db/couchdb/


</pre>
</div>
</content>
</entry>
<entry>
<title>=?utf-8?q?=5BCouchdb_Wiki=5D_Update_of_=22Related=5FProjects=22_by_Benoit?= =?utf-8?q?C?=</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/couchdb-commits/200911.mbox/%3c20091128144728.27366.50326@eos.apache.org%3e"/>
<id>urn:uuid:%3c20091128144728-27366-50326@eos-apache-org%3e</id>
<updated>2009-11-28T14:47:28Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "Related_Projects" page has been changed by BenoitC.
http://wiki.apache.org/couchdb/Related_Projects?action=diff&amp;rev1=22&amp;rev2=23

--------------------------------------------------

  A list of CouchDB related projects, clients and libraries.
  
  == Clients ==
-   * [[http://github.com/couchapp/couchapp/|Couchapp]] Command line tool to develop standalone
CouchDB applications and send/clone documents from/to CouchDB.
+   * [[http://github.com/couchapp/couchapp/|Couchapp]] Command line tool to manage standalone
CouchDB applications and send/clone documents from/to CouchDB.
    * [[http://janl.github.com/couchdbx/|CouchDBX — The one-click CouchDB package for the
Mac]]
    * [[http://objectiveous.github.com/davenport/|Davenport: Davenport is a plugin container
for building native Mac OS X applications]]
    * [[http://code.google.com/p/couchdb-fuse/|CouchDB-FUSE: mount document attachments on
a virtual filesystem]]


</pre>
</div>
</content>
</entry>
</feed>
