{ "info": { "author": "Ingy dot Net", "author_email": "ingy@ingy.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Programming Language :: Python", "Topic :: Software Development", "Topic :: System :: Software Distribution", "Topic :: Utilities" ], "description": "``package`` package package\n---------------------------\n\nThis is the ``package`` package package package for Python. It can be found in\nthe Python Package Index, here: http://pypi.python.org/pypi/package/.\n\n``package`` is a toolset to help Python package people package their packages.\nIf you do not personally package Python packages, you can ignore this\n``package`` package.\n\nInstallation\n------------\n\nDON'T INSTALL THIS PACKAGE (``package``)!!!\n\n``package`` isn't meant to be installed like normal Python packages. It is\nmeant to be copied and distributed as a part of other Python packages.\n\nThe best thing to do is to to ``git clone`` it from GitHub, and put it beside\nthe other packages that you package for Python::\n\n git clone git://github.com/ingydotnet/package-py.git\n\nThe second best thing to do is get the latest ``package-#.#.#.tar.gz`` from\nhttp://pypi.python.org/pypi/package/, untar it and rename the directory to\n``package-py``.\n\nThen follow the instructions given below.\n\nWTF?\n----\n\nConfused? So was I...\n\nI like to write a lot of modules and distribute them as packages, but\nwhen I started doing this in Python, I ran into a wall of\nsetup/installer bugs, bad workarounds and community disagreement about\nwhat the best way to go was. I decided to fix this in a way that makes\nall programmers be able to install my Python packages (and their\nprerequisite packages), regardless of their current Python knowledge or\nworking environment.\n\nThe solution is simple. Just add helper tools in a subdirectory that\ngets included in every Python package you release.\n\nIt's a simple trade of a little extra storage space for functionality,\npackage-author-sanity and world peace. :)\n\nDesign Goals\n------------\n\nThese are some of the things I was concerned with when I started this project:\n\n* Make my Python packages installable by anyone.\n* Allow my Python packages to depend on other packages.\n* Put as little extra burden on the user as possible.\n* Never leave the user uninformed and screaming.\n* Make setup.py files be autogenerated from simple yaml files.\n* Don't let this project paint its users into yet another dependency corner.\n* Provide a simple Makefile for automating related tasks.\n* Provide support for running unittests with ``make test``.\n* Keep the bloat of using ``package`` to a minimum.\n\nUsage\n-----\n\nTo use this Python package packaging technique, follow these simple steps:\n\n1) ``> cd your/src/dir/``\n\n In other words, just go to the directory where you want to put this\n ``package`` package's repository. Putting it next to your other Python\n package source code repositories is what I am suggesting here...\n\n2) ``> git clone git://github.com/ingydotnet/package-py.git``\n\n Unless, of course, you already have ``package-py``. Then maybe you should\n ``git pull`` it to get the latest code.\n\n3) ``> mkdir newproject``\n\n4) ``> cd newproject``\n\n5) ``> make -f ../package-py/Makefile.mk setup``\n\n This will set up the all files you need for a new project. These files are\n in a generic, template form until you complete the next two steps.\n\n6) Edit ``package/info.yaml`` with all the information about your package.\n\n Commonly, you will only need two lines in this file:\n\n name: newproject\n include: ../package-py/my-info.yaml\n\n You can keep all your common values in a common file to be included. The\n project name, of course, is always different from package to package.\n\n7) ``> make info``\n\n This command will update your package files with the information you\n specified in ``package/info.yaml``. You should run it whenever you update\n your ``info.yaml`` file.\n\n8) ``> make help``\n\n At this point everything should be set up for you to use just like any\n other setup.py.\n\n From here on out, you are encouraged (but not required) to use the\n Makefile. Run ``make help`` to see all the options available to you.\n\n9) ``> make test``\n\n ``package`` provides a complete working test environment environment for\n your package. It even provides one test. This test is a FAILING test! It\n tests to see if your new Python module will import cleanly. But it won't.\n It will, in fact, raise an exception telling you that your module has not\n yet been implemented.\n\n10) Fix your module, write more tests, finish your module.\n\n11) ``> make upload``\n\n Ship your new package to PyPI!\n\nDevelopment Status\n------------------\n\nThis ``package`` package package package has been around for year now. Let's\ncall it Beta.\n\nI am using this software for all my projects on PyPI. I do most of my\ndevelopment on Ubuntu Linux using Python 2.6.6.\n\nI would love to talk to you about your experience in using this software. Feel\nfree to hunt me down on the net...\n\nAuthor\n------\n\nThis blasphemous atrocity was brought to you by Ingy dot Net. Yes, the same\nguy who ruined Perl. There was nothing there left there for him to pillage, so\nhe has moved on to your neighborhood. Be afraid.\n\nCopyright\n---------\n\n``package`` is Copyright (c) 2010, 2011, Ingy dot Net\n\n``package`` is licensed under the New BSD License. See the LICENSE file.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.pypi.org/pypi/package/", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "package", "package_url": "https://pypi.org/project/package/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/package/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://www.pypi.org/pypi/package/" }, "release_url": "https://pypi.org/project/package/0.1.1/", "requires_dist": null, "requires_python": null, "summary": "package is a package to package your package", "version": "0.1.1", "yanked": false, "yanked_reason": null }, "last_serial": 795956, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "96c17b771f98c6696500800d65c4b470", "sha256": "01eee19a56a936bd63222f0a3c531fcdba37b5ad1bd833b960d62fb960b4955e" }, "downloads": -1, "filename": "package-0.1.1.tar.gz", "has_sig": false, "md5_digest": "96c17b771f98c6696500800d65c4b470", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13575, "upload_time": "2011-04-24T07:58:57", "upload_time_iso_8601": "2011-04-24T07:58:57.818678Z", "url": "https://files.pythonhosted.org/packages/27/16/89ea913b3e70256b9abe4f222543553fcce8bafc7ff3774a8802a054e6b8/package-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "96c17b771f98c6696500800d65c4b470", "sha256": "01eee19a56a936bd63222f0a3c531fcdba37b5ad1bd833b960d62fb960b4955e" }, "downloads": -1, "filename": "package-0.1.1.tar.gz", "has_sig": false, "md5_digest": "96c17b771f98c6696500800d65c4b470", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13575, "upload_time": "2011-04-24T07:58:57", "upload_time_iso_8601": "2011-04-24T07:58:57.818678Z", "url": "https://files.pythonhosted.org/packages/27/16/89ea913b3e70256b9abe4f222543553fcce8bafc7ff3774a8802a054e6b8/package-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }