{ "info": { "author": "Praekelt Foundation", "author_email": "dev@praekelt.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Buildout", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "praekelt.recipe.deploy\n======================\n**Buildout recipe making versioned remote deploys trivial.**\n \nCreates a ``bin/`` script with which you can easily deploy buildouts to remote servers. Uses `Fabric `_ to communicate and run commands on remote servers.\n\n**NOTE: This recipe is under active development and has not been fully tested in a production environment. Use at your own risk.**\n \nThe deploy process proceeds as follows:\n\n#. The remote host as specified in ``host`` is accessed.\n#. A new release path structure is created using this pattern: ``/releases/``.\n#. The git repo as specified in ``git_url`` is cloned.\n#. The newly cloned repo's branch is switched to the branch as specified in ``git_branch``. If ``git_branch`` is not specified no switch occurs.\n#. The repo is switched to the latest tag for the active branch if ``deploy_latest_tag`` is specified as ``True``. If ``deploy_latest_tag`` is not specified deploy will be performed from last commit of the active branch. \n#. A Puppet manifest as specified in ``puppet_manifest`` is applied if provided.\n#. Shared resources as specified in ``shared_resources`` are copied from the current release(if present) to the newly created release.\n#. The Buildout's ``boostrap.py`` is run using the python executable as specified in ``python_exec`` and a Buildout configuration file as specified in ``conf_file``. ``python`` is used by default if ``python_exec`` is not specified, ``buildout.cfg`` is used by default if ``conf_file`` is not specified.\n#. The Buildout is run using a Buildout configuration file as specified in ``conf_file``. ``buildout.cfg`` is used by default if ``conf_file`` is not specified.\n#. The ``/current`` symlink is updated to point to newly created release.\n#. Supervisor is updated(``$ supervisorctl update``) if ``update_supervisor`` is specified as ``True``.\n#. Each supervisorctl command specified in ``supervisorctl_commands`` is run in order.\n#. Each command specified in ``initd_commands`` is run in order.\n\nUsage\n-----\n\nAdd a part in ``buildout.cfg`` like so::\n\n [buildout]\n parts = deploy\n \n [deploy]\n recipe = praekelt.recipe.deploy\n git_url = git@github.com:me/projectx.git\n host = www.protectx.com\n root_path = /var/www/projectx\n\nRunning the buildout will add a deploy script with the same name as your deploy part in the ``bin/`` directory. In this case ``bin/deploy``. The resulting script will deploy ``git@github.com:me/projectx.git`` to ``www.projectx.com``'s ``/var/www/projectx`` path.\n\nOptions\n-------\n**as_user**\n User as which to perform the deploy. Used to setup permissions appropriately and to clone from github. **Defaults to 'www-data'.**\n**conf_file**\n Buildout cfg file with which to run boostrap and buildout. **Defaults to 'buildout.cfg'.**\n**cron_commands**\n Commands to add to the ``as_users`` user's crontab.\n**deploy_key_path**\n Path on host to key to use when cloning the repo.\n**deploy_latest_tag**\n If True deploy will be performed from latest found tag for active branch. Otherwise deploy will be performed from last commit of the active branch. Defaults to 'False'.\n**git_branch**\n Git repo branch with which to perform the deploy.\n**git_url**\n Git repo with which to perform the deploy. **Required.**\n**host**\n Hostname on which to perform deploy. **Required.**\n**initd_commands**\n init.d commands to run after a completed deploy. i.e. ``nginx restart``.\n**puppet_manifest**\n Puppet manifest file to apply prior to buildout. This will be applied using ``puppet apply ``.\n**python_exec**\n Python command with which to boostrap Buildout. **Defaults to 'python'.**\n**root_path**\n Root path in which to perform the deploy. current/release path structure will be created within this path. **Required.**\n**shared_resources**\n Resource paths to copy accross from the current release to the new release on each deploy.\n**supervisorctl_commands**\n supervisorctl commands to run after a completed deploy. i.e. ``restart all``.\n**update_supervisor**\n Whether or not to update supervisor. **Defaults to 'False'.**\n\nFull Example\n------------\n\nThe following example illustrates all available options::\n\n [buildout]\n parts = deploy\n\n [deploy]\n recipe = praekelt.recipe.deploy\n as_user = www-data\n conf_file = production.cfg\n deploy_key_path = /var/www/.ssh/projectx_deploy_key\n deploy_latest_tag=True\n git_branch = production\n git_url = git@github.com:me/projectx.git\n host = www.protectx.com\n initd_commands = nginx restart\n puppet_manifest = provision.pp\n python_exec = python2.5\n root_path = /var/www/projectx\n shared_resources = \n eggs\n downloads\n log\n media\n update_supervisor = True\n supervisorctl_commands = restart all\n cron_commands = * * * * * echo foobar\n \nThe resulting script will deploy the latest tag found for ``git@github.com:me/projectx.git``'s ``production`` branch to ``www.projectx.com``'s ``/var/www/projectx`` path as user ``www-data``. The git repo will be cloned using ``/var/www/.ssh/projectx_deploy_key`` as ssh key. The Puppet manifest ``provision.pp`` will be applied. The ``eggs``, ``downloads``, ``log`` and ``media`` paths will be copied from the current release to this new release. The buildout environment will be created using ``python2.5`` and run using ``production.cfg`` as configuration file. After the buildout completes supervisor will be updated and ``supervisorctl restart all`` will be run as well as ``/etc/init.d/nginx restart``. ``* * * * * echo foobar`` will be added to ``www-data`` user's crontab.\n\nAuthors\n=======\n\nPraekelt Foundation\n-------------------\n\n* Shaun Sephton\n\nChangelog\n=========\n\n0.1.3 (2011-06-29)\n------------------\n#. More forcefull supervisor update.\n\n0.1.2 (2011-06-28)\n------------------\n#. Allow supervisorctl commands.\n\n0.1.1 (2011-06-20)\n------------------\n#. Added command line git creds supply.\n\n0.1.0\n-----\n#. deploy_latest_tag option added.\n#. Fail on init.d issues.\n\n0.0.9\n-----\n#. Resolved apply.pp bug.\n\n0.0.8\n-----\n#. Added Puppet manifest provisioning support via puppet_manifest option.\n#. Pretty printing.\n\n0.0.7\n-----\n#. Added command env password option.\n#. Added force commandline option bypassing confirmation prompts.\n\n0.0.6\n-----\n#. Added support for https git urls.\n\n0.0.5\n-----\n#. Added newest and verbose options.\n\n0.0.3\n-----\n#. Added cron_commands parameter. Allow for certain script argument overrides.\n\n0.0.2\n-----\n#. Fixed branch issue.\n\n0.0.1\n-----\n#. Initial Release", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/praekelt/praekelt.recipe.deploy", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "praekelt.recipe.deploy", "package_url": "https://pypi.org/project/praekelt.recipe.deploy/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/praekelt.recipe.deploy/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/praekelt/praekelt.recipe.deploy" }, "release_url": "https://pypi.org/project/praekelt.recipe.deploy/0.1.3/", "requires_dist": null, "requires_python": null, "summary": "Buildout recipe making versioned remote deploys trivial.", "version": "0.1.3" }, "last_serial": 796645, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "dc6969604e1e6e1adde3ca78760849de", "sha256": "6f83ebb70c39c88cde0bf3d19f96bb83c16e721317747c36623ff6da6f337055" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.0.1-py2.6.egg", "has_sig": false, "md5_digest": "dc6969604e1e6e1adde3ca78760849de", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 10432, "upload_time": "2011-01-11T11:39:04", "url": "https://files.pythonhosted.org/packages/02/f9/002bbec288b7d9cbd85b5fe39ee166473c9bdb95422ee2915f170ef6b535/praekelt.recipe.deploy-0.0.1-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "6890f5aea40cc1ab855ffd5338c0401e", "sha256": "fc93f982e77f5c42ce55eb0fe6a27a518ff6cd18656fb2385459af766ce87966" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.0.1.tar.gz", "has_sig": false, "md5_digest": "6890f5aea40cc1ab855ffd5338c0401e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6395, "upload_time": "2011-01-11T11:39:05", "url": "https://files.pythonhosted.org/packages/52/d3/ef4779e7a488e8945e3c562ebe1d28a947bdccef2702dd856d8aa99ccba7/praekelt.recipe.deploy-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "22514e992dce91294d325ecbc990d915", "sha256": "5fefed95b3918339d53728f014da162544b959f868dc88b316055a42eee4c292" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.0.2-py2.6.egg", "has_sig": false, "md5_digest": "22514e992dce91294d325ecbc990d915", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 10453, "upload_time": "2011-01-11T14:41:36", "url": "https://files.pythonhosted.org/packages/70/78/b29205ba705a211100d1a00da936fc8700c656b2569f4946020e6e84a62e/praekelt.recipe.deploy-0.0.2-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "ea940b4a1453bd72482c113252dbad58", "sha256": "afd2e48aef397060ece25a33cbf1f73cfe4ebdb2d80f0b0525ee4b5dba9f0c8a" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.0.2.tar.gz", "has_sig": false, "md5_digest": "ea940b4a1453bd72482c113252dbad58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6424, "upload_time": "2011-01-11T14:41:38", "url": "https://files.pythonhosted.org/packages/f0/7b/838b957dc18c8e13819b1a6b0978a2b8a7032a352aeeada62421b01e4a3b/praekelt.recipe.deploy-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "da9f5c1cbb835e61b0303633159a7ba1", "sha256": "b6d6cbed1adbfd56108fb370a8baed04762547e563bf9e4b40692a54af959602" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.0.3-py2.6.egg", "has_sig": false, "md5_digest": "da9f5c1cbb835e61b0303633159a7ba1", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 11641, "upload_time": "2011-01-27T12:45:38", "url": "https://files.pythonhosted.org/packages/59/4c/92055a63872377f6f28f071e8cf952177b7f23aaf3de037ed005c7ef86bb/praekelt.recipe.deploy-0.0.3-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "69e02672d45198c712413d8a644794a6", "sha256": "2d5204b632e94d36a60e5595fc24a40a2ecfb74dbdd45710fee301e21657fe53" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.0.3.tar.gz", "has_sig": false, "md5_digest": "69e02672d45198c712413d8a644794a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6965, "upload_time": "2011-01-27T12:45:40", "url": "https://files.pythonhosted.org/packages/ad/86/caaec601b8c11023749f650387098a82abc0e8c267fe6f26c2a48f1bc32d/praekelt.recipe.deploy-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "719b6134a8862b1c3f70a0e6598e9fe1", "sha256": "4512db84426dfb6d38abed702babb7fab00b7b8aca5ad6e043b6a18a15612665" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.0.4-py2.6.egg", "has_sig": false, "md5_digest": "719b6134a8862b1c3f70a0e6598e9fe1", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 11650, "upload_time": "2011-03-09T08:01:23", "url": "https://files.pythonhosted.org/packages/9b/91/defd1c5a6143233bf79e4a0386f416a9594e244254cbbe7c355c86f0b51f/praekelt.recipe.deploy-0.0.4-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "64c43e37282e7259462d84a29afaa859", "sha256": "2bc4891f09c48a9615dd8c8a087869989d0d9f17201d4acd0d83b4525eb7d850" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.0.4.tar.gz", "has_sig": false, "md5_digest": "64c43e37282e7259462d84a29afaa859", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6949, "upload_time": "2011-03-09T08:01:24", "url": "https://files.pythonhosted.org/packages/c9/56/82822de683d096e8d8df3cc9d3850532cda84006d24bc9973f482e11d92f/praekelt.recipe.deploy-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "21feb485d14847dc2a6bedfb1f136798", "sha256": "bfbce3e6db070aec359282e2b5ff4a41ee59414330293fd649357d4d7213f350" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.0.5-py2.6.egg", "has_sig": false, "md5_digest": "21feb485d14847dc2a6bedfb1f136798", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 11958, "upload_time": "2011-03-17T07:35:53", "url": "https://files.pythonhosted.org/packages/3f/e7/4dc26a7ad134f7625c5f5abcc001facbd245e5be82ee8ed32b50bd8618cc/praekelt.recipe.deploy-0.0.5-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "e307fde6d7d2f867ac25f64eb132fc91", "sha256": "03bec20230baea70063253db813991b8c2e38a0e5810152c7aaae8dc5134bace" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.0.5.tar.gz", "has_sig": false, "md5_digest": "e307fde6d7d2f867ac25f64eb132fc91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7105, "upload_time": "2011-03-17T07:35:57", "url": "https://files.pythonhosted.org/packages/7b/2d/1041f7eef0b090d4bb26a5329533bc5822ffa6077991b475bc676dd49d7d/praekelt.recipe.deploy-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "bac0df243ead7bafe51327f84e1f14a6", "sha256": "9b031ae10315fab9a8f28235e4c4300f273020c902d8ed50fa5c0c44e73a76f8" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.0.6-py2.6.egg", "has_sig": false, "md5_digest": "bac0df243ead7bafe51327f84e1f14a6", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 12623, "upload_time": "2011-03-22T12:19:21", "url": "https://files.pythonhosted.org/packages/3e/57/025a9989054625c3ced6d84f1e48c1c0ba974d1d1ad1d74c7038d71b467d/praekelt.recipe.deploy-0.0.6-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "4ecc587d8f2582e9cb44fc47ccb7178d", "sha256": "3ecab0b122cc008a1796f6fa6223d2cc3c02841ac3c05be027c11b307f06e695" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.0.6.tar.gz", "has_sig": false, "md5_digest": "4ecc587d8f2582e9cb44fc47ccb7178d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7456, "upload_time": "2011-03-22T12:19:28", "url": "https://files.pythonhosted.org/packages/f3/29/62d6ce99771c53a142b91896ab9cf169a09c1e55fc78b4b63cbb6e7c489c/praekelt.recipe.deploy-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "386ee68d514952469cf4c524bb6d2300", "sha256": "0274d7714aee8c1ac7ab4594833430dc3ae9af2e8265c41c61e63c859db55241" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.0.7-py2.6.egg", "has_sig": false, "md5_digest": "386ee68d514952469cf4c524bb6d2300", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 12896, "upload_time": "2011-05-09T15:18:16", "url": "https://files.pythonhosted.org/packages/e9/86/8158189d5c445698e55cf6fe5c5347eb3531a697c7a756bb9b8395227d4c/praekelt.recipe.deploy-0.0.7-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "c00fdf7ea110845aa11da4c3907174e2", "sha256": "d64b0f87657647a5e34648ea5c30272ee6a34031c519ee639cbc283b6d46b9f0" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.0.7.tar.gz", "has_sig": false, "md5_digest": "c00fdf7ea110845aa11da4c3907174e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7595, "upload_time": "2011-05-09T15:18:19", "url": "https://files.pythonhosted.org/packages/2a/bb/a12cafee85056163086beabdf3c46dbfa42ebbfe79e3e84c90ff0995950e/praekelt.recipe.deploy-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "d0b773c7854ba7614963fa3fa279ee9e", "sha256": "118da45604b1625c7df722cf744ee8d0187fce3dc5acdd88c5cafbc6085181a1" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.0.8-py2.6.egg", "has_sig": false, "md5_digest": "d0b773c7854ba7614963fa3fa279ee9e", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 17656, "upload_time": "2011-06-08T15:41:33", "url": "https://files.pythonhosted.org/packages/8c/af/442c7aa079ecd0d3943820ab5ace1481cc3184985cc9282422eed7088fe7/praekelt.recipe.deploy-0.0.8-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "c6a396cb563dccaef844d805d27bbffb", "sha256": "615e062d5c30ca35034d2685610857653f5064982657a9fdf6cac41cdccb5b77" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.0.8-py2.7.egg", "has_sig": false, "md5_digest": "c6a396cb563dccaef844d805d27bbffb", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 17567, "upload_time": "2011-06-08T15:41:50", "url": "https://files.pythonhosted.org/packages/2f/93/9099e278bd6b8542675f9c4686d95cd3e3f5aa5e882b26980e0a9931b8f4/praekelt.recipe.deploy-0.0.8-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "df34dd4891e53b66bd0b592f3045653d", "sha256": "5bb8641e8dce89d4e73429cd4953dac19a341be957a96f1d3fd6b12178ac3c14" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.0.8.tar.gz", "has_sig": false, "md5_digest": "df34dd4891e53b66bd0b592f3045653d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10271, "upload_time": "2011-06-08T15:41:36", "url": "https://files.pythonhosted.org/packages/83/a8/c3fa9abda00d2aa685bb2a44d0eb7e0c5a175c03f807f93e073f82d4a402/praekelt.recipe.deploy-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "3e471760ced94b5cda022556e9f6dc07", "sha256": "98624579f7edf4690ceba095a288daf954e47e3854818b33a11c101517a8b1ef" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.0.9-py2.6.egg", "has_sig": false, "md5_digest": "3e471760ced94b5cda022556e9f6dc07", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 17672, "upload_time": "2011-06-08T16:18:21", "url": "https://files.pythonhosted.org/packages/c4/5d/98cd6e108809dfeeac135a47f97cb950dcfb24d618b9afe5255feaa4abce/praekelt.recipe.deploy-0.0.9-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "f374202b90888d9849b9825959374b38", "sha256": "878d98d0c7516fb8d1644e7737a701cb81e0a6c8c3a6bd37c334aee2e95af0d9" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.0.9-py2.7.egg", "has_sig": false, "md5_digest": "f374202b90888d9849b9825959374b38", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 17581, "upload_time": "2011-06-08T16:18:36", "url": "https://files.pythonhosted.org/packages/b3/3c/814215e1cae1e213a13df9408a7cbce8bd8e378e81d8d04b86e14fd2a0cc/praekelt.recipe.deploy-0.0.9-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "ac9c7174ca9b7dc025da9237947940ac", "sha256": "555ebb16949793a3e03fbb5cef653629fe749f12ac5f42a36a864da266402fe1" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.0.9.tar.gz", "has_sig": false, "md5_digest": "ac9c7174ca9b7dc025da9237947940ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10340, "upload_time": "2011-06-08T16:18:23", "url": "https://files.pythonhosted.org/packages/5e/6f/17f44a02014726dcc9b55b510919008581b937726c1471e79d9617cbd7fe/praekelt.recipe.deploy-0.0.9.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "a0d9886ac7eb9c1b99f6809d7e971ec0", "sha256": "33e6d71dbdf090f6369fdef54948cf37010ae875e9d8c2c07c1653a35242bdf3" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.1.0-py2.6.egg", "has_sig": false, "md5_digest": "a0d9886ac7eb9c1b99f6809d7e971ec0", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 18434, "upload_time": "2011-06-09T13:44:53", "url": "https://files.pythonhosted.org/packages/82/90/c359f8afb760650522d231db826333d4b793ba127bec1c4c44c6b12a76a3/praekelt.recipe.deploy-0.1.0-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "740eb01bca849c44bf70421c4e7499ee", "sha256": "85c12e19efe05b395dd103482f5b1721080408a49046094e45e18107731daa7a" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.1.0-py2.7.egg", "has_sig": false, "md5_digest": "740eb01bca849c44bf70421c4e7499ee", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 18335, "upload_time": "2011-06-09T13:45:16", "url": "https://files.pythonhosted.org/packages/64/d0/3833fc8b210f502e37a7a2e4afdb62b5c8f8024641e63532fb9d7c86d82e/praekelt.recipe.deploy-0.1.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "52d88ba56319f4f353e09a8e7b4408fa", "sha256": "4c116c45094c853527608771029aafe2b65f70b0a1230d655ae0c07eb7dc5c14" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.1.0.tar.gz", "has_sig": false, "md5_digest": "52d88ba56319f4f353e09a8e7b4408fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10681, "upload_time": "2011-06-09T13:44:55", "url": "https://files.pythonhosted.org/packages/71/66/aa899f54f43290777fa75a0e7a0474ab485d858b6abdd0ee816add7bd171/praekelt.recipe.deploy-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "21b2a69c59e409c438ec094de51d0fdb", "sha256": "5bfa4f900fbe82632fbe9b54328bec6fe5b3b66dc7e2e1ace095e345669128f3" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.1.1-py2.6.egg", "has_sig": false, "md5_digest": "21b2a69c59e409c438ec094de51d0fdb", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 18607, "upload_time": "2011-06-20T15:10:35", "url": "https://files.pythonhosted.org/packages/3f/21/4fbd44379738361bf4bb06d312f3b2c73f7efe2a1d89f01ee6256eef3aec/praekelt.recipe.deploy-0.1.1-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "3d95fd9eb50787f7c9b6be93eec61bfe", "sha256": "00cdaede658b22707b1c2620194ec3b2959e5c1870359a8655c945fdfb665b9d" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.1.1-py2.7.egg", "has_sig": false, "md5_digest": "3d95fd9eb50787f7c9b6be93eec61bfe", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 18506, "upload_time": "2011-06-20T15:10:58", "url": "https://files.pythonhosted.org/packages/96/0d/60c1729855faadcd871e0cf39556fe54d9b8fe0c945c2caffb80b50ba2ab/praekelt.recipe.deploy-0.1.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "375c938c1eb731c3197cfea3d52ef358", "sha256": "7312428260de3410426885bcc3f88fd497873c64faab3962017b5eb3a73f699a" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.1.1.tar.gz", "has_sig": false, "md5_digest": "375c938c1eb731c3197cfea3d52ef358", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10769, "upload_time": "2011-06-20T15:10:37", "url": "https://files.pythonhosted.org/packages/43/b6/b52f1dde5427c162e98b24f7228a595c60a8dc8f93d46680bb8c799552f3/praekelt.recipe.deploy-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "05e740799533b2f359167e9ab0382c6f", "sha256": "eef80a6982a7ccb8bb088ee7b0414f4292834776a02ca9a5a1f01eca15c21d5e" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.1.2-py2.6.egg", "has_sig": false, "md5_digest": "05e740799533b2f359167e9ab0382c6f", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 18883, "upload_time": "2011-06-28T12:09:19", "url": "https://files.pythonhosted.org/packages/a2/c3/bf6fb8c20b1a9c9f33c8e7485cf19f9875909bda9118755b85a31a31c5c6/praekelt.recipe.deploy-0.1.2-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "643f068e133a2c8651b2d6ed8db084ee", "sha256": "9ac200ef512734ff01b5b4511267514861a053e35b4bccc88f615c67c6d57de8" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.1.2-py2.7.egg", "has_sig": false, "md5_digest": "643f068e133a2c8651b2d6ed8db084ee", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 18769, "upload_time": "2011-06-28T12:09:31", "url": "https://files.pythonhosted.org/packages/42/70/af927d0384f423f9f9c9163b4e63514975b901dc4e85fdc74628fc1e3b61/praekelt.recipe.deploy-0.1.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "9aa60a993feddb06f37c4115ba3509b2", "sha256": "40c48984839bf2ead7404d1353514c1836c2ece39a6e7cfb02729bcc6cbe2d7c" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.1.2.tar.gz", "has_sig": false, "md5_digest": "9aa60a993feddb06f37c4115ba3509b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11000, "upload_time": "2011-06-28T12:09:21", "url": "https://files.pythonhosted.org/packages/36/d1/124ddbcc707c016c5a2dfebe0db23865cd898ef2248147b826c736f4a7f4/praekelt.recipe.deploy-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "ed826e74d82ecb3d4dd41cae9e8a6e47", "sha256": "c6b732006b1aa1fd5ae28a3f4092f68b23ed23ac83455370365114cf64806444" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.1.3-py2.6.egg", "has_sig": false, "md5_digest": "ed826e74d82ecb3d4dd41cae9e8a6e47", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 19097, "upload_time": "2011-06-29T12:49:56", "url": "https://files.pythonhosted.org/packages/3f/fa/6a6051d06a541d7f6a6fa3ed12a0f356ae8be3d80bfe89c363fad45cec4b/praekelt.recipe.deploy-0.1.3-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "71f1504d45795d8319db5da399c78d6e", "sha256": "4559822a4c696196bbba79bc1f7efbcee2fdf0539a047318211c12099eb1bc82" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.1.3-py2.7.egg", "has_sig": false, "md5_digest": "71f1504d45795d8319db5da399c78d6e", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 18981, "upload_time": "2011-06-29T12:49:41", "url": "https://files.pythonhosted.org/packages/4b/22/091a2c3933756d6fa5a184077ecc39e18c559551d8a742804c50e9cc0e8e/praekelt.recipe.deploy-0.1.3-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "f993ddc4831fc430e80dff68cefeee2b", "sha256": "226a8922d7b25af336833eb1a0d9203b54ba9f3e6b4344a0fb6ece098dc80851" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.1.3.tar.gz", "has_sig": false, "md5_digest": "f993ddc4831fc430e80dff68cefeee2b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11181, "upload_time": "2011-06-29T12:49:43", "url": "https://files.pythonhosted.org/packages/77/36/b1a3c39ef6817bf3c940b8d239d3463809f49f52b0f50213ef6cdcae98d8/praekelt.recipe.deploy-0.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ed826e74d82ecb3d4dd41cae9e8a6e47", "sha256": "c6b732006b1aa1fd5ae28a3f4092f68b23ed23ac83455370365114cf64806444" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.1.3-py2.6.egg", "has_sig": false, "md5_digest": "ed826e74d82ecb3d4dd41cae9e8a6e47", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 19097, "upload_time": "2011-06-29T12:49:56", "url": "https://files.pythonhosted.org/packages/3f/fa/6a6051d06a541d7f6a6fa3ed12a0f356ae8be3d80bfe89c363fad45cec4b/praekelt.recipe.deploy-0.1.3-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "71f1504d45795d8319db5da399c78d6e", "sha256": "4559822a4c696196bbba79bc1f7efbcee2fdf0539a047318211c12099eb1bc82" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.1.3-py2.7.egg", "has_sig": false, "md5_digest": "71f1504d45795d8319db5da399c78d6e", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 18981, "upload_time": "2011-06-29T12:49:41", "url": "https://files.pythonhosted.org/packages/4b/22/091a2c3933756d6fa5a184077ecc39e18c559551d8a742804c50e9cc0e8e/praekelt.recipe.deploy-0.1.3-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "f993ddc4831fc430e80dff68cefeee2b", "sha256": "226a8922d7b25af336833eb1a0d9203b54ba9f3e6b4344a0fb6ece098dc80851" }, "downloads": -1, "filename": "praekelt.recipe.deploy-0.1.3.tar.gz", "has_sig": false, "md5_digest": "f993ddc4831fc430e80dff68cefeee2b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11181, "upload_time": "2011-06-29T12:49:43", "url": "https://files.pythonhosted.org/packages/77/36/b1a3c39ef6817bf3c940b8d239d3463809f49f52b0f50213ef6cdcae98d8/praekelt.recipe.deploy-0.1.3.tar.gz" } ] }