~jderose/ubuntu/vivid/couchdb/fix-1457464

« back to all changes in this revision

Viewing changes to share/doc/src/whatsnew/0.11.rst

  • Committer: Package Import Robot
  • Author(s): Jason Gerard DeRose
  • Date: 2013-12-01 16:55:05 UTC
  • mfrom: (1.3.5)
  • Revision ID: package-import@ubuntu.com-20131201165505-for2toyl58mhzwj2
Tags: 1.5.0-0ubuntu1
* New upstream release (LP: #1254371)
* Don't include `couchdb` info page in `couchdb-bin` binary package as it
  provides no meaningful benefit over the `couchdb` man page (note this change
  means we don't need to add a Build-Depends on `install-info` for Trusty)
* Remove Build-Depends: texlive-latex-base, texlive-latex-recommended,
  texlive-latex-extra, texlive-fonts-recommended, texinfo (as documentation
  thus produced doesn't get included in the binary packages anyway)
* debian/rules: don't call ./configure with --enable-strictness as we dropped
  Build-Depends on `texlive-*`, `texinfo`, plus didn't add `install-info` 
* Add Build-Depends: lsb-release (used for [vendor] info in default.ini)
* debian/rules: insert proper [vendor] info in default.ini (note this should
  be improved once there is a better mechanism upstream)
* debian/couchdb.upstart: start on filesystem and static-network-up,
  stop on deconfiguring-networking, plus add "author" line

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
.. Licensed under the Apache License, Version 2.0 (the "License"); you may not
 
2
.. use this file except in compliance with the License. You may obtain a copy of
 
3
.. the License at
 
4
..
 
5
..   http://www.apache.org/licenses/LICENSE-2.0
 
6
..
 
7
.. Unless required by applicable law or agreed to in writing, software
 
8
.. distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 
9
.. WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 
10
.. License for the specific language governing permissions and limitations under
 
11
.. the License.
 
12
 
 
13
 
 
14
.. _release/0.11.x:
 
15
 
 
16
=============
 
17
0.11.x Branch
 
18
=============
 
19
 
 
20
.. contents::
 
21
   :depth: 1
 
22
   :local:
 
23
 
 
24
 
 
25
.. _release/0.11.x/upgrade:
 
26
 
 
27
Upgrade Notes
 
28
=============
 
29
 
 
30
.. warning::
 
31
 
 
32
   :ref:`release/0.11.2` contains important security fixes. Previous `0.11.x`
 
33
   releases are not recommended for regular usage.
 
34
 
 
35
Changes Between 0.11.0 and 0.11.1
 
36
---------------------------------
 
37
 
 
38
- ``_log`` and ``_temp_views`` are now admin-only resources.
 
39
- ``_bulk_docs`` now requires a valid `Content-Type` header of
 
40
  ``application/json``.
 
41
- `JSONP` is disabled by default. An .ini option was added to selectively
 
42
  enable it.
 
43
- The ``key``, ``startkey`` and ``endkey`` properties of the request object
 
44
  passed to :ref:`list <listfun>` and :ref:`show <showfun>` functions now
 
45
  contain JSON objects representing the URL encoded string values in the query
 
46
  string. Previously, these properties contained strings which needed to be
 
47
  converted to JSON before using.
 
48
 
 
49
 
 
50
Changes Between 0.10.x and 0.11.0
 
51
---------------------------------
 
52
 
 
53
show, list, update and validation functions
 
54
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
55
 
 
56
The ``req`` argument to show, list, update and validation functions now contains
 
57
the member method with the specified HTTP method of the current request.
 
58
Previously, this member was called ``verb``. ``method`` is following :rfc:`2616`
 
59
(HTTP 1.1) closer.
 
60
 
 
61
_admins -> _security
 
62
^^^^^^^^^^^^^^^^^^^^
 
63
 
 
64
The `/db/_admins` handler has been removed and replaced with a
 
65
:ref:`/db/_security <api/db/security>` object. Any existing `_admins` will be
 
66
dropped and need to be added to the security object again. The reason for this
 
67
is that the old system made no distinction between names and roles, while the
 
68
new one does, so there is no way to automatically upgrade the old admins list.
 
69
 
 
70
The security object has 2 special fields, ``admins`` and ``readers``, which
 
71
contain lists of names and roles which are admins or readers on that database.
 
72
Anything else may be stored in other fields on the security object. The entire
 
73
object is made available to validation functions.
 
74
 
 
75
json2.js
 
76
^^^^^^^^
 
77
 
 
78
JSON handling in the query server has been upgraded to use `json2.js`_.
 
79
This allows us to use faster native JSON serialization when it is available.
 
80
 
 
81
In previous versions, attempts to serialize undefined would throw an exception,
 
82
causing the doc that emitted undefined to be dropped from the view index.
 
83
The new behavior is to serialize undefined as null. Applications depending on
 
84
the old behavior will need to explicitly check for undefined.
 
85
 
 
86
Another change is that E4X's XML objects will not automatically be
 
87
stringified. XML users will need to call ``my_xml_object.toXMLString()``
 
88
to return a string value. :commit:`8d3b7ab3`
 
89
 
 
90
.. _json2.js: https://github.com/douglascrockford/JSON-js/blob/master/json2.js
 
91
 
 
92
 
 
93
WWW-Authenticate
 
94
^^^^^^^^^^^^^^^^
 
95
 
 
96
The default configuration has been changed to avoid causing basic-auth popups
 
97
which result from sending the WWW-Authenticate header. To enable basic-auth
 
98
popups, uncomment the :config:option:`httpd/WWW-Authenticate` line in
 
99
`local.ini`.
 
100
 
 
101
Query server line protocol
 
102
^^^^^^^^^^^^^^^^^^^^^^^^^^
 
103
 
 
104
The query server line protocol has changed for all functions except
 
105
:ref:`map <qs/map_doc>`, :ref:`reduce <qs/reduce>`, and
 
106
:ref:`rereduce <qs/rereduce>`. This allows us to cache the entire design
 
107
document in the query server process, which results in faster performance for
 
108
common operations. It also gives more flexibility to query server
 
109
implementators and shouldn't require major changes in the future when adding
 
110
new query server features.
 
111
 
 
112
UTF8 JSON
 
113
^^^^^^^^^
 
114
 
 
115
JSON request bodies are validated for proper UTF-8 before saving, instead of
 
116
waiting to fail on subsequent read requests.
 
117
 
 
118
_changes line format
 
119
^^^^^^^^^^^^^^^^^^^^
 
120
 
 
121
Continuous changes are now newline delimited, instead of having each line
 
122
followed by a comma.
 
123
 
 
124
 
 
125
.. _release/0.11.2:
 
126
 
 
127
Version 0.11.2
 
128
==============
 
129
 
 
130
Authentication
 
131
--------------
 
132
 
 
133
* User documents can now be deleted by admins or the user.
 
134
 
 
135
Futon
 
136
-----
 
137
 
 
138
* Add some Futon files that were missing from the Makefile.
 
139
 
 
140
HTTP Interface
 
141
--------------
 
142
 
 
143
* Better error messages on invalid URL requests.
 
144
 
 
145
Replicator
 
146
----------
 
147
 
 
148
* Fix bug when pushing design docs by non-admins, which was hanging the
 
149
  replicator for no good reason.
 
150
* Fix bug when pulling design documents from a source that requires
 
151
  basic-auth.
 
152
 
 
153
Security
 
154
--------
 
155
 
 
156
* Avoid potential DOS attack by guarding all creation of atoms.
 
157
* Fixed :ref:`cve/2010-2234`
 
158
 
 
159
 
 
160
.. _release/0.11.1:
 
161
 
 
162
Version 0.11.1
 
163
==============
 
164
 
 
165
Build and System Integration
 
166
----------------------------
 
167
 
 
168
* Output of `couchdb --help` has been improved.
 
169
* Fixed compatibility with the Erlang R14 series.
 
170
* Fixed warnings on Linux builds.
 
171
* Fixed build error when aclocal needs to be called during the build.
 
172
* Require ICU 4.3.1.
 
173
* Fixed compatibility with Solaris.
 
174
 
 
175
Configuration System
 
176
--------------------
 
177
 
 
178
* Fixed timeout with large .ini files.
 
179
 
 
180
Futon
 
181
-----
 
182
 
 
183
* Use "expando links" for over-long document values in Futon.
 
184
* Added continuous replication option.
 
185
* Added option to replicating test results anonymously to a community
 
186
  CouchDB instance.
 
187
* Allow creation and deletion of config entries.
 
188
* Fixed display issues with doc ids that have escaped characters.
 
189
* Fixed various UI issues.
 
190
 
 
191
HTTP Interface
 
192
--------------
 
193
 
 
194
* Mask passwords in active tasks and logging.
 
195
* Update mochijson2 to allow output of BigNums not in float form.
 
196
* Added support for X-HTTP-METHOD-OVERRIDE.
 
197
* Better error message for database names.
 
198
* Disable jsonp by default.
 
199
* Accept gzip encoded standalone attachments.
 
200
* Made max_concurrent_connections configurable.
 
201
* Made changes API more robust.
 
202
* Send newly generated document rev to callers of an update function.
 
203
 
 
204
JavaScript Clients
 
205
------------------
 
206
 
 
207
* Added tests for couch.js and jquery.couch.js
 
208
* Added changes handler to jquery.couch.js.
 
209
* Added cache busting to jquery.couch.js if the user agent is msie.
 
210
* Added support for multi-document-fetch (via _all_docs) to jquery.couch.js.
 
211
* Added attachment versioning to jquery.couch.js.
 
212
* Added option to control ensure_full_commit to jquery.couch.js.
 
213
* Added list functionality to jquery.couch.js.
 
214
* Fixed issues where bulkSave() wasn't sending a POST body.
 
215
 
 
216
Log System
 
217
----------
 
218
 
 
219
* Log HEAD requests as HEAD, not GET.
 
220
* Keep massive JSON blobs out of the error log.
 
221
* Fixed a timeout issue.
 
222
 
 
223
Replication System
 
224
------------------
 
225
 
 
226
* Refactored various internal APIs related to attachment streaming.
 
227
* Fixed hanging replication.
 
228
* Fixed keepalive issue.
 
229
 
 
230
Security
 
231
--------
 
232
 
 
233
* Added authentication redirect URL to log in clients.
 
234
* Fixed query parameter encoding issue in oauth.js.
 
235
* Made authentication timeout configurable.
 
236
* Temporary views are now admin-only resources.
 
237
 
 
238
Storage System
 
239
--------------
 
240
 
 
241
* Don't require a revpos for attachment stubs.
 
242
* Added checking to ensure when a revpos is sent with an attachment stub,
 
243
  it's correct.
 
244
* Make file deletions async to avoid pauses during compaction and db
 
245
  deletion.
 
246
* Fixed for wrong offset when writing headers and converting them to blocks,
 
247
  only triggered when header is larger than 4k.
 
248
* Preserve _revs_limit and instance_start_time after compaction.
 
249
 
 
250
Test Suite
 
251
----------
 
252
 
 
253
* Made the test suite overall more reliable.
 
254
 
 
255
View Server
 
256
-----------
 
257
 
 
258
* Provide a UUID to update functions (and all other functions) that they can
 
259
  use to create new docs.
 
260
* Upgrade CommonJS modules support to 1.1.1.
 
261
* Fixed erlang filter funs and normalize filter fun API.
 
262
* Fixed hang in view shutdown.
 
263
 
 
264
URL Rewriter & Vhosts
 
265
---------------------
 
266
 
 
267
* Allow more complex keys in rewriter.
 
268
* Allow global rewrites so system defaults are available in vhosts.
 
269
* Allow isolation of databases with vhosts.
 
270
* Fix issue with passing variables to query parameters.
 
271
 
 
272
 
 
273
.. _release/0.11.0:
 
274
 
 
275
Version 0.11.0
 
276
==============
 
277
 
 
278
Build and System Integration
 
279
----------------------------
 
280
 
 
281
* Updated and improved source documentation.
 
282
* Fixed distribution preparation for building on Mac OS X.
 
283
* Added support for building a Windows installer as part of 'make dist'.
 
284
* Bug fix for building couch.app's module list.
 
285
* ETap tests are now run during make distcheck. This included a number of
 
286
  updates to the build system to properly support VPATH builds.
 
287
* Gavin McDonald setup a build-bot instance. More info can be found at
 
288
  http://ci.apache.org/buildbot.html
 
289
 
 
290
Futon
 
291
-----
 
292
 
 
293
* Added a button for view compaction.
 
294
* JSON strings are now displayed as-is in the document view, without the
 
295
  escaping of new-lines and quotes. That dramatically improves readability of
 
296
  multi-line strings.
 
297
* Same goes for editing of JSON string values. When a change to a field value is
 
298
  submitted, and the value is not valid JSON it is assumed to be a string. This
 
299
  improves editing of multi-line strings a lot.
 
300
* Hitting tab in textareas no longer moves focus to the next form field, but
 
301
  simply inserts a tab character at the current caret position.
 
302
* Fixed some font declarations.
 
303
 
 
304
HTTP Interface
 
305
--------------
 
306
 
 
307
* Provide Content-MD5 header support for attachments.
 
308
* Added URL Rewriter handler.
 
309
* Added virtual host handling.
 
310
 
 
311
Replication
 
312
-----------
 
313
 
 
314
* Added option to implicitly create replication target databases.
 
315
* Avoid leaking file descriptors on automatic replication restarts.
 
316
* Added option to replicate a list of documents by id.
 
317
* Allow continuous replication to be cancelled.
 
318
 
 
319
Runtime Statistics
 
320
------------------
 
321
 
 
322
* Statistics are now calculated for a moving window instead of non-overlapping
 
323
  timeframes.
 
324
* Fixed a problem with statistics timers and system sleep.
 
325
* Moved statistic names to a term file in the priv directory.
 
326
 
 
327
Security
 
328
--------
 
329
 
 
330
* Fixed CVE-2010-0009: Apache CouchDB Timing Attack Vulnerability.
 
331
* Added default cookie-authentication and users database.
 
332
* Added Futon user interface for user signup and login.
 
333
* Added per-database reader access control lists.
 
334
* Added per-database security object for configuration data in validation
 
335
  functions.
 
336
* Added proxy authentication handler
 
337
 
 
338
Storage System
 
339
--------------
 
340
 
 
341
* Adds batching of multiple updating requests, to improve throughput with many
 
342
  writers. Removed the now redundant couch_batch_save module.
 
343
* Adds configurable compression of attachments.
 
344
 
 
345
View Server
 
346
-----------
 
347
 
 
348
* Added optional 'raw' binary collation for faster view builds where Unicode
 
349
  collation is not important.
 
350
* Improved view index build time by reducing ICU collation callouts.
 
351
* Improved view information objects.
 
352
* Bug fix for partial updates during view builds.
 
353
* Move query server to a design-doc based protocol.
 
354
* Use json2.js for JSON serialization for compatiblity with native JSON.
 
355
* Major refactoring of couchjs to lay the groundwork for disabling cURL
 
356
  support. The new HTTP interaction acts like a synchronous XHR. Example usage
 
357
  of the new system is in the JavaScript CLI test runner.