)]}'
{
  "log": [
    {
      "commit": "f08c26a098a46366cfaf0e14b940af1f11d84577",
      "tree": "291f8274a35b19919a01c13173c5b1189c062e56",
      "parents": [
        "3c70ae90ba6b45fb86641b88fca0d88059121d34",
        "5954ef69383547f572419c29380495b9a25a5bf4"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Fri Mar 31 11:10:32 2017 -0300"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Fri Mar 31 11:10:32 2017 -0300"
      },
      "message": "Merge remote branch \u0027cloudant:fix-unused-variable-warning\u0027\n\nThis closes #73\n\nSigned-off-by: Eric Avdey \u003ceiri@eiri.ca\u003e\n"
    },
    {
      "commit": "5954ef69383547f572419c29380495b9a25a5bf4",
      "tree": "291f8274a35b19919a01c13173c5b1189c062e56",
      "parents": [
        "3c70ae90ba6b45fb86641b88fca0d88059121d34"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Fri Mar 31 10:56:03 2017 -0300"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Fri Mar 31 10:56:03 2017 -0300"
      },
      "message": "Fix unused variables warning\n\nThis cleans up the artifacts left after\nrefactoring of `couch_mrview_index:get/2`\n"
    },
    {
      "commit": "3c70ae90ba6b45fb86641b88fca0d88059121d34",
      "tree": "079bd4b1dc9085e2b8a478c20425fb4ad6bceb32",
      "parents": [
        "f897fdc2cab02ac5ed7950cb25c36f2cafb86b38"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Feb 08 12:11:47 2017 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Mar 23 16:52:30 2017 -0500"
      },
      "message": "Fix unit tests in couch_mrview_compactor\n\nThis fixes the two tests that are in couch_mrview_compactor.erl. For\nsome reason they don\u0027t always run in CI or even for local `make check`\nruns. However when they do run they fail as they don\u0027t account for how\ncouch_index_updater:update/3 works and don\u0027t start couch_log.\n\nThe theory for why these don\u0027t always run is related to how meck loads\nmodules. I\u0027m told that these should probably be moved to\ntest/couch_mrview_compactor_tests.erl but then that would remove access\nto the recompact/1 function. For now I\u0027ll leave them here I guess and if\nthey do ever run they\u0027ll not break the build now.\n"
    },
    {
      "commit": "f897fdc2cab02ac5ed7950cb25c36f2cafb86b38",
      "tree": "db5f2914c1a693aba25c87c1e8596889eec40ade",
      "parents": [
        "49533ef9d7a536003faabf9640861e0ecf45eb37",
        "c01d4c088e1073c669e900cc14d0404a00ea36ff"
      ],
      "author": {
        "name": "Benjamin Bastian",
        "email": "benjamin.bastian@gmail.com",
        "time": "Thu Mar 16 10:18:03 2017 -0700"
      },
      "committer": {
        "name": "Benjamin Bastian",
        "email": "benjamin.bastian@gmail.com",
        "time": "Thu Mar 16 10:18:03 2017 -0700"
      },
      "message": "Merge remote-tracking branch \u0027cloudant/undef-lacc-list-function\u0027\n"
    },
    {
      "commit": "c01d4c088e1073c669e900cc14d0404a00ea36ff",
      "tree": "7ab5ebecf6de1183c86a9fe3245c7b27ab286cb6",
      "parents": [
        "56616fad9b0621b6606e4b521a2ec4b8342877aa"
      ],
      "author": {
        "name": "Jay Doane",
        "email": "jay.s.doane@gmail.com",
        "time": "Wed Mar 15 23:01:28 2017 -0700"
      },
      "committer": {
        "name": "Jay Doane",
        "email": "jay.s.doane@gmail.com",
        "time": "Wed Mar 15 23:01:28 2017 -0700"
      },
      "message": "Add send_list_row test suite\n"
    },
    {
      "commit": "49533ef9d7a536003faabf9640861e0ecf45eb37",
      "tree": "eb92cb12f268b233dfe4049928c481c1d6283362",
      "parents": [
        "e1d13a983a0ba56fcb1eb31c4e4fe56bc3692719",
        "398c30e8785c3cd880d7d9788d25810dfe626c18"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Wed Mar 15 22:48:49 2017 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Wed Mar 15 22:48:49 2017 -0400"
      },
      "message": "Merge branch \u0027couchdb-2992\u0027\n\nCloses #69\n"
    },
    {
      "commit": "398c30e8785c3cd880d7d9788d25810dfe626c18",
      "tree": "eb92cb12f268b233dfe4049928c481c1d6283362",
      "parents": [
        "e1d13a983a0ba56fcb1eb31c4e4fe56bc3692719"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Wed Mar 15 17:55:22 2017 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Wed Mar 15 17:55:22 2017 -0400"
      },
      "message": "Allow limiting maximum document body size\n\nThis is a companion commit to this one:\n\nhttps://github.com/apache/couchdb-couch/pull/235\n\nCOUCHDB-2992\n"
    },
    {
      "commit": "56616fad9b0621b6606e4b521a2ec4b8342877aa",
      "tree": "b31a3ac1d0ddc98eb1b139ab8cfbb18fb784a8c6",
      "parents": [
        "e1d13a983a0ba56fcb1eb31c4e4fe56bc3692719"
      ],
      "author": {
        "name": "Benjamin Bastian",
        "email": "benjamin.bastian@gmail.com",
        "time": "Thu Mar 09 18:20:25 2017 -0800"
      },
      "committer": {
        "name": "Benjamin Bastian",
        "email": "benjamin.bastian@gmail.com",
        "time": "Thu Mar 09 18:20:25 2017 -0800"
      },
      "message": "Fix undef error on empty list function response\n\nPrior to this commit, if a list function did not return any data or\nreturned an error, it would return a #lacc{} record from list_cb/2\nrather than a valid #mochiweb_response{} record. This would cause chttpd\nto crash. This commit fixes this bug by always returning a valid\nrecord.\n"
    },
    {
      "commit": "e1d13a983a0ba56fcb1eb31c4e4fe56bc3692719",
      "tree": "a556d0a002ffa321f691fda75756ec04e16961a2",
      "parents": [
        "15a1ae928850854a218cc05569cdcc302126748f",
        "8b1c137ea4decca2ac4f3717b71f369fbdb5d7b5"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Thu Feb 09 09:57:22 2017 -0400"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Thu Feb 09 09:57:22 2017 -0400"
      },
      "message": "Merge remote branch \u0027cloudant:refactor-mrview-index-get\u0027\n\nThis closes #65\n\nSigned-off-by: Eric Avdey \u003ceiri@eiri.ca\u003e\n"
    },
    {
      "commit": "8b1c137ea4decca2ac4f3717b71f369fbdb5d7b5",
      "tree": "a556d0a002ffa321f691fda75756ec04e16961a2",
      "parents": [
        "f7f4db2660f3196916ccbdb9dc25cfc5d709a19f"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Wed Feb 08 14:05:37 2017 -0400"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Wed Feb 08 14:05:37 2017 -0400"
      },
      "message": "Re-use get update_options in get(info)\n"
    },
    {
      "commit": "f7f4db2660f3196916ccbdb9dc25cfc5d709a19f",
      "tree": "e630155e7144ea221f54571a801e40c2e5168cc1",
      "parents": [
        "15a1ae928850854a218cc05569cdcc302126748f"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Tue Feb 07 10:39:46 2017 -0400"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Wed Feb 08 12:31:18 2017 -0400"
      },
      "message": "Refactor mrview_index get\n\nThis is a simple refactoring of mrview\u0027s\nget function that uses function\u0027s pattern\nmatching instead of staircase case.\n\nArguably this makes code easier to read\nand more idiomatic.\n"
    },
    {
      "commit": "15a1ae928850854a218cc05569cdcc302126748f",
      "tree": "a46c79be12532b92d357b2e23e9e57a5c95f8348",
      "parents": [
        "5899436ae7b8d7198bfcbef48475d8c6dd4d9dd9",
        "c49211cdca99a198235a6a8798692d8b1163f6bf"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Fri Dec 02 07:52:16 2016 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Fri Dec 02 07:52:16 2016 -0800"
      },
      "message": "Merge remote branch \u0027cloudant:77867-convert-pid-to-binary\u0027\n\nThis closes #63\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@apache.org\u003e\n"
    },
    {
      "commit": "c49211cdca99a198235a6a8798692d8b1163f6bf",
      "tree": "a46c79be12532b92d357b2e23e9e57a5c95f8348",
      "parents": [
        "5899436ae7b8d7198bfcbef48475d8c6dd4d9dd9"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Thu Dec 01 16:51:46 2016 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Thu Dec 01 16:51:46 2016 -0800"
      },
      "message": "Convert pid of indexer to binary\n\nThis is a fixup for https://github.com/apache/couchdb-couch-mrview/pull/62\nProperties passed to couch_task_status:add_task cannot contain complex\ntypes. Because the status need to be representable in JSON.\n"
    },
    {
      "commit": "5899436ae7b8d7198bfcbef48475d8c6dd4d9dd9",
      "tree": "0dea610261d6755b828c9aaf62f0c1c39acee3c4",
      "parents": [
        "f4aaf8de5a9d05ecd4b69707efa0d5ee89c98736",
        "b7362d0473769fd52716309562dd5eddf9544d07"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Tue Nov 22 10:42:43 2016 -0400"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Tue Nov 22 10:42:43 2016 -0400"
      },
      "message": "Merge remote branch \u0027cloudant:make-accumulate_more-pure\u0027\n\nThis closes #61\n\nSigned-off-by: Eric Avdey \u003ceiri@eiri.ca\u003e\n"
    },
    {
      "commit": "b7362d0473769fd52716309562dd5eddf9544d07",
      "tree": "0dea610261d6755b828c9aaf62f0c1c39acee3c4",
      "parents": [
        "f4aaf8de5a9d05ecd4b69707efa0d5ee89c98736"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Fri Nov 18 15:04:32 2016 -0400"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Tue Nov 22 10:40:01 2016 -0400"
      },
      "message": "Remove side effect from accumulate_more\n"
    },
    {
      "commit": "f4aaf8de5a9d05ecd4b69707efa0d5ee89c98736",
      "tree": "fe75d4a925d9cb285a3c383eb8e999c60f94c646",
      "parents": [
        "e875745afa665f568c08f582da80c732293a47b8",
        "b3b1b121f6a153f0e3febc95cfbace597e4a9aab"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Fri Nov 18 14:56:27 2016 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Fri Nov 18 14:56:27 2016 -0800"
      },
      "message": "Merge remote branch \u0027cloudant:77867-add-indexer-pid-to-task-status\u0027\n\nThis closes #62\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@apache.org\u003e\n"
    },
    {
      "commit": "b3b1b121f6a153f0e3febc95cfbace597e4a9aab",
      "tree": "fe75d4a925d9cb285a3c383eb8e999c60f94c646",
      "parents": [
        "e875745afa665f568c08f582da80c732293a47b8"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Fri Nov 18 14:19:11 2016 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Fri Nov 18 14:42:19 2016 -0800"
      },
      "message": "Add reference to indexer Pid to task status\n\nWhen we run re-compaction stage we start second index updater from\nview compactor. In this case couch_task_status:all would return two\nidentical entries for the same `design_document` and `shard`. Which is\nvery confusing. Add reference to indexer Pid to disambiguate them.\nFor the recompaction case the indexer_pid will be pointing to compaction task.\n"
    },
    {
      "commit": "e875745afa665f568c08f582da80c732293a47b8",
      "tree": "1551fb9e489b4f691065c86e19f62be2f1cb344e",
      "parents": [
        "853c608054fd8efe5e44a699714028ca7f76c2ef",
        "f0f7d30014c8abdd2e232768d8b2b87183054770"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Nov 02 16:53:15 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Nov 02 16:53:15 2016 -0700"
      },
      "message": "Merge remote branch \u0027cloudant:improve-exceeded_recompact_retry_count-error-message\u0027\n\nThis closes #59\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@apache.org\u003e\n"
    },
    {
      "commit": "f0f7d30014c8abdd2e232768d8b2b87183054770",
      "tree": "1551fb9e489b4f691065c86e19f62be2f1cb344e",
      "parents": [
        "853c608054fd8efe5e44a699714028ca7f76c2ef"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Nov 02 16:44:22 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Wed Nov 02 16:44:22 2016 -0700"
      },
      "message": "exceeded_recompact_retry_count: add DbName/IdxName\n"
    },
    {
      "commit": "853c608054fd8efe5e44a699714028ca7f76c2ef",
      "tree": "44d9c0608da72c9b3a986b70f3ad3e586865ae90",
      "parents": [
        "d4509606f3aacc4bec94b8936bedf6d1d597ff5f",
        "342146305fbe7dbd35b655b6f704e6b60a3b679c"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Oct 20 11:45:35 2016 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Oct 20 11:45:35 2016 -0500"
      },
      "message": "Merge remote-tracking branch \u0027cloudant/3184-retry-recompact-failure\u0027\n"
    },
    {
      "commit": "342146305fbe7dbd35b655b6f704e6b60a3b679c",
      "tree": "44d9c0608da72c9b3a986b70f3ad3e586865ae90",
      "parents": [
        "0d382f5fd210b3413b3e4c07ad65458004821bf6"
      ],
      "author": {
        "name": "Jay Doane",
        "email": "jay.s.doane@gmail.com",
        "time": "Sat Oct 15 19:28:35 2016 -0700"
      },
      "committer": {
        "name": "Jay Doane",
        "email": "jay.s.doane@gmail.com",
        "time": "Sat Oct 15 19:28:35 2016 -0700"
      },
      "message": "Implement recompact unit tests\n"
    },
    {
      "commit": "0d382f5fd210b3413b3e4c07ad65458004821bf6",
      "tree": "f90405c55a3f1728f36ef735b73d3ea05e0626f2",
      "parents": [
        "1d5c6a5d92977308fd94b2b8f43463b9f2bdac71"
      ],
      "author": {
        "name": "Jay Doane",
        "email": "jay.s.doane@gmail.com",
        "time": "Mon Oct 10 13:19:56 2016 -0700"
      },
      "committer": {
        "name": "Jay Doane",
        "email": "jay.s.doane@gmail.com",
        "time": "Mon Oct 10 13:19:56 2016 -0700"
      },
      "message": "Update with couch_index_updater:update/3\n\nHandle \u0027$gen_cast\u0027 messages in receive\n"
    },
    {
      "commit": "1d5c6a5d92977308fd94b2b8f43463b9f2bdac71",
      "tree": "3ad51e3c774ba1ef2ff9b3317dd2bcf9064c97e2",
      "parents": [
        "d4509606f3aacc4bec94b8936bedf6d1d597ff5f"
      ],
      "author": {
        "name": "Jay Doane",
        "email": "jay.s.doane@gmail.com",
        "time": "Fri Oct 07 13:04:13 2016 -0700"
      },
      "committer": {
        "name": "Jay Doane",
        "email": "jay.s.doane@gmail.com",
        "time": "Fri Oct 07 13:04:13 2016 -0700"
      },
      "message": "Retry failures in couch_mrview_compactor:recompact\n\nCurrently, if there\u0027s an error in the spawned couch_index_updater:update\nprocess, the receive block will not match the message, and the calling\nprocess will block forever.\n\nThis commit changes the receive pattern to match both successful updates\nas well as errors, logging the errors, and retrying the recompact a\nconfigurable number of times. If the configured retry count is exceeded,\nit logs an error, and returns the original state.\n\nCOUCHDB-3184\n"
    },
    {
      "commit": "d4509606f3aacc4bec94b8936bedf6d1d597ff5f",
      "tree": "b54427b3f545de39174e2f3f24bd68bea1e0bcbd",
      "parents": [
        "d27941193516b925959cf3d27db7ba8f6524ba25",
        "459a548f269b00bf2d2ace0170c583e72fde4cb9"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Oct 06 19:02:23 2016 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Oct 06 19:02:23 2016 +0100"
      },
      "message": "Merge remote-tracking branch \u0027banjiewen/stale-stable-update\u0027\n"
    },
    {
      "commit": "d27941193516b925959cf3d27db7ba8f6524ba25",
      "tree": "f525902833a139922f2b73f25d1a75ea9f6ea17c",
      "parents": [
        "a0b0392afe66ece9ef3bb4fdd5a4f159c97c47eb",
        "fdaebcf0fd26ed1d402ac6ec6448a8a2b7fbc808"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Sep 28 12:25:46 2016 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Sep 28 12:25:46 2016 -0500"
      },
      "message": "Merge remote-tracking branch \u0027cloudant/COUCHDB-3150-add-new-function-to-get-view-index-pid\u0027\n"
    },
    {
      "commit": "fdaebcf0fd26ed1d402ac6ec6448a8a2b7fbc808",
      "tree": "f525902833a139922f2b73f25d1a75ea9f6ea17c",
      "parents": [
        "a0b0392afe66ece9ef3bb4fdd5a4f159c97c47eb"
      ],
      "author": {
        "name": "brkolla",
        "email": "bkolla@cloudant.com",
        "time": "Wed Sep 21 14:52:57 2016 -0400"
      },
      "committer": {
        "name": "brkolla",
        "email": "bkolla@cloudant.com",
        "time": "Fri Sep 23 11:29:56 2016 -0400"
      },
      "message": "Add new function to get the view index pid.\nRefactored the code to add a new function to return index pid for a\ngiven view and design document.\n\nCOUCHDB-3150\n"
    },
    {
      "commit": "a0b0392afe66ece9ef3bb4fdd5a4f159c97c47eb",
      "tree": "b2eec939e1ab5227a0b3d4ec6ab898d25b7bde38",
      "parents": [
        "ed52b77cd7255155d57874fe31896deae3d57efa"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Sep 07 14:04:23 2016 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Sep 07 14:04:23 2016 +0100"
      },
      "message": "don\u0027t send undefined etag (COUCHDB-3134)\n"
    },
    {
      "commit": "ed52b77cd7255155d57874fe31896deae3d57efa",
      "tree": "b6a133477fb8e05bfbc77cf14444860656e618dc",
      "parents": [
        "9133f6d1612374e73f18f13244a32ce8678aab67"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Sep 07 12:54:35 2016 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Sep 07 12:54:35 2016 +0100"
      },
      "message": "Use canonical case for ETag response header (COUCHDB-3134)\n"
    },
    {
      "commit": "9133f6d1612374e73f18f13244a32ce8678aab67",
      "tree": "0e1fa3d628f483bb06ed0092576ceb4a523b687d",
      "parents": [
        "e936267dca63e78775c7c1ed3580f92a50e61b54"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Aug 25 17:58:34 2016 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Aug 25 18:27:19 2016 +0100"
      },
      "message": "Fix sorted\u003dfalse for multi-query\n\nI\u0027ve reordered view_cb for readability, moving all response starting\nlogic to the front, in order to simplify how meta and row messages are\nhandled\n\nCOUCHDB-3060\n"
    },
    {
      "commit": "e936267dca63e78775c7c1ed3580f92a50e61b54",
      "tree": "6fd341fca9c88e20de512082a22f13b1d1bcfd55",
      "parents": [
        "0db83c4c8ce9819c00975f0a024e246bf4e3bd6f"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Aug 25 16:01:47 2016 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Aug 25 16:01:47 2016 +0100"
      },
      "message": "Revert \"Reset row_sent at end of query\"\n\nThis is now handled at a higher level.\n\nCOUCHDB-3060\n"
    },
    {
      "commit": "0db83c4c8ce9819c00975f0a024e246bf4e3bd6f",
      "tree": "ca2bfe533afb6f9fb7c1be388cb4d650d0d83989",
      "parents": [
        "e9e84c5d55ec5ef9b83dba0800bc27c23b4b35f6"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Aug 25 16:01:25 2016 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Aug 25 16:01:26 2016 +0100"
      },
      "message": "Introduce reset_vacc\n\nCOUCHDB-3060\n"
    },
    {
      "commit": "e9e84c5d55ec5ef9b83dba0800bc27c23b4b35f6",
      "tree": "99f6506855a24f869601f5293284887940e968f5",
      "parents": [
        "82f7913d95a1e418725408cbbc1f822d20dfa77d"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Aug 25 13:08:21 2016 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Aug 25 13:08:58 2016 +0100"
      },
      "message": "Reset row_sent at end of query\n\nWe need to reset row_sent to false at the end of the query so that we\nwill emit \u0027{\"rows\":{\u0027 for the next query (if we\u0027re in a multi-query\nrequest).\n\nCOUCHDB-3060\n"
    },
    {
      "commit": "82f7913d95a1e418725408cbbc1f822d20dfa77d",
      "tree": "248853f5b43c588f9670313bec633617474b5e08",
      "parents": [
        "157132c6e603b1870a08c04e8459a177387932ed"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Aug 25 12:47:49 2016 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Aug 25 13:08:44 2016 +0100"
      },
      "message": "Wrap line\n\nwhitespace-only change\n\nCOUCHDB-3060\n"
    },
    {
      "commit": "157132c6e603b1870a08c04e8459a177387932ed",
      "tree": "aba8d597be4e0b5c9287eef7660886bd9aa2b8b6",
      "parents": [
        "3ce28641c85af0d5054df47e9ac7de917a9d33cd"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Jul 22 17:34:03 2016 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Jul 22 17:36:54 2016 -0500"
      },
      "message": "Remove outdated test\n\nThe module load tests date all the way back to when I first learned\nabout etap from Nick Gerakines. In the age of meck these are even more\nbrittle as mocked modules can interfere with the `code:load_file/1`\ndepending on execution.\n\nAlso, given that we were missing almost half of the couch_mrview modules\nwe obviously don\u0027t keep these up to date so they\u0027re not serving any\npurpose.\n"
    },
    {
      "commit": "459a548f269b00bf2d2ace0170c583e72fde4cb9",
      "tree": "8917b9a22b17625856affebf8c34db7099675cf9",
      "parents": [
        "3ce28641c85af0d5054df47e9ac7de917a9d33cd"
      ],
      "author": {
        "name": "Benjamin Anderson",
        "email": "b@banjiewen.net",
        "time": "Sun Jul 17 14:25:22 2016 -0700"
      },
      "committer": {
        "name": "Benjamin Anderson",
        "email": "b@banjiewen.net",
        "time": "Sun Jul 17 14:42:55 2016 -0700"
      },
      "message": "Replace `stale` with `stable` and `update`\n\nThe `stale` mechanism for view queries conflates two independent\nconcerns:\n\n1. Whether or not the view results should be returned from a \"stable\"\n   set of shards; i.e., mem3:ushards. This semantic is new in 2.0,\n   having originated in Cloudant code in 2011[1].\n\n2. Whether or not the view in question should be updated prior to\n   responding to the user, i.e., the pre-2.0 semantics.\n\nBoth of these concerns represent consistency/availability tradeoffs, but\nthey\u0027re addressing rather different aspects of that continuum. As such,\nthe \"stale\" mechanism limits flexibility.\n\nFor example, it\u0027s quite likely that a user would want to retrieve\n\"stale\" view responses from the fastest available shards - the\n\"available/available\" choice - and this choice is not available with the\nexisting \"stale\" mechanism. A similar argument could be made for the\n\"consistent/consistent\" choice.\n\nThis patch introduces two new view API keywords - \"stable\" and \"update\"\n- to address concerns #1 and #2, respectively. The semantics of the\n\"stale\" mechanism is implemented in terms of these new keywords.\n\nCOUCHDB-3063\n\n[1]: apache/couchdb-fabric@93923fda51c714c015b8621e41f3c425bfb3e61a\n"
    },
    {
      "commit": "3ce28641c85af0d5054df47e9ac7de917a9d33cd",
      "tree": "3059a21419825a489a06c9ff638beca6b6169c5f",
      "parents": [
        "cfc354989a28865ec83efc0f745e91b8c6a3a6c3"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Fri Jul 15 11:53:16 2016 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Fri Jul 15 17:47:21 2016 +0100"
      },
      "message": "Fix sorted\u003dfalse feature\n\n1. Enable the sorted\u003dfalse parameter to map views\n2. Enhance view_cb to tolerate rows before meta\n3. Enhance view_cb to only send meta if no row has been sent\n\nCOUCHDB-3060\n"
    },
    {
      "commit": "cfc354989a28865ec83efc0f745e91b8c6a3a6c3",
      "tree": "e67eeebd21a52191f5cfe200dde72feaf76804f5",
      "parents": [
        "8567b43377f7a5999a2dd18a2a46e7963e43bea8",
        "f9a58d891daba03556a19d6bc10176bcd6e587e3"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Mon Jun 20 09:22:06 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Mon Jun 20 09:22:06 2016 -0700"
      },
      "message": "Merge remote branch \u0027cloudant:2847-list_when_no_rows\u0027\n\nThis closes #49\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@ca.ibm.com\u003e\n"
    },
    {
      "commit": "f9a58d891daba03556a19d6bc10176bcd6e587e3",
      "tree": "e67eeebd21a52191f5cfe200dde72feaf76804f5",
      "parents": [
        "8567b43377f7a5999a2dd18a2a46e7963e43bea8"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri Jun 17 16:09:50 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri Jun 17 16:09:50 2016 -0700"
      },
      "message": "Send empty string from _list if no result\n\nThere is a corner case when list function does not return any Chunk.\nIn this case we would want to return empty string to the client.\n\nCOUCHDB-2847\n"
    },
    {
      "commit": "8567b43377f7a5999a2dd18a2a46e7963e43bea8",
      "tree": "5d5cab4f67306d78a6fc5a7c836b425ee6aa4b3c",
      "parents": [
        "d07771ac4255d3b217a993e807f1e9620b38dbee",
        "26f5af7c6d2c7642e9463cd26f3c4070c9add2e8"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Mon Jun 13 15:49:28 2016 -0300"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Mon Jun 13 15:49:28 2016 -0300"
      },
      "message": "Merge remote branch \u0027cloudant:make-decode-in-parse_params-optional\u0027\n\nThis closes #48\n\nSigned-off-by: Eric Avdey \u003ceiri@eiri.ca\u003e\n"
    },
    {
      "commit": "26f5af7c6d2c7642e9463cd26f3c4070c9add2e8",
      "tree": "5d5cab4f67306d78a6fc5a7c836b425ee6aa4b3c",
      "parents": [
        "d07771ac4255d3b217a993e807f1e9620b38dbee"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Mon Jun 13 13:28:17 2016 -0300"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Mon Jun 13 15:48:00 2016 -0300"
      },
      "message": "Allow json decode in parse_params to be optional\n\nThis allows explicitly indicate if ifunction parse_params\nshould decode passed parameter\u0027s value instead of trying\nto guess it by value\u0027s term type.\n\nIt makes it possible to use this function both with GET\nand POST queries.\n"
    },
    {
      "commit": "d07771ac4255d3b217a993e807f1e9620b38dbee",
      "tree": "611f090ac3a8f2a30c2b1bad22dbbc0f7254b9d9",
      "parents": [
        "e36509b2dfb7bba5f09fcb62f0e23a538451afb5",
        "1a179cbca8a6654bde61826cbfc69f7eb0a23a0d"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed May 25 05:52:09 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed May 25 05:52:09 2016 -0700"
      },
      "message": "Merge remote branch \u0027cloudant:fix-some-type-errors\u0027\n\nThis closes #46\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@ca.ibm.com\u003e\n"
    },
    {
      "commit": "1a179cbca8a6654bde61826cbfc69f7eb0a23a0d",
      "tree": "611f090ac3a8f2a30c2b1bad22dbbc0f7254b9d9",
      "parents": [
        "9bafdca7006f97924ecd68b9fdc87f5b3564d159"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue May 24 18:34:25 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue May 24 18:34:25 2016 -0700"
      },
      "message": "gen_event: handle_call suppose to return `{ok, Reply, State}`\n"
    },
    {
      "commit": "9bafdca7006f97924ecd68b9fdc87f5b3564d159",
      "tree": "246536a3420bf84c326eecbc5529e1dd8a477fe9",
      "parents": [
        "e36509b2dfb7bba5f09fcb62f0e23a538451afb5"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue May 24 18:33:29 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue May 24 18:33:29 2016 -0700"
      },
      "message": "Fix match of a result from couch_mrview_util:get_view\n"
    },
    {
      "commit": "e36509b2dfb7bba5f09fcb62f0e23a538451afb5",
      "tree": "ed3f6190eba564cfd9d7eb08e341c4a08a530df6",
      "parents": [
        "56b66b48390732d1bbb2917ca25c4cdb3e196d1e",
        "7293bfb64041d6bb1243ecc8c3ddd71d02811294"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Thu Apr 28 14:12:50 2016 -0300"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Thu Apr 28 14:12:50 2016 -0300"
      },
      "message": "Merge remote branch \u0027github/pr/44\u0027\n\nThis closes #44\n\nSigned-off-by: Eric Avdey \u003ceiri@eiri.ca\u003e\n"
    },
    {
      "commit": "7293bfb64041d6bb1243ecc8c3ddd71d02811294",
      "tree": "ed3f6190eba564cfd9d7eb08e341c4a08a530df6",
      "parents": [
        "56b66b48390732d1bbb2917ca25c4cdb3e196d1e"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Wed Apr 20 14:55:52 2016 -0300"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Thu Apr 28 14:08:00 2016 -0300"
      },
      "message": "Use couch_file:delete/3 in views cleanup\n"
    },
    {
      "commit": "56b66b48390732d1bbb2917ca25c4cdb3e196d1e",
      "tree": "71697ede554d9a139fef35cc256794d7b1682db3",
      "parents": [
        "37351726a03aaa224ba08f475bfb7c403f94d5ee",
        "3f8230cbfc5b226080364cc9801cb0eeafc1985f"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Apr 27 17:37:36 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Apr 27 17:37:36 2016 -0700"
      },
      "message": "Merge remote branch \u0027cloudant:3005-configurable_queue_size\u0027\n\nThis closes #45\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@ca.ibm.com\u003e\n"
    },
    {
      "commit": "3f8230cbfc5b226080364cc9801cb0eeafc1985f",
      "tree": "71697ede554d9a139fef35cc256794d7b1682db3",
      "parents": [
        "37351726a03aaa224ba08f475bfb7c403f94d5ee"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Apr 26 13:55:11 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Apr 26 13:58:03 2016 -0700"
      },
      "message": "Make view updater couch_work_queue configurable\n\nFor performance reasons in some cases there is a need to put a cap\non a queue size.\n\nCOUCHDB-3005\n"
    },
    {
      "commit": "37351726a03aaa224ba08f475bfb7c403f94d5ee",
      "tree": "f4bd23670d7c89500f293e8105257a8526a3bcc0",
      "parents": [
        "65b7a3a64ae087901d2d2fbe785233b04f135b4b",
        "abc94a40da81211395501d91cd5d1fb73e6afbe9"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Mon Apr 25 09:25:56 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Mon Apr 25 09:25:56 2016 -0700"
      },
      "message": "Merge remote branch \u0027cloudant:3002-use-ioq-for-view_updades\u0027\n\nThis closes #43\n\nSigned-off-by: ILYA Khlopotov \u003ciilyak@ca.ibm.com\u003e\n"
    },
    {
      "commit": "abc94a40da81211395501d91cd5d1fb73e6afbe9",
      "tree": "f4bd23670d7c89500f293e8105257a8526a3bcc0",
      "parents": [
        "65b7a3a64ae087901d2d2fbe785233b04f135b4b"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Thu Apr 21 12:45:34 2016 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Thu Apr 21 12:45:34 2016 -0700"
      },
      "message": "Use ioq to separately prioritise view updates\n\nCOUCHDB-3002\n"
    },
    {
      "commit": "65b7a3a64ae087901d2d2fbe785233b04f135b4b",
      "tree": "51c227c64bb23dfd707ac8b77a55a1a32c2cc4fe",
      "parents": [
        "6ec35971ebd96133cc6a34fa29f1d364049a7ecd"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Sun Apr 17 19:21:20 2016 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Sun Apr 17 19:21:20 2016 +0100"
      },
      "message": "Render update_seq if number or binary\n\nCOUCHDB-2849\n"
    },
    {
      "commit": "6ec35971ebd96133cc6a34fa29f1d364049a7ecd",
      "tree": "fa52df107b16ac954c3dddb1cb11c4bb935acb1b",
      "parents": [
        "2341c38c66c471d01b50972fb2e5b02c091b8bec"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Fri Jan 15 16:12:55 2016 -0400"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Tue Jan 19 11:39:40 2016 -0400"
      },
      "message": "Refactor to add an interface for view_state of #mrheader\n\nThe goal of this refactoring is to make it easier to understand\nand maintain view_state data structure of #mrheader.\n\nUnlike record #mrview in #mrst, the data structure that represents\nview_states in #mrheader is a tuple (of tuples) and its definition\nand application spreads across all couch_mrview_util.erl module.\nThis makes it hard to follow and understand how it used\nor troubleshoot mrview in case of the problems.\n\nThis change introduces an interface for generation and accessing\nview_state and also separates generation of reduction closures\nfrom mrview\u0027s `reduce`, `reduce_to_count` and `fold_reduce` functions\nas they rely on view_state\u0027s structure.\n\nNote that this refactoring also  removes explicit set of generic\nordering function on collation option \"raw\" as it is a default\nof couch_btree:open on missing option for `less` function.\n"
    },
    {
      "commit": "2341c38c66c471d01b50972fb2e5b02c091b8bec",
      "tree": "2ec4adc5d03879ff5628e4634f072b2294594978",
      "parents": [
        "6c9833d667e319b82a7a1fffb8ba92116534e63f"
      ],
      "author": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Fri Jan 08 15:24:57 2016 -0400"
      },
      "committer": {
        "name": "Eric Avdey",
        "email": "eiri@eiri.ca",
        "time": "Fri Jan 08 15:24:57 2016 -0400"
      },
      "message": "Remove duplicated monitor set on index opening\n\nWhen mrview index is opening it adds monitor on couch_file server\nof the index file. This is not necessary because couch_mrview_util\u0027s\ninit_state called before already does that, so we are ending up\nwith duplicated monitor reference.\n"
    },
    {
      "commit": "6c9833d667e319b82a7a1fffb8ba92116534e63f",
      "tree": "5b80e3fa3872d2d422edd5a77455a3ab27e06ae9",
      "parents": [
        "946d942a481c7bae8b1f8045a8909bf921a20e3a"
      ],
      "author": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Tue Nov 10 20:55:02 2015 +0300"
      },
      "committer": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Wed Nov 11 01:03:43 2015 +0300"
      },
      "message": "Accept rewrites as string function\n\nCOUCHDB-2874\n"
    },
    {
      "commit": "946d942a481c7bae8b1f8045a8909bf921a20e3a",
      "tree": "ba855e6227978465945d8794efbe0ab2406808dc",
      "parents": [
        "c3bed460ee844175b8ce11081386be27f686d8ff"
      ],
      "author": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Tue Nov 10 20:44:25 2015 +0300"
      },
      "committer": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Tue Nov 10 20:44:25 2015 +0300"
      },
      "message": "Rewrite ddoc validation routines\n\nWhile it solve the own problem well, it contains few design issues that\nmakes unable to keep it for further updates:\n1. It\u0027s type-centric validation. However, our ddocs have quite complex\nstructure and validation logic, so it eventually have to write special\nclause for most of the validated fields turning it into field-centric.\n2. It mixes logic of type checking and relation checking.\n\nHere we turn it into rule based validation where each rule is a path of\nfield-type pairs while all relation checks are moved into own functions.\n\nMoreover, we can now exactly say the path for the field that caused\nissues.\n"
    },
    {
      "commit": "c3bed460ee844175b8ce11081386be27f686d8ff",
      "tree": "98485bfe187a294a43b9820995827c0683e3a894",
      "parents": [
        "0334f690c5ccc16ea0284d9c2f2b58c77f1fc2b9"
      ],
      "author": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Thu Oct 22 23:22:58 2015 +0300"
      },
      "committer": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Tue Nov 10 02:38:24 2015 +0300"
      },
      "message": "Reduce duplicated code\n"
    },
    {
      "commit": "0334f690c5ccc16ea0284d9c2f2b58c77f1fc2b9",
      "tree": "43268d1b9673a35fd5ab64405846bfe0ebeb1c75",
      "parents": [
        "1c8a3026b2b695755a1fd39530276d4f90235ab2"
      ],
      "author": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Thu Oct 22 23:21:17 2015 +0300"
      },
      "committer": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Tue Nov 10 02:38:24 2015 +0300"
      },
      "message": "Merge default update response headers with custom ones\n\nCOUCHDB-1447\n"
    },
    {
      "commit": "1c8a3026b2b695755a1fd39530276d4f90235ab2",
      "tree": "c3246d933cc9031740b1b974bf954cc5d7e4e374",
      "parents": [
        "2ec52eb3d8e187f5e9dfcaf8ab0dff55e40cd647"
      ],
      "author": {
        "name": "Klaus Trainer",
        "email": "klaus_trainer@posteo.de",
        "time": "Wed Nov 04 23:53:36 2015 +0100"
      },
      "committer": {
        "name": "Klaus Trainer",
        "email": "klaus_trainer@posteo.de",
        "time": "Wed Nov 04 23:53:36 2015 +0100"
      },
      "message": "Don\u0027t set ETag header with value `undefined`\n\nCOUCHDB-2650\n"
    },
    {
      "commit": "2ec52eb3d8e187f5e9dfcaf8ab0dff55e40cd647",
      "tree": "798f73d6ebc53976ad30360d1b5e1cd591b982d9",
      "parents": [
        "f089832ea7f759b4e655051025cc48522fee9e1b"
      ],
      "author": {
        "name": "Mayya Sharipova",
        "email": "mayyas@ca.ibm.com",
        "time": "Wed Sep 02 16:14:51 2015 -0400"
      },
      "committer": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Sun Oct 18 03:17:18 2015 +0300"
      },
      "message": "Check POST requests for valid json header\n\nvalidate that all POST requests with json body must have also have valid\njson header: {\"Content-Type\": \"application/json\"}\nThis ensures a basic protection against CSRF\n\nThis closes #25\n\nJIRA: COUCHDB-2775\n\nSigned-off-by: Alexander Shorin \u003ckxepal@apache.org\u003e\n"
    },
    {
      "commit": "f089832ea7f759b4e655051025cc48522fee9e1b",
      "tree": "168bed0d826c41dbb249eb16bb2b79aff9f7da8b",
      "parents": [
        "71f4fe7c108e45ae1fa9b181de4598c113df518a"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Oct 06 08:08:17 2015 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Oct 07 09:31:12 2015 -0700"
      },
      "message": "Use couch_server:delete_file on view cleanup\n"
    },
    {
      "commit": "71f4fe7c108e45ae1fa9b181de4598c113df518a",
      "tree": "31ce8b187e64b88ce8523fc39dd65ed38f1024df",
      "parents": [
        "d7f0093b1c83a721dd8e9a9b3c625d0575e26c9f"
      ],
      "author": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Thu Oct 01 19:45:07 2015 +0300"
      },
      "committer": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Thu Oct 01 19:45:07 2015 +0300"
      },
      "message": "Update .travis\n"
    },
    {
      "commit": "d7f0093b1c83a721dd8e9a9b3c625d0575e26c9f",
      "tree": "34e4fed70c3f0d096132a870bb2ea578ac418f5e",
      "parents": [
        "58a0de51233f55ee6cd92128cb19a3315984bff5"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@gmail.com",
        "time": "Mon Sep 28 10:31:55 2015 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@gmail.com",
        "time": "Mon Sep 28 10:55:06 2015 -0400"
      },
      "message": "Fix http eunit test\n\n COUCHDB-2824\n"
    },
    {
      "commit": "58a0de51233f55ee6cd92128cb19a3315984bff5",
      "tree": "635b652312406a413410ced23c8a1c1a07346de4",
      "parents": [
        "52cc9c5f168ddc31f3e21f73799a34dd52b9c1e4",
        "a25d590d07128b78632095e191c47f2f815ab6d7"
      ],
      "author": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Fri Sep 25 21:14:42 2015 +0300"
      },
      "committer": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Fri Sep 25 21:14:42 2015 +0300"
      },
      "message": "Merge remote-tracking branch \u0027github/pr/29\u0027\n"
    },
    {
      "commit": "a25d590d07128b78632095e191c47f2f815ab6d7",
      "tree": "f680c3753c2995876efddc8f4b77cb04dd7e87f3",
      "parents": [
        "dfa6f7eeef9752e45ed88a825e98b1222988ac47"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@gmail.com",
        "time": "Fri Sep 25 13:44:10 2015 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@gmail.com",
        "time": "Fri Sep 25 14:05:03 2015 -0400"
      },
      "message": "Improve validation of group and group_level view parameters.\n\nJira: COUCH-2824\n\nParameters group and group_level currently were\noverriding each other such that last one in the list \"won\".\n\nCurrently behavior has changed such that :\n\n  * group_level overrides group parameter if both are set\n  * but if group\u003dfalse and group_level\u003e0, throw 400\n\nThat happens regardless of the order of those arguments, or\nhow many times each one was specified in the parameter list.\n"
    },
    {
      "commit": "52cc9c5f168ddc31f3e21f73799a34dd52b9c1e4",
      "tree": "1b864346c7ea0d2f5a42de89be7d29571aca78b2",
      "parents": [
        "aa51eb4beefaf69d32f835df82bd7f9e738c1884",
        "985b7fe1577e54f17abc583983b6ee7b7eafe56e"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Fri Sep 25 12:07:55 2015 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Fri Sep 25 12:07:55 2015 +0100"
      },
      "message": "Merge remote-tracking branch \u0027cloudant/2825-crypto-deprecations\u0027\n"
    },
    {
      "commit": "aa51eb4beefaf69d32f835df82bd7f9e738c1884",
      "tree": "beaa5a58405656ea55ce4306900da61761efba69",
      "parents": [
        "dfa6f7eeef9752e45ed88a825e98b1222988ac47"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@gmail.com",
        "time": "Thu Sep 24 11:07:25 2015 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@gmail.com",
        "time": "Thu Sep 24 11:07:25 2015 -0400"
      },
      "message": "Fix validation of query design documents\n\nJira: COUCHDB-2818\n\nIf language is \"query\" then map functions will be objects.\n"
    },
    {
      "commit": "985b7fe1577e54f17abc583983b6ee7b7eafe56e",
      "tree": "fa1ea2c9db09a1b81e090d986823e5829d1fb28a",
      "parents": [
        "dfa6f7eeef9752e45ed88a825e98b1222988ac47"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Sep 23 19:32:08 2015 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Sep 23 19:32:08 2015 +0100"
      },
      "message": "Fix crypto deprecations\n\nCOUCHDB-2825\n"
    },
    {
      "commit": "dfa6f7eeef9752e45ed88a825e98b1222988ac47",
      "tree": "da4b70d1f5852de6deac9609a9c99d6d72cf7fa1",
      "parents": [
        "7691f48627ebac932f41e0ac2d7748e979673883"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Mon Sep 21 19:54:48 2015 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Mon Sep 21 19:54:48 2015 +0100"
      },
      "message": "fix unused variable warning\n"
    },
    {
      "commit": "7691f48627ebac932f41e0ac2d7748e979673883",
      "tree": "a6a11e27379b22567863cc6a408df6f18810eecd",
      "parents": [
        "95cbd7b2a0f2dd2f838d995fc0d677e48436b9bb"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@gmail.com",
        "time": "Mon Sep 21 14:07:03 2015 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@gmail.com",
        "time": "Mon Sep 21 14:07:03 2015 -0400"
      },
      "message": "Improve design document validation\n\nJira: COUCHDB-2818\n\nValidates top level values:\n\n  - These should be object: \"options\", \"filters\", \"lists\",\n    \"shows\", \"updates\", \"views\"\n\n  - \"rewrites\" is an array\n\n  - \"language\" and \"validate_doc_update\" are strings\n\nValues in \"filters\", \"lists\", \"shows\", \"updates\" should be strings.\nThey are mappings from function names to function contents.\n\nValues in \"options\" can be anything (currently there are 2 boolean\noptions, but they are not checked specifically).\n\nViews are special:\n\n  - \"lib\" is special: its value will be an object that\n    contains mapping to different libraries. The contents of\n    that object is not validated.\n\n  - If any other object has \"map\" or \"reduce\" value, it should\n    be a string.\n\nAlso try to produce helpful messages for user so they know where\nthe problem is.\n\nSome examples of responses:\n\n```\n$ http -phb PUT $DB1/db2/_design/des1 views:\u003d\u0027{\"v1\":\"nope\"}\u0027\nHTTP/1.1 400 Bad Request\n{\n    \"error\": \"invalid_design_doc\", \"reason\": \"View v1 must be an object\"\n}\n\n$ http -phb PUT $DB1/db2/_design/des1 lists:\u003d\u0027{\"l1\":true}\u0027\nHTTP/1.1 400 Bad Request\n{\n    \"error\": \"invalid_design_doc\", \"reason\": \"`l1` in lists is not a string\"\n}\n\n$ http -phb PUT $DB1/db2/_design/des1 views:\u003d\u0027{\"v1\": {\"map\":1}}\u0027\nHTTP/1.1 400 Bad Request\n{\n    \"error\": \"invalid_design_doc\", \"reason\": \"`map` in v1 must be a string\"\n}\n```\n"
    },
    {
      "commit": "95cbd7b2a0f2dd2f838d995fc0d677e48436b9bb",
      "tree": "46f05dbc82cc3342779e82995599f22fd8420020",
      "parents": [
        "85b83187f15fff1fb134f12919096b494a182d10"
      ],
      "author": {
        "name": "Klaus Trainer",
        "email": "klaus_trainer@posteo.de",
        "time": "Sat Sep 12 20:54:04 2015 +0200"
      },
      "committer": {
        "name": "Klaus Trainer",
        "email": "klaus_trainer@posteo.de",
        "time": "Sat Sep 12 21:04:35 2015 +0200"
      },
      "message": "Fix tests\n"
    },
    {
      "commit": "85b83187f15fff1fb134f12919096b494a182d10",
      "tree": "10ebb05faf68bacc5c3e8a9e5b47fabbe2c41ada",
      "parents": [
        "74e77196e46e6057ef25079efbdec84eb4c9340c"
      ],
      "author": {
        "name": "Klaus Trainer",
        "email": "klaus_trainer@posteo.de",
        "time": "Sat Sep 12 21:01:35 2015 +0200"
      },
      "committer": {
        "name": "Klaus Trainer",
        "email": "klaus_trainer@posteo.de",
        "time": "Sat Sep 12 21:03:09 2015 +0200"
      },
      "message": "Integrate with Travis CI\n"
    },
    {
      "commit": "74e77196e46e6057ef25079efbdec84eb4c9340c",
      "tree": "7d53fe683174b4719b396837a74c037880e25813",
      "parents": [
        "bda94729bfd6d97cb97a6fae7e39a84ba33dd2e3"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Mon Sep 07 13:14:54 2015 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Mon Sep 07 13:14:54 2015 +0100"
      },
      "message": "Always throw validation error\n\nCOUCHDB-2772\n"
    },
    {
      "commit": "bda94729bfd6d97cb97a6fae7e39a84ba33dd2e3",
      "tree": "37fa5b4f30617a427cc34be9601af3d74b6c0ce2",
      "parents": [
        "def55ca6a731387fb25a3e5fb524dc0bf56ff040"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Tue Aug 25 16:39:02 2015 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Tue Aug 25 16:39:02 2015 +0100"
      },
      "message": "Etag\u0027s require quotes\n"
    },
    {
      "commit": "def55ca6a731387fb25a3e5fb524dc0bf56ff040",
      "tree": "f0c4a4c83e79fb422739984abdd011bbe6f513c4",
      "parents": [
        "62473c324dcc9512e778a2e5c3df06dc0b51afa4"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Aug 05 15:39:42 2015 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Aug 05 15:39:42 2015 -0700"
      },
      "message": "Use closure funs to specify transformer functions\n"
    },
    {
      "commit": "62473c324dcc9512e778a2e5c3df06dc0b51afa4",
      "tree": "54d12b26600d0a4e1a81960312ae026e0c8844ce",
      "parents": [
        "d7258006297d137deca0e163b3d455d8cd84c3f5"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Fri Jun 19 11:58:51 2015 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Jul 29 13:29:51 2015 -0700"
      },
      "message": "Add call to couch_index_plugin:index_update/4\n"
    },
    {
      "commit": "d7258006297d137deca0e163b3d455d8cd84c3f5",
      "tree": "af17c808bc046b361b1a2e2024e6451b7249b8b0",
      "parents": [
        "b743459e4c3fd7a84d9605ffce652777162b8eb9",
        "083d1a53c44c904d7ca0ebc9f45649f8b3342ecc"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Jul 22 17:09:25 2015 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Jul 22 17:09:25 2015 -0400"
      },
      "message": "Merge branch \u00272724-chunked-buffering\u0027\n"
    },
    {
      "commit": "083d1a53c44c904d7ca0ebc9f45649f8b3342ecc",
      "tree": "af17c808bc046b361b1a2e2024e6451b7249b8b0",
      "parents": [
        "4038d9eb0cb9b1c291fdcfafa5fcd12ad1b85e3c"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Jul 20 16:10:24 2015 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Jul 22 17:06:49 2015 -0400"
      },
      "message": "Buffer rows to reduce number of chunks\n\nThis patch reduces the number of chunks in an HTTP chunked response body\nby coalescing multiple rows into a single transmission. The default\nvalue is chosen to fill a standard Ethernet frame and can be configured\nby setting\n\n    [httpd]\n    chunked_response_buffer \u003d 1490\n\nSetting the buffer size to 0 restores the original behavior of sending\neach row in a separate chunk. Note that the same setting is several\nstreaming responses (e.g. _changes, _all_docs, _views).\n\nCOUCHDB-2724\n"
    },
    {
      "commit": "4038d9eb0cb9b1c291fdcfafa5fcd12ad1b85e3c",
      "tree": "8c07ae23ef8bb82bd6920462c3d94cc5026e4d20",
      "parents": [
        "b743459e4c3fd7a84d9605ffce652777162b8eb9"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Jul 20 15:53:18 2015 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Jul 20 15:53:18 2015 -0400"
      },
      "message": "Avoid gratuitous list flattening\n\nMochiweb and gen_tcp are perfectly happy with iolists.\n"
    },
    {
      "commit": "b743459e4c3fd7a84d9605ffce652777162b8eb9",
      "tree": "af7637aa3384e50804aac387b7f8d123986d0a8a",
      "parents": [
        "1c10f21cfcb1d9d58be89c98782873c3a893fd11"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 08 21:33:17 2015 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 08 21:35:38 2015 +0100"
      },
      "message": "Protect against div by zero\n\nCOUCHDB-2742\n"
    },
    {
      "commit": "1c10f21cfcb1d9d58be89c98782873c3a893fd11",
      "tree": "ecb538d9da63db25f7fbdb526f2db21ae84ab563",
      "parents": [
        "19737b758363b56ba14515b677cbe485b773c3bf",
        "6343efd6768a3d4d4ff2c6e1b22200f4e4aaca3f"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Jul 01 09:21:55 2015 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Jul 01 09:21:55 2015 -0400"
      },
      "message": "Merge branch \u0027537-whitelist-builtin-reduce-funs\u0027\n"
    },
    {
      "commit": "6343efd6768a3d4d4ff2c6e1b22200f4e4aaca3f",
      "tree": "ecb538d9da63db25f7fbdb526f2db21ae84ab563",
      "parents": [
        "edb2c8517485a701ac38ebc8c4de2cd4df5a12a0"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Tue Jun 30 21:27:41 2015 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Tue Jun 30 21:32:17 2015 -0400"
      },
      "message": "Add tests for design document validations\n\nCOUCHDB-537\n"
    },
    {
      "commit": "edb2c8517485a701ac38ebc8c4de2cd4df5a12a0",
      "tree": "dd19a49ded5d23f4a07de4d9de70e891c1481c84",
      "parents": [
        "19737b758363b56ba14515b677cbe485b773c3bf"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Tue Jun 30 20:55:05 2015 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Tue Jun 30 20:55:05 2015 -0400"
      },
      "message": "Validate named reduce function against whitelist\n\nCOUCHDB-537\n"
    },
    {
      "commit": "19737b758363b56ba14515b677cbe485b773c3bf",
      "tree": "9dacddf9b0932bc25c42a766a8b1f47b115ea3b5",
      "parents": [
        "1dc8d5252d8fbaa9df56ee63800fa616c154602e",
        "ba84fb80900e9a86ffa7a05dfcac3c092f2920e1"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Tue Jun 30 11:39:23 2015 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Tue Jun 30 11:39:23 2015 -0400"
      },
      "message": "Merge branch \u00271805-respect-collation-setting-reduce-group\u0027\n\nCOUCHDB-1805\n"
    },
    {
      "commit": "ba84fb80900e9a86ffa7a05dfcac3c092f2920e1",
      "tree": "9dacddf9b0932bc25c42a766a8b1f47b115ea3b5",
      "parents": [
        "14f5bba64b8525f65d70b59e6bf77954fdcded6e"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Fri Jun 26 20:34:28 2015 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Jun 29 22:45:41 2015 -0400"
      },
      "message": "Use proper collation fun for reduce grouping\n\nWe had been using raw collation for grouping keys in a MR view\nregardless of the overall collation setting for the view. This patch\ndefers the construction of the grouping function to the btree code,\nwhere we have access to the correct sorting function.\n\nCOUCHDB-1805\n"
    },
    {
      "commit": "14f5bba64b8525f65d70b59e6bf77954fdcded6e",
      "tree": "405a98226743484f7a63f74c7a2d97d8ee0c88ea",
      "parents": [
        "2dc7649184bf9146d43e07ed89b455d7aa8c0932"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Jun 29 21:42:40 2015 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Jun 29 22:45:41 2015 -0400"
      },
      "message": "Add a failing test for reduce key grouping\n\nI needed to refactor a few things to support multiple ddocs in the\ncollation test module.\n\nCOUCHDB-1805\n"
    },
    {
      "commit": "2dc7649184bf9146d43e07ed89b455d7aa8c0932",
      "tree": "3cfe932be9dc9d18423d7b07f3ad677c4c3d9d7a",
      "parents": [
        "8e8420b8873b5b79b07a3076923539a8f5532d14"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Jun 29 17:41:32 2015 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Jun 29 21:43:48 2015 -0400"
      },
      "message": "Rework to support equivalent-but-not-equal keys\n\nThe range collation test would fail when presented with a set of keys\nthat compare equal according to ICU but not according to Erlang\u0027s \u003d:\u003d\noperator.\n\nOther todos here include testing the raw collator and ensuring that all\ntests use the correct collator (most of the other ones are also\ntechnically incorrect but we just don\u0027t see it with the choices of data\ninvolved). Taking care of this incrementally rather than rewriting the\nwhole module.\n"
    },
    {
      "commit": "8e8420b8873b5b79b07a3076923539a8f5532d14",
      "tree": "a01056799fea9000e21d6f90af0c1d17d7984a22",
      "parents": [
        "1dc8d5252d8fbaa9df56ee63800fa616c154602e"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Jun 29 16:33:53 2015 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Jun 29 21:43:48 2015 -0400"
      },
      "message": "Use the ?assertEquiv macro for better reporting\n\nAlso dynamically compute the value for the `total` field to allow us to\nadd additional test data over time.\n"
    },
    {
      "commit": "1dc8d5252d8fbaa9df56ee63800fa616c154602e",
      "tree": "050acc977d45328a1de68c93afaa0a48cc04f18b",
      "parents": [
        "f88eda2103c0aeb1c3510ceea9354d7db568571e"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Apr 07 07:59:00 2015 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Apr 07 08:20:17 2015 -0700"
      },
      "message": "Use chttpd provided functions\n\ncouch_mrview_show\u0027s usage of couch_chttp:send_external_response\nbrakes CORS support. Since couch_httpd\u0027s version of send_external_response\ndoesn\u0027t have support for CORS compared to chttpd\u0027s version.\n\nOther couch_http\u0027s functions are switched to corresponding chttpd\u0027s\nversions as well.\n\nCOUCHDB-2656\n"
    },
    {
      "commit": "f88eda2103c0aeb1c3510ceea9354d7db568571e",
      "tree": "78de1c3f08eaa88e9eedfe7438c56c681b063f0c",
      "parents": [
        "df5ff56d8ef7d6880a646e204f50b52ebf8a13df"
      ],
      "author": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Fri Sep 19 17:23:25 2014 +0400"
      },
      "committer": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Thu Mar 26 01:58:37 2015 +0300"
      },
      "message": "Remove handlers for outdated mrview parameters\n\nThe `list` was introduced by COUCHDB-404 and becomes eventually\nreplaced by list functions since 0.10 release.\n\nThe `count` was suppressed by `limit` since 0.9 release.\n\nThis closes #5\n"
    },
    {
      "commit": "df5ff56d8ef7d6880a646e204f50b52ebf8a13df",
      "tree": "152a9856041dc7abddd622be5166aa1ce262061a",
      "parents": [
        "065dc26e3a80adbe8b8cd8e6a64a8a9487022efd"
      ],
      "author": {
        "name": "Robert Kowalski",
        "email": "rok@kowalski.gd",
        "time": "Sat Mar 14 19:51:59 2015 +0100"
      },
      "committer": {
        "name": "Robert Kowalski",
        "email": "rok@kowalski.gd",
        "time": "Sat Mar 14 19:51:59 2015 +0100"
      },
      "message": "add license\n"
    },
    {
      "commit": "065dc26e3a80adbe8b8cd8e6a64a8a9487022efd",
      "tree": "35721ba66febf7ffb14972e76baf5b0117e08a22",
      "parents": [
        "09272b7b0ce571221c6127b1d6eef78f120eac19",
        "07f0a4e287512cc20e23b432cfb0f85bcc60413d"
      ],
      "author": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Fri Jan 30 10:31:23 2015 +0300"
      },
      "committer": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Fri Jan 30 21:01:34 2015 +0300"
      },
      "message": "Merge remote-tracking branch \u0027iilyak/1145-_local_docs-handler\u0027\n\nThis closes #13\n\nCOUCHDB-1145\n"
    },
    {
      "commit": "09272b7b0ce571221c6127b1d6eef78f120eac19",
      "tree": "b3e88118ef274aad7fe60d69e747a8b50d5cb706",
      "parents": [
        "5c10340e1ff8687f31bcef795128e404cd305e35"
      ],
      "author": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Mon Jan 26 07:16:16 2015 +0300"
      },
      "committer": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Mon Jan 26 07:16:16 2015 +0300"
      },
      "message": "Use ADMIN_CTX macro from couch_db.hrl\n"
    },
    {
      "commit": "5c10340e1ff8687f31bcef795128e404cd305e35",
      "tree": "d7690c4f549314e0b19ddedd9441673b4452c4f5",
      "parents": [
        "439f322cb75f1636a6b27ccc90f5e6732ccaaf01"
      ],
      "author": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Mon Jan 19 20:42:34 2015 +0300"
      },
      "committer": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Mon Jan 19 21:04:44 2015 +0300"
      },
      "message": "Fix typo in metric name\n"
    },
    {
      "commit": "07f0a4e287512cc20e23b432cfb0f85bcc60413d",
      "tree": "2300766b68b6c198bb77a41ddcf6c99d66b6ac3e",
      "parents": [
        "9e249858b4c942d841faa75953e549fcd044b33d"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Dec 31 12:29:11 2014 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Dec 31 12:29:11 2014 -0800"
      },
      "message": "Fix indentation\n\nCOUCHDB-1145\n"
    },
    {
      "commit": "9e249858b4c942d841faa75953e549fcd044b33d",
      "tree": "3853dae20c0028656bdc8c33eb20e5c46e9f9fde",
      "parents": [
        "0828a39c3ae408baf01c0afd57bd1c510735c2e5"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Dec 31 11:32:58 2014 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Dec 31 11:33:17 2014 -0800"
      },
      "message": "Forbid access to _local_docs for non-system dbs\n\nCOUCHDB-1145\n"
    },
    {
      "commit": "0828a39c3ae408baf01c0afd57bd1c510735c2e5",
      "tree": "d6c7b7a2a839afbfcb42945268860aaf308bead5",
      "parents": [
        "ca9ed2f99fad128ad6ceec23322477243d14f3c9"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Dec 31 10:45:25 2014 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Dec 31 10:47:18 2014 -0800"
      },
      "message": "Make _local_docs accessible by admin only\n\nCOUCHDB-1145\n"
    },
    {
      "commit": "ca9ed2f99fad128ad6ceec23322477243d14f3c9",
      "tree": "275ee1dbe96930a056b6126bfa8a85abc236bf0b",
      "parents": [
        "6caa60f35123558922c2c1645d065c145ee3d257"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Dec 31 10:42:02 2014 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Dec 31 10:47:18 2014 -0800"
      },
      "message": "Move some logic into is_public_fields_configured function\n\nCOUCHDB-1145\n"
    },
    {
      "commit": "6caa60f35123558922c2c1645d065c145ee3d257",
      "tree": "577d38a95a3d3c1060f864fb5a1bd8fd78b8c79f",
      "parents": [
        "e935477d553d2c392314b728b08500758f2a3e1c"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Thu Dec 18 11:32:18 2014 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Dec 31 10:47:11 2014 -0800"
      },
      "message": "Add _design_docs handler\n\nCOUCHDB-1145\n"
    },
    {
      "commit": "e935477d553d2c392314b728b08500758f2a3e1c",
      "tree": "06de46732c329bce89ad7d5c6359a94f6222d2eb",
      "parents": [
        "2212d2877867b144922062d084fda6fd6c53182d"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Dec 16 12:41:05 2014 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Dec 31 10:47:04 2014 -0800"
      },
      "message": "Add couch_mrview_http:handle_local_docs_req\n\nCOUCHDB-1145\n"
    },
    {
      "commit": "2212d2877867b144922062d084fda6fd6c53182d",
      "tree": "42f781c15d0ab49956b50513d3cfdcb38feb69f4",
      "parents": [
        "119fced0ebc2f1e7230d00d76e8c643baecc67e6"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Tue Dec 16 12:38:13 2014 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Dec 31 10:46:58 2014 -0800"
      },
      "message": "Pass namespace parameter in extra field of #mrargs{}\n\nCOUCHDB-1145\n"
    },
    {
      "commit": "119fced0ebc2f1e7230d00d76e8c643baecc67e6",
      "tree": "e6e0dfd1c1cdd99613b0676b8b40b77decf103df",
      "parents": [
        "439f322cb75f1636a6b27ccc90f5e6732ccaaf01"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Mon Dec 15 15:28:04 2014 -0800"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@ca.ibm.com",
        "time": "Wed Dec 31 10:46:50 2014 -0800"
      },
      "message": "Add namespace option to all_docs_req\n\nCOUCHDB-1145\n"
    }
  ],
  "next": "439f322cb75f1636a6b27ccc90f5e6732ccaaf01"
}
