{ "info": { "author": "Mustapha Benali", "author_email": "mustapha@headnet.dk", "bugtrack_url": null, "classifiers": [ "Framework :: Buildout", "Intended Audience :: Developers", "Topic :: Software Development :: Build Tools", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "buildout.dumppickedversions\n===========================\n\nQ: What is a buildout extension ?\n\nA: http://pypi.python.org/pypi/zc.buildout#extensions\n\nThe problem\n-----------\n\nWhen using a zc.buildout based deployment system you want to be able to \nreproduce the same setup with the same set of egg versions one month later.\nWithout pinning all eggs the task is impossible.\n\n\nSolution\n--------\n\n``buildout.dumppickedversions`` is a buildout extension that does just that. It\ncan print or generate a versions.cfg file with all not pinned eggs.\n\nIt adds also a comment before each egg picked by zc.buildout as requirment for \nother eggs containing the list of eggs that required it.\n\n``buildout.dumppickedversions`` requires zc.buildout 1.5 or later.\n\n\nbuildout.dumppickedversions options\n-----------------------------------\n\ndump-picked-versions-file\n A file name you want ``buildout.dumppickedversions`` to write to.\n If not given ``buildout.dumppickedversions`` will dump the versions to the \n screen.\n\noverwrite-picked-versions-file\n If set to ``true``, ``buildout.dumppickedversions`` will overwrite the file \n defined in ``dump-picked-versions-file`` if it exists. Defaults to True.\n\n\nDetailed Documentation\n======================\n\n\nLet's create an egg to use it in our tests::\n\n >>> mkdir('myegg')\n >>> write('myegg', 'setup.py',\n ... '''\n ... from setuptools import setup\n ... setup(name='myegg', version='1.0',)\n ... ''')\n >>> write('myegg', 'README', '')\n >>> print system(buildout+' setup myegg bdist_egg'), # doctest: +ELLIPSIS\n Running setup script 'myegg/setup.py'.\n ...\n\nNow let's create a buildout to install the egg and to use \nbuildout.dumppickedversions::\n\n >>> write('buildout.cfg',\n ... '''\n ... [buildout]\n ... extensions = buildout.dumppickedversions\n ... parts = foo\n ... find-links = %s\n ... index = http://pypi.python.org/simple\n ... [foo]\n ... recipe = zc.recipe.egg\n ... eggs = myegg\n ... ''' % join('myegg', 'dist'))\n\nRunning the buildout will print information about picked versions::\n\n >>> print system(buildout), # doctest: +ELLIPSIS\n Getting distribution for 'buildout.dumppickedversions'.\n ...\n *************** PICKED VERSIONS ****************\n [versions]\n myegg = N.N\n setuptools = N.N\n zc.buildout = N.N\n zc.recipe.egg = N.N\n \n *************** /PICKED VERSIONS ***************\n\nTo dump picked versions to a file, we just add an ``dump-picked-versions-file`` \noption and give a file name::\n \n >>> write('buildout.cfg',\n ... '''\n ... [buildout]\n ... extensions = buildout.dumppickedversions\n ... dump-picked-versions-file = versions.cfg\n ... parts = foo\n ... find-links = \n ... %s\n ... index = http://pypi.python.org/simple\n ... [foo]\n ... recipe = zc.recipe.egg\n ... eggs = \n ... myegg \n ... ''' % join('myegg', 'dist'))\n \n >>> print system(buildout), # doctest: +ELLIPSIS\n Uninstalling foo.\n Installing foo.\n *********************************************\n Writing picked versions to versions.cfg\n *********************************************\n\nAnd here is the content of the file versions.cfg::\n \n >>> cat('versions.cfg')\n [versions]\n myegg = N.N\n setuptools = N.N\n zc.buildout = N.N\n zc.recipe.egg = N.N\n \n\nNext time we run the buildout the file will be overwritten::\n\n >>> print system(buildout), # doctest: +ELLIPSIS\n Updating foo.\n *********************************************\n Overwriting versions.cfg\n *********************************************\n \nWhen we don't want to overwrite the file we just add an \n``overwrite-picked-versions-file`` and set it to false::\n\n >>> write('buildout.cfg',\n ... '''\n ... [buildout]\n ... extensions = buildout.dumppickedversions\n ... dump-picked-versions-file = versions.cfg\n ... overwrite-picked-versions-file = false\n ... parts = foo\n ... find-links = \n ... %s\n ... index = http://pypi.python.org/simple\n ... [foo]\n ... recipe = zc.recipe.egg\n ... eggs = \n ... myegg \n ... ''' % join('myegg', 'dist'))\n \n >>> print system(buildout), # doctest: +ELLIPSIS\n Updating foo.\n *********************************************\n Skipped: File versions.cfg already exists.\n *********************************************\n \nIf an eggA is installed as requirment for other eggs, you will get a comment\nline just before eggA with the list of eggs that required it.\n\nLet's show an example. We will install zope.component::\n\n >>> write('buildout.cfg',\n ... '''\n ... [buildout]\n ... extensions = buildout.dumppickedversions\n ... dump-picked-versions-file = versions.cfg\n ... parts = foo\n ... index = http://pypi.python.org/simple\n ... [foo]\n ... recipe = zc.recipe.egg\n ... eggs = zope.component \n ... ''')\n \n >>> print system(buildout), # doctest: +ELLIPSIS\n Uninstalling foo.\n Installing foo.\n Getting distribution for 'zope.component'.\n ...\n *********************************************\n Overwriting versions.cfg\n *********************************************\n\nand let's see the content of the versions.cfg file::\n\n >>> cat('versions.cfg')\n [versions]\n zc.buildout = N.N\n zc.recipe.egg = N.N\n zope.component = N.N\n zope.interface = N.N\n \n #Required by:\n #zope.event N.N\n #zope.interface N.N\n #zope.component N.N\n setuptools = N.N\n \n #Required by:\n #zope.component N.N\n zope.event = N.N\n\n\nChange history\n==============\n\n0.5 (2012-01-23)\n----------------\n\n- Performance optimization, avoid sorting the working set and\n requirements when it won't be logged. Ported from zc.buildout:\n http://svn.zope.org/zc.buildout/trunk?rev=124059&view=rev\n [rossp] \n\n0.4 (2009-05-03)\n----------------\n\n- Removed duplicated comment lines [mustapha]\n\n0.3 (2009-05-03)\n----------------\n\n- Added comments in the generated versions file about what eggs\n required the picked egg if any. [mustapha]\n\n0.2 (2009-03-15)\n----------------\n\n- Removed the buildout header from the dumped file [mustapha]\n\n- Added overwrite-picked-versions-file option [mustapha]\n\n0.1 (2009-02-07)\n----------------\n\n- Created recipe with ZopeSkel.\n [mustapha]\n\nContributors\n============\n\n- Mustapha Benali, Author", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://svn.plone.org/svn/collective/buildout/buildout.dumppickedversions", "keywords": "buildout extension dump picked versions", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "buildout.dumppickedversions", "package_url": "https://pypi.org/project/buildout.dumppickedversions/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/buildout.dumppickedversions/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://svn.plone.org/svn/collective/buildout/buildout.dumppickedversions" }, "release_url": "https://pypi.org/project/buildout.dumppickedversions/0.5/", "requires_dist": null, "requires_python": null, "summary": "Dump buildout picked versions.", "version": "0.5" }, "last_serial": 845316, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "08de486cf884b498562516cd1ab28033", "sha256": "25dd319108e51d27f15509e7d22f606d22ee6a0ef47a4e41f56277dc2f09d561" }, "downloads": -1, "filename": "buildout.dumppickedversions-0.1.tar.gz", "has_sig": true, "md5_digest": "08de486cf884b498562516cd1ab28033", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5420, "upload_time": "2009-02-07T16:18:26", "url": "https://files.pythonhosted.org/packages/e5/71/5b2c2b1f1ac40069a8ecfd4eaa04ad5e04b593375ade48f46fd5b81a6264/buildout.dumppickedversions-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "a73dc56a6079f9b04a7e24a026d72e69", "sha256": "c7acfd41f3a33a59aa68aae61577d9f72d9c6dfc746b6227174f5f0d4750f5a1" }, "downloads": -1, "filename": "buildout.dumppickedversions-0.2.tar.gz", "has_sig": true, "md5_digest": "a73dc56a6079f9b04a7e24a026d72e69", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5758, "upload_time": "2009-03-15T11:01:20", "url": "https://files.pythonhosted.org/packages/7f/d4/1f77d32e3320d91a1c0d4630ce5ed4acad1e5de5ae8841f5b291da88608e/buildout.dumppickedversions-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "83c96c5aae6987c946620048ebe87fdc", "sha256": "63a48ed3d0349d9036c6da01a909ff0baf89a6ff7fe921d0d0d378e81a31e17d" }, "downloads": -1, "filename": "buildout.dumppickedversions-0.3.tar.gz", "has_sig": true, "md5_digest": "83c96c5aae6987c946620048ebe87fdc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6362, "upload_time": "2009-05-03T17:20:14", "url": "https://files.pythonhosted.org/packages/c2/85/870072cbb9f85507643581877ecb470804a3a03d945a3e6112fcc0759a53/buildout.dumppickedversions-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "b66225436dc94542f898c37d044b83fd", "sha256": "fd1ea44595cc307992598e692b3d1a002767d4aa873a47a990e3e1f6763318ce" }, "downloads": -1, "filename": "buildout.dumppickedversions-0.4.tar.gz", "has_sig": true, "md5_digest": "b66225436dc94542f898c37d044b83fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6405, "upload_time": "2009-05-03T17:47:21", "url": "https://files.pythonhosted.org/packages/f9/04/c24d3ae36e6455a3489cad800aaa17a544c96f0b208fa23396c632dff334/buildout.dumppickedversions-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "e81cffff329aaaaf8dd0d1c6bd63c8b0", "sha256": "5afaa6d9aabd6d69de935f99288d526d77704b847cfd56c4a29fcb9b99ee6c95" }, "downloads": -1, "filename": "buildout.dumppickedversions-0.5.tar.gz", "has_sig": false, "md5_digest": "e81cffff329aaaaf8dd0d1c6bd63c8b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6710, "upload_time": "2012-01-23T20:57:53", "url": "https://files.pythonhosted.org/packages/96/64/8c10f0fd16a7769396740a03b2587fd5f74dc44b8a5b416b99d3fa7c39f1/buildout.dumppickedversions-0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e81cffff329aaaaf8dd0d1c6bd63c8b0", "sha256": "5afaa6d9aabd6d69de935f99288d526d77704b847cfd56c4a29fcb9b99ee6c95" }, "downloads": -1, "filename": "buildout.dumppickedversions-0.5.tar.gz", "has_sig": false, "md5_digest": "e81cffff329aaaaf8dd0d1c6bd63c8b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6710, "upload_time": "2012-01-23T20:57:53", "url": "https://files.pythonhosted.org/packages/96/64/8c10f0fd16a7769396740a03b2587fd5f74dc44b8a5b416b99d3fa7c39f1/buildout.dumppickedversions-0.5.tar.gz" } ] }