{ "info": { "author": "TSH Labs", "author_email": "projects@tshlabs.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: MIT License", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: System :: Installation/Setup" ], "description": "Tunic\n=====\n\n.. image:: https://travis-ci.org/tshlabs/tunic.png?branch=master\n :target: https://travis-ci.org/tshlabs/tunic\n\n.. image:: https://img.shields.io/pypi/v/tunic.svg\n :target: https://pypi.python.org/pypi/tunic\n\n\nA Python library for deploying code on remote servers.\n\nTunic is designed so that you can make use of as much or as little of\nits functionality as you'd like, the choice is yours.\n\nIt only requires the Fabric library as a dependency and can be installed\nfrom the Python Package Index (PyPI) using the pip tool like so.\n\n.. code-block:: bash\n\n $ pip install tunic\n\nYou could then make use of it in your deploy process like so.\n\n.. code-block:: python\n\n from fabric.api import task\n from tunic.api import get_release_id, ReleaseManager, VirtualEnvInstallation\n\n APP_BASE = '/srv/www/myapp'\n\n @task\n def deploy():\n stop_my_app()\n release = get_release_id()\n\n installer = VirtualEnvInstaller(APP_BASE, ['myapp'])\n release_manager = ReleaseManager(APP_BASE)\n\n installer.install(release)\n release_manager.set_current_release(release)\n\n start_my_app()\n\nThe above snippet is just the start, take a look around the code base\nfor more methods that can save you work in your deploy process.\n\nDocumentation\n-------------\n\nThe latest documentation is available at http://tunic.readthedocs.io/en/latest/\n\nSource\n------\n\nThe source is available at https://github.com/tshlabs/tunic\n\nDownload\n--------\n\nPython packages are available at https://pypi.python.org/pypi/tunic\n\nChanges\n-------\n\nThe change log is available at http://tunic.readthedocs.io/en/latest/changes.html\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tshlabs/tunic", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "tunic", "package_url": "https://pypi.org/project/tunic/", "platform": "", "project_url": "https://pypi.org/project/tunic/", "project_urls": { "Homepage": "https://github.com/tshlabs/tunic" }, "release_url": "https://pypi.org/project/tunic/1.3.0/", "requires_dist": [ "fabric" ], "requires_python": "", "summary": "Deployment related Fabric utilities", "version": "1.3.0" }, "last_serial": 3138176, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "fff8375e7159cebae6147a8efce0adb7", "sha256": "5c80469a30c16d5440a5d113d0d3495aaa7401a5eff836a10a4957b614b7e7b9" }, "downloads": -1, "filename": "tunic-0.1.0.tar.gz", "has_sig": false, "md5_digest": "fff8375e7159cebae6147a8efce0adb7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5885, "upload_time": "2014-09-22T12:51:10", "url": "https://files.pythonhosted.org/packages/10/22/2a8f6e18c21307fbb650ce65a56d8458286f6b2b370a27ab7f893433e9b3/tunic-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "1094601dd2b0f1ef5f12ac7b2711463d", "sha256": "67d4b010077aa7d414d8906e0d8504f9e698f231e091b147cb99880879c6e973" }, "downloads": -1, "filename": "tunic-0.2.0.tar.gz", "has_sig": false, "md5_digest": "1094601dd2b0f1ef5f12ac7b2711463d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7026, "upload_time": "2014-09-26T03:56:29", "url": "https://files.pythonhosted.org/packages/c7/c5/9d250ff92bfc9f98291aff3dd8b52b8930727b574568c35b770b5219791f/tunic-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "132411055137b05b2b215c14ee1db36a", "sha256": "0fd44095ba2e1b8f904b2b8241f5dc3d5c8b66b7057c9583619fa3b4784b02b3" }, "downloads": -1, "filename": "tunic-0.3.0.tar.gz", "has_sig": false, "md5_digest": "132411055137b05b2b215c14ee1db36a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8903, "upload_time": "2014-09-28T20:15:07", "url": "https://files.pythonhosted.org/packages/f6/6c/510b0439378f396c50297720e3a547d0f4b107eb3ed72daf62159b08c137/tunic-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "be3ae9cf8d3d3fea954b9600c43aa4fb", "sha256": "44a08d2f93baea36f77c1573daa0f5a7993eea8cd99ba9a19f08f0737d01567d" }, "downloads": -1, "filename": "tunic-0.4.0.tar.gz", "has_sig": false, "md5_digest": "be3ae9cf8d3d3fea954b9600c43aa4fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9674, "upload_time": "2014-10-03T03:25:08", "url": "https://files.pythonhosted.org/packages/63/46/ac12879c331657aadb25073db48a4c6cfc185960c6e5105878273876e2f0/tunic-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "8608a8e4b53f95efca00dd9bcb5255c6", "sha256": "bb6d00aa522460a0640ea7cbec837ea31094004fda4709b02f87c65ec58414db" }, "downloads": -1, "filename": "tunic-0.5.0-py2-none-any.whl", "has_sig": false, "md5_digest": "8608a8e4b53f95efca00dd9bcb5255c6", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 12229, "upload_time": "2015-04-04T21:57:16", "url": "https://files.pythonhosted.org/packages/83/35/fd28d484c163623f3fc99da3f21fc3b1d24c8345ad8c058aab96bfa0a397/tunic-0.5.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f58455b24a58d3db0d54a6626cb0a926", "sha256": "443e22398b8e4fa2b6f0ddf50ea666472451ac90664b2a0e5d6533857863a1bb" }, "downloads": -1, "filename": "tunic-0.5.0.tar.gz", "has_sig": false, "md5_digest": "f58455b24a58d3db0d54a6626cb0a926", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11016, "upload_time": "2014-10-11T19:45:04", "url": "https://files.pythonhosted.org/packages/80/da/f61340a26ea5c417856df701790386bbc8c782363c35905433da94ca47ba/tunic-0.5.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "be56d4e67b444edf79e724e577dfa39d", "sha256": "df5095ef1a43928eea8d84640191344f620439ef28f814599f032429c2bdeb76" }, "downloads": -1, "filename": "tunic-1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "be56d4e67b444edf79e724e577dfa39d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 12229, "upload_time": "2015-04-04T21:58:49", "url": "https://files.pythonhosted.org/packages/aa/b6/caaa4aab6277c235768f59262946e21cca11a21208058c19295b10dfb79c/tunic-1.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "314b0a6ef4333160696fa1f67cfd968c", "sha256": "fdacd7f8b6a31859be5794c86aff234239c459045b4378a47e2c380aab623428" }, "downloads": -1, "filename": "tunic-1.0.1.tar.gz", "has_sig": false, "md5_digest": "314b0a6ef4333160696fa1f67cfd968c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11090, "upload_time": "2015-04-04T21:58:52", "url": "https://files.pythonhosted.org/packages/e6/3b/e4864a8fb3b5966917f4c1f846249be9f7b6808fbbebfa4a02145ef63ad2/tunic-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "5ff94507f633cb79d2d7660a36b55ec1", "sha256": "356112e86e04981c016ca76beaf25e6f050e89a4d87f5a035f207b83a1966354" }, "downloads": -1, "filename": "tunic-1.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "5ff94507f633cb79d2d7660a36b55ec1", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 12922, "upload_time": "2015-06-03T23:08:39", "url": "https://files.pythonhosted.org/packages/ad/45/afaeceb41197dc767a5512c572274756f2d736b34aec24e41c5882fb0a9a/tunic-1.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af1fdc2beb78505ae3ffd1c4774410d8", "sha256": "51af6a30e954e2730201fb63199c89c4ec784e03aa1991e3d9bab3c746e59ef0" }, "downloads": -1, "filename": "tunic-1.1.0.tar.gz", "has_sig": false, "md5_digest": "af1fdc2beb78505ae3ffd1c4774410d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9818, "upload_time": "2015-06-03T23:08:42", "url": "https://files.pythonhosted.org/packages/01/26/3b2d3d1ff4264aff50c3bf4584580563c9e27483b173982e977b8cb039ce/tunic-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "cf31659e3680848e2b58ca8800b416f0", "sha256": "ca37f27711aef3c8ae88fe91463090787ecc0ad737d3a1307f55d5649f37edb5" }, "downloads": -1, "filename": "tunic-1.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "cf31659e3680848e2b58ca8800b416f0", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 14761, "upload_time": "2016-02-25T19:43:55", "url": "https://files.pythonhosted.org/packages/0d/8e/89e22aa35cced9b8e6469880b3f820d6a8455074bbeec29e52cdcdf9ef9c/tunic-1.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70c5718ddee16b0b1c704bff3be67d75", "sha256": "7a8e4460cd25cdfa378c69387bd00f957a225e1b6c8c285dc47c97bcb8522017" }, "downloads": -1, "filename": "tunic-1.2.0.tar.gz", "has_sig": false, "md5_digest": "70c5718ddee16b0b1c704bff3be67d75", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11552, "upload_time": "2016-02-25T19:44:01", "url": "https://files.pythonhosted.org/packages/82/cf/e13346e6496cec8f2321ae8a9bf49e230049398fe1f02ae95e065edf4b9b/tunic-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "ed82c006704eb3e04c54887517add339", "sha256": "81a35da663e0cdd92083a1ae34c17385e84f34849ebfef756305cc743b5bedb0" }, "downloads": -1, "filename": "tunic-1.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "ed82c006704eb3e04c54887517add339", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 14948, "upload_time": "2016-02-25T21:44:00", "url": "https://files.pythonhosted.org/packages/c5/08/bd291f380098bff3a75ca71a4b6810a40b7e0cdf822600b1deff5fa4a43d/tunic-1.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "89d248dfdd4cbf9a4f8e23b7804db788", "sha256": "11abd8978112134217d3f96bffe0482516211fc7606b877f77ad6e62f85b3672" }, "downloads": -1, "filename": "tunic-1.2.1.tar.gz", "has_sig": false, "md5_digest": "89d248dfdd4cbf9a4f8e23b7804db788", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11730, "upload_time": "2016-02-25T21:44:18", "url": "https://files.pythonhosted.org/packages/15/66/12d33a5edcd349370765ceb0e2068f33b7b1608733166557da2342269d3d/tunic-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "ae83451fc86c90827258b4ba3d1f5b36", "sha256": "ddc53db9d050a36556dd73553621df9d9e6c0971325cf3ecff9efeee45b6d0ea" }, "downloads": -1, "filename": "tunic-1.2.2-py2-none-any.whl", "has_sig": false, "md5_digest": "ae83451fc86c90827258b4ba3d1f5b36", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 15023, "upload_time": "2016-05-06T15:07:23", "url": "https://files.pythonhosted.org/packages/bd/97/9b6950f87b998266d99e7372fd0e3093b0a48819c7ed03ab66e673662bb9/tunic-1.2.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2529b5acaef1250b25a423872ae409c7", "sha256": "a22fb43a82dbc6248a97124122bb3f3aba6b4f6c17303f44710807b48269c98f" }, "downloads": -1, "filename": "tunic-1.2.2.tar.gz", "has_sig": false, "md5_digest": "2529b5acaef1250b25a423872ae409c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11779, "upload_time": "2016-05-06T15:07:37", "url": "https://files.pythonhosted.org/packages/f5/04/39606c9f6c0febc8cc15aaed0c0804bb9e98510b769fbcfc7a6f5c78928a/tunic-1.2.2.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "7742fe121f4b24bbec263ef2deb3315a", "sha256": "a373ec96b1622ac38092a52b891e6b39aa491c4bff6cb55b581cde40ea42fbd1" }, "downloads": -1, "filename": "tunic-1.2.3-py2-none-any.whl", "has_sig": false, "md5_digest": "7742fe121f4b24bbec263ef2deb3315a", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 15042, "upload_time": "2017-06-21T00:59:21", "url": "https://files.pythonhosted.org/packages/c2/d2/57c110050fb96ab64114c4b1746760af88803cd89559a1914753638a9df8/tunic-1.2.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fc7607447bb67365c22a8f77db4bba3e", "sha256": "3f14a2d1bb147fcca4b42b2fcdfd8af1a4bd8f597c676dd70924282acd1c71df" }, "downloads": -1, "filename": "tunic-1.2.3.tar.gz", "has_sig": false, "md5_digest": "fc7607447bb67365c22a8f77db4bba3e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12604, "upload_time": "2017-06-21T00:59:23", "url": "https://files.pythonhosted.org/packages/0e/4e/8e5f25bda4e5942c52c21a11641f1bdade2b04d31db61a5fb8b554fe587b/tunic-1.2.3.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "29110c04fc03442984505fbf94029560", "sha256": "9a822e97a8d935ef1ea68ca02e4ce799b0a86f9f02b0662406258ee393733b63" }, "downloads": -1, "filename": "tunic-1.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "29110c04fc03442984505fbf94029560", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 15392, "upload_time": "2017-08-31T17:14:37", "url": "https://files.pythonhosted.org/packages/3e/0a/f622ac9c05be5d5f8d1cc3fa4de8d4cf199fd1e7dca7909cf59ebe3d37f3/tunic-1.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e4c44b3b70638832e8ee3aee0d249c33", "sha256": "5937a28cc849694cc1d4ee91a998cdd95987f2765ba6633875eadf102719addc" }, "downloads": -1, "filename": "tunic-1.3.0.tar.gz", "has_sig": false, "md5_digest": "e4c44b3b70638832e8ee3aee0d249c33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12897, "upload_time": "2017-08-31T17:14:39", "url": "https://files.pythonhosted.org/packages/30/22/7ca99e09f3d9edc494e872d40d34130fe1ea6aa8ccfe72817cd09a63563a/tunic-1.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "29110c04fc03442984505fbf94029560", "sha256": "9a822e97a8d935ef1ea68ca02e4ce799b0a86f9f02b0662406258ee393733b63" }, "downloads": -1, "filename": "tunic-1.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "29110c04fc03442984505fbf94029560", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 15392, "upload_time": "2017-08-31T17:14:37", "url": "https://files.pythonhosted.org/packages/3e/0a/f622ac9c05be5d5f8d1cc3fa4de8d4cf199fd1e7dca7909cf59ebe3d37f3/tunic-1.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e4c44b3b70638832e8ee3aee0d249c33", "sha256": "5937a28cc849694cc1d4ee91a998cdd95987f2765ba6633875eadf102719addc" }, "downloads": -1, "filename": "tunic-1.3.0.tar.gz", "has_sig": false, "md5_digest": "e4c44b3b70638832e8ee3aee0d249c33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12897, "upload_time": "2017-08-31T17:14:39", "url": "https://files.pythonhosted.org/packages/30/22/7ca99e09f3d9edc494e872d40d34130fe1ea6aa8ccfe72817cd09a63563a/tunic-1.3.0.tar.gz" } ] }