{ "info": { "author": "Jim Fulton", "author_email": "jim@zope.com", "bugtrack_url": null, "classifiers": [], "description": ".. contents::\n\nCreating Source Releases from Buildouts\n=======================================\n\nThe zc.sourcerelease package provides a script,\nbuildout-source-release, that generates a source release from a\nbuildout. The source release, is in the form of a gzipped tar archive\n[#zip_in_future]_. The generated source release can be used as the\nbasis for higher-level releases, such as RPMs or\nconfigure-make-make-install releases.\n\nThe source releases includes data that would normally be installed in\na download cache, such as Python distributions, or downloads performed\nby the zc.recipe.cmmi recipe. If a buildout uses a recipe that\ndownloads data but does not store the downloaded data in the buildout\ndownload cache, then the data will not be included in the source\nrelease and will have to be downloaded when the source release is\ninstalled.\n\nThe source release includes a Python install script. It is not\nexecutable and must be run with the desired Python, which must be the\nsame version of Python used when making the release. The install\nscript runs the buildout in place. This means that the source release\nwill need to be extracted to and the install script run in the final install\nlocation [#separate_install_step]_. While the install script can be\nused directly, it will more commonly be used by system-packaging\n(e.g. RPM) build scripts or make files.\n\nInstallation\n------------\n\nYou can install the buildout-source-release script with easy install::\n\n easy_install zc.sourcerelease\n\nor you can install it into a buildout using zc.buildout.\n\nUsage\n-----\n\nTo create a source release, simply run the buildout-source-release\nscript, passing a file URL or a subversion URL\n[#other_source_code_control_systems]_ and the name of the\nconfiguration file to use. File URLs are useful for testing and can\nbe used with non-subversion source-code control systems.\n\nLet's look at an example. We have a server with some distributions on\nit.\n\n >>> index_content = get(link_server)\n >>> if 'distribute' in index_content:\n ... lines = index_content.splitlines()\n ... distribute_line = lines.pop(1)\n ... lines.insert(4, distribute_line)\n ... index_content = '\\n'.join(lines)\n >>> print index_content,\n
\n index/