{ "info": { "author": "Reinout van Rees", "author_email": "reinout@vanrees.org", "bugtrack_url": null, "classifiers": [], "description": "tags2sdists\n===========\n\nTags2sdists creates python sdists from tags into a structure that can serve as\na company-internal pypi (python package index).\n\n\nBasic operation\n---------------\n\nTags2sdists looks at two directories:\n\n- A source directory (\"CHECKOUTDIR\") with checkouts. Every checkout (svn trunk\n checkout, git/hg clone) is examined for tags according to that version\n control system.\n\n- A target directory (\"SDISTDIR\") where per-package directories are made with\n sdists named like ``PACKAGENAME-1.2.tar.gz`` in it.\n\nThose two directories are kept in sync by checking for packages/tags that are\navailable in the version control system but that are missing in the target\ndirectory. If missing, an \"sdist\" (.tar.gz source distribution) is generated\nand placed in the target directory.\n\n\nUsage\n-----\n\nTags2sdists provides the ``tags2sdists`` command::\n\n Usage: tags2sdists CHECKOUTDIR SDISTDIR\n CHECKOUTDIR: directory with checkouts\n SDISTDIR: directory with sdist package directories\n\n Options:\n -h, --help show this help message and exit\n -v, --verbose Show debug output\n -q, --quiet Show minimal output\n\n\nSetup\n-----\n\nInstalling tags2sdists itself is as simple as ``pip install tags2sdists`` or\n``easy_install tags2sdists`` or including it in your buildout in the regular\nmanner.\n\nNext you need the CHECKOUTDIR and SDISTDIR directories.\n\n**CHECKOUTDIR**: you need a directory with checkouts. So doing it by hand is\nfine. But when you use svn, a directory with ``svn:externals`` is probably\nhandiest. For everything else (and also for svn), `checkoutmanager\n`_ is the thing I'd use. Make a\nconfig file (``checkoutmanager.cfg``) looking like this::\n\n [internalprojects]\n vcs = git\n basedir = /srv/packages/var/checkouts/\n checkouts =\n git@github.com:lizardsystem/nensskel.git\n git@github.com:lizardsystem/lizard-ui.git\n git@github.com:lizardsystem/tags2sdists.git\n\nAnd set up a cron job that runs ``checkoutmanager\n--configfile=YOURCONFIGFILE``, it'll update the checkouts in the base dir you\nconfigured. (In that same cronjob, fire up ``tags2sdists`` afterwards).\n\n**SDISTDIR**: just a directory somewhere will do. You'll get a pypi-like\ndirectory structure in there.\n\nA structure like generated with tags2sdists is a perfect index for\neasy_install and buildout if you let apache host it. Only problem: you can\nonly have one index (note: pip apparently supports multiple indexes). You can\nsolve this problem by having apache redirect you to pypi when something is not\nfound.\n\nHere's an example apache config snippet::\n\n # Allow indexing\n Options +Indexes\n IndexOptions FancyIndexing VersionSort\n\n # Start of rewriterules to use our own var/private/* packages\n # when available and to redirect to pypi if not.\n RewriteEngine On\n # Use our robots.txt:\n RewriteRule ^/robots.txt - [L]\n # Use our apache's icons:\n RewriteRule ^/icons/.* - [L]\n # We want OUR index. Specified in a weird way as apache\n # searches in a weird way for index.htm index.html index.php etc.\n RewriteRule ^/index\\..* - [L]\n\n # Use our var/private/PROJECTNAME if available,\n # redirect to pypi otherwise:\n RewriteCond /path/on/server/var/private/$1 !-f\n RewriteCond /path/on/server/var/private/$1 !-d\n RewriteRule ^/([^/]+)/?$ http://pypi.python.org/pypi/$1/ [P,L]\n\n # Use our var/private/PROJECTNAME/project-0.1.tar.gz if available,\n # redirect to pypi otherwise:\n RewriteCond /path/on/server/var/private/$1 !-d\n RewriteRule ^/([^/]+)/([^/]+)$ http://pypi.python.org/pypi/$1/$2 [P,L]\n\n\nUsing the apache-served index\n-----------------------------\n\nYou can use such a custom apache-served index in two ways. Easy_install has a\n``-i`` option for passing along an index::\n\n $> easy_install -i http://packages.my.server/ zest.releaser\n\nIn buildout, you can set it like this::\n\n [buildout]\n index = http://packages.my.server/\n parts =\n ...\n\n\nDevelopment\n-----------\n\nTo run the tests, install ``tox`` globally and just run it.\n\nFor local testing, install it with virtualenv and pip::\n\n $ python3 -m venv .\n $ bin/pip install -e .\n\n\nCredits\n=======\n\n- `Reinout van Rees `_ started this package.\n\n\nChangelog of tags2sdists\n===================================================\n\n\n1.3 (2019-09-13)\n----------------\n\n- Updated setup (pytest, tox, travis-ci integration, etc).\n\n- Made tags2sdists python3 compatible (tox tests 2.7 and 3.7).\n\n\n1.2 (2015-05-26)\n----------------\n\n- Compensating for newer setuptools versions.\n\n\n1.1 (2013-07-12)\n----------------\n\n- New way of searching for missing tags: we leave old\n unneeded/wrong/renamed ones alone.\n\n- Removing tags with 'dev' in their name from the list of missing\n tags.\n\n\n1.0 (2013-01-15)\n----------------\n\n- Fixed the temp dir cleanup: under certain circumstances it left an\n empty directory.\n\n\n0.7.1 (2011-12-08)\n------------------\n\n- Switching back to the correct directory after 0.7's temp dir cleanup.\n\n\n0.7 (2011-12-08)\n----------------\n\n- Added more logging related to 0.6's corner case.\n\n- Cleaning up the temp dir after a run.\n\n\n0.6 (2011-12-07)\n----------------\n\n- Compensating for a corner case where a package was renamed.\n\n\n0.5 (2011-10-17)\n----------------\n\n- Fix for faulty setup.py's in checkout directories. An error in there would\n generate a directory named ``Traceback\\ (most\\ recent\\ call\\ last):`` in the\n sdist directory...\n\n\n0.4 (2011-10-12)\n----------------\n\n- Internally, the directories passed on the commandline are made\n absolute. Necessary as there's quite some ``os.chdir()`` going around.\n\n\n0.3 (2011-10-12)\n----------------\n\n- Added documentation.\n\n- Renamed script from make_sdists to tags2sdists.\n\n\n0.2 (2011-10-11)\n----------------\n\n- Added script that combines the sdist tarball creation with the target\n directory parsing and that generates all the necessary tarballs.\n\n- Added creation (via zest.releaser) of a single sdist tarball.\n\n\n0.1 (2011-10-10)\n----------------\n\n- Added parsing of a target directory with sdists.\n\n- Initial library skeleton created by nensskel.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/lizardsystem/tags2sdists/", "keywords": "", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "tags2sdists", "package_url": "https://pypi.org/project/tags2sdists/", "platform": "", "project_url": "https://pypi.org/project/tags2sdists/", "project_urls": { "Homepage": "https://github.com/lizardsystem/tags2sdists/" }, "release_url": "https://pypi.org/project/tags2sdists/1.3/", "requires_dist": null, "requires_python": "", "summary": "Create python sdists from tags", "version": "1.3" }, "last_serial": 5825618, "releases": { "0.3": [ { "comment_text": "", "digests": { "md5": "e9196e1679e97a3a373b90e2f5a909e3", "sha256": "1a1894797f7c5bdfd8f269054b8fec5ea610776aa60af6261cc32ff1886b4757" }, "downloads": -1, "filename": "tags2sdists-0.3.tar.gz", "has_sig": false, "md5_digest": "e9196e1679e97a3a373b90e2f5a909e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25297, "upload_time": "2011-10-12T15:35:42", "url": "https://files.pythonhosted.org/packages/71/8d/b8af1a6b412b0521bf61415c77fb2030ab1bb05970ee8193db806b940d93/tags2sdists-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "130840830a412eee495aba7d86f8c343", "sha256": "cfbf7e8498e94c792705a541115621e9704aed031adcfa49d42f70ec7b994b46" }, "downloads": -1, "filename": "tags2sdists-0.4.tar.gz", "has_sig": false, "md5_digest": "130840830a412eee495aba7d86f8c343", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25461, "upload_time": "2011-10-12T16:06:53", "url": "https://files.pythonhosted.org/packages/f0/79/4bbad3d6e5a2d4a99924debf898a4432e04ea37279f9cb82da3d189c6ce2/tags2sdists-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "22f4cb41fe37c0abe42f07bfc0e70b96", "sha256": "88543f697094ee7167ad56cd17a7707ee588d86b8b75254fae12b1c2154b23eb" }, "downloads": -1, "filename": "tags2sdists-0.5.tar.gz", "has_sig": false, "md5_digest": "22f4cb41fe37c0abe42f07bfc0e70b96", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25684, "upload_time": "2011-10-17T12:41:29", "url": "https://files.pythonhosted.org/packages/ba/f0/ea9adff0dde9cbd18f20bcf1a6f9182213c04a0ef6be17afc3b46c2976b3/tags2sdists-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "32ce8292de84899e6f916665f128328b", "sha256": "9cdd02ffc7fec402fe67e1fa656ebc14617125a597badc1763ef437e1be7a531" }, "downloads": -1, "filename": "tags2sdists-0.6.tar.gz", "has_sig": false, "md5_digest": "32ce8292de84899e6f916665f128328b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25811, "upload_time": "2011-12-07T14:24:33", "url": "https://files.pythonhosted.org/packages/69/a9/d9a136090ddcc8d6004dea172abf7a8342f4ac0c5b8efb5aaaaa416c5e0e/tags2sdists-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "26ff7b686eae7b02894dd2444dc53b4f", "sha256": "cc534e3a2eb73c797d2fcfb3e6a6b3214c0b52ba42bbc4d0e24644be64185a29" }, "downloads": -1, "filename": "tags2sdists-0.7.tar.gz", "has_sig": false, "md5_digest": "26ff7b686eae7b02894dd2444dc53b4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25945, "upload_time": "2011-12-08T11:25:04", "url": "https://files.pythonhosted.org/packages/b2/b5/c7bc0b126aaaa049da9e2be7512beba52f82d0fa01b46cc0f5cc818c110f/tags2sdists-0.7.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "4ff712268cbcb608d28957f9df19ad57", "sha256": "02c67d4bbc1ae5f738754e9f5e0047693c685419308dea5502626608d9b03ee8" }, "downloads": -1, "filename": "tags2sdists-0.7.1.tar.gz", "has_sig": false, "md5_digest": "4ff712268cbcb608d28957f9df19ad57", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26010, "upload_time": "2011-12-08T11:54:02", "url": "https://files.pythonhosted.org/packages/8e/4d/d25512f2d53cababc0efe8787abaf75cea97e867ac2410f3dc182bcff661/tags2sdists-0.7.1.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "b5af1301cf185566b8089a1f9b231bfe", "sha256": "b3ae751d91d7479bb71d1ad401771d91b98adf4847c47947b7cb11ecf05c3ff0" }, "downloads": -1, "filename": "tags2sdists-1.0.zip", "has_sig": false, "md5_digest": "b5af1301cf185566b8089a1f9b231bfe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30104, "upload_time": "2013-01-15T15:14:52", "url": "https://files.pythonhosted.org/packages/1a/53/7d6de929eca26bb8e67cfcd2c8b76a5318c9c0badad157160cea41c296c2/tags2sdists-1.0.zip" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "43ecd3a05112d35ecc060dbaf4b47605", "sha256": "507ae33245eaf7e9afa6b781f4849974e41b499be7fc088797e05de3ec12b56a" }, "downloads": -1, "filename": "tags2sdists-1.1.zip", "has_sig": false, "md5_digest": "43ecd3a05112d35ecc060dbaf4b47605", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30593, "upload_time": "2013-07-12T14:12:26", "url": "https://files.pythonhosted.org/packages/01/dc/de1aeb5847013ab32e943ca5f37e908bf5ad042db017e0f327d260a8bc3b/tags2sdists-1.1.zip" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "ba94aaf644ab9616df96d1af2df90afa", "sha256": "2dda945382403fe93dd7fd304f50cabb23baf647e74acaa9a53aa32f014042c4" }, "downloads": -1, "filename": "tags2sdists-1.2.tar.gz", "has_sig": false, "md5_digest": "ba94aaf644ab9616df96d1af2df90afa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23412, "upload_time": "2015-05-26T12:56:22", "url": "https://files.pythonhosted.org/packages/21/0e/242dc39b74947a4f0909ad2af4a84b8d723168c56fb18ba61dcbb7db2067/tags2sdists-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "ed4abe69c6f02598f3d3b89cee20107a", "sha256": "7fd9a41c6d96051a24d337d8277131e45fb9b814e4afdc2ec4bb96d6b0fc09f6" }, "downloads": -1, "filename": "tags2sdists-1.3.tar.gz", "has_sig": false, "md5_digest": "ed4abe69c6f02598f3d3b89cee20107a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23803, "upload_time": "2019-09-13T13:32:35", "url": "https://files.pythonhosted.org/packages/c8/c5/6b9b35432f201280891764209c88ab54ccce8eaedd25faf815a72c816501/tags2sdists-1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ed4abe69c6f02598f3d3b89cee20107a", "sha256": "7fd9a41c6d96051a24d337d8277131e45fb9b814e4afdc2ec4bb96d6b0fc09f6" }, "downloads": -1, "filename": "tags2sdists-1.3.tar.gz", "has_sig": false, "md5_digest": "ed4abe69c6f02598f3d3b89cee20107a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23803, "upload_time": "2019-09-13T13:32:35", "url": "https://files.pythonhosted.org/packages/c8/c5/6b9b35432f201280891764209c88ab54ccce8eaedd25faf815a72c816501/tags2sdists-1.3.tar.gz" } ] }