{ "info": { "author": "Gregory Taylor", "author_email": "gtaylor@duointeractive.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": "django-fabtastic\n================\n\nDeploying Django_ projects is not an inherently fun task. It's not an\nextremely difficult process, however, there are plenty of tedious, repetitive \ntasks that take precious time and keystrokes.\n\nEach person or company handles their deployments in a slightly different\nmanner. There are a near infinite number of ways to deploy, maintain, and\nupdate Django projects, each with their own benefits and limitations.\ndjango-fabtastic is `DUO Interactive`_'s \nphilosophy on deployment, and is what we use for our own projects. \n\nThis Django_ app can be dropped into any project, providing you with a quick, \neasy, standardized deployment method.\n\nWhy would I use fabtastic?\n--------------------------\n\nThese are just based on what we wanted in a deployment system, so you may not\nfind these to be compelling reasons for your project(s).\n\n* We like Python_, and wanted a simple Python-based deployment solution.\n* We like Fabric_. It's simple and works really well for us.\n* We did not like maintaining a mess of slightly different fabfiles for our\n handful of projects in production and development. Whenever an enhancement\n was made to one, we had to spend time porting it to the other projects for\n them to benefit from the enhancements.\n* Our deployments were similar enough to pretty much do the same exact\n steps to deploy them all. We can now toss the example fabfile.py into each\n of our projects, add fabtastic to our Django_ settings.py, and we're on\n our way to worrying about more important stuff like developing the product.\n \nNotes and assumptions\n---------------------\n\ndjango-fabtastic does not attempt to be a one-size-fits-all solution. It is\naimed at what we need for our deployments. As is such, if you need a feature\nimplemented, feel free to open an issue in the tracker, or better yet,\nfork and send a pull request.\n\nAs far as assumptions we make for those wishing to use this app:\n\n* You are running Django_ 1.1 or higher.\n* We strongly recommend Python_ 2.6+, but not 3.x (yet). It very well may run\n just fine on earlier Python versions, but we have done no testing below\n Python 2.6.\n* You are using or wanting to use Fabric_.\n* We currently only implement Postgres DB operations. We'd love patches for\n others, though.\n* You are using virtualenv_ and virtualenvwrapper_.\n \nPhilosophy\n----------\n\nWe like Django. We like Fabric. Fabric is [thankfully] not at all tied to\nDjango, which is great. However, we found ourselves juggling Django\nsettings and environment stuff way too often. We also found ourselves wishing\nwe could just run certain segments of the deployment process in-place on\nan arbitrary server or staging or development machine without any thought.\n\nFabric *can* do this just fine, but we didn't like cluttering our\nfabfile with all of the extra sub-sections of our deployment process. We also\nrealized that our deployment scripts being ran entirely from a client machine\nmeant that some really bad assumptions were being made:\n\n* The values in all of our local settings.py (and deployment/staging settings)\n are always in sync with what's in production.\n* No overridden (local_settings.py, anyone?) values exist in production.\n\nThese caused us some grief, as we tend to keep sensitive settings out of our\ngit repositories. The best way to overcome the aformentioned limitations and\ncorrect our assumptions was to chunk the deployment process out into\nmanage.py commands and some includable Fabric scripts that call them as needed.\n\nIn this way, we find ourselves with a useful set of management and deployment\ncommands that are guaranteed to always have the correct settings and\nDjango environment on all of our machines: local, staging, or production.\n\nInstallation\n------------\n\nRight now, Fabtastic is only available via our github repository. Fortunately,\n``pip`` can pull directly from it.\n\n* Add ``git+http://github.com/duointeractive/django-fabtastic.git#egg=fabtastic``\n to your requirements.txt file.\n* Run ``pip install git+http://github.com/duointeractive/django-fabtastic.git#egg=fabtastic``\n manually to install it.\n* Add ``fabtastic`` to your `INSTALLED_APPS`` in settings.py.\n* If you run ``./manage.py help``, you should now see some more commands.\n* Read on to the fabfile.py construction section in this README. Generally you\n can copy the `example fabfile.py`_ to your project and modify it as needed.\n \n.. _example fabfile.py: http://github.com/duointeractive/django-fabtastic/blob/master/examples/fabfile.py\n\nStaying up to date\n------------------\n\nAt any time, you may run ``./manage.py ft_fabtastic_update`` to get the latest\nversion. There is also a Fabric task included, ``fabtastic_update``.\n\nfabfile.py Construction\n-----------------------\n\nIf you downloaded the source distribution, take a look at your ``examples/``\ndirectory. The most common example will be in ``fabfile.py``. If you installed\nvia pip, you can point your browser at it here_ to follow along.\n\n.. _here: http://github.com/duointeractive/django-fabtastic/blob/master/examples/fabfile.py\n\nThe important thing to note is that all we are doing in the fabfile is pulling\nwhatever we want together. You are free to mix in your own custom commands,\nselectively use ours, or use all of ours plus some of your own.\n\ndjango-fabtastic is primarily for DUO's deployments, so some of it is aimed to\nfit our usage case. As is such, unless you use all of our dependencies, the\nfollowing line might need to be made a little more specific::\n\n from fabtastic.fabric.commands import *\n\nIt is important to note that you can selectively import commands from\n``fabtastic.fabric.commands``. See the note and example in ``examples/fabfile.py``.\nFor a full list of modules, check your ``fabtastic/fabric/commands`` directory,\nor look at our `git repository`_.\n\n.. _git repository: http://github.com/duointeractive/django-fabtastic/tree/master/fabtastic/fabric/commands/\n \n.. _Python: http://python.org\n.. _DUO Interactive: http://duointeractive.com\n.. _Fabric: http://docs.fabfile.org/\n.. _Django: http://djangoproject.com", "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/duointeractive/django-fabtastic", "keywords": null, "license": "BSD License", "maintainer": null, "maintainer_email": null, "name": "django-fabtastic", "package_url": "https://pypi.org/project/django-fabtastic/", "platform": "any", "project_url": "https://pypi.org/project/django-fabtastic/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/duointeractive/django-fabtastic" }, "release_url": "https://pypi.org/project/django-fabtastic/1.1/", "requires_dist": null, "requires_python": null, "summary": "A Django app that uses Django manage.py extension commands with Fabric for deployment.", "version": "1.1" }, "last_serial": 789601, "releases": { "1.1": [ { "comment_text": "", "digests": { "md5": "7e46bdb0fd88c6f0af8ad2fa605a5b4e", "sha256": "e5d4696d967e2230c543320bc4c71ef4f2b1667e51dd0fa8361ed10d0fdfb310" }, "downloads": -1, "filename": "django-fabtastic-1.1.tar.gz", "has_sig": false, "md5_digest": "7e46bdb0fd88c6f0af8ad2fa605a5b4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10915, "upload_time": "2011-01-21T19:01:16", "url": "https://files.pythonhosted.org/packages/21/08/2a3d852e1517eba0f6f3d74c105dba06e0f49a5cc030be0228a583d4a6df/django-fabtastic-1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7e46bdb0fd88c6f0af8ad2fa605a5b4e", "sha256": "e5d4696d967e2230c543320bc4c71ef4f2b1667e51dd0fa8361ed10d0fdfb310" }, "downloads": -1, "filename": "django-fabtastic-1.1.tar.gz", "has_sig": false, "md5_digest": "7e46bdb0fd88c6f0af8ad2fa605a5b4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10915, "upload_time": "2011-01-21T19:01:16", "url": "https://files.pythonhosted.org/packages/21/08/2a3d852e1517eba0f6f3d74c105dba06e0f49a5cc030be0228a583d4a6df/django-fabtastic-1.1.tar.gz" } ] }