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