)]}'
{
  "log": [
    {
      "commit": "4143ce6fc95ccd9bde88c22baaa3eeaba58183f8",
      "tree": "75b020f9f71fea5cc48f8b765c5a10a0ffb0a978",
      "parents": [
        "7634c780027ad05e416c2a0c5ac688751aba4be6"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Jan 13 16:05:11 2020 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Jan 13 16:05:11 2020 +1100"
      },
      "message": "Create virtualenv with abstracted VIRTUALENV_CMD\n\nJust calling \"virtualenv\" makes a Python 2 based environment;\nsetuptools just dropped Python 2 support (as Python 2 reached EOL in\nJan 2020) so this has now become a breakage.\n\nAlthough the Python 2 path won\u0027t work, use the abstracted command.\nThis should stop us having to revisit this for any future cleanups (or\nswiting to venv, etc).\n\nChange-Id: I531e971b78491a9276753c0d86b04c4adbd224aa\n"
    },
    {
      "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": "2105b9f9ce325394d205d9c5f7a7427141bc4ebd",
      "tree": "1157a5989d5f2a2a7cd25610abd268d6fc617197",
      "parents": [
        "f560df36ccb3c1ad962fd1b6b17c284d32c582cb"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu Sep 10 14:01:40 2015 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri Sep 11 06:59:29 2015 -0400"
      },
      "message": "move back to editable install for oslo\n\nNow that we don\u0027t have namespace packages any more, editable installs\nshould be fine. This also means that we apply constraints to these\nlibraries during installation, which is important for future testing.\n\nThis is needed in order to be able to easily sanity check\nLIBS_FROM_GIT, as then all libs installed from git will have pip urls\nwith git in them.\n\nChange-Id: I46c3b8f943b97f912eccc7278e3e033ae67e7e31\n"
    },
    {
      "commit": "05aa3846a0402edc9cc49f4ba36f09592004b273",
      "tree": "2ec4bb8ed899b1a9a89736d79b057a0bad9cb2e4",
      "parents": [
        "57aafb5a9ad20e19e2c248a8e853a32d5b719c03"
      ],
      "author": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Mon Aug 03 11:14:13 2015 -0700"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Aug 18 09:39:04 2015 -0700"
      },
      "message": "Just use constraints everywhere\n\nHaving behavior on your laptop diverge from behavior in the gate is\nconfusing. Just use constraints on every devstack run to be consistent.\nUsers of devstack can edit the requirements repo in order to change\nthese constraints locally if necessary.\n\nChange-Id: I843208e2e982eb04931b76f5cb4bd219fbcd70de\n"
    },
    {
      "commit": "57aafb5a9ad20e19e2c248a8e853a32d5b719c03",
      "tree": "cef31919390b69793bdb133ba40e2e28a163eeec",
      "parents": [
        "af68087be3be8cd3069001deb830837b5fe10bf9"
      ],
      "author": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Fri Jul 31 12:22:44 2015 -0700"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Mon Aug 03 10:42:48 2015 -0700"
      },
      "message": "Clone reqs repo prior to using pip constraints\n\nWe pull the pip constraints from the requirements repo so need to clone\nthat repo prior to using the constraints. In fixup_stuff.sh devstack\nattempts to install packages like prettytable using the constraints. It\nis also possible to need constraints before fixup_stuff.sh if tracking\ndepends. To deal with this clone requirements repo before any possible\nuse of constraints in pip_install.\n\nChange-Id: I42e981c8c5ce1b8a57b9f6cce213065c72d6af11\n"
    },
    {
      "commit": "7ebe8e0751dab545091e0b114589087009cc4e22",
      "tree": "af81974226020f1fb3977a0be1b046eb27922bc4",
      "parents": [
        "3904fb8832678f10419f421f19bade8bdb546133"
      ],
      "author": {
        "name": "Robert Collins",
        "email": "rbtcollins@hp.com",
        "time": "Tue Jun 23 09:41:21 2015 +1200"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Jun 23 06:31:02 2015 -0400"
      },
      "message": "Don\u0027t install pbr in a venv\n\nBecause PIP_VIRTUAL_ENV was set for the installation of requirements,\nand left around in scope, the installation of pbr no longer happened\nin a global context, it instead landed inside the virtual\nenv. Unsetting the variable after requirements install gets us back to\nwhere we expect.\n\nThis was an unintended side effect of the requirements-venv patch.\n\nChange-Id: I2c4cb4305fec81a5fd237edabee78874ccd0da22\n"
    },
    {
      "commit": "86923559a4feb4a7c1f01f69ffdbff6c67c6b785",
      "tree": "6d1f75f9c5e7a15c1cffcbeac83e1fa5a164e645",
      "parents": [
        "40f3e33f734330c32f27882898ab1bb4ab8f3217"
      ],
      "author": {
        "name": "Robert Collins",
        "email": "rbtcollins@hp.com",
        "time": "Fri Jun 19 11:17:04 2015 +1200"
      },
      "committer": {
        "name": "Robert Collins",
        "email": "rbtcollins@hp.com",
        "time": "Fri Jun 19 11:17:04 2015 +1200"
      },
      "message": "Fixup pbr in LIBS_FROM_GIT\n\nChange-Id: I32594f30a13c0757cc918c8a5e54ae182e985693\n"
    },
    {
      "commit": "40f3e33f734330c32f27882898ab1bb4ab8f3217",
      "tree": "dda0dcc7b877329284f44156b6910d3be78f22b1",
      "parents": [
        "810dc1d6f4b22eee04303e01968c1762a16986e0"
      ],
      "author": {
        "name": "Robert Collins",
        "email": "rbtcollins@hp.com",
        "time": "Fri Jun 19 08:04:00 2015 +1200"
      },
      "committer": {
        "name": "Robert Collins",
        "email": "rbtcollins@hp.com",
        "time": "Fri Jun 19 08:04:00 2015 +1200"
      },
      "message": "Put requirements repo in a venv.\n\nThis is to prevent any possible contamination of test results from its\npresence.\n\nChange-Id: I5a929854745650cc6a182ffc4d15c50caabdd727\n"
    },
    {
      "commit": "f553ce24ea1fa860d19b5dfb14c286614552d509",
      "tree": "be46d5bebbe0f6327508218e74385a08c7a70211",
      "parents": [
        "598f2effed728ab992a0f71ca20c3d3e3982d67b"
      ],
      "author": {
        "name": "Robert Collins",
        "email": "rbtcollins@hp.com",
        "time": "Wed Jun 17 13:52:20 2015 +1200"
      },
      "committer": {
        "name": "Robert Collins",
        "email": "rbtcollins@hp.com",
        "time": "Thu Jun 18 11:21:42 2015 +1200"
      },
      "message": "Actually install the requirements repo.\n\nThe requirements repo has had a setup.cfg etc for a long time but only\nrecently started using it. As it now has dependencies, we need to pip\ninstall it. To preserve compat with older requirements repos I haven\u0027t\nchanged the call to invoke update-requirements yet, as we still have\nthe update.py symlink.\n\nThe pbr install is moved before requirements to ensure we don\u0027t\ntrigger easy-install.\n\nChange-Id: I7d7e91694c9145fac0ddab8a9de5f789d723c641\n"
    },
    {
      "commit": "013f52b01508f20c34209a30d76c1843764f88ca",
      "tree": "380dca63c4f5189bfd9b5900acdc8bb8600755e5",
      "parents": [
        "6ec66bb3d1354062ec70be972dba990e886084d5"
      ],
      "author": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Tue Dec 23 16:56:15 2014 -0800"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Tue Dec 23 17:20:30 2014 -0800"
      },
      "message": "Always install latest pbr\n\nWhen not installing pbr from source always install the latest version of\npbr. It turns out that python-pbr is a system package that satisfies\nmany of our requirements files pbr requirements but breaks under\nsetuptools 8.0. Fix this by passing the -U flag to pip when installing\npbr so that we install the latest version of pbr always.\n\nNote that we likely need to make this more generic to avoid other system\npackage leakage when installing packages not from source.\n\nWe should also probably bump our pbr requirements across the board to\nreflect the new setuptools 8.0 world needs.\n\nChange-Id: I23dd21cea37d26f879aa8d864ee7d371e70221ea\nFixes-bug: 1405318\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": "cc52406a7843367c42e276b85cb9e73e4c525d51",
      "tree": "04ed2b376d34c6849aff19671a51914362d9b509",
      "parents": [
        "8e087fa83b1a1b1a2cdbae6f855c9d742e5650f5"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Oct 01 09:06:43 2014 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Oct 01 16:20:22 2014 -0400"
      },
      "message": "use released library versions by default\n\nThis patch provides a new path for installing libraries in devstack so\nthat it\u0027s possible to either test with upstream released libraries, or\nwith git versions of individual libraries.\n\nLibraries are added by name to 3 associative arrays GITREPO,\nGITBRANCH, GITDIR. When we get to the library install phase we inspect\nLIBS_FROM_GIT and look for libraries by name (i.e. \"oslo.config\") and\nif they exist we\u0027ll clone and install those libraries from\ngit. Otherwise we won\u0027t, and just let pip pull them as dependencies\nwhen it needs them.\n\nThis patch provides the conversion of the oslo libraries, including\npbr.\n\nDevstack-gate jobs for these libraries will need to change to support\nactually forward testing their content.\n\nChange-Id: I6161fa3194dbe8fbc25b6ee0e2fe3cc722a1cea4\n"
    },
    {
      "commit": "72ab17b8301eaae717873595c8a4d37f08dc5c45",
      "tree": "ca45a07792c7d15e1d7bbb23185a922f4c285c14",
      "parents": [
        "5e93727a23e3922efcdd80600a0b7fce5adb62cf"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Thu Jul 17 05:56:59 2014 +0200"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Thu Jul 17 05:56:59 2014 +0200"
      },
      "message": "Remove unfubar_setuptools\n\nIt is no longer used for anything, nor does it seem to be\nneeded in the modern world of get-pip.py.\n\nChange-Id: I5554514dd862a2004454daf295abbcf9cf9f2bfb\n"
    },
    {
      "commit": "099e5e3f81233e2151f8645bc1ff6431eab9492b",
      "tree": "09205d40716ca185c11c79d97d948bb66758ba88",
      "parents": [
        "31f7475baffcca2742201918c8f3fe7b682c2193"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean.dague@samsung.com",
        "time": "Mon Mar 31 10:35:43 2014 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean.dague@samsung.com",
        "time": "Tue Apr 01 08:48:00 2014 -0400"
      },
      "message": "don\u0027t use pip -e install for libraries\n\nlibraries in openstack shouldn\u0027t be installed editable, as it\ncauses all manner of issues (especially complicated by the use\nof namespace packages). Install these globally as part of the\ndevstack installation process.\n\nChange-Id: I11acb169e74069be0618e57496ff342f9e788493\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": "6a5aa7c6a20435bbd276a0f1823396b52a8f0daf",
      "tree": "d5137f132a359469f1225d61850466feb4658297",
      "parents": [
        "cb961597cc30f9d8ece17529f09a8291454827e3"
      ],
      "author": {
        "name": "Adam Spiers",
        "email": "aspiers@suse.com",
        "time": "Thu Oct 24 11:27:02 2013 +0100"
      },
      "committer": {
        "name": "Adam Spiers",
        "email": "aspiers@suse.com",
        "time": "Thu Oct 24 17:38:19 2013 +0100"
      },
      "message": "Fix some Markdown formatting issues\n\nAddress miscellaneous issues with Markdown formatting in comments which\nare consumed by shocco when generating the online documentation.\n\nChange-Id: I953075cdbddbf1f119c6c7e35f039e2e54b79078\n"
    },
    {
      "commit": "0392a10a635a8befb13ff242e2ed5d5be4b23560",
      "tree": "522c4ca06f1f96c0123b237efbbd4a8165012374",
      "parents": [
        "549f1a8fc328c2aa8884721243b1fd1ddf1004bd"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sdague@linux.vnet.ibm.com",
        "time": "Wed Jul 31 13:07:45 2013 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sdague@linux.vnet.ibm.com",
        "time": "Wed Jul 31 15:48:47 2013 -0400"
      },
      "message": "add lib/infra\n\nmove the infrastructure projects to a dedicated lib/infra, which\ngives us access to this during grenade upgrade tests.\n\nChange-Id: I1e832792b61d41ad290b4b2ab26fe664e710cebd\n"
    }
  ]
}
