Merge branch 'customMesg' of git://github.com/jgraff/buildbot
[buildbot.git] / setup.py
blob1a744cd7e1a87dba63503aa6a3da20d6acdea9a2
1 #!/usr/bin/env python
3 # This software may be freely redistributed under the terms of the GNU
4 # general public license.
6 # You should have received a copy of the GNU General Public License
7 # along with this program; if not, write to the Free Software
8 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
9 """
10 Standard setup script.
11 """
13 import sys
14 import os
15 import re
17 from distutils.core import setup
18 from buildbot import version
20 # Path: twisted!cvstoys!buildbot
21 from distutils.command.install_data import install_data
24 class install_data_twisted(install_data):
25 """make sure data files are installed in package.
26 this is evil.
27 copied from Twisted/setup.py.
28 """
30 def finalize_options(self):
31 self.set_undefined_options('install',
32 ('install_lib', 'install_dir'),
34 install_data.finalize_options(self)
36 long_description="""
37 The BuildBot is a system to automate the compile/test cycle required by
38 most software projects to validate code changes. By automatically
39 rebuilding and testing the tree each time something has changed, build
40 problems are pinpointed quickly, before other developers are
41 inconvenienced by the failure. The guilty developer can be identified
42 and harassed without human intervention. By running the builds on a
43 variety of platforms, developers who do not have the facilities to test
44 their changes everywhere before checkin will at least know shortly
45 afterwards whether they have broken the build or not. Warning counts,
46 lint checks, image size, compile time, and other build parameters can
47 be tracked over time, are more visible, and are therefore easier to
48 improve.
49 """
51 scripts = ["bin/buildbot"]
52 if sys.platform == "win32":
53 scripts.append("contrib/windows/buildbot.bat")
54 scripts.append("contrib/windows/buildbot_service.py")
56 testmsgs = []
57 for f in os.listdir("buildbot/test/mail"):
58 if f.endswith("~"):
59 continue
60 if re.search(r'\.\d+$', f):
61 testmsgs.append("buildbot/test/mail/%s" % f)
63 setup_args = {
64 'name': "buildbot",
65 'version': version,
66 'description': "BuildBot build automation system",
67 'long_description': long_description,
68 'author': "Brian Warner",
69 'author_email': "warner-buildbot@lothar.com",
70 'url': "http://buildbot.net/",
71 'license': "GNU GPL",
72 # does this classifiers= mean that this can't be installed on 2.2/2.3?
73 'classifiers': [
74 'Development Status :: 4 - Beta',
75 'Environment :: No Input/Output (Daemon)',
76 'Environment :: Web Environment',
77 'Intended Audience :: Developers',
78 'License :: OSI Approved :: GNU General Public License (GPL)',
79 'Topic :: Software Development :: Build Tools',
80 'Topic :: Software Development :: Testing',
83 'packages': ["buildbot",
84 "buildbot.status", "buildbot.status.web",
85 "buildbot.changes",
86 "buildbot.steps",
87 "buildbot.process",
88 "buildbot.clients",
89 "buildbot.slave",
90 "buildbot.scripts",
91 "buildbot.test",
93 'data_files': [("buildbot", ["buildbot/buildbot.png"]),
94 ("buildbot/clients", ["buildbot/clients/debug.glade"]),
95 ("buildbot/status/web",
96 ["buildbot/status/web/classic.css",
97 "buildbot/status/web/index.html",
98 "buildbot/status/web/robots.txt",
99 ]),
100 ("buildbot/scripts", ["buildbot/scripts/sample.cfg"]),
101 ("buildbot/test/mail", testmsgs),
102 ("buildbot/test/subdir", ["buildbot/test/subdir/emit.py"]),
104 'scripts': scripts,
105 'cmdclass': {'install_data': install_data_twisted},
108 try:
109 # If setuptools is installed, then we'll add setuptools-specific arguments
110 # to the setup args.
111 import setuptools
112 except ImportError:
113 pass
114 else:
115 setup_args['install_requires'] = ['twisted >= 2.0.0']
116 entry_points={
117 'console_scripts': [
118 'buildbot = buildbot.scripts.runner:run'],
121 setup(**setup_args)
123 # Local Variables:
124 # fill-column: 71
125 # End: