summaryrefslogtreecommitdiff
path: root/apps/couch/CHANGES
diff options
context:
space:
mode:
Diffstat (limited to 'apps/couch/CHANGES')
-rw-r--r--apps/couch/CHANGES582
1 files changed, 582 insertions, 0 deletions
diff --git a/apps/couch/CHANGES b/apps/couch/CHANGES
new file mode 100644
index 00000000..08458f10
--- /dev/null
+++ b/apps/couch/CHANGES
@@ -0,0 +1,582 @@
+Apache CouchDB CHANGES
+======================
+
+Version 1.0.1
+-------------
+
+Storage System:
+
+ * Fix data corruption bug COUCHDB-844. Please see
+ http://couchdb.apache.org/notice/1.0.1.html for details.
+
+Replicator:
+
+ * Added support for replication via an HTTP/HTTP proxy.
+ * Fix pull replication of attachments from 0.11 to 1.0.x.
+ * Make the _changes feed work with non-integer seqnums.
+
+HTTP Interface:
+
+ * Expose `committed_update_seq` for monitoring purposes.
+ * Show fields saved along with _deleted=true. Allows for auditing of deletes.
+ * More robust Accept-header detection.
+
+Authentication:
+
+ * Enable basic-auth popup when required to access the server, to prevent
+ people from getting locked out.
+
+Futon:
+
+ * User interface element for querying stale (cached) views.
+
+Build and System Integration:
+
+ * Included additional source files for distribution.
+
+Version 1.0.0
+-------------
+
+Security:
+
+ * Added authentication caching, to avoid repeated opening and closing of the
+ users database for each request requiring authentication.
+
+Storage System:
+
+ * Small optimization for reordering result lists.
+ * More efficient header commits.
+ * Use O_APPEND to save lseeks.
+ * Faster implementation of pread_iolist(). Further improves performance on
+ concurrent reads.
+
+View Server:
+
+ * Faster default view collation.
+ * Added option to include update_seq in view responses.
+
+Version 0.11.2
+--------------
+
+Replicator:
+
+ * Fix bug when pushing design docs by non-admins, which was hanging the
+ replicator for no good reason.
+ * Fix bug when pulling design documents from a source that requires
+ basic-auth.
+
+HTTP Interface:
+
+ * Better error messages on invalid URL requests.
+
+Authentication:
+
+ * User documents can now be deleted by admins or the user.
+
+Security:
+
+ * Avoid potential DOS attack by guarding all creation of atoms.
+
+Futon:
+
+ * Add some Futon files that were missing from the Makefile.
+
+Version 0.11.1
+--------------
+
+HTTP Interface:
+
+ * Mask passwords in active tasks and logging.
+ * Update mochijson2 to allow output of BigNums not in float form.
+ * Added support for X-HTTP-METHOD-OVERRIDE.
+ * Better error message for database names.
+ * Disable jsonp by default.
+ * Accept gzip encoded standalone attachments.
+ * Made max_concurrent_connections configurable.
+ * Made changes API more robust.
+ * Send newly generated document rev to callers of an update function.
+
+Futon:
+
+ * Use "expando links" for over-long document values in Futon.
+ * Added continuous replication option.
+ * Added option to replicating test results anonymously to a community
+ CouchDB instance.
+ * Allow creation and deletion of config entries.
+ * Fixed display issues with doc ids that have escaped characters.
+ * Fixed various UI issues.
+
+Build and System Integration:
+
+ * Output of `couchdb --help` has been improved.
+ * Fixed compatibility with the Erlang R14 series.
+ * Fixed warnings on Linux builds.
+ * Fixed build error when aclocal needs to be called during the build.
+ * Require ICU 4.3.1.
+ * Fixed compatibility with Solaris.
+
+Security:
+
+ * Added authentication redirect URL to log in clients.
+ * Fixed query parameter encoding issue in oauth.js.
+ * Made authentication timeout configurable.
+ * Temporary views are now admin-only resources.
+
+Storage System:
+
+ * Don't require a revpos for attachment stubs.
+ * Added checking to ensure when a revpos is sent with an attachment stub,
+ it's correct.
+ * Make file deletions async to avoid pauses during compaction and db
+ deletion.
+ * Fixed for wrong offset when writing headers and converting them to blocks,
+ only triggered when header is larger than 4k.
+ * Preserve _revs_limit and instance_start_time after compaction.
+
+Configuration System:
+
+ * Fixed timeout with large .ini files.
+
+JavaScript Clients:
+
+ * Added tests for couch.js and jquery.couch.js
+ * Added changes handler to jquery.couch.js.
+ * Added cache busting to jquery.couch.js if the user agent is msie.
+ * Added support for multi-document-fetch (via _all_docs) to jquery.couch.js.
+ * Added attachment versioning to jquery.couch.js.
+ * Added option to control ensure_full_commit to jquery.couch.js.
+ * Added list functionality to jquery.couch.js.
+ * Fixed issues where bulkSave() wasn't sending a POST body.
+
+View Server:
+
+ * Provide a UUID to update functions (and all other functions) that they can
+ use to create new docs.
+ * Upgrade CommonJS modules support to 1.1.1.
+ * Fixed erlang filter funs and normalize filter fun API.
+ * Fixed hang in view shutdown.
+
+Log System:
+
+ * Log HEAD requests as HEAD, not GET.
+ * Keep massive JSON blobs out of the error log.
+ * Fixed a timeout issue.
+
+Replication System:
+
+ * Refactored various internal APIs related to attachment streaming.
+ * Fixed hanging replication.
+ * Fixed keepalive issue.
+
+URL Rewriter & Vhosts:
+
+ * Allow more complex keys in rewriter.
+ * Allow global rewrites so system defaults are available in vhosts.
+ * Allow isolation of databases with vhosts.
+ * Fix issue with passing variables to query parameters.
+
+Test Suite:
+
+ * Made the test suite overall more reliable.
+
+Version 0.11.0
+--------------
+
+Security:
+
+ * Fixed CVE-2010-0009: Apache CouchDB Timing Attack Vulnerability.
+ * Added default cookie-authentication and users database.
+ * Added Futon user interface for user signup and login.
+ * Added per-database reader access control lists.
+ * Added per-database security object for configuration data in validation
+ functions.
+ * Added proxy authentication handler
+
+HTTP Interface:
+
+ * Provide Content-MD5 header support for attachments.
+ * Added URL Rewriter handler.
+ * Added virtual host handling.
+
+View Server:
+
+ * Added optional 'raw' binary collation for faster view builds where Unicode
+ collation is not important.
+ * Improved view index build time by reducing ICU collation callouts.
+ * Improved view information objects.
+ * Bug fix for partial updates during view builds.
+ * Move query server to a design-doc based protocol.
+ * Use json2.js for JSON serialization for compatiblity with native JSON.
+ * Major refactoring of couchjs to lay the groundwork for disabling cURL
+ support. The new HTTP interaction acts like a synchronous XHR. Example usage
+ of the new system is in the JavaScript CLI test runner.
+
+Replication:
+
+ * Added option to implicitly create replication target databases.
+ * Avoid leaking file descriptors on automatic replication restarts.
+ * Added option to replicate a list of documents by id.
+ * Allow continuous replication to be cancelled.
+
+Storage System:
+
+ * Adds batching of multiple updating requests, to improve throughput with many
+ writers. Removed the now redundant couch_batch_save module.
+ * Adds configurable compression of attachments.
+
+Runtime Statistics:
+
+ * Statistics are now calculated for a moving window instead of non-overlapping
+ timeframes.
+ * Fixed a problem with statistics timers and system sleep.
+ * Moved statistic names to a term file in the priv directory.
+
+Futon:
+
+ * Added a button for view compaction.
+ * JSON strings are now displayed as-is in the document view, without the escaping of
+ new-lines and quotes. That dramatically improves readability of multi-line
+ strings.
+ * Same goes for editing of JSON string values. When a change to a field value is
+ submitted, and the value is not valid JSON it is assumed to be a string. This
+ improves editing of multi-line strings a lot.
+ * Hitting tab in textareas no longer moves focus to the next form field, but simply
+ inserts a tab character at the current caret position.
+ * Fixed some font declarations.
+
+Build and System Integration:
+
+ * Updated and improved source documentation.
+ * Fixed distribution preparation for building on Mac OS X.
+ * Added support for building a Windows installer as part of 'make dist'.
+ * Bug fix for building couch.app's module list.
+ * ETap tests are now run during make distcheck. This included a number of
+ updates to the build system to properly support VPATH builds.
+ * Gavin McDonald setup a build-bot instance. More info can be found at
+ http://ci.apache.org/buildbot.html
+
+Version 0.10.1
+--------------
+
+Replicator:
+
+ * Stability enhancements regarding redirects, timeouts, OAuth.
+
+Query Server:
+
+ * Avoid process leaks
+ * Allow list and view to span languages
+
+Stats:
+
+ * Eliminate new process flood on system wake
+
+Build and System Integration:
+
+ * Test suite now works with the distcheck target.
+
+Version 0.10.0
+--------------
+
+Storage Format:
+
+ * Add move headers with checksums to the end of database files for extra robust
+ storage and faster storage.
+
+View Server:
+
+ * Added native Erlang views for high-performance applications.
+
+HTTP Interface:
+
+ * Added optional cookie-based authentication handler.
+ * Added optional two-legged OAuth authentication handler.
+
+Build and System Integration:
+
+ * Changed `couchdb` script configuration options.
+ * Added default.d and local.d configuration directories to load sequence.
+
+
+Version 0.9.2
+-------------
+
+Replication:
+
+ * Fix replication with 0.10 servers initiated by an 0.9 server (COUCHDB-559).
+
+Build and System Integration:
+
+ * Remove branch callbacks to allow building couchjs against newer versions of
+ Spidermonkey.
+
+Version 0.9.1
+-------------
+
+Build and System Integration:
+
+ * PID file directory is now created by the SysV/BSD daemon scripts.
+ * Fixed the environment variables shown by the configure script.
+ * Fixed the build instructions shown by the configure script.
+ * Updated ownership and permission advice in `README` for better security.
+
+Configuration and stats system:
+
+ * Corrected missing configuration file error message.
+ * Fixed incorrect recording of request time.
+
+Database Core:
+
+ * Document validation for underscore prefixed variables.
+ * Made attachment storage less sparse.
+ * Fixed problems when a database with delayed commits pending is considered
+ idle, and subject to losing changes when shutdown. (COUCHDB-334)
+
+External Handlers:
+
+ * Fix POST requests.
+
+Futon:
+
+ * Redirect when loading a deleted view URI from the cookie.
+
+HTTP Interface:
+
+ * Attachment requests respect the "rev" query-string parameter.
+
+JavaScript View Server:
+
+ * Useful JavaScript Error messages.
+
+Replication:
+
+ * Added support for Unicode characters transmitted as UTF-16 surrogate pairs.
+ * URL-encode attachment names when necessary.
+ * Pull specific revisions of an attachment, instead of just the latest one.
+ * Work around a rare chunk-merging problem in ibrowse.
+ * Work with documents containing Unicode characters outside the Basic
+ Multilingual Plane.
+
+Version 0.9.0
+-------------
+
+Futon Utility Client:
+
+ * Added pagination to the database listing page.
+ * Implemented attachment uploading from the document page.
+ * Added page that shows the current configuration, and allows modification of
+ option values.
+ * Added a JSON "source view" for document display.
+ * JSON data in view rows is now syntax highlighted.
+ * Removed the use of an iframe for better integration with browser history and
+ bookmarking.
+ * Full database listing in the sidebar has been replaced by a short list of
+ recent databases.
+ * The view editor now allows selection of the view language if there is more
+ than one configured.
+ * Added links to go to the raw view or document URI.
+ * Added status page to display currently running tasks in CouchDB.
+ * JavaScript test suite split into multiple files.
+ * Pagination for reduce views.
+
+Design Document Resource Paths:
+
+ * Added httpd_design_handlers config section.
+ * Moved _view to httpd_design_handlers.
+ * Added ability to render documents as non-JSON content-types with _show and
+ _list functions, which are also httpd_design_handlers.
+
+HTTP Interface:
+
+ * Added client side UUIDs for idempotent document creation
+ * HTTP COPY for documents
+ * Streaming of chunked attachment PUTs to disk
+ * Remove negative count feature
+ * Add include_docs option for view queries
+ * Add multi-key view post for views
+ * Query parameter validation
+ * Use stale=ok to request potentially cached view index
+ * External query handler module for full-text or other indexers.
+ * Etags for attachments, views, shows and lists
+ * Show and list functions for rendering documents and views as developer
+ controlled content-types.
+ * Attachment names may use slashes to allow uploading of nested directories
+ (useful for static web hosting).
+ * Option for a view to run over design documents.
+ * Added newline to JSON responses. Closes bike-shed.
+
+Replication:
+
+ * Using ibrowse.
+ * Checkpoint replications so failures are less expensive.
+ * Automatically retry of failed replications.
+ * Stream attachments in pull-replication.
+
+Database Core:
+
+ * Faster B-tree implementation.
+ * Changed internal JSON term format.
+ * Improvements to Erlang VM interactions under heavy load.
+ * User context and administrator role.
+ * Update validations with design document validation functions.
+ * Document purge functionality.
+ * Ref-counting for database file handles.
+
+Build and System Integration:
+
+ * The `couchdb` script now supports system chainable configuration files.
+ * The Mac OS X daemon script now redirects STDOUT and STDERR like SysV/BSD.
+ * The build and system integration have been improved for portability.
+ * Added COUCHDB_OPTIONS to etc/default/couchdb file.
+ * Remove COUCHDB_INI_FILE and COUCHDB_PID_FILE from etc/default/couchdb file.
+ * Updated `configure.ac` to manually link `libm` for portability.
+ * Updated `configure.ac` to extended default library paths.
+ * Removed inets configuration files.
+ * Added command line test runner.
+ * Created dev target for make.
+
+Configuration and stats system:
+
+ * Separate default and local configuration files.
+ * HTTP interface for configuration changes.
+ * Statistics framework with HTTP query API.
+
+Version 0.8.1-incubating
+------------------------
+
+Database Core:
+
+ * Fix for replication problems where the write queues can get backed up if the
+ writes aren't happening fast enough to keep up with the reads. For a large
+ replication, this can exhaust memory and crash, or slow down the machine
+ dramatically. The fix keeps only one document in the write queue at a time.
+ * Fix for databases sometimes incorrectly reporting that they contain 0
+ documents after compaction.
+ * CouchDB now uses ibrowse instead of inets for its internal HTTP client
+ implementation. This means better replication stability.
+
+HTTP Interface:
+
+ * Fix for chunked responses where chunks were always being split into multiple
+ TCP packets, which caused problems with the test suite under Safari, and in
+ some other cases.
+ * Fix for an invalid JSON response body being returned for some kinds of
+ views. (COUCHDB-84)
+ * Fix for connections not getting closed after rejecting a chunked request.
+ (COUCHDB-55)
+ * CouchDB can now be bound to IPv6 addresses.
+ * The HTTP `Server` header now contains the versions of CouchDB and Erlang.
+
+JavaScript View Server:
+
+ * Sealing of documents has been disabled due to an incompatibility with
+ SpiderMonkey 1.9.
+ * Improve error handling for undefined values emitted by map functions.
+ (COUCHDB-83)
+
+Build and System Integration:
+
+ * The `couchdb` script no longer uses `awk` for configuration checks as this
+ was causing portability problems.
+ * Updated `sudo` example in `README` to use the `-i` option, this fixes
+ problems when invoking from a directory the `couchdb` user cannot access.
+
+Futon:
+
+ * The view selector dropdown should now work in Opera and Internet Explorer
+ even when it includes optgroups for design documents. (COUCHDB-81)
+
+Version 0.8.0-incubating
+------------------------
+
+Database Core:
+
+ * The view engine has been completely decoupled from the storage engine. Index
+ data is now stored in separate files, and the format of the main database
+ file has changed.
+ * Databases can now be compacted to reclaim space used for deleted documents
+ and old document revisions.
+ * Support for incremental map/reduce views has been added.
+ * To support map/reduce, the structure of design documents has changed. View
+ values are now JSON objects containing at least a `map` member, and
+ optionally a `reduce` member.
+ * View servers are now identified by name (for example `javascript`) instead of
+ by media type.
+ * Automatically generated document IDs are now based on proper UUID generation
+ using the crypto module.
+ * The field `content-type` in the JSON representation of attachments has been
+ renamed to `content_type` (underscore).
+
+HTTP Interface:
+
+ * CouchDB now uses MochiWeb instead of inets for the HTTP server
+ implementation. Among other things, this means that the extra configuration
+ files needed for inets (such as `couch_httpd.conf`) are no longer used.
+ * The HTTP interface now completely supports the `HEAD` method. (COUCHDB-3)
+ * Improved compliance of `Etag` handling with the HTTP specification.
+ (COUCHDB-13)
+ * Etags are no longer included in responses to document `GET` requests that
+ include query string parameters causing the JSON response to change without
+ the revision or the URI having changed.
+ * The bulk document update API has changed slightly on both the request and the
+ response side. In addition, bulk updates are now atomic.
+ * CouchDB now uses `TCP_NODELAY` to fix performance problems with persistent
+ connections on some platforms due to nagling.
+ * Including a `?descending=false` query string parameter in requests to views
+ no longer raises an error.
+ * Requests to unknown top-level reserved URLs (anything with a leading
+ underscore) now return a `unknown_private_path` error instead of the
+ confusing `illegal_database_name`.
+ * The Temporary view handling now expects a JSON request body, where the JSON
+ is an object with at least a `map` member, and optional `reduce` and
+ `language` members.
+ * Temporary views no longer determine the view server based on the Content-Type
+ header of the `POST` request, but rather by looking for a `language` member
+ in the JSON body of the request.
+ * The status code of responses to `DELETE` requests is now 200 to reflect that
+ that the deletion is performed synchronously.
+
+JavaScript View Server:
+
+ * SpiderMonkey is no longer included with CouchDB, but rather treated as a
+ normal external dependency. A simple C program (`_couchjs`) is provided that
+ links against an existing SpiderMonkey installation and uses the interpreter
+ embedding API.
+ * View functions using the default JavaScript view server can now do logging
+ using the global `log(message)` function. Log messages are directed into the
+ CouchDB log at `INFO` level. (COUCHDB-59)
+ * The global `map(key, value)` function made available to view code has been
+ renamed to `emit(key, value)`.
+ * Fixed handling of exceptions raised by view functions.
+
+Build and System Integration:
+
+ * CouchDB can automatically respawn following a server crash.
+ * Database server no longer refuses to start with a stale PID file.
+ * System logrotate configuration provided.
+ * Improved handling of ICU shared libraries.
+ * The `couchdb` script now automatically enables SMP support in Erlang.
+ * The `couchdb` and `couchjs` scripts have been improved for portability.
+ * The build and system integration have been improved for portability.
+
+Futon:
+
+ * When adding a field to a document, Futon now just adds a field with an
+ autogenerated name instead of prompting for the name with a dialog. The name
+ is automatically put into edit mode so that it can be changed immediately.
+ * Fields are now sorted alphabetically by name when a document is displayed.
+ * Futon can be used to create and update permanent views.
+ * The maximum number of rows to display per page on the database page can now
+ be adjusted.
+ * Futon now uses the XMLHTTPRequest API asynchronously to communicate with the
+ CouchDB HTTP server, so that most operations no longer block the browser.
+ * View results sorting can now be switched between ascending and descending by
+ clicking on the `Key` column header.
+ * Fixed a bug where documents that contained a `@` character could not be
+ viewed. (COUCHDB-12)
+ * The database page now provides a `Compact` button to trigger database
+ compaction. (COUCHDB-38)
+ * Fixed portential double encoding of document IDs and other URI segments in
+ many instances. (COUCHDB-39)
+ * Improved display of attachments.
+ * The JavaScript Shell has been removed due to unresolved licensing issues.