# HG changeset patch # User osimons # Date 1248870283 0 # Node ID 5f3e66e5b451ae9f51a582941fc121a6700075f3 # Parent 4c3d43adaa483077a60d2a6ec2a5e35c373ed713 0.6dev: Running `python setup-slave.py install` now works for installing only the parts of Bitten needed by slave to run builds. Closes #383. diff --git a/MANIFEST-SLAVE.in b/MANIFEST-SLAVE.in --- a/MANIFEST-SLAVE.in +++ b/MANIFEST-SLAVE.in @@ -3,8 +3,6 @@ prune doc prune scripts exclude bitten/*.py -exclude bitten/build/*.py -exclude bitten/build/*.py exclude bitten/build/tests/*.py exclude bitten/report/*.py exclude bitten/report/tests/*.py @@ -14,9 +12,7 @@ exclude setup.py exclude MANIFEST.in include bitten/__init__.py -include bitten/build/__init__.py -include bitten/build/api.py -include bitten/build/config.py +include bitten/build/*.py include bitten/recipe.py include bitten/slave.py include bitten/tests/slave.py diff --git a/bitten/__init__.py b/bitten/__init__.py --- a/bitten/__init__.py +++ b/bitten/__init__.py @@ -11,5 +11,9 @@ __docformat__ = 'restructuredtext en' try: __version__ = __import__('pkg_resources').get_distribution('Bitten').version -except ImportError: - pass +except: + try: + __version__ = __import__('pkg_resources').get_distribution( + 'Bitten-Slave').version + except: + pass diff --git a/doc/install.txt b/doc/install.txt --- a/doc/install.txt +++ b/doc/install.txt @@ -34,6 +34,11 @@ $ python setup.py test +It is also possible to install only the build slave, installing only the +parts of Bitten that are needed by clients to run builds:: + + $ python setup-slave.py install + What's left to do now depends on whether you want to use the build master and web interface, or just the build slave. In the latter case, you're already diff --git a/setup-slave.py b/setup-slave.py --- a/setup-slave.py +++ b/setup-slave.py @@ -10,40 +10,46 @@ # you should have received as part of this distribution. The terms # are also available at http://bitten.edgewall.org/wiki/License. -from setuptools import setup +from setuptools import setup as setup_slave from setuptools.command import egg_info -NS = 'http://bitten.cmlenz.net/tools/' +from setup import recipe_commands, shared_args # TODO: there must be a way to pass this altered value in... egg_info.manifest_maker.template = "MANIFEST-SLAVE.in" -setup( - name = 'Bitten-Slave', - version = '0.6', - description = 'Continuous integration build slave for Trac', - long_description = \ -"""A slave for running builds and submitting them to Bitten, the continuous integration system for Trac""", - author = 'Edgewall Software', - author_email = 'info@edgewall.org', - license = 'BSD', - url = 'http://bitten.edgewall.org/', - download_url = 'http://bitten.edgewall.org/wiki/Download', - zip_safe = False, +if __name__ == '__main__': + setup_slave( + name = 'Bitten-Slave', + description = 'Continuous integration build slave for Trac', + long_description = \ + """A slave for running builds and submitting them to Bitten, the continuous integration system for Trac""", - py_modules = ["bitten.__init__", "bitten.slave", - "bitten.build.__init__", "bitten.build.api", "bitten.build.config", - "bitten.recipe", "bitten.tests.slave", - "bitten.util.__init__", "bitten.util.testrunner", "bitten.util.xmlio", - ], - test_suite = 'bitten.tests.slave', - entry_points = { - 'console_scripts': [ - 'bitten-slave = bitten.slave:main' - ], - 'distutils.commands': [ - 'unittest = bitten.util.testrunner:unittest' - ], - }, -) - + py_modules = ["bitten.__init__", + "bitten.build.__init__", + "bitten.build.api", + "bitten.build.config", + "bitten.build.ctools", + "bitten.build.hgtools", + "bitten.build.javatools", + "bitten.build.monotools", + "bitten.build.phptools", + "bitten.build.pythontools", + "bitten.build.shtools", + "bitten.build.svntools", + "bitten.build.xmltools", + "bitten.recipe", + "bitten.slave", + "bitten.util.__init__", + "bitten.util.testrunner", + "bitten.util.xmlio", + ], + entry_points = { + 'console_scripts': [ + 'bitten-slave = bitten.slave:main' + ], + 'bitten.recipe_commands': recipe_commands + }, + + **shared_args + ) diff --git a/setup.py b/setup.py --- a/setup.py +++ b/setup.py @@ -20,78 +20,84 @@ build_doc = test_doc = None NS = 'http://bitten.cmlenz.net/tools/' - -setup( - name = 'Bitten', - version = '0.6', - description = 'Continuous integration for Trac', - long_description = \ -"""A Trac plugin for collecting software metrics via continuous integration.""", - author = 'Edgewall Software', - author_email = 'info@edgewall.org', - license = 'BSD', - url = 'http://bitten.edgewall.org/', - download_url = 'http://bitten.edgewall.org/wiki/Download', - zip_safe = False, +recipe_commands = [ + NS + 'sh#exec = bitten.build.shtools:exec_', + NS + 'sh#pipe = bitten.build.shtools:pipe', + NS + 'c#configure = bitten.build.ctools:configure', + NS + 'c#autoreconf = bitten.build.ctools:autoreconf', + NS + 'c#cppunit = bitten.build.ctools:cppunit', + NS + 'c#cunit = bitten.build.ctools:cunit', + NS + 'c#gcov = bitten.build.ctools:gcov', + NS + 'c#make = bitten.build.ctools:make', + NS + 'mono#nunit = bitten.build.monotools:nunit', + NS + 'java#ant = bitten.build.javatools:ant', + NS + 'java#junit = bitten.build.javatools:junit', + NS + 'java#cobertura = bitten.build.javatools:cobertura', + NS + 'php#phing = bitten.build.phptools:phing', + NS + 'php#phpunit = bitten.build.phptools:phpunit', + NS + 'php#coverage = bitten.build.phptools:coverage', + NS + 'python#coverage = bitten.build.pythontools:coverage', + NS + 'python#distutils = bitten.build.pythontools:distutils', + NS + 'python#exec = bitten.build.pythontools:exec_', + NS + 'python#figleaf = bitten.build.pythontools:figleaf', + NS + 'python#pylint = bitten.build.pythontools:pylint', + NS + 'python#trace = bitten.build.pythontools:trace', + NS + 'python#unittest = bitten.build.pythontools:unittest', + NS + 'svn#checkout = bitten.build.svntools:checkout', + NS + 'svn#export = bitten.build.svntools:export', + NS + 'svn#update = bitten.build.svntools:update', + NS + 'hg#pull = bitten.build.hgtools:pull', + NS + 'xml#transform = bitten.build.xmltools:transform' + ] +shared_args = { + 'version': '0.6', + 'author': 'Edgewall Software', + 'author_email': 'info@edgewall.org', + 'license': 'BSD', + 'url':'http://bitten.edgewall.org/', + 'download_url': 'http://bitten.edgewall.org/wiki/Download', + 'zip_safe': False + } - packages = find_packages(exclude=['*.tests*']), - package_data = { - 'bitten': ['htdocs/*.*', - 'htdocs/charts_library/*.swf', - 'templates/*.html', - 'templates/*.txt'] - }, - test_suite = 'bitten.tests.suite', - tests_require = [ - 'figleaf', - ], - entry_points = { - 'console_scripts': [ - 'bitten-slave = bitten.slave:main' - ], - 'distutils.commands': [ - 'unittest = bitten.util.testrunner:unittest' +if __name__ == '__main__': + setup( + name = 'Bitten', + description = 'Continuous integration for Trac', + long_description = \ + """A Trac plugin for collecting software metrics via continuous integration.""", + + packages = find_packages(exclude=['*.tests*']), + package_data = { + 'bitten': ['htdocs/*.*', + 'htdocs/charts_library/*.swf', + 'templates/*.html', + 'templates/*.txt'] + }, + test_suite = 'bitten.tests.suite', + tests_require = [ + 'figleaf', ], - 'trac.plugins': [ - 'bitten.admin = bitten.admin', - 'bitten.main = bitten.main', - 'bitten.master = bitten.master', - 'bitten.web_ui = bitten.web_ui', - 'bitten.testing = bitten.report.testing', - 'bitten.coverage = bitten.report.coverage', - 'bitten.lint = bitten.report.lint', - 'bitten.notify = bitten.notify' - ], - 'bitten.recipe_commands': [ - NS + 'sh#exec = bitten.build.shtools:exec_', - NS + 'sh#pipe = bitten.build.shtools:pipe', - NS + 'c#configure = bitten.build.ctools:configure', - NS + 'c#autoreconf = bitten.build.ctools:autoreconf', - NS + 'c#cppunit = bitten.build.ctools:cppunit', - NS + 'c#cunit = bitten.build.ctools:cunit', - NS + 'c#gcov = bitten.build.ctools:gcov', - NS + 'c#make = bitten.build.ctools:make', - NS + 'mono#nunit = bitten.build.monotools:nunit', - NS + 'java#ant = bitten.build.javatools:ant', - NS + 'java#junit = bitten.build.javatools:junit', - NS + 'java#cobertura = bitten.build.javatools:cobertura', - NS + 'php#phing = bitten.build.phptools:phing', - NS + 'php#phpunit = bitten.build.phptools:phpunit', - NS + 'php#coverage = bitten.build.phptools:coverage', - NS + 'python#coverage = bitten.build.pythontools:coverage', - NS + 'python#distutils = bitten.build.pythontools:distutils', - NS + 'python#exec = bitten.build.pythontools:exec_', - NS + 'python#figleaf = bitten.build.pythontools:figleaf', - NS + 'python#pylint = bitten.build.pythontools:pylint', - NS + 'python#trace = bitten.build.pythontools:trace', - NS + 'python#unittest = bitten.build.pythontools:unittest', - NS + 'svn#checkout = bitten.build.svntools:checkout', - NS + 'svn#export = bitten.build.svntools:export', - NS + 'svn#update = bitten.build.svntools:update', - NS + 'hg#pull = bitten.build.hgtools:pull', - NS + 'xml#transform = bitten.build.xmltools:transform' - ] - }, + entry_points = { + 'console_scripts': [ + 'bitten-slave = bitten.slave:main' + ], + 'distutils.commands': [ + 'unittest = bitten.util.testrunner:unittest' + ], + 'trac.plugins': [ + 'bitten.admin = bitten.admin', + 'bitten.main = bitten.main', + 'bitten.master = bitten.master', + 'bitten.web_ui = bitten.web_ui', + 'bitten.testing = bitten.report.testing', + 'bitten.coverage = bitten.report.coverage', + 'bitten.lint = bitten.report.lint', + 'bitten.notify = bitten.notify' + ], + 'bitten.recipe_commands': recipe_commands + }, - cmdclass = {'build_doc': build_doc, 'test_doc': test_doc} -) + cmdclass = {'build_doc': build_doc, 'test_doc': test_doc}, + + **shared_args + )