##// END OF EJS Templates
setup:added missing py-gfm
marcink -
r322:6559f8bf default
parent child Browse files
Show More
@@ -1,247 +1,248 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2
2
3 # Import early to make sure things are patched up properly
3 # Import early to make sure things are patched up properly
4 from setuptools import setup, find_packages
4 from setuptools import setup, find_packages
5
5
6 import os
6 import os
7 import sys
7 import sys
8 import platform
8 import platform
9
9
10 if sys.version_info < (2, 7):
10 if sys.version_info < (2, 7):
11 raise Exception('RhodeCode requires Python 2.7 or later')
11 raise Exception('RhodeCode requires Python 2.7 or later')
12
12
13
13
14 here = os.path.abspath(os.path.dirname(__file__))
14 here = os.path.abspath(os.path.dirname(__file__))
15
15
16
16
17 def _get_meta_var(name, data, callback_handler=None):
17 def _get_meta_var(name, data, callback_handler=None):
18 import re
18 import re
19 matches = re.compile(r'(?:%s)\s*=\s*(.*)' % name).search(data)
19 matches = re.compile(r'(?:%s)\s*=\s*(.*)' % name).search(data)
20 if matches:
20 if matches:
21 if not callable(callback_handler):
21 if not callable(callback_handler):
22 callback_handler = lambda v: v
22 callback_handler = lambda v: v
23
23
24 return callback_handler(eval(matches.groups()[0]))
24 return callback_handler(eval(matches.groups()[0]))
25
25
26 _meta = open(os.path.join(here, 'rhodecode', '__init__.py'), 'rb')
26 _meta = open(os.path.join(here, 'rhodecode', '__init__.py'), 'rb')
27 _metadata = _meta.read()
27 _metadata = _meta.read()
28 _meta.close()
28 _meta.close()
29
29
30 callback = lambda V: ('.'.join(map(str, V[:3])) + '.'.join(V[3:]))
30 callback = lambda V: ('.'.join(map(str, V[:3])) + '.'.join(V[3:]))
31 __version__ = open(os.path.join('rhodecode', 'VERSION')).read().strip()
31 __version__ = open(os.path.join('rhodecode', 'VERSION')).read().strip()
32 __license__ = _get_meta_var('__license__', _metadata)
32 __license__ = _get_meta_var('__license__', _metadata)
33 __author__ = _get_meta_var('__author__', _metadata)
33 __author__ = _get_meta_var('__author__', _metadata)
34 __url__ = _get_meta_var('__url__', _metadata)
34 __url__ = _get_meta_var('__url__', _metadata)
35 # defines current platform
35 # defines current platform
36 __platform__ = platform.system()
36 __platform__ = platform.system()
37
37
38 # Cygwin has different platform identifiers, but they all contain the
38 # Cygwin has different platform identifiers, but they all contain the
39 # term "CYGWIN"
39 # term "CYGWIN"
40 is_windows = __platform__ == 'Windows' or 'CYGWIN' in __platform__
40 is_windows = __platform__ == 'Windows' or 'CYGWIN' in __platform__
41
41
42 requirements = [
42 requirements = [
43 'Babel',
43 'Babel',
44 'Beaker',
44 'Beaker',
45 'FormEncode',
45 'FormEncode',
46 'Mako',
46 'Mako',
47 'Markdown',
47 'Markdown',
48 'MarkupSafe',
48 'MarkupSafe',
49 'MySQL-python',
49 'MySQL-python',
50 'Paste',
50 'Paste',
51 'PasteDeploy',
51 'PasteDeploy',
52 'PasteScript',
52 'PasteScript',
53 'Pygments',
53 'Pygments',
54 'Pylons',
54 'Pylons',
55 'Pyro4',
55 'Pyro4',
56 'Routes',
56 'Routes',
57 'SQLAlchemy',
57 'SQLAlchemy',
58 'Tempita',
58 'Tempita',
59 'URLObject',
59 'URLObject',
60 'WebError',
60 'WebError',
61 'WebHelpers',
61 'WebHelpers',
62 'WebHelpers2',
62 'WebHelpers2',
63 'WebOb',
63 'WebOb',
64 'WebTest',
64 'WebTest',
65 'Whoosh',
65 'Whoosh',
66 'alembic',
66 'alembic',
67 'amqplib',
67 'amqplib',
68 'anyjson',
68 'anyjson',
69 'appenlight-client',
69 'appenlight-client',
70 'authomatic',
70 'authomatic',
71 'backport_ipaddress',
71 'backport_ipaddress',
72 'celery',
72 'celery',
73 'colander',
73 'colander',
74 'decorator',
74 'decorator',
75 'docutils',
75 'docutils',
76 'gunicorn',
76 'gunicorn',
77 'infrae.cache',
77 'infrae.cache',
78 'ipython',
78 'ipython',
79 'iso8601',
79 'iso8601',
80 'kombu',
80 'kombu',
81 'msgpack-python',
81 'msgpack-python',
82 'packaging',
82 'packaging',
83 'psycopg2',
83 'psycopg2',
84 'py-gfm',
84 'pycrypto',
85 'pycrypto',
85 'pycurl',
86 'pycurl',
86 'pyparsing',
87 'pyparsing',
87 'pyramid',
88 'pyramid',
88 'pyramid-debugtoolbar',
89 'pyramid-debugtoolbar',
89 'pyramid-mako',
90 'pyramid-mako',
90 'pyramid-beaker',
91 'pyramid-beaker',
91 'pysqlite',
92 'pysqlite',
92 'python-dateutil',
93 'python-dateutil',
93 'python-ldap',
94 'python-ldap',
94 'python-memcached',
95 'python-memcached',
95 'python-pam',
96 'python-pam',
96 'recaptcha-client',
97 'recaptcha-client',
97 'repoze.lru',
98 'repoze.lru',
98 'requests',
99 'requests',
99 'simplejson',
100 'simplejson',
100 'waitress',
101 'waitress',
101 'zope.cachedescriptors',
102 'zope.cachedescriptors',
102 'dogpile.cache',
103 'dogpile.cache',
103 'dogpile.core'
104 'dogpile.core'
104 ]
105 ]
105
106
106 if is_windows:
107 if is_windows:
107 pass
108 pass
108 else:
109 else:
109 requirements.append('psutil')
110 requirements.append('psutil')
110 requirements.append('py-bcrypt')
111 requirements.append('py-bcrypt')
111
112
112 test_requirements = [
113 test_requirements = [
113 'WebTest',
114 'WebTest',
114 'configobj',
115 'configobj',
115 'cssselect',
116 'cssselect',
116 'flake8',
117 'flake8',
117 'lxml',
118 'lxml',
118 'mock',
119 'mock',
119 'pytest',
120 'pytest',
120 'pytest-cov',
121 'pytest-cov',
121 'pytest-runner',
122 'pytest-runner',
122 ]
123 ]
123
124
124 setup_requirements = [
125 setup_requirements = [
125 'PasteScript',
126 'PasteScript',
126 'pytest-runner',
127 'pytest-runner',
127 ]
128 ]
128
129
129 dependency_links = [
130 dependency_links = [
130 ]
131 ]
131
132
132 classifiers = [
133 classifiers = [
133 'Development Status :: 6 - Mature',
134 'Development Status :: 6 - Mature',
134 'Environment :: Web Environment',
135 'Environment :: Web Environment',
135 'Framework :: Pylons',
136 'Framework :: Pylons',
136 'Intended Audience :: Developers',
137 'Intended Audience :: Developers',
137 'Operating System :: OS Independent',
138 'Operating System :: OS Independent',
138 'Programming Language :: Python',
139 'Programming Language :: Python',
139 'Programming Language :: Python :: 2.7',
140 'Programming Language :: Python :: 2.7',
140 ]
141 ]
141
142
142
143
143 # additional files from project that goes somewhere in the filesystem
144 # additional files from project that goes somewhere in the filesystem
144 # relative to sys.prefix
145 # relative to sys.prefix
145 data_files = []
146 data_files = []
146
147
147 # additional files that goes into package itself
148 # additional files that goes into package itself
148 package_data = {'rhodecode': ['i18n/*/LC_MESSAGES/*.mo', ], }
149 package_data = {'rhodecode': ['i18n/*/LC_MESSAGES/*.mo', ], }
149
150
150 description = ('RhodeCode is a fast and powerful management tool '
151 description = ('RhodeCode is a fast and powerful management tool '
151 'for Mercurial and GIT with a built in push/pull server, '
152 'for Mercurial and GIT with a built in push/pull server, '
152 'full text search and code-review.')
153 'full text search and code-review.')
153
154
154 keywords = ' '.join([
155 keywords = ' '.join([
155 'rhodecode', 'rhodiumcode', 'mercurial', 'git', 'code review',
156 'rhodecode', 'rhodiumcode', 'mercurial', 'git', 'code review',
156 'repo groups', 'ldap', 'repository management', 'hgweb replacement',
157 'repo groups', 'ldap', 'repository management', 'hgweb replacement',
157 'hgwebdir', 'gitweb replacement', 'serving hgweb',
158 'hgwebdir', 'gitweb replacement', 'serving hgweb',
158 ])
159 ])
159
160
160 # long description
161 # long description
161 README_FILE = 'README.rst'
162 README_FILE = 'README.rst'
162 CHANGELOG_FILE = 'CHANGES.rst'
163 CHANGELOG_FILE = 'CHANGES.rst'
163 try:
164 try:
164 long_description = open(README_FILE).read() + '\n\n' + \
165 long_description = open(README_FILE).read() + '\n\n' + \
165 open(CHANGELOG_FILE).read()
166 open(CHANGELOG_FILE).read()
166
167
167 except IOError, err:
168 except IOError, err:
168 sys.stderr.write(
169 sys.stderr.write(
169 '[WARNING] Cannot find file specified as long_description (%s)\n or '
170 '[WARNING] Cannot find file specified as long_description (%s)\n or '
170 'changelog (%s) skipping that file' % (README_FILE, CHANGELOG_FILE)
171 'changelog (%s) skipping that file' % (README_FILE, CHANGELOG_FILE)
171 )
172 )
172 long_description = description
173 long_description = description
173
174
174 # packages
175 # packages
175 packages = find_packages()
176 packages = find_packages()
176
177
177 paster_commands = [
178 paster_commands = [
178 'make-config=rhodecode.lib.paster_commands.make_config:Command',
179 'make-config=rhodecode.lib.paster_commands.make_config:Command',
179 'setup-rhodecode=rhodecode.lib.paster_commands.setup_rhodecode:Command',
180 'setup-rhodecode=rhodecode.lib.paster_commands.setup_rhodecode:Command',
180 'update-repoinfo=rhodecode.lib.paster_commands.update_repoinfo:Command',
181 'update-repoinfo=rhodecode.lib.paster_commands.update_repoinfo:Command',
181 'cache-keys=rhodecode.lib.paster_commands.cache_keys:Command',
182 'cache-keys=rhodecode.lib.paster_commands.cache_keys:Command',
182 'ishell=rhodecode.lib.paster_commands.ishell:Command',
183 'ishell=rhodecode.lib.paster_commands.ishell:Command',
183 'upgrade-db=rhodecode.lib.dbmigrate:UpgradeDb',
184 'upgrade-db=rhodecode.lib.dbmigrate:UpgradeDb',
184 'celeryd=rhodecode.lib.celerypylons.commands:CeleryDaemonCommand',
185 'celeryd=rhodecode.lib.celerypylons.commands:CeleryDaemonCommand',
185 ]
186 ]
186
187
187 setup(
188 setup(
188 name='rhodecode-enterprise-ce',
189 name='rhodecode-enterprise-ce',
189 version=__version__,
190 version=__version__,
190 description=description,
191 description=description,
191 long_description=long_description,
192 long_description=long_description,
192 keywords=keywords,
193 keywords=keywords,
193 license=__license__,
194 license=__license__,
194 author=__author__,
195 author=__author__,
195 author_email='marcin@rhodecode.com',
196 author_email='marcin@rhodecode.com',
196 dependency_links=dependency_links,
197 dependency_links=dependency_links,
197 url=__url__,
198 url=__url__,
198 install_requires=requirements,
199 install_requires=requirements,
199 tests_require=test_requirements,
200 tests_require=test_requirements,
200 classifiers=classifiers,
201 classifiers=classifiers,
201 setup_requires=setup_requirements,
202 setup_requires=setup_requirements,
202 data_files=data_files,
203 data_files=data_files,
203 packages=packages,
204 packages=packages,
204 include_package_data=True,
205 include_package_data=True,
205 package_data=package_data,
206 package_data=package_data,
206 message_extractors={
207 message_extractors={
207 'rhodecode': [
208 'rhodecode': [
208 ('**.py', 'python', None),
209 ('**.py', 'python', None),
209 ('templates/**.mako', 'mako', {'input_encoding': 'utf-8'}),
210 ('templates/**.mako', 'mako', {'input_encoding': 'utf-8'}),
210 ('templates/**.html', 'mako', {'input_encoding': 'utf-8'}),
211 ('templates/**.html', 'mako', {'input_encoding': 'utf-8'}),
211 ('public/**', 'ignore', None),
212 ('public/**', 'ignore', None),
212 ]
213 ]
213 },
214 },
214 zip_safe=False,
215 zip_safe=False,
215 paster_plugins=['PasteScript', 'Pylons'],
216 paster_plugins=['PasteScript', 'Pylons'],
216 entry_points={
217 entry_points={
217 'enterprise.plugins1': [
218 'enterprise.plugins1': [
218 'crowd=rhodecode.authentication.plugins.auth_crowd:plugin_factory',
219 'crowd=rhodecode.authentication.plugins.auth_crowd:plugin_factory',
219 'headers=rhodecode.authentication.plugins.auth_headers:plugin_factory',
220 'headers=rhodecode.authentication.plugins.auth_headers:plugin_factory',
220 'jasig_cas=rhodecode.authentication.plugins.auth_jasig_cas:plugin_factory',
221 'jasig_cas=rhodecode.authentication.plugins.auth_jasig_cas:plugin_factory',
221 'ldap=rhodecode.authentication.plugins.auth_ldap:plugin_factory',
222 'ldap=rhodecode.authentication.plugins.auth_ldap:plugin_factory',
222 'pam=rhodecode.authentication.plugins.auth_pam:plugin_factory',
223 'pam=rhodecode.authentication.plugins.auth_pam:plugin_factory',
223 'rhodecode=rhodecode.authentication.plugins.auth_rhodecode:plugin_factory',
224 'rhodecode=rhodecode.authentication.plugins.auth_rhodecode:plugin_factory',
224 'token=rhodecode.authentication.plugins.auth_token:plugin_factory',
225 'token=rhodecode.authentication.plugins.auth_token:plugin_factory',
225 ],
226 ],
226 'paste.app_factory': [
227 'paste.app_factory': [
227 'main=rhodecode.config.middleware:make_pyramid_app',
228 'main=rhodecode.config.middleware:make_pyramid_app',
228 'pylons=rhodecode.config.middleware:make_app',
229 'pylons=rhodecode.config.middleware:make_app',
229 ],
230 ],
230 'paste.app_install': [
231 'paste.app_install': [
231 'main=pylons.util:PylonsInstaller',
232 'main=pylons.util:PylonsInstaller',
232 'pylons=pylons.util:PylonsInstaller',
233 'pylons=pylons.util:PylonsInstaller',
233 ],
234 ],
234 'paste.global_paster_command': paster_commands,
235 'paste.global_paster_command': paster_commands,
235 'pytest11': [
236 'pytest11': [
236 'pylons=rhodecode.tests.pylons_plugin',
237 'pylons=rhodecode.tests.pylons_plugin',
237 'enterprise=rhodecode.tests.plugin',
238 'enterprise=rhodecode.tests.plugin',
238 ],
239 ],
239 'console_scripts': [
240 'console_scripts': [
240 'rcserver=rhodecode.rcserver:main',
241 'rcserver=rhodecode.rcserver:main',
241 ],
242 ],
242 'beaker.backends': [
243 'beaker.backends': [
243 'memorylru_base=rhodecode.lib.memory_lru_debug:MemoryLRUNamespaceManagerBase',
244 'memorylru_base=rhodecode.lib.memory_lru_debug:MemoryLRUNamespaceManagerBase',
244 'memorylru_debug=rhodecode.lib.memory_lru_debug:MemoryLRUNamespaceManagerDebug'
245 'memorylru_debug=rhodecode.lib.memory_lru_debug:MemoryLRUNamespaceManagerDebug'
245 ]
246 ]
246 },
247 },
247 )
248 )
General Comments 0
You need to be logged in to leave comments. Login now