)]}'
{
  "log": [
    {
      "commit": "523f48803609b35350b624244fa73b1030c1d5fa",
      "tree": "17f99ab223f42eec58523fa89a49f243efba754b",
      "parents": [
        "307730acd9d271bc4c3d44f2dfed0eab67e1657d"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Oct 13 11:03:03 2015 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Nov 27 15:36:04 2015 +1100"
      },
      "message": "Namespace XTRACE commands\n\nI noticed this when debugging some grenade issues failures.\n\nAn include of grenade/functions stores the current value of XTRACE\n(on) and disables xtrace for the rest of the import.\n\nWe then include devstack\u0027s \"functions\" library, which now overwrites\nthe stored value of XTRACE the current state; i.e. disabled.\n\nWhen it finishes it restores the prior state (disabled), and then\ngrenade restores the same value of XTRACE (disabled).\n\nThe result is that xtrace is incorrectly disabled until the next time\nit just happens to be turned on.\n\nThe solution is to name-space the store of the current-value of xtrace\nso when we finish sourcing a file, we always restore the tracing value\nto what it was when we entered.\n\nSome files had already discovered this.  In general there is\ninconsistency around the setting of the variable, and a lot of obvious\ncopy-paste.  This brings consistency across all files by using\n_XTRACE_* prefixes for the sotre/restore of tracing values.\n\nChange-Id: Iba7739eada5711d9c269cb4127fa712e9f961695\n"
    },
    {
      "commit": "ada886dd43ccc07f48d3a82d8d3d840fe5096c03",
      "tree": "93d62f1c82edc08d813b7f9f7eb9270e7024e055",
      "parents": [
        "433a9b10ddd6fa67d7459c4943a92ce4f488cebc"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Oct 07 14:06:26 2015 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Oct 07 17:03:32 2015 +1100"
      },
      "message": "Don\u0027t mix declaration and set of locals\n\nIa0957b47187c3dcadd46154b17022c4213781112 proposes to have bashate\nfind instances of setting a local value.  The issue is that \"local\"\nalways returns 0, thus hiding any failure in the commands running to\nset the variable.\n\nThis is an automated replacement of such instances\n\nDepends-On: I676c805e8f0401f75cc5367eee83b3d880cdef81\nChange-Id: I9c8912a8fd596535589b207d7fc553b9d951d3fe\n"
    },
    {
      "commit": "e263c82e48a431e502bd6baceb6dfcfdc1750cbb",
      "tree": "5ca592e668dedb4debc6c7170f3abf37cc4bc0c6",
      "parents": [
        "2f8e08b5728f4272b415b1c0aab8ff62eae29b06"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri Dec 05 14:25:28 2014 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Dec 10 11:28:05 2014 -0500"
      },
      "message": "add shebang lines to all lib files\n\nWith gerrit 2.8, and the new change screen, this will trigger syntax\nhighlighting in gerrit. Thus making reviewing code a lot nicer.\n\nChange-Id: Id238748417ffab53e02d59413dba66f61e724383\n"
    },
    {
      "commit": "0fc1cc29ac5d9aa88e47611de72f3a98f14bf242",
      "tree": "e9029982bf4c45ac62e3d355b9dded459d15e357",
      "parents": [
        "df2cc34db60454e33aa2974509faa24b6d7093d4"
      ],
      "author": {
        "name": "Henry Gessau",
        "email": "gessau@cisco.com",
        "time": "Sun Jul 06 22:54:34 2014 -0400"
      },
      "committer": {
        "name": "Henry Gessau",
        "email": "gessau@cisco.com",
        "time": "Tue Jul 15 21:29:29 2014 -0400"
      },
      "message": "Use one name for neutron database after healing\n\nNow that the Neutron database is healed we no longer need a\nplugin-specific name for it.\n\nRelated Blueprint: db-migration-refactor\n\nChange-Id: If25e77444f115817e5570bb447bde5b9c8d6e686\n"
    },
    {
      "commit": "e3a9160c0d6c7802141fb147339ab12f76482c85",
      "tree": "87c1c831cf248211a583676bff47d612283d917a",
      "parents": [
        "4c0e728780d49bfca80b147676ad1b96d16e24e4"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Mar 28 12:40:56 2014 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Mar 28 12:40:59 2014 -0500"
      },
      "message": "Fix Neutron plugin XTRACE handling\n\nThe various Neutron plugin files need to have unique variables for the\nxtrace state as they are sometimes nested more than two levels deep\nand MY_XTRACE is getting stomped.  This gives each of the neutron_plugin\nand neutron_thirdparty include files a unique XTRACE state variable.\n\nI don\u0027t think this is a problem with any of the other plugin include\nfiles (yet) so this just handles Neutron for now.\n\nChange-Id: I7c272a48e7974edecaff5f431ff7443dd6622588\n"
    },
    {
      "commit": "aee18c749b0e3a1a3a6907a33db76ae83b8d41d9",
      "tree": "01a8ab5abb9867986f3e848918abd9e749b691cd",
      "parents": [
        "0ed4af02da0bd4a0f757dd8c2156913e6c7a724c"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Feb 21 15:35:08 2014 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Feb 28 07:59:03 2014 +1100"
      },
      "message": "Enforce function declaration format in bash8\n\nCheck that function calls look like ^function foo {$ in bash8, and fix\nall existing failures of that check.  Add a note to HACKING.rst\n\nChange-Id: Ic19eecb39e0b20273d1bcd551a42fe400d54e938\n"
    },
    {
      "commit": "b8e250232ec55b946d2fd7e4237f12632408bdcc",
      "tree": "0f5001c7caeb6c2f4fddb552c8b4aa84a85d69aa",
      "parents": [
        "b17fecf7d8c1a0c562ac7d8fc3a8d642f6392ac6"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Feb 21 16:14:29 2014 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Feb 26 09:31:15 2014 +1100"
      },
      "message": "Add end-of-file checks to bash8\n\nAdd two end-of-file checks to bash8.  Firstly, alert if heredoc hasn\u0027t\nfinished.  Some heredocs were done like:\n\n---\nsudo bash -c \"cat \u003c\u003cEOF \u003e foo\n...\nEOF\"\n---\n\n(A better way to do this is \"cat \u003c\u003cEOF | sudo tee ...\" as it retains\nthe usual heredoc layout in the code).\n\nThe trailing quote was throwing the matching in bash8 off and it kept\nappending the next file as if it was still part of the heredoc.  To\navoid this, we check if we\u0027re still in a heredoc when we start a new\nfile; if so raise an error and reset the heredoc status fresh.  We\ntrack the state of the previous file, line and lineno so we can give a\ngood error.\n\n---\nE012: heredoc did not end before EOF: \u0027cat \u003c\u003cEOF\u0027\n - lib/trove: L221\n---\n\nThis includes fixes for the existing problem heredocs.\n\nA similar EOF check is to ensure the previous file ended with a\nnewline.\n\n---\nE004: file did not end with a newline: \u0027$MY_XTRACE\u0027\n - lib/neutron_plugins/embrane: L40\n---\n\nThis requires only one fix\n\nChange-Id: I5e547d87b3921fc7ce6588c28f074e5c9f489c1f\n"
    },
    {
      "commit": "a03607d03f18fbe842bb61a509a868e1447fc379",
      "tree": "795265bf05e2b39334e7e31bcbcfb7230c07a5c8",
      "parents": [
        "78ab80e5589a7df21a03f06f38c4bae3e79bf756"
      ],
      "author": {
        "name": "Ivar Lazzaro",
        "email": "ivar@embrane.com",
        "time": "Mon Feb 03 06:28:14 2014 -0800"
      },
      "committer": {
        "name": "Ivar Lazzaro",
        "email": "ivar@embrane.com",
        "time": "Mon Feb 03 06:42:02 2014 -0800"
      },
      "message": "Embrane Plugin Support\n\nImplements blueprint embrane-plugin-support\n\nThis commit implements Embrane\u0027s Neutron plugin installation support\nin Devstack.\nThis is an extension of the openvswitch installation module, which is\nused by the main plugin, and enables configuration by localrc\n\nChange-Id: Ia4824f8d2300bcdce170d226145bbce6088f1557\n"
    }
  ]
}
