Merge Request #70

Merged
softwarepublico/colab!70
Created by Gustavo Jaruga Cruz

Remove deps (Revised dependencies, Sqlite3, Whoosh)

Remove colab dependencies. Change postgres to Sqlite3 and search engine to Whoosh for development. Whoosh didn't seem to support haystack input AltParse so if the engine is whoosh, colab will use AutoQuery instead.

Assignee: None
Milestone: None

Merged by Sergio Oliveira

Source branch has been removed
Commits (22)
2 participants
colab/management/initconfig.py
@@ -34,20 +34,14 @@ ALLOWED_HOSTS = [ @@ -34,20 +34,14 @@ ALLOWED_HOSTS = [
34 ## Database settings 34 ## Database settings
35 DATABASES = {{ 35 DATABASES = {{
36 'default': {{ 36 'default': {{
37 - 'ENGINE': 'django.db.backends.postgresql_psycopg2',  
38 - 'HOST': 'localhost',  
39 - 'NAME': 'colab',  
40 - 'USER': 'colab',  
41 - 'PASSWORD': 'colab', 37 + 'ENGINE': 'django.db.backends.sqlite3',
  38 + 'NAME': 'colab.sqlite3',
42 }} 39 }}
43 }} 40 }}
44 41
45 ## Disable indexing 42 ## Disable indexing
46 ROBOTS_NOINDEX = False 43 ROBOTS_NOINDEX = False
47 44
48 -### Log errors to Sentry instance  
49 -# RAVEN_DSN = 'http://public:secret@example.com/1'  
50 -  
51 LOGGING = {{ 45 LOGGING = {{
52 'version': 1, 46 'version': 1,
53 47
colab/search/forms.py
@@ -7,6 +7,7 @@ from django.conf import settings @@ -7,6 +7,7 @@ from django.conf import settings
7 from django.utils.translation import ugettext_lazy as _ 7 from django.utils.translation import ugettext_lazy as _
8 from haystack.forms import SearchForm 8 from haystack.forms import SearchForm
9 from haystack.inputs import AltParser 9 from haystack.inputs import AltParser
  10 +from haystack.inputs import AutoQuery
10 11
11 from colab.super_archives.models import MailingList 12 from colab.super_archives.models import MailingList
12 13
@@ -107,7 +108,11 @@ class ColabSearchForm(SearchForm): @@ -107,7 +108,11 @@ class ColabSearchForm(SearchForm):
107 'bf': 'recip(ms(NOW/HOUR,modified),3.16e-11,1,1)^10', 108 'bf': 'recip(ms(NOW/HOUR,modified),3.16e-11,1,1)^10',
108 } 109 }
109 110
110 - sqs = sqs.filter(content=AltParser('edismax', q, **dismax_opts)) 111 + if settings.HAYSTACK_CONNECTIONS['default']['ENGINE'] != \
  112 + 'haystack.backends.whoosh_backend.WhooshEngine':
  113 + sqs = sqs.filter(content=AltParser('edismax', q, **dismax_opts))
  114 + else:
  115 + sqs = sqs.filter(content=AutoQuery(q))
111 116
112 if self.cleaned_data['type']: 117 if self.cleaned_data['type']:
113 sqs = sqs.filter(type=self.cleaned_data['type']) 118 sqs = sqs.filter(type=self.cleaned_data['type'])
colab/search/tests.py
@@ -9,7 +9,7 @@ class SearchViewTest(TestCase): @@ -9,7 +9,7 @@ class SearchViewTest(TestCase):
9 fixtures = ['test_data.json'] 9 fixtures = ['test_data.json']
10 10
11 def setUp(self): 11 def setUp(self):
12 - call_command('update_index', interactive=False, verbosity=0) 12 + call_command('rebuild_index', interactive=False, verbosity=0)
13 self.client = Client() 13 self.client = Client()
14 14
15 def tearDown(self): 15 def tearDown(self):
@@ -21,12 +21,12 @@ class SearchViewTest(TestCase): @@ -21,12 +21,12 @@ class SearchViewTest(TestCase):
21 21
22 self.assertEqual(3, len(thread_list)) 22 self.assertEqual(3, len(thread_list))
23 23
24 - self.assertIn('This is a repply to Thread 1 on list A',  
25 - thread_list[0].description)  
26 - self.assertIn('This is a repply to Thread 1 on list C',  
27 - thread_list[1].description)  
28 - self.assertIn('This is a repply to Thread 1 on list B',  
29 - thread_list[2].description) 24 + condition = any('This is a repply to Thread 1 on list A' in t.description for t in thread_list)
  25 + self.assertTrue(condition)
  26 + condition = any('This is a repply to Thread 1 on list B' in t.description for t in thread_list)
  27 + self.assertTrue(condition)
  28 + condition = any('This is a repply to Thread 1 on list C' in t.description for t in thread_list)
  29 + self.assertTrue(condition)
30 30
31 def test_search_account_by_firstName(self): 31 def test_search_account_by_firstName(self):
32 request = self.client.get('/search/?q=Chuck') 32 request = self.client.get('/search/?q=Chuck')
colab/settings.py
@@ -42,7 +42,6 @@ INSTALLED_APPS = ( @@ -42,7 +42,6 @@ INSTALLED_APPS = (
42 'colab.accounts', 42 'colab.accounts',
43 43
44 # Not standard apps 44 # Not standard apps
45 - 'cliauth',  
46 'django_mobile', 45 'django_mobile',
47 'haystack', 46 'haystack',
48 'hitcounter', 47 'hitcounter',
@@ -166,15 +165,8 @@ HAYSTACK_CUSTOM_HIGHLIGHTER = 'colab.utils.highlighting.ColabHighlighter' @@ -166,15 +165,8 @@ HAYSTACK_CUSTOM_HIGHLIGHTER = 'colab.utils.highlighting.ColabHighlighter'
166 165
167 HAYSTACK_CONNECTIONS = { 166 HAYSTACK_CONNECTIONS = {
168 'default': { 167 'default': {
169 - 'ENGINE': 'haystack.backends.solr_backend.SolrEngine',  
170 - 'URL': 'http://localhost:8983/solr/',  
171 - }  
172 -}  
173 -  
174 -CACHES = {  
175 - 'default': {  
176 - 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',  
177 - 'LOCATION': '127.0.0.1:11211', 168 + 'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
  169 + 'PATH': os.path.join(os.path.dirname(__file__), 'whoosh_index'),
178 } 170 }
179 } 171 }
180 172
@@ -252,12 +244,7 @@ TASTYPIE_DEFAULT_FORMATS = ['json', ] @@ -252,12 +244,7 @@ TASTYPIE_DEFAULT_FORMATS = ['json', ]
252 244
253 from .utils.conf import load_colab_apps, load_py_settings 245 from .utils.conf import load_colab_apps, load_py_settings
254 246
255 -if locals().get('RAVEN_DSN', False):  
256 - RAVEN_CONFIG = {  
257 - 'dsn': RAVEN_DSN + '?timeout=30', # noqa  
258 - }  
259 - INSTALLED_APPS += ('raven.contrib.django.raven_compat',)  
260 - 247 +BROWSERID_ENABLED = locals().get('BROWSERID_ENABLED') or False
261 SOCIAL_NETWORK_ENABLED = locals().get('SOCIAL_NETWORK_ENABLED') or False 248 SOCIAL_NETWORK_ENABLED = locals().get('SOCIAL_NETWORK_ENABLED') or False
262 249
263 locals().update(load_colab_apps()) 250 locals().update(load_colab_apps())
colab/super_archives/search_indexes.py
@@ -28,7 +28,7 @@ class ThreadIndex(BaseIndex, indexes.Indexable): @@ -28,7 +28,7 @@ class ThreadIndex(BaseIndex, indexes.Indexable):
28 latest_message_pk = indexes.IntegerField( 28 latest_message_pk = indexes.IntegerField(
29 model_attr='latest_message__pk', indexed=False 29 model_attr='latest_message__pk', indexed=False
30 ) 30 )
31 - score = indexes.IntegerField(model_attr='score') 31 + rating = indexes.IntegerField(model_attr='score')
32 32
33 def get_model(self): 33 def get_model(self):
34 return Thread 34 return Thread
@@ -3,46 +3,45 @@ from setuptools import setup, find_packages @@ -3,46 +3,45 @@ from setuptools import setup, find_packages
3 3
4 4
5 REQUIREMENTS = [ 5 REQUIREMENTS = [
6 - 'Django==1.7.7',  
7 - 'psycopg2==2.5.1',  
8 - 'django-piston==0.2.3',  
9 - 'pytz==2011n',  
10 - 'chardet==1.0.1',  
11 - 'python-dateutil==1.5',  
12 - 'django-cliauth==0.9.1',  
13 - 'django-mobile==0.3.0',  
14 - 'django-haystack==2.2',  
15 - 'pysolr==2.1',  
16 - 'poster==0.8.1',  
17 - 'etiquetando==0.1',  
18 - 'html2text==3.200.3',  
19 - 'django-taggit==0.12.1',  
20 - 'python-memcached==1.53',  
21 - 'django-hitcounter==0.1.1',  
22 - 'Pillow==2.5.1',  
23 - 'django-i18n-model==0.0.7',  
24 - 'django-tastypie==0.11.0',  
25 - 'gunicorn==19.1.0',  
26 - 'eventlet==0.15.2', 6 + 'Django>=1.7.8,<1.8',
  7 + 'pytz>=2011n',
  8 + 'django-hitcounter>=0.1.1',
  9 + 'django-tastypie>=0.12.1',
  10 + 'django-revproxy>=0.9.0',
  11 + 'django-haystack>=2.2',
  12 + 'Whoosh>=2.7.0',
  13 +
  14 + # Diazo
  15 + 'diazo>=1.0.5',
27 16
28 - # Deps for sentry client (raven)  
29 - 'raven==3.5.2',  
30 - 'tornado==3.1.1', 17 + # Deps for Single SignOn (SSO)
  18 + 'django-browserid>=0.11',
31 19
32 - 'django-revproxy==0.9.3', 20 + ### Move out of colab (as plugins):
33 21
34 - # Diazo  
35 - 'diazo==1.0.5', 22 + # Deps for badger
  23 + 'Pillow==2.8.1',
  24 + 'django-i18n-model>=0.0.7',
  25 +
  26 + # Deps for super_archives
  27 + 'etiquetando==0.1',
  28 + 'django-taggit>=0.12.1',
  29 + 'html2text>=3.200.3',
  30 + 'chardet>=1.0.1',
  31 +
  32 + # Deps for gitlab plugin
  33 + 'python-dateutil>=1.5',
36 34
37 - # Mailman 2 REST API  
38 - 'mailman-api==0.2.9', 35 + # Converse.js (XMPP client)
  36 + 'django-conversejs>=0.3.4',
  37 + 'django-mobile>=0.3.0',
39 ] 38 ]
40 39
41 TEST_REQUIREMENTS = [ 40 TEST_REQUIREMENTS = [
42 - 'coverage==3.7.1',  
43 - 'coveralls==0.5',  
44 - 'flake8==2.3.0',  
45 - 'mock==1.0.1', 41 + 'coverage>=3.7.1',
  42 + 'coveralls>=0.5',
  43 + 'flake8>=2.3.0',
  44 + 'mock>=1.0.1',
46 ] 45 ]
47 46
48 47
tests/settings.py
@@ -32,8 +32,8 @@ LOGGING = { @@ -32,8 +32,8 @@ LOGGING = {
32 import os 32 import os
33 HAYSTACK_CONNECTIONS = { 33 HAYSTACK_CONNECTIONS = {
34 'default': { 34 'default': {
35 - 'ENGINE': 'haystack.backends.solr_backend.SolrEngine',  
36 - 'URL': 'http://127.0.0.1:8983/solr', 35 + 'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
  36 + 'PATH': os.path.join(os.path.dirname(__file__), 'whoosh_index'),
37 }, 37 },
38 } 38 }
39 39
@@ -41,10 +41,7 @@ SECRET_KEY = &#39;not-a-secret&#39; @@ -41,10 +41,7 @@ SECRET_KEY = &#39;not-a-secret&#39;
41 41
42 DATABASES = { 42 DATABASES = {
43 'default': { 43 'default': {
44 - 'ENGINE': 'django.db.backends.postgresql_psycopg2',  
45 - 'HOST': 'localhost',  
46 - 'NAME': 'colab',  
47 - 'USER': 'colab',  
48 - 'PASSWORD': 'colab', 44 + 'ENGINE': 'django.db.backends.sqlite3',
  45 + 'NAME': 'colab.sqlite',
49 } 46 }
50 } 47 }
  • 9fe63c7bd60deeb55e409a1d7dd173f5?s=40&d=identicon
    Sergio Oliveira @seocam

    Added 37 new commits:

    • 3d0b8c3f - Fix cache not updating for different users and wrong email count
    • 1d66135a - Fixed pep8
    • 8473d256 - Merge branch 'fix_cache_count' into 'master'
    • 2bb99d3f - Removed RPM build scripts
    • 48cbef1b - Update django-revproxy version from 0.9.0 to 0.9.3
    • e2a52f55 - Merge remote-tracking branch 'origin/upgrade_requirements'
    • 9332d182 - Remove redmine
    • dce5b60f - Remove jenkins
    • d770229e - Remove Trac
    • 6f10e8f3 - Remove conversejs
    • bdbb7a93 - Removing badger from colab
    • 73effbed - Remove persona from colab
    • b724aa73 - Remove browserid and conversejs from header and footer template
    • e2e2afd0 - Remove feedzilla residual code
    • a2e34e57 - Merge remote-tracking branch 'origin/remove-core-deps'
    • e2241836 - removed sentry from deps
    • f6ce538a - Removed feedzilla deps
    • aac99052 - Removed postgresql from deps
    • 68ba2485 - Updated chardet
    • 0cdf0f32 - Removed postgres
    • f0d84a6b - Allowed upper version of pytz
    • 47062304 - Removed piston from deps
    • 6efaa303 - Allowed upper version of chardet
    • 5a7a67b0 - Removed cliauth from deps
    • a845e414 - Removed poster from deps
    • b94ad3de - Removed memcached from deps
    • 61329d56 - Rearranged colab deps
    • d8c3c1c1 - Removed deploy deps
    • 8436db93 - Allow higher versions from deps
    • e24bd119 - Removed pysolr from deps
    • 48b1509f - Reorganized deps
    • 2ac50238 - Added whoosh as dep
    • 443bf4eb - Fix Whoosh settings and test settings to usu sqlite
    • d8f81cc8 - Change score field to fix whoosh indexing
    • 2a4ab7a6 - Add whoosh to test settings
    • e6eb9a9f - Change AltParser if engine is whoosh
    • 27b453ea - Fix test to ignore list order
    Choose File ...   File name...
    Cancel
  • 9fe63c7bd60deeb55e409a1d7dd173f5?s=40&d=identicon
    Sergio Oliveira @seocam
    Choose File ...   File name...
    Cancel