)]}'
{
  "log": [
    {
      "commit": "1f9375257ff64c41a2bbf6d19baa734e619f57cf",
      "tree": "629782ad8e61eff8025dc10fa3714db92706cedb",
      "parents": [
        "11938e14c69659e671dc375a540da27b5a994eb4"
      ],
      "author": {
        "name": "Jesse Stimpson",
        "email": "jstimpson@relaypro.com",
        "time": "Thu Oct 12 15:26:01 2023 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Thu Oct 12 15:29:32 2023 -0400"
      },
      "message": "Add newline to end of file\n"
    },
    {
      "commit": "11938e14c69659e671dc375a540da27b5a994eb4",
      "tree": "ddea83508fa90e8a73d0d7b16b4271ce6745f5ee",
      "parents": [
        "46af08f50f543d1ddca6e545b726ec2b31a3bc88"
      ],
      "author": {
        "name": "Jesse Stimpson",
        "email": "jstimpson@relaypro.com",
        "time": "Thu Oct 12 14:33:07 2023 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Thu Oct 12 15:23:48 2023 -0400"
      },
      "message": "Fix C prototype declaration to match implementation\n"
    },
    {
      "commit": "46af08f50f543d1ddca6e545b726ec2b31a3bc88",
      "tree": "681d00b7f603df6108e543f9703a414d5a3cac82",
      "parents": [
        "651631d02a91e11016e2acfb1b2e0ec311b88657"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Tue Jan 25 18:19:47 2022 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Tue Jan 25 18:33:52 2022 -0500"
      },
      "message": "Install FDB synchronously\n\nWe were seeing CI failures where the FDB installation would not be\ncompleted before we tried to invoke `fdbcli --version`\n"
    },
    {
      "commit": "651631d02a91e11016e2acfb1b2e0ec311b88657",
      "tree": "6e0ade6d10ecbe780236a0060f03b1475f6c55ec",
      "parents": [
        "20ae851ed87157ed127d23f09955bb608ce25a0a"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Tue Jan 25 14:39:05 2022 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Tue Jan 25 18:33:52 2022 -0500"
      },
      "message": "Fix issues caused by foundationdb.org breakage\n\nThe foundationdb.org collapse and subsequent move to GitHub created a\nbit of fallout:\n\n* Update package URLs from foundationdb.org to github.com\n\n* Install Python package via pip as it\u0027s not published on GitHub\n\n* Bump version to 6.3.23 as pypi has limited release selection\n\n* Vendor the create_cluster_file.bash script (FDB elected to remove it\n  from their published container builds).\n"
    },
    {
      "commit": "20ae851ed87157ed127d23f09955bb608ce25a0a",
      "tree": "20efadf2dddcef87f6cf5bd0ba3885a5f290372e",
      "parents": [
        "a2e6505b92cff2966a855f5c9240c7111e9c1340"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Tue Jan 25 13:15:03 2022 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Tue Jan 25 15:48:09 2022 -0500"
      },
      "message": "Update URL for FDB packages\n"
    },
    {
      "commit": "a2e6505b92cff2966a855f5c9240c7111e9c1340",
      "tree": "253db3a6633de14c25d57a06ec3cdba66bc5053b",
      "parents": [
        "74a31ce5a14be60b5cd2062da771deff71a06599"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@gmail.com",
        "time": "Tue Jan 25 12:31:45 2022 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Tue Jan 25 15:48:09 2022 -0500"
      },
      "message": "Deallocate future mutex in the future resource destructor\n\nOtherwise we end up leaking mutexes https://github.com/apache/couchdb-erlfdb/issues/49\n"
    },
    {
      "commit": "74a31ce5a14be60b5cd2062da771deff71a06599",
      "tree": "5ce51cd56523faeee2d45d60ce2a584c3a1dc6a4",
      "parents": [
        "744a83bcbc93ccf5a3751aee44e2182d945163b9"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Fri Nov 26 15:44:29 2021 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 26 15:44:29 2021 -0500"
      },
      "message": "Avoid reserved keys in tests (#48)\n\n"
    },
    {
      "commit": "744a83bcbc93ccf5a3751aee44e2182d945163b9",
      "tree": "cce36ddf3178e734f088f4b4a505b4d027f356dd",
      "parents": [
        "a367af4072e821d170aae442a634dc731dbfc860"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Wed Nov 17 10:48:45 2021 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 17 10:48:45 2021 -0500"
      },
      "message": "Refactor build matrix (#43)\n\nRework and simplify the build through the following enhancements:\r\n\r\n* Build against multiple Erlang/OTP versions\r\n\r\n* Merge Ubuntu and Windows into a matrix build\r\n\r\n* Simplify config by using default fdb.cluster\r\n\r\nThe last one is a bit obvious in hindsight. We don\u0027t need to be passing\r\naround custom overrides for the fdb.cluster file location; all we really\r\nneed to do is just trust FDB to figure it out on each platform. To do this\r\nwe allow for setting the test_cluster_file env to `system_default` instead\r\nof a path to a specific cluster file."
    },
    {
      "commit": "a367af4072e821d170aae442a634dc731dbfc860",
      "tree": "60be029d2535a1a1b47e27be39afaae6f75bb4ec",
      "parents": [
        "2f6b6484e472ee805c0eb3253ad66a2a1b5a2e29"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Wed Nov 10 14:35:07 2021 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Wed Nov 17 10:42:45 2021 -0500"
      },
      "message": "Publish coverage to coveralls.io\n"
    },
    {
      "commit": "2f6b6484e472ee805c0eb3253ad66a2a1b5a2e29",
      "tree": "7dbf5f01be2306d471b312b885bcd5e616e71aa6",
      "parents": [
        "111367c830f504d5bb7bb8d63abbe69a0ea5c5fb"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Wed Nov 10 13:59:44 2021 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Wed Nov 17 10:42:45 2021 -0500"
      },
      "message": "Enable code coverage for eunit + bindingtester\n\nThe EUnit coverage is on by default. The bindingtester can be enabled\nby defining the COVER_ENABLED environment variable. It writes to the\nsame directory that EUnit does; namely \"_build/test/cover/\" if ERL_LIBS\nis defined to point to the \"test\" profile for erlfdb (as it should be\nfor code coverage analysis). For example:\n\nCOVER_ENABLED\u003d1 ERL_LIBS\u003d_build/test/lib/erlfdb /usr/src/foundationdb/bindings/bindingtester/bindingtester.py erlang --test-name api --instruction-prefix api --num-ops 10000\n\nWe could try to be a little smarter here and align to rebar3\u0027s config\noptions, but I didn\u0027t bother with that for now.\n"
    },
    {
      "commit": "111367c830f504d5bb7bb8d63abbe69a0ea5c5fb",
      "tree": "f8dd1f9a6eb805b23aed758f10bb457f99bb684d",
      "parents": [
        "4bb2290b0e767e800a5c2c67baba1767b08c57c8"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Tue Nov 09 11:05:37 2021 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Wed Nov 17 10:35:43 2021 -0500"
      },
      "message": "Implement wrapper for get_estimated_range_size API\n\nThis is new in 6.3.\n"
    },
    {
      "commit": "4bb2290b0e767e800a5c2c67baba1767b08c57c8",
      "tree": "f94e78ebe72a4456fa43cadb754e02b5f19270de",
      "parents": [
        "ff44fb2ec12763b2bde50c8bea476b77c88a2976"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Tue Nov 09 08:36:50 2021 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Wed Nov 17 10:35:43 2021 -0500"
      },
      "message": "Support 6.2.x and 6.3.x in devcontainer\n\n6.3 changed the bindingtester code to use Python3, so we need to make\nsure to install the Python bindings (used by the binding tester) with\nthe right version of Python conditional on the minor version of FDB.\n"
    },
    {
      "commit": "ff44fb2ec12763b2bde50c8bea476b77c88a2976",
      "tree": "ec53b74eb334071cd7223d55f793ffe432ba7b62",
      "parents": [
        "5b085c525f3f6dfa374fa05fad03fa5b1a4ef7c8"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Fri Nov 05 17:15:31 2021 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Wed Nov 17 10:35:43 2021 -0500"
      },
      "message": "Add a matrix job to run binding tests\n\nThis job uses the same container image as the .devcontainer. It runs\neach of the binding tests for every supported API version (currently\n620 and 630), except for `scripted` which only works with the current\nAPI version. It relies on a service container for the underlying FDB\nserver.\n"
    },
    {
      "commit": "5b085c525f3f6dfa374fa05fad03fa5b1a4ef7c8",
      "tree": "943ccb8174c68dce820988f5a743c6388e8c95cc",
      "parents": [
        "aaeda1dc38097ffd598a814be1d944266cffb7c9"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Wed Nov 10 08:34:23 2021 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Fri Nov 12 17:34:44 2021 -0500"
      },
      "message": "Fix OOB array access in get_string_array\n\nSilly bug here, but we didn\u0027t catch because for some reason the\nget_addresses_for_key function is not part of the bindings tester\nspecifications. I added a brutally simply unit test to cover it.\n"
    },
    {
      "commit": "aaeda1dc38097ffd598a814be1d944266cffb7c9",
      "tree": "9b2c5be0d05f14cbd613216c753a5ccade6e17c7",
      "parents": [
        "0fa8eac025253c56ddacfe0e0420d4d3ac5e9768",
        "0f3bee4cafdb550b5eafc4c6cf808767d5d99910"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Tue Nov 09 07:34:13 2021 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 09 07:34:13 2021 -0500"
      },
      "message": "Merge pull request #37 from apache/configure-fdb-version\n\nConfigure FDB_API_VERSION dynamically, add full support for FDB 6.3.x"
    },
    {
      "commit": "0fa8eac025253c56ddacfe0e0420d4d3ac5e9768",
      "tree": "b60c16e7675c6130f0f0107af520bd4d435e2360",
      "parents": [
        "acd51950dbe3ef8427bfd8841f9a7eceb9789b17",
        "97df150c3ba6c440ed2e12c49c62c3a30a0cdf75"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Tue Nov 09 07:32:59 2021 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 09 07:32:59 2021 -0500"
      },
      "message": "Merge pull request #33 from apache/erlfmt\n\nFormat code using erlfmt"
    },
    {
      "commit": "0f3bee4cafdb550b5eafc4c6cf808767d5d99910",
      "tree": "9b2c5be0d05f14cbd613216c753a5ccade6e17c7",
      "parents": [
        "26986b376501401e1e95137059b30ad9109b8e82"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Mon Nov 08 20:04:33 2021 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Mon Nov 08 20:04:33 2021 -0500"
      },
      "message": "Add support for ENABLE_RUN_LOOP_PROFILING\n\nThis is the new name for ENABLE_SLOW_TASK_PROFILING.\n"
    },
    {
      "commit": "26986b376501401e1e95137059b30ad9109b8e82",
      "tree": "9ca857ae19e282afc2e84d83d49c35eac7bd498c",
      "parents": [
        "67b73e168462e83e7b66598f83f2845d750364c7"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Mon Nov 08 17:18:30 2021 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Mon Nov 08 18:34:04 2021 -0500"
      },
      "message": "Build against latest 6.2 / 6.3 in CI\n"
    },
    {
      "commit": "67b73e168462e83e7b66598f83f2845d750364c7",
      "tree": "f71cecc82e32828ee47989b1b40f601794be7f26",
      "parents": [
        "77f3ff20be72f8785ef44226f32fbd4373fee24f"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Mon Nov 08 16:36:14 2021 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Mon Nov 08 17:07:54 2021 -0500"
      },
      "message": "Detect FDB_API_VERSION from fdbcli --version\n"
    },
    {
      "commit": "77f3ff20be72f8785ef44226f32fbd4373fee24f",
      "tree": "42c529714a72188b4b09182b12bec3a84a47c143",
      "parents": [
        "7d44ac333c6316915127bd84fc13e685398d7c64"
      ],
      "author": {
        "name": "root",
        "email": "kocolosk@apache.org",
        "time": "Sun Nov 07 14:58:46 2021 +0000"
      },
      "committer": {
        "name": "root",
        "email": "kocolosk@apache.org",
        "time": "Sun Nov 07 14:58:46 2021 +0000"
      },
      "message": "Remove CXXFLAGS (this is not C++)\n"
    },
    {
      "commit": "7d44ac333c6316915127bd84fc13e685398d7c64",
      "tree": "433d7e7df5f851d486a31669a4b839b412eee4fe",
      "parents": [
        "97df150c3ba6c440ed2e12c49c62c3a30a0cdf75"
      ],
      "author": {
        "name": "root",
        "email": "kocolosk@apache.org",
        "time": "Sun Nov 07 14:57:59 2021 +0000"
      },
      "committer": {
        "name": "root",
        "email": "kocolosk@apache.org",
        "time": "Sun Nov 07 14:57:59 2021 +0000"
      },
      "message": "Allow command-line override of FDB_API_VERSION\n"
    },
    {
      "commit": "97df150c3ba6c440ed2e12c49c62c3a30a0cdf75",
      "tree": "b60c16e7675c6130f0f0107af520bd4d435e2360",
      "parents": [
        "90b86c13fd5a757f596e5f3f74ede81e9a1fcaad"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Fri Nov 05 10:46:51 2021 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Sat Nov 06 14:16:28 2021 -0400"
      },
      "message": "Ensure erlfmt compliance in CI\n"
    },
    {
      "commit": "90b86c13fd5a757f596e5f3f74ede81e9a1fcaad",
      "tree": "33f13fb4aad95050ddc6fecb12fd170fb4609238",
      "parents": [
        "47e1d4cf7ce2379e6216fe7d56648da681be1da4"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Tue Nov 02 21:44:29 2021 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Sat Nov 06 14:16:17 2021 -0400"
      },
      "message": "Format code using erlfmt\n"
    },
    {
      "commit": "47e1d4cf7ce2379e6216fe7d56648da681be1da4",
      "tree": "bf755c2424da496822f42c6d00ea420fb9d763ab",
      "parents": [
        "acd51950dbe3ef8427bfd8841f9a7eceb9789b17"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Tue Nov 02 21:15:00 2021 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Sat Nov 06 14:15:59 2021 -0400"
      },
      "message": "Add erlfmt as a project_plugin\n"
    },
    {
      "commit": "acd51950dbe3ef8427bfd8841f9a7eceb9789b17",
      "tree": "93ba1267e974151073d882e34f68ab806e61ed6c",
      "parents": [
        "f9a2f0f70a7d64d14ff976e967420c3f21af783a"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Sat Nov 06 14:14:26 2021 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Nov 06 14:14:26 2021 -0400"
      },
      "message": "Add a dev container configuration for VS Code (#27)\n\nThis creates a development environment with a FoundationDB server and\r\nan erlfdb client in two containers, sharing a network through Docker\r\nCompose.\r\n\r\nIt uses the FDB image published to Docker Hub for the FDB container, and\r\ndownloads the FDB client packages from foundationdb.org to provide the\r\ndevelopment headers and libraries. Once the Docker Compose setup is\r\ncreated, VS Code executes the `create_cluster_file.bash` script to write\r\ndown a cluster file containing the IP address in the compose network\r\nwhere the FDB service can be found, and initializes the FDB server with\r\na new database.\r\n\r\nThe use of an external FDB container allows the erlfdb container to be\r\nre-created as needed without losing the underlying data in the FDB\r\ncontainer."
    },
    {
      "commit": "f9a2f0f70a7d64d14ff976e967420c3f21af783a",
      "tree": "46fe83903e59b63f99918cd509cc40dc99cc4be3",
      "parents": [
        "f4e7e2beddb988418724f5ed42949840a98f00a8"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Sat Nov 06 10:27:44 2021 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Sat Nov 06 10:30:06 2021 -0400"
      },
      "message": "Restore ignores for rebar2 artifacts\n"
    },
    {
      "commit": "f4e7e2beddb988418724f5ed42949840a98f00a8",
      "tree": "bf591ba7d72487207cf8f195ba34f832787584b5",
      "parents": [
        "68211f31c26d4a42d27e59827a6507be7cbc2dc9"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Tue Nov 02 16:42:51 2021 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Sat Nov 06 10:30:06 2021 -0400"
      },
      "message": "Enable CI using GitHub Actions\n\nThis patch sets up a simple GH Action configuration to build and unit\ntest erlfdb on Windows and Linux. We could get a lot fancier here; my\ninitial goal was simply to avoid regressions in x-platform support.\n\nI\u0027m using a handful of third-party actions to make this setup work:\n\n- https://github.com/erlef/setup-beam\n- https://github.com/ilammy/msvc-dev-cmd\n- https://github.com/mxschmitt/action-tmate\n\nASF policy prohibits the direct use of third-party Actions because it\u0027s\nnot possible to code review each chamnge to them. Importing them as a\nsubmodule pins the action to a specific commit and is the accepted\nworkaround at this time.\n"
    },
    {
      "commit": "68211f31c26d4a42d27e59827a6507be7cbc2dc9",
      "tree": "b865a04a9ba01ec66a68fa2724650276c4c1040b",
      "parents": [
        "956920ec44c9e0aca4ea3d2bd71f2bec290a1abf"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Tue Nov 02 16:34:37 2021 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Sat Nov 06 10:30:06 2021 -0400"
      },
      "message": "Upgrade to rebar3, add Windows support\n\nThis patch updates erlfdb to build using rebar3. It relies on rebar3\u0027s\n`pc` plugin to build the NIF instead of the compiled copy of davisp\u0027s\nerlang-native-compiler, which does essentially the same thing. I left\nthe rebar_gdb_plugin code in the repo, although I did not update that\nplugin to make it compatible with rebar3 yet.\n\nWith rebar3 in place, I also made the changes necessary to support\nWindows. One gotcha is that the unit tests will fail unless you set\nthe erlfdb test_cluster_file environment variable to point to a running\nfdb.cluster file. I didn\u0027t get through all the hoops to make the\napproach of spinning up an embedded fdbserver work in a x-platform way.\nApparently Windows doesn\u0027t let you supply a Python script for the\nspawn_executable argument of erlang:open_port/2. I added a rebar3\nprofile to help here. The following command will cause the test suite\nto connect to an FDB server that is managing its configuration in the\ndefault location on Windows:\n\n  rebar3 as win32_external_fdbserver eunit\n"
    },
    {
      "commit": "956920ec44c9e0aca4ea3d2bd71f2bec290a1abf",
      "tree": "7c0d1c736d579c89d993c9f04492c9fcf12f96a8",
      "parents": [
        "818777328c5fbebb331fd9c69b1095b172ed8397"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Wed Nov 03 16:55:13 2021 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 03 16:55:13 2021 -0400"
      },
      "message": "Make dialyzer happy (#32)\n\n* Update a couple of type specs to match reality\r\n* Remove dead code"
    },
    {
      "commit": "818777328c5fbebb331fd9c69b1095b172ed8397",
      "tree": "367147d2a7c52ca4b4598135c3763d0332fc2746",
      "parents": [
        "8c0bc0c87b00a9931ddf5dec30e6d79f43926646"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Tue Nov 02 17:00:24 2021 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Tue Nov 02 17:00:24 2021 -0400"
      },
      "message": "Minor update to metadata\n"
    },
    {
      "commit": "8c0bc0c87b00a9931ddf5dec30e6d79f43926646",
      "tree": "b23011ca9f1afbf773faeaf201c8611d7c899420",
      "parents": [
        "44a9bffa0786579f1e798a0bc6610aa11dfb9ba9"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Fri Oct 29 12:54:38 2021 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 29 12:54:38 2021 -0400"
      },
      "message": "Enable GH issues (#28)\n\n"
    },
    {
      "commit": "44a9bffa0786579f1e798a0bc6610aa11dfb9ba9",
      "tree": "e4e8af3f0980497f132ef592b31620e4da543cdf",
      "parents": [
        "1e5f2385818b132b7798cf832fe719fdd01b6783"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Fri Jun 11 14:50:00 2021 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 11 14:50:00 2021 -0400"
      },
      "message": "Ensure application environment is loaded (#26)\n\nerlfdb is a library application, but starting the app is still\r\nrequired to make the application environment variables accessible.\r\nWithout this hack the `test_cluster_file` setting has no effect during\r\neunit test executions."
    },
    {
      "commit": "1e5f2385818b132b7798cf832fe719fdd01b6783",
      "tree": "18eee569b91c1952fa33169fa9da1f9339efff01",
      "parents": [
        "55022a566df3d98a543148ce7a0e2eb6773909ae"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@gmail.com",
        "time": "Sat Apr 17 22:53:05 2021 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Sat Apr 17 22:58:46 2021 -0400"
      },
      "message": "Update enc (port compiler) to work with Erlang 23\n"
    },
    {
      "commit": "55022a566df3d98a543148ce7a0e2eb6773909ae",
      "tree": "d7498384ce2bb45328f1d14d4131d481794d5459",
      "parents": [
        "c784cc4b21c554e276cb309b53f36fe8a2c5b8ac"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@gmail.com",
        "time": "Tue Apr 06 12:26:50 2021 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Tue Apr 06 13:01:45 2021 -0400"
      },
      "message": "Make the default wait timeout infinity (continued)\n\nThis the continuation of https://github.com/apache/couchdb-erlfdb/pull/22. There,\nwe updated only one `after` clause and forgot the other. The reasoning is the\nsame as before -- make erlfdb behave consistent with other FDB clients which\ndo not have top level client-side timeouts for futures.\n"
    },
    {
      "commit": "c784cc4b21c554e276cb309b53f36fe8a2c5b8ac",
      "tree": "54763e15d8494aacd1edbb0fb176aa21f06bf1f3",
      "parents": [
        "53077693e161368f6c33b73a2f967fe490c36838"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@gmail.com",
        "time": "Mon Mar 29 18:47:53 2021 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Tue Mar 30 12:53:50 2021 -0400"
      },
      "message": "Make the default wait timeout infinity\n\nThis brings the default behavior in line with other FoundationDB client\nlibraries which don\u0027t use client-side timeouts when waiting for futures to\nfire.\n\nA few other reasons are:\n\n  * Currently we may generate spurious future `ready` messages when timeouts\nfire during overload scenarios. The caller would have to know to flush ready\nmessages if they caught a `{timeout, _}`\n\n * The response may succeed under 5 seconds, but it would be queued in the\n   networking layer and throw a `timeout` error on the Erlang side.\n\n * Timeouts can be set as a transaction or db handle options. It\u0027s easier to\n   apply configuration defaults there than for individual wait functions.\n\n * Watch futures are not bound by the 5 second transaction time limit, and\n   they\u0027d have to know about the default `wait/1,2` call timeout to know to\n   extend it or set it to `infinity`.\n"
    },
    {
      "commit": "53077693e161368f6c33b73a2f967fe490c36838",
      "tree": "33516ac462c0649f9d272e6b5ebcd77db3940810",
      "parents": [
        "1314c2ac70bb3f87ed6694a5d3751b26b9c885d4"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Thu Mar 25 18:42:18 2021 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Thu Mar 25 20:58:39 2021 -0400"
      },
      "message": "Add ERLFDB_IS_RETRYABLE/2 guard\n\nThis is a guard which may be used to catch and handle retryable errors. It\u0027s\nmore ergonomic as a guard than a function, since the handler won\u0027t have to\ncatch and re-throw unwanted (non-retryable) exceptions.\n\nAlong with a guard, some common FDB error codes are also defined. It\u0027s not an\nexhaustive list and mostly consists of retryable and a few other common errors.\n"
    },
    {
      "commit": "1314c2ac70bb3f87ed6694a5d3751b26b9c885d4",
      "tree": "f4a597be00ce948117b719148cbb35485508835d",
      "parents": [
        "50c17739b167a55c30bd6e57a834119c0c207637"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Tue Mar 09 16:58:00 2021 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Tue Mar 09 17:11:05 2021 -0500"
      },
      "message": "Make monitor.py use /usr/bin/env python3\n\nPreviously it was set to `/usr/bin/python`, however on later versions\nof Ubuntu and other OSes `/usr/bin/python` is missing. Users may install the\n`python-is-python3` package but that is not ideal.\n"
    },
    {
      "commit": "50c17739b167a55c30bd6e57a834119c0c207637",
      "tree": "3daa7c02f09774acf8c95edae610ac60605c64ef",
      "parents": [
        "ea54b1a90259dce4dab7136b6a8d24455d2df8d6",
        "281eceb86643e8efd2969b07216a55cc97af7497"
      ],
      "author": {
        "name": "Dave Cottlehuber",
        "email": "dch@apache.org",
        "time": "Tue Mar 09 21:56:58 2021 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 09 21:56:58 2021 +0000"
      },
      "message": "Merge pull request #19 from skunkwerks/fix/bsd-hier\n\nlook in /usr/local/bin/ before /usr/local/sbin/"
    },
    {
      "commit": "281eceb86643e8efd2969b07216a55cc97af7497",
      "tree": "3daa7c02f09774acf8c95edae610ac60605c64ef",
      "parents": [
        "ea54b1a90259dce4dab7136b6a8d24455d2df8d6"
      ],
      "author": {
        "name": "Dave Cottlehuber",
        "email": "dch@skunkwerks.at",
        "time": "Mon Jan 20 20:13:33 2020 +0000"
      },
      "committer": {
        "name": "Dave Cottlehuber",
        "email": "dch@skunkwerks.at",
        "time": "Tue Mar 09 21:50:06 2021 +0000"
      },
      "message": "look in /usr/local/bin/ before /usr/local/sbin/\n\naccording to [heir(7)](https://man.freebsd.org/cgi/hier) /sbin/ is for\nbinaries fundamental to single-user and multi-user environments, which\nfdb is definitely not.\n"
    },
    {
      "commit": "ea54b1a90259dce4dab7136b6a8d24455d2df8d6",
      "tree": "aa78a6e8007b3406b19a15f46114f621d9e8837f",
      "parents": [
        "abd92fa80b2b901459db0fe1cb150c3effecddc9"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Tue Mar 09 15:04:44 2021 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Tue Mar 09 15:10:38 2021 -0500"
      },
      "message": "Fix erlfdb_database_set_option `else` case\n\nThis was detected with more a recent compiler as an uninitialized variable:\n\n```\nc_src/main.c: In function \u0027erlfdb_database_set_option\u0027:\nc_src/main.c:818:9: error: \u0027option\u0027 may be used uninitialized in this function [-Werror\u003dmaybe-uninitialized]\n```\n"
    },
    {
      "commit": "abd92fa80b2b901459db0fe1cb150c3effecddc9",
      "tree": "0dbcd2d9c2fec042c873784a82cc0bbd49995022",
      "parents": [
        "b22654c82151838e46d47a05535066e594fcce4d"
      ],
      "author": {
        "name": "Dave Cottlehuber",
        "email": "dch@skunkwerks.at",
        "time": "Fri Mar 05 17:11:56 2021 +0000"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Fri Mar 05 12:15:39 2021 -0500"
      },
      "message": "Revert \"look in /usr/local/bin/ before /usr/local/sbin/\"\n\nThis reverts commit 9ebcc0957cdb9d3a32761b5b25cc6777e3266411.\n"
    },
    {
      "commit": "b22654c82151838e46d47a05535066e594fcce4d",
      "tree": "21498b6cf3e60844f83927b14b2640bfe1e60728",
      "parents": [
        "341b08137c9546bebeb8b05c82cdafa8ebbebb38"
      ],
      "author": {
        "name": "Dave Cottlehuber",
        "email": "dch@skunkwerks.at",
        "time": "Fri Mar 05 17:11:53 2021 +0000"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Fri Mar 05 12:15:39 2021 -0500"
      },
      "message": "Revert \"update enc to allow building on OTP23+\"\n\nThis reverts commit 0eeca574cc0f0d93d383897a869afc5844ac65e9.\n"
    },
    {
      "commit": "341b08137c9546bebeb8b05c82cdafa8ebbebb38",
      "tree": "fbd72762c9b60e79dfa1fa3a2b9226a2dd3a27dc",
      "parents": [
        "9ebcc0957cdb9d3a32761b5b25cc6777e3266411"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Thu Mar 04 18:06:16 2021 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Fri Mar 05 11:28:49 2021 -0500"
      },
      "message": "Use client buggify options on the client\n\nPreviously we used plain buggify options which are meant for the server. Switch\nthem to the client versions.\n\nCan check if it works with: ```\nERL_ZFLAGS\u003d\"-erlfdb network_options \u0027[client_buggify_enable, {client_buggify_section_activated_probability, 60}, {client_buggify_section_fired_probability, 60}]\u0027\" make elixir tests\u003dtest/elixir/test/basics_test.exs\n```\n"
    },
    {
      "commit": "9ebcc0957cdb9d3a32761b5b25cc6777e3266411",
      "tree": "ee7ef8c11ae6c8a583690d9419b23e8ee80a243d",
      "parents": [
        "0eeca574cc0f0d93d383897a869afc5844ac65e9"
      ],
      "author": {
        "name": "Dave Cottlehuber",
        "email": "dch@skunkwerks.at",
        "time": "Mon Jan 20 20:13:33 2020 +0000"
      },
      "committer": {
        "name": "Dave Cottlehuber",
        "email": "dch@skunkwerks.at",
        "time": "Fri Mar 05 10:28:37 2021 +0000"
      },
      "message": "look in /usr/local/bin/ before /usr/local/sbin/\n\naccording to [heir(7)](https://man.freebsd.org/cgi/hier) /sbin/ is for\nbinaries fundamental to single-user and multi-user environments, which\nfdb is definitely not.\n"
    },
    {
      "commit": "0eeca574cc0f0d93d383897a869afc5844ac65e9",
      "tree": "c378e189d66d36aafe9a9746c7c80ce4d04790ca",
      "parents": [
        "e652c5606688c9af11023d455eea5a6c46a8a450"
      ],
      "author": {
        "name": "Dave Cottlehuber",
        "email": "dch@skunkwerks.at",
        "time": "Wed Jan 06 10:42:23 2021 +0000"
      },
      "committer": {
        "name": "Dave Cottlehuber",
        "email": "dch@skunkwerks.at",
        "time": "Fri Mar 05 10:26:12 2021 +0000"
      },
      "message": "update enc to allow building on OTP23+\n\nAlso as far back as OTP21. In 2021, the Ericsson OTP team only\nofficially support OTP22 \u0026 OTP23, and in 2022, OTP 24 will replace\nOTP22.\n\nSee  https://github.com/davisp/erlang-native-compiler/pull/2\n"
    },
    {
      "commit": "e652c5606688c9af11023d455eea5a6c46a8a450",
      "tree": "0d21ba7a15e50cce1f4d1b0a89d83863cb2935fa",
      "parents": [
        "c8958c93a8c51a3c62bc931997def083fc61ecc0",
        "c25d52470576fb210d5e3acc98e2cd0da33a397c"
      ],
      "author": {
        "name": "Joan Touzet",
        "email": "wohali@users.noreply.github.com",
        "time": "Wed Mar 03 12:00:14 2021 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 03 12:00:14 2021 -0500"
      },
      "message": "Merge pull request #15 from apache/freebsd\n\nAdd /usr/local/{include|lib} to CFLAGS/LDFLAGS"
    },
    {
      "commit": "c25d52470576fb210d5e3acc98e2cd0da33a397c",
      "tree": "0d21ba7a15e50cce1f4d1b0a89d83863cb2935fa",
      "parents": [
        "c8958c93a8c51a3c62bc931997def083fc61ecc0"
      ],
      "author": {
        "name": "Joan Touzet",
        "email": "joant@atypical.net",
        "time": "Wed Mar 03 03:18:11 2021 -0500"
      },
      "committer": {
        "name": "Joan Touzet",
        "email": "joant@atypical.net",
        "time": "Wed Mar 03 03:18:11 2021 -0500"
      },
      "message": "Add /usr/local/{include|lib} to CFLAGS/LDFLAGS\n"
    },
    {
      "commit": "c8958c93a8c51a3c62bc931997def083fc61ecc0",
      "tree": "1babb439f1222fa7c2b930e95c01c7d45d7c1a0b",
      "parents": [
        "efef20c439daa6c24227e840482f82945e5c2437"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "kocolosk@apache.org",
        "time": "Mon Mar 01 08:23:16 2021 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 01 08:23:16 2021 -0500"
      },
      "message": "Allow fold_range_wait in snapshot mode (#14)\n\nThis is just a convenience function in case the calling code happens\r\nto supply an erlfdb_snapshot structure instead of an erlfdb_transaction.\r\nIt has no actual effect on the semantics since this is merely waiting\r\non the previously-created future."
    },
    {
      "commit": "efef20c439daa6c24227e840482f82945e5c2437",
      "tree": "bfd7d6d4854f6bd4d8ee54111c007c0a5eb02729",
      "parents": [
        "71a996e01fef7f8627c4b0a37e160259d319331c"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Mon Dec 14 15:21:22 2020 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Mon Dec 14 16:04:59 2020 -0600"
      },
      "message": "Avoid sending future ready messages when flushed\n\nThere\u0027s a small race condition in `erlfdb:flush_future_message` if the\n`is_ready` returns true before the future\u0027s callback is invoked to send\nthe ready message. This adds an API to silence the message from a future\nto close this race condition.\n\nFixes apache/couchdb#3294\n"
    },
    {
      "commit": "71a996e01fef7f8627c4b0a37e160259d319331c",
      "tree": "54d715655cda500eeb53305929432fc607e7bf64",
      "parents": [
        "23599af04ea7b5e96c4444426acf692348794308"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Mon Nov 16 15:54:12 2020 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Mon Nov 16 16:00:34 2020 -0500"
      },
      "message": "Idempotent snapshot handle setting\n\nIf a transaction handle is already a snapshot, make setting it a snapshot again\na no-op.\n"
    },
    {
      "commit": "23599af04ea7b5e96c4444426acf692348794308",
      "tree": "2a2fc733b15f2f3b830978882514ecffe28fdd76",
      "parents": [
        "579e066c1402f41c7260631125f117b4dcdabf93",
        "9147f052c1713c5e5288d18555adfc624f20d45d"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Sep 02 15:34:48 2020 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 02 15:34:48 2020 -0500"
      },
      "message": "Merge pull request #10 from apache/report-conflicting-keys\n\nAdd support for reporting conflicting keys"
    },
    {
      "commit": "9147f052c1713c5e5288d18555adfc624f20d45d",
      "tree": "2a2fc733b15f2f3b830978882514ecffe28fdd76",
      "parents": [
        "579e066c1402f41c7260631125f117b4dcdabf93"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Sep 02 13:55:27 2020 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Sep 02 14:05:12 2020 -0500"
      },
      "message": "Add support for reporting conflicting keys\n\nTransactions that fail due to a conflict can be hard to debug. This\nexposes a recent feature that reports keys that were in conflict if a\ntransaction has to be retried due to a conflict.\n"
    },
    {
      "commit": "579e066c1402f41c7260631125f117b4dcdabf93",
      "tree": "3caf4461f51d966fa1e4c5d5b0bc5faaf4a33f6f",
      "parents": [
        "84db41c0d88cb3e6fac8561ee3010177cffdebc0"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Tue Jun 09 13:48:07 2020 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Tue Jun 09 14:00:39 2020 -0400"
      },
      "message": "Do not apply default future timeouts to commit and on_error response\n\n`commit` should timeout based on the default transaction_too_old (1007) error\nor from an explicitly set transaction timeout option (1031).\n\n`on_error` may sleep for some time which is determined by the backoff and retry\ncounts,it is limited and is guaranteed to return back.\n"
    },
    {
      "commit": "84db41c0d88cb3e6fac8561ee3010177cffdebc0",
      "tree": "4a011a63feb8ecdf2ea51557a5840cfcf5f0cb41",
      "parents": [
        "52052a01b1b7d22087fa3da4cdb36a4571ef790c"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Tue May 19 15:13:49 2020 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Tue May 19 15:28:01 2020 -0400"
      },
      "message": "Cancel fold range futures\n\nPreviously we had functions to create and wait on fold range futures, but no way\nto cancel them. This commit add clauses to `cancel/1,2` to do just that.\n\nAlso, once the `?IS_FOLD_FUTURE` macro is defined, use it in a few function\nheads instead of the previously used `{fold_info, _, _}` tuple.\n"
    },
    {
      "commit": "52052a01b1b7d22087fa3da4cdb36a4571ef790c",
      "tree": "1f1f1809808cc03afc938b52a92a3fc8eadc3e03",
      "parents": [
        "d4663cf269cdf30fdedb85d381815af1cd28a011",
        "fb36e0c4c14a8118b613137e7c48a2fdad6fb2da"
      ],
      "author": {
        "name": "iilyak",
        "email": "iilyak@users.noreply.github.com",
        "time": "Thu May 07 02:36:35 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 07 02:36:35 2020 -0700"
      },
      "message": "Merge pull request #6 from apache/fix-monitor-path-detection\n\ncode:priv_dir/1 expects application name"
    },
    {
      "commit": "fb36e0c4c14a8118b613137e7c48a2fdad6fb2da",
      "tree": "1f1f1809808cc03afc938b52a92a3fc8eadc3e03",
      "parents": [
        "d4663cf269cdf30fdedb85d381815af1cd28a011"
      ],
      "author": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Thu May 07 01:02:20 2020 -0700"
      },
      "committer": {
        "name": "ILYA Khlopotov",
        "email": "iilyak@apache.org",
        "time": "Thu May 07 01:02:20 2020 -0700"
      },
      "message": "code:priv_dir/1 expects application name\n"
    },
    {
      "commit": "d4663cf269cdf30fdedb85d381815af1cd28a011",
      "tree": "8704f9f00bce4b537d58ab1d9099f257dc693750",
      "parents": [
        "1de3e2e8e876f60c466207817e20cecf52af5aaf"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Thu Apr 23 00:57:05 2020 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Thu Apr 23 12:52:58 2020 -0400"
      },
      "message": "Avoid the system key range in the eunit test random key generator.\n\nPreviously the generator could sometimes return values in the system\nrange and tests would fail with the unexpected 2004 error.\n"
    },
    {
      "commit": "1de3e2e8e876f60c466207817e20cecf52af5aaf",
      "tree": "a4d49cc5b898eb9427271ada81f20621957eeaee",
      "parents": [
        "d5acd7ea63f61c4553f09d5160a06035866bce72"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Thu Apr 23 00:48:48 2020 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Thu Apr 23 12:52:58 2020 -0400"
      },
      "message": "Allow setting some default transaction options on the db handle\n\nSince FDB version 6.1 [1] it is possible to set default transaction\noptions on database handles, and any transactions created from that\nhandle will inherit those options.\n\n[1] https://apple.github.io/foundationdb/old-release-notes/release-notes-610.html\n"
    },
    {
      "commit": "d5acd7ea63f61c4553f09d5160a06035866bce72",
      "tree": "c2439aad82c845d6252de9c5064724bc6db1a52a",
      "parents": [
        "01f79dbb3938ceac4638752953b84a396d78c0ce"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Wed Apr 22 14:54:10 2020 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Wed Apr 22 14:59:15 2020 -0400"
      },
      "message": "Add .asf.yaml file for commits and notifications\n\nInstructions from [Apache Infra](https://cwiki.apache.org/confluence/display/INFRA/.asf.yaml+features+for+git+repositories#id-.asf.yamlfeaturesforgitrepositories-Notificationsettingsforrepositories)\n"
    },
    {
      "commit": "01f79dbb3938ceac4638752953b84a396d78c0ce",
      "tree": "75a1e04723656f3ecc1753839aa6a7172b034410",
      "parents": [
        "b0856d711fd11efd6a0a6b7831ce1a626f933611"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Wed Apr 22 12:25:31 2020 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Wed Apr 22 13:16:57 2020 -0400"
      },
      "message": "Do not commit read-only transactions\n\nThis might save a round-trip to the network thread [1]. It also follows the\nrecommendation in the C api docs [2].\n\n[1] https://forums.foundationdb.org/t/performance-of-read-only-transactions/1998\n[2] https://apple.github.io/foundationdb/api-c.html#c.fdb_transaction_commit\n\nHowever, it turns out in order for the watches to fire the read-only\ntransaction still has to commit, so avoid this optimization if has_watches(Tx)\nis true.\n"
    },
    {
      "commit": "b0856d711fd11efd6a0a6b7831ce1a626f933611",
      "tree": "b19da56455476436014940f8ac6afd34a073bbe8",
      "parents": [
        "523a73875825a80f49aec04e69ad0f0f6a3fad41"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Wed Apr 22 12:24:42 2020 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Wed Apr 22 13:16:57 2020 -0400"
      },
      "message": "Implement has_watches(Tx) transaction flag\n\nReturns true if transaction has created any watches. If writes are disallowed,\nwatches are also cannot be created.\n"
    },
    {
      "commit": "523a73875825a80f49aec04e69ad0f0f6a3fad41",
      "tree": "b6be5f60c79d65fc1ea3b93c7623e70a241398ff",
      "parents": [
        "5396535067c99b45b22cf915d3b67961c2a68aad",
        "15b597460d922a0e9df463bd3f2990cf6abdacb0"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Sat Apr 18 16:49:13 2020 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Apr 18 16:49:13 2020 -0400"
      },
      "message": "Merge pull request #1 from apache/dont-create-new-tx-object-on-retries\n\nDo not create a new transaction object during retries"
    },
    {
      "commit": "15b597460d922a0e9df463bd3f2990cf6abdacb0",
      "tree": "b6be5f60c79d65fc1ea3b93c7623e70a241398ff",
      "parents": [
        "5396535067c99b45b22cf915d3b67961c2a68aad"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Sat Apr 18 15:16:23 2020 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Sat Apr 18 15:16:23 2020 -0400"
      },
      "message": "Do not create a new transaction object during retries\n\n`on_error` function automatically resets the transaction object but\npreserves retry and backoff-related information in the object. Avoid\ncreating a new transaction object which would lose that context in\ncase transactions retry more than 2 times.\n\nReference:\nhttps://apple.github.io/foundationdb/api-c.html#c.fdb_transaction_on_error\n"
    },
    {
      "commit": "5396535067c99b45b22cf915d3b67961c2a68aad",
      "tree": "6542b48d1eb9a38710e6ad27d71abb6640af25af",
      "parents": [
        "6f59a39f4fd52a05c470545913c2a81fdd80f6d1",
        "1e622748cce436fca993f696e59f624d5e59d484"
      ],
      "author": {
        "name": "Kyle Snavely",
        "email": "kjsnavely@gmail.com",
        "time": "Fri Mar 27 12:47:01 2020 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 27 12:47:01 2020 -0400"
      },
      "message": "Merge pull request #17 from cloudant-labs/encode-lists-like-binaries\n\nerlfdb_tuple:encode/2 should handle lists through binary conversion"
    },
    {
      "commit": "1e622748cce436fca993f696e59f624d5e59d484",
      "tree": "6542b48d1eb9a38710e6ad27d71abb6640af25af",
      "parents": [
        "6f59a39f4fd52a05c470545913c2a81fdd80f6d1"
      ],
      "author": {
        "name": "Kyle Snavely",
        "email": "kjsnavely@gmail.com",
        "time": "Wed Mar 25 20:48:37 2020 -0600"
      },
      "committer": {
        "name": "Kyle Snavely",
        "email": "kjsnavely@gmail.com",
        "time": "Fri Mar 27 10:00:45 2020 -0600"
      },
      "message": "erlfdb_tuple:encode/2 should provide a clear error message when provided\nwith a bad term to encode\n"
    },
    {
      "commit": "6f59a39f4fd52a05c470545913c2a81fdd80f6d1",
      "tree": "7352b6c060c1d9575b85cb666e6b62544e3d4f6f",
      "parents": [
        "c89b2d6e2294efd19696d391c43861ecc1fae323"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Fri Jan 24 23:03:28 2020 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Sat Jan 25 15:11:55 2020 -0500"
      },
      "message": "Add transaction option to disallow writes\n\nAdd `disallow_writes | allow_writes` transaction options.\n\nIf the transaction hasn\u0027t done any writes yet, it is possible to set the\n`disallow_writes` option, and then every write attempt will throw a\n`writes_not_allowed` error.\n"
    },
    {
      "commit": "c89b2d6e2294efd19696d391c43861ecc1fae323",
      "tree": "65b3df7108841ba605cba5983e8d24031d9ff280",
      "parents": [
        "85a8253ce8ad7a22df80cd5e03d5339c24707368"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Mon Jan 06 15:56:29 2020 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Tue Jan 07 10:15:36 2020 -0500"
      },
      "message": "Bump API level to 620\n\nThis comes with a few changes:\n\n * `fdb_future_get_version` was renamed to `fdb_future_get_int64`\n * a new API: `fdb_transaction_get_approximate_size`\n * `size_limit` transaction option\n\nReference: https://apple.github.io/foundationdb/release-notes.html#bindings\n"
    },
    {
      "commit": "85a8253ce8ad7a22df80cd5e03d5339c24707368",
      "tree": "b7080631be6f9fd94bb9ad9bb40a8787b9825bb8",
      "parents": [
        "f310eaa229a680627f5192651d82ceb3d9dcd80e",
        "be840942bcb60b2843e6c846488436df75f2a560"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Mon Nov 25 12:05:41 2019 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 25 12:05:41 2019 -0500"
      },
      "message": "Merge pull request #9 from cloudant-labs/add-get-error-string\n\nExpose error string description function in the API"
    },
    {
      "commit": "be840942bcb60b2843e6c846488436df75f2a560",
      "tree": "b7080631be6f9fd94bb9ad9bb40a8787b9825bb8",
      "parents": [
        "f310eaa229a680627f5192651d82ceb3d9dcd80e"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Mon Nov 25 12:00:34 2019 -0500"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Mon Nov 25 12:00:34 2019 -0500"
      },
      "message": "Expose error string description function in the API\n"
    },
    {
      "commit": "f310eaa229a680627f5192651d82ceb3d9dcd80e",
      "tree": "16c6cb70473e082827c4d3dd7d83b3085d52738c",
      "parents": [
        "7718a3d7e1994e1384c56d39fae5cad3d8c6c4b3"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Oct 29 16:40:36 2019 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Oct 29 16:46:03 2019 -0500"
      },
      "message": "Add instructions on running the fdb bindingtester\n"
    },
    {
      "commit": "7718a3d7e1994e1384c56d39fae5cad3d8c6c4b3",
      "tree": "6834369c1af31bbb05147470773feec2a189955d",
      "parents": [
        "672924a2d307ad857320b44d99769f6d301a6b38",
        "c7638a8afa4d36be7cbb683193a3512189a1081b"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Tue Oct 29 17:33:37 2019 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 29 17:33:37 2019 -0400"
      },
      "message": "Merge pull request #6 from cloudant-labs/update-api-level-to-610\n\nSwitch API level to 610"
    },
    {
      "commit": "c7638a8afa4d36be7cbb683193a3512189a1081b",
      "tree": "6834369c1af31bbb05147470773feec2a189955d",
      "parents": [
        "672924a2d307ad857320b44d99769f6d301a6b38"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Mon Oct 28 19:03:37 2019 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Tue Oct 29 17:25:04 2019 -0400"
      },
      "message": "Switch API level to 610\n\nThere were some changes that had to be accounted for:\n\n * Cluster is gone, so cluster futures, resources, etc were removed\n\n * Create database returns a database object not future, so database future\n   type is removed.\n\n * It\u0027s possible to use json tracing format on the client, so added that\n   netowrk option.\n"
    },
    {
      "commit": "672924a2d307ad857320b44d99769f6d301a6b38",
      "tree": "1c94247157f7e98d918cc8d84b711c1a252f3fe0",
      "parents": [
        "2657e61367dd759e65f82bcbeb334fb292d28a81"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Oct 29 16:14:04 2019 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Oct 29 16:21:15 2019 -0500"
      },
      "message": "Add a debug utility function\n"
    },
    {
      "commit": "2657e61367dd759e65f82bcbeb334fb292d28a81",
      "tree": "d7295ab78692b37003ca319017ff683a4d71787a",
      "parents": [
        "055be31930a0796b2a49f3e6389db66d33c6844f"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Oct 29 16:12:47 2019 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Oct 29 16:21:15 2019 -0500"
      },
      "message": "Ensure intialization of offset\n\nIf we don\u0027t initialize offset here its possible that a key selector\ncould apply the provided offset to an uninitialized value passed in from\nthe calling function.\n"
    },
    {
      "commit": "055be31930a0796b2a49f3e6389db66d33c6844f",
      "tree": "e522362b087f30053a324bdd2a324ee7d8d13ada",
      "parents": [
        "d03c5d2a5f6c873bf6e1f04d3b8090d4694197c3"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Sep 25 10:44:20 2019 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Sep 25 10:44:20 2019 -0500"
      },
      "message": "Adding a better README\n"
    },
    {
      "commit": "d03c5d2a5f6c873bf6e1f04d3b8090d4694197c3",
      "tree": "167223dcadba1ec518ae593573661b0a5daeffc0",
      "parents": [
        "bef1c1f4c5a138a51862a917489e7a7532a1b93e"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Aug 06 11:47:40 2019 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Aug 06 11:47:40 2019 -0500"
      },
      "message": "Replace get_range_raw with fold_range_future/wait\n\nThis has been bugging me for awhile in that we\u0027re not properly handling\nthe return value from the range future. The `more` return value in\nparticular was ignored.\n\nRather than force people to have to repeatedly reimplement this I\u0027ve\nchanged `get_range_raw` with a pair of functions `fold_range_future` and\n`fold_range_wait`. This allows us the benefit of the async approach\nwhile also ensuring we\u0027re not dealing with partial ranges being returned\nto users.\n"
    },
    {
      "commit": "bef1c1f4c5a138a51862a917489e7a7532a1b93e",
      "tree": "9bd935a4d5ebcb43402a92b76cd0cd3feaae0113",
      "parents": [
        "ec0b9d1e5fde2c054a7b4c28e6cd688dc420b6f4",
        "11df0ac4c2e1024f3e71e124dd90da49e7a126a9"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "nickva@users.noreply.github.com",
        "time": "Mon Jul 01 13:17:05 2019 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 01 13:17:05 2019 -0400"
      },
      "message": "Merge pull request #5 from cloudant-labs/improve-message-flushing\n\nImprove message flushing"
    },
    {
      "commit": "11df0ac4c2e1024f3e71e124dd90da49e7a126a9",
      "tree": "9bd935a4d5ebcb43402a92b76cd0cd3feaae0113",
      "parents": [
        "11e5c7402694abfe7fa41f4341ff717a57ebb775"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Thu Jun 20 17:50:50 2019 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Mon Jul 01 12:08:18 2019 -0400"
      },
      "message": "Improve message flushing when waiting for a future\n\nRe-use the same function as cancel/2. Also, flush after getting the result to\ndecreases the change of the message being missed.\n"
    },
    {
      "commit": "11e5c7402694abfe7fa41f4341ff717a57ebb775",
      "tree": "8132c0ddc7100f5651a9c9d7b1935e458601edfe",
      "parents": [
        "ec0b9d1e5fde2c054a7b4c28e6cd688dc420b6f4"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Thu Jun 20 17:43:46 2019 -0400"
      },
      "committer": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Thu Jun 20 17:43:46 2019 -0400"
      },
      "message": "Add cancel/2 function, which takes an options argument\n\nWhen futures are canceled, they may have a `ready` message already in the\nmailbox. There is now a way to flush that message with the `[flush]` option.\nThat is currently the only option.\n"
    },
    {
      "commit": "ec0b9d1e5fde2c054a7b4c28e6cd688dc420b6f4",
      "tree": "9dc9ba45351c2766eb5e9d3755c71da1cd153b77",
      "parents": [
        "2be6ad1c3b880c2e5724a10e81ffbcddf544dbfe"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Jun 20 15:59:34 2019 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Jun 20 16:00:13 2019 -0500"
      },
      "message": "Remember to free the msg_env on future destruction\n"
    },
    {
      "commit": "2be6ad1c3b880c2e5724a10e81ffbcddf544dbfe",
      "tree": "66e94a1ee027a077370df1bbd986a9c0730deba2",
      "parents": [
        "57d4624c7ed43f313a6d2a0eb1fc2bf7241fa44a"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Jun 20 10:16:11 2019 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Jun 20 16:00:13 2019 -0500"
      },
      "message": "Mark futures as cancelled\n\nThis allows callers to cancel futures without having to worry about\nreceiving a `ready` message if the future completes before the\ncancellation is applied.\n\nIts possible that a message for this already in the callers message\nqueue. In which case you can call `cancel(Future, [flush])` to remove\nthat message.\n"
    },
    {
      "commit": "57d4624c7ed43f313a6d2a0eb1fc2bf7241fa44a",
      "tree": "30b93686dccb0a1bff307e122f56a8312bb35420",
      "parents": [
        "d3c9df9923ed929eb328fced517ce2518e7129d0"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Jun 20 09:45:40 2019 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Jun 20 16:00:13 2019 -0500"
      },
      "message": "Fix reference counting of ErlFDBFuture resources\n\nI forgot to account for the fact that we need to keep a reference to the\nErlFDBFuture resources while they are being processed by the network\nthread. This change accounts for that fact.\n"
    },
    {
      "commit": "d3c9df9923ed929eb328fced517ce2518e7129d0",
      "tree": "b8426dd25b8a2743fbc14b8454f0c08cca2f788d",
      "parents": [
        "4a2c683147d47c0eac9b1e5507e7e5e6da2a21ca"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Jun 14 14:16:33 2019 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Jun 14 14:18:26 2019 -0500"
      },
      "message": "Make erlfdb_get_key_selector more user friendly\n\nPreviously it was not possible to combine the `lt`/`lteq`/`gt`/`gteq`\nbehaviors with an offset without duplicating all of the logic in\n`erlfdb_get_key_selector`. This changes that so a skip can be applied\nonto any of those atom based selectors.\n"
    },
    {
      "commit": "4a2c683147d47c0eac9b1e5507e7e5e6da2a21ca",
      "tree": "fb6cb3db69ebc5eaf488613a93e09079a51eb61a",
      "parents": [
        "4f331fc252d37697661615a03c3cd4b8d562ec51"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu May 02 12:36:14 2019 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu May 02 12:39:11 2019 -0500"
      },
      "message": "Add get_next_tx_id API\n\nThis API provides a transaction ID that can be used in the 12 byte\nversion stamps to distinguish between version stamps created in a single\ntransaction. There\u0027s a limit of 65,535 transaction ids afterwhich this\nfunction starts throwing badarg exceptions.\n"
    },
    {
      "commit": "4f331fc252d37697661615a03c3cd4b8d562ec51",
      "tree": "c7bdfe4503b104864240b88fc0261913235d3ae4",
      "parents": [
        "254de514f558af188db8038ed7ab9e44a7764137"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu May 02 12:21:17 2019 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu May 02 12:21:17 2019 -0500"
      },
      "message": "Expose get_raw_range\n\nThis allows clients to access the raw futures for range requests.\nClients of this API are then required to manager their own iteration\nstate and continuation logic.\n"
    },
    {
      "commit": "254de514f558af188db8038ed7ab9e44a7764137",
      "tree": "6e1ec589f2ccd2a87557599760d26456dfd5ebce",
      "parents": [
        "e30b38194a3aeca12f161d1bc37a0852f92eb46a"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Apr 26 13:30:50 2019 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Apr 26 13:30:50 2019 -0500"
      },
      "message": "Fix get_last_error/1\n\nMake sure to use the correct `get/1` function.\n"
    },
    {
      "commit": "e30b38194a3aeca12f161d1bc37a0852f92eb46a",
      "tree": "dec45da35e0bc77ef1213c4762486dfc65244d56",
      "parents": [
        "75102b7c4db98a2b14a66432dfda28f9bcb3964b"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Apr 26 12:55:46 2019 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Apr 26 13:11:28 2019 -0500"
      },
      "message": "Add utilities for creating test clusters\n\nThese utilities allow us to setup a test cluster for use during unit\ntests. By default this will setup a cluster once per VM and also re-use\nstate from old test runs if it exists. Tests should ensure an empty\ncluster when necessary by specifying the `empty` option when calling\n`erlfdb_util:get_test_db/1`.\n"
    },
    {
      "commit": "75102b7c4db98a2b14a66432dfda28f9bcb3964b",
      "tree": "c1194343bccb56b348604e5ab36fd87dc04223b5",
      "parents": [
        "fb90398664fbafca377c3ece3e9a0e79a97e0a81"
      ],
      "author": {
        "name": "Nick Vatamaniuc",
        "email": "vatamane@apache.org",
        "time": "Mon Apr 22 16:22:44 2019 -0400"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Mon Apr 22 16:13:52 2019 -0500"
      },
      "message": "Flush `ready` message if already sent\n"
    },
    {
      "commit": "fb90398664fbafca377c3ece3e9a0e79a97e0a81",
      "tree": "2142d7b5b12c04e223faffd0b4df5133aac2ccbe",
      "parents": [
        "e0f4b4370141906b19db60e89bcb3ea43aa95acf"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Apr 19 11:01:39 2019 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Apr 19 11:01:39 2019 -0500"
      },
      "message": "Release future resources properly\n\nThis prevented all future objects from being properly garbage collected.\n"
    },
    {
      "commit": "e0f4b4370141906b19db60e89bcb3ea43aa95acf",
      "tree": "a85ca75068d8086a66487034553c6716761504ef",
      "parents": [
        "8646478771d300d5e6592b78d8412e3e6f8bf16d"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Apr 18 09:21:56 2019 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Apr 18 09:21:56 2019 -0500"
      },
      "message": "Add an API for getting the previous error\n"
    },
    {
      "commit": "8646478771d300d5e6592b78d8412e3e6f8bf16d",
      "tree": "55a5ee09928f0a210968ad9aa87420ede974eb9c",
      "parents": [
        "12d2a4e2f3521f692e2ed71a414ac3795b5f9ad4"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Apr 16 15:51:47 2019 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Apr 16 15:51:47 2019 -0500"
      },
      "message": "Expose is_read_only/1 API\n"
    },
    {
      "commit": "12d2a4e2f3521f692e2ed71a414ac3795b5f9ad4",
      "tree": "b6714c00ac041cb59df11e1b4817c5966014fc01",
      "parents": [
        "7663d953d0316d29c2a1cb6be15c81bc737f4cad"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Apr 12 13:15:27 2019 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Apr 12 13:15:27 2019 -0500"
      },
      "message": "Store the error code for clients\n\nClients of the transactional API may need to refer to which error\noccurred in order to react appropriately on transaction retries.\n"
    },
    {
      "commit": "7663d953d0316d29c2a1cb6be15c81bc737f4cad",
      "tree": "39b72b7c5f308078ac865848a30127fca911cb61",
      "parents": [
        "74de9abf1a8b938d3b1d3c0a6df6bb043aff78c5"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Apr 12 12:53:08 2019 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Apr 12 12:53:23 2019 -0500"
      },
      "message": "Add tracking of read only transactions\n"
    },
    {
      "commit": "74de9abf1a8b938d3b1d3c0a6df6bb043aff78c5",
      "tree": "52a2eac49f265d86aeb7ef3ae2da724327d53b94",
      "parents": [
        "d683698bb76e5703cf4f9bd65fe7ebc3d543b060"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Mar 26 17:08:43 2019 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Mar 26 17:08:43 2019 -0500"
      },
      "message": "Only unpack the tail after the provided prefix\n"
    },
    {
      "commit": "d683698bb76e5703cf4f9bd65fe7ebc3d543b060",
      "tree": "87c9450173cf8c8734f6465de22aa874fd50eb8d",
      "parents": [
        "bfbeb487b2aec8d9535e410b2b4093ec2b552dc7"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Mar 26 17:08:06 2019 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Mar 26 17:08:06 2019 -0500"
      },
      "message": "Export unpack/2\n"
    },
    {
      "commit": "bfbeb487b2aec8d9535e410b2b4093ec2b552dc7",
      "tree": "c413972acc475132b44bf87680f2ee7daec8bd56",
      "parents": [
        "ec08b1c273b7183160dcbae8d9c56081f8a6de5d"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Mar 26 15:33:06 2019 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Mar 26 15:34:27 2019 -0500"
      },
      "message": "Allow specifying a prefix for unpack and range\n\nThis pretty much removes any usefulness from `erlfdb_subspace` since\nErlang doesn\u0027t support operator overrides or other similar syntactic\nsugar that makes subspaces useful in other languages.\n"
    },
    {
      "commit": "ec08b1c273b7183160dcbae8d9c56081f8a6de5d",
      "tree": "77f45c7deddbde0bc6a5d8da88b707735ef4dcc0",
      "parents": [
        "cc6cf828384ec01f31fe0fa003c280e8562ccaba"
      ],
      "author": {
        "name": "Kyle Snavely",
        "email": "kjsnavely@gmail.com",
        "time": "Fri Mar 22 11:02:07 2019 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 22 11:02:07 2019 -0400"
      },
      "message": "Update directory-layer-design.md\n\nJust small typos I observed on reviewing the notes."
    },
    {
      "commit": "cc6cf828384ec01f31fe0fa003c280e8562ccaba",
      "tree": "cf244f6220e2258b8743fd4da950ca70b85f5740",
      "parents": [
        "f7663ce5d2937713a0a5a37d036379a37a65fef9"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Mon Feb 25 10:52:49 2019 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Mon Feb 25 10:52:49 2019 -0600"
      },
      "message": "Match Python catching all exceptions\n"
    },
    {
      "commit": "f7663ce5d2937713a0a5a37d036379a37a65fef9",
      "tree": "9e59fd68585e95a50899a76125e6167d3d922912",
      "parents": [
        "190df4ae831d14235cb45a3a9ace8256086dd756"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Feb 22 11:19:36 2019 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Feb 22 11:19:36 2019 -0600"
      },
      "message": "Implement the DirectoryLayer\n\nThis implements a DirectoryLayer intends to behave identically to the\nPython version. Soak tests have so far run as long as an hour without\nfinding issues. However I plan on trying to get that number to upwards\nof 24 hours or more.\n"
    },
    {
      "commit": "190df4ae831d14235cb45a3a9ace8256086dd756",
      "tree": "1a4f927f7ac713d7a4beba0004ec09de6dd37cfe",
      "parents": [
        "43f970cc797c1507544ee4ae441e7e56a5e32eb1"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Feb 22 11:13:52 2019 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Feb 22 11:13:52 2019 -0600"
      },
      "message": "Fix wait_for_empty calls in concurrent testing\n"
    }
  ],
  "next": "43f970cc797c1507544ee4ae441e7e56a5e32eb1"
}
