mozreview: upgrade to RB 2.5.2 (Bug 1231159). r?gps draft
authorSteven MacLeod <smacleod@mozilla.com>
Tue, 08 Dec 2015 13:48:23 -0500
changeset 6509 4684edeb90c96d23c62022008a893d0e6d95768e
parent 6508 1fe80bd2bd583a6407f6cbb021766a1f9fa32bbd
child 6510 0d42341197672b6fdec672c3713bce84b8096afa
push id481
push usersmacleod@mozilla.com
push dateMon, 04 Jan 2016 16:57:40 +0000
reviewersgps
bugs1231159
mozreview: upgrade to RB 2.5.2 (Bug 1231159). r?gps Due to changes in Review Board's static media packaging code we now run with DEBUG=False. This is required for Review Board to gather the static media from our extensions. We also switch to using supported means for installing and loading static media which may be slower but works and should continue to work with future versions.
ansible/roles/docker-rbweb/files/install-reviewboard
ansible/roles/docker-rbweb/files/refresh
ansible/roles/docker-rbweb/tasks/main.yml
ansible/roles/mozreview-virtualenv/files/requirements.txt
pylib/mozreview/mozreview/static/mozreview/css/commits.less
test-requirements.txt
--- a/ansible/roles/docker-rbweb/files/install-reviewboard
+++ b/ansible/roles/docker-rbweb/files/install-reviewboard
@@ -19,17 +19,17 @@ with open('%s/conf/settings_local.py' % 
     # isn't allowing us to set a string value to a None type. Derp.
     log_directory_found = False
     for line in lines:
         if line.startswith(b'ALLOWED_HOSTS'):
             line = b'ALLOWED_HOSTS = ["*"]\n'
         elif line.startswith(b'PRODUCTION'):
             line = b'PRODUCTION = False\n'
         elif line.startswith(b'DEBUG ='):
-            line = b'DEBUG = True\n'
+            line = b'DEBUG = False\n'
         elif line.startswith(b'LOGGING_DIRECTORY'):
             line = b'LOGGING_DIRECTORY = "%s/logs"\n' % ROOT
             log_directory_found = True
 
         fh.write(line)
 
     if not log_directory_found:
         fh.write('LOGGING_DIRECTORY = "%s/logs"\n' % ROOT)
@@ -38,18 +38,16 @@ from reviewboard.cmdline.rbsite import S
 
 cc = subprocess.check_call
 
 class FakeOptions(object):
     copy_media = False
 
 site = Site(ROOT, FakeOptions())
 
-site.rebuild_site_directory()
-
 site.run_manage_command('syncdb', ['--noinput'])
 
 site.setup_settings()
 from reviewboard import initialize
 initialize()
 
 # We need to toggle disable/enable state to get first run code to run.
 # We should *not* carry this pattern forward to production, because it may
@@ -65,18 +63,16 @@ site.run_manage_command('disable-extensi
 site.run_manage_command('disable-extension',
                         ['rbmotd.extension.MotdExtension'])
 
 print('enabling extensions')
 site.run_manage_command('enable-extension', ['mozreview.extension.MozReviewExtension'])
 site.run_manage_command('enable-extension', ['rbbz.extension.BugzillaExtension'])
 site.run_manage_command('enable-extension', ['rbmotd.extension.MotdExtension'])
 
-print('generating static assets')
-site.run_manage_command('collectstatic', ['--noinput'])
 
 # Hook up Bugzilla authentication.
 site.run_manage_command('set-siteconfig', ['--key=auth_backend',
                         '--value=bugzilla'])
 
 site.run_manage_command('set-siteconfig', ['--key=logging_enabled',
                         '--value=1'])
 
--- a/ansible/roles/docker-rbweb/files/refresh
+++ b/ansible/roles/docker-rbweb/files/refresh
@@ -4,17 +4,15 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 set -e
 
 /usr/bin/rsync -a --delete-after $1 /vct/
 chown -R root:root /vct
 /usr/bin/rsync -rlpt /vct/ /version-control-tools/
 
-cp /version-control-tools/ansible/roles/docker-rbweb/files/install-reviewboard /install-reviewboard
-chown reviewboard:reviewboard /install-reviewboard
-
-/install-reviewboard
+cd /version-control-tools/ansible && /usr/bin/python -u \
+  /usr/bin/ansible-playbook docker-rbweb.yml -c local -t docker-refresh
 
 # Need to kill WSGI processes to ensure Python code is current.
 /kill-wsgi-procs
 
 echo 'refreshed rbweb container successfully'
--- a/ansible/roles/docker-rbweb/tasks/main.yml
+++ b/ansible/roles/docker-rbweb/tasks/main.yml
@@ -11,22 +11,45 @@
   pip: virtualenv=/venv
        name=psutil
        version=2.2.1
 
 - name: Synchronize version-control-tools
   synchronize: src={{ vct }}/ dest=/version-control-tools/ recursive=yes delete=yes
 
 - name: Install python libraries
-  command: /venv/bin/python setup.py develop chdir=/version-control-tools/pylib/{{ item }}
+  command: /venv/bin/python setup.py install chdir=/version-control-tools/pylib/{{ item }}
   with_items:
     - mozautomation
-    - mozreview
+
+- name: Build mozreview extension
+  command: /venv/bin/python setup.py bdist_egg chdir=/version-control-tools/pylib/mozreview
+  tags:
+    - docker-refresh
+
+- name: Install mozreview extension
+  shell: /venv/bin/easy_install -U dist/*.egg chdir=/version-control-tools/pylib/mozreview
+  tags:
+    - docker-refresh
+
+- name: Build other extension
+  command: /venv/bin/python setup.py bdist_egg chdir=/version-control-tools/pylib/{{ item }}
+  with_items:
     - rbbz
     - rbmotd
+  tags:
+    - docker-refresh
+
+- name: Install other extensions
+  shell: /venv/bin/easy_install -U dist/*.egg chdir=/version-control-tools/pylib/{{ item }}
+  with_items:
+    - rbbz
+    - rbmotd
+  tags:
+    - docker-refresh
 
 - name: Remove default httpd configs
   file: path={{ item }} state=absent
   with_items:
     - /etc/httpd/conf.d/welcome.conf
     - /etc/httpd/conf.d/README
 
 - name: Install httpd vhost config
@@ -35,16 +58,23 @@
 - name: Install Review Board
   command: /venv/bin/rb-site install --noinput --opt-out-support-data --domain-name=example.com --admin-user=admin+1 --admin-password=password --admin-email=admin@example.com --db-type=sqlite3 --db-name=/reviewboard/data/reviewboard.db --cache-type=memcached --cache-info=localhost:11211 --web-server-type=apache --python-loader=wsgi /reviewboard creates=/reviewboard
 
 - name: Install Review Board installation script
   copy: src=install-reviewboard dest=/install-reviewboard owner=reviewboard group=reviewboard mode=0755
 
 - name: Configure Review Board
   command: /install-reviewboard
+  tags:
+    - docker-refresh
+
+- name: Install extension media
+  command: /venv/bin/rb-site manage /reviewboard install-extension-media -- --force
+  tags:
+    - docker-refresh
 
 - name: Install support scripts
   copy: src={{ item }} dest=/{{ item }} owner=reviewboard group=reviewboard mode=0755
   with_items:
     - create-local-user
     - dump-profile
     - grant-permission
     - kill-wsgi-procs
--- a/ansible/roles/mozreview-virtualenv/files/requirements.txt
+++ b/ansible/roles/mozreview-virtualenv/files/requirements.txt
@@ -1,37 +1,40 @@
 --find-links http://downloads.reviewboard.org/releases/Django/1.6/
 --find-links http://downloads.reviewboard.org/releases/django-evolution/0.7/
---find-links http://downloads.reviewboard.org/releases/Djblets/0.8/
+--find-links http://downloads.reviewboard.org/releases/Djblets/0.9/
 --find-links http://downloads.reviewboard.org/releases/RBTools/0.6/
---find-links http://downloads.reviewboard.org/releases/ReviewBoard/2.0/
+--find-links http://downloads.reviewboard.org/releases/ReviewBoard/2.5/
 
 # sha256: lNKmgifnmEvUD19xxoOXMGIq_4pGM_Ke3h_90NJAeV4
 amqp==1.4.8
 
 # sha256: N4Ethjya0-NcBzTELgvwMgzow77YLNIK1UyzTRWBV7o
 anyjson==0.3.3
 
 # sha256: 0Bl46ajFHqezTscfP87RMmQ3zTZrnC4ZJlrOBQkk4OI
 argparse==1.3.0
 
 # sha256: TCDbOsB6WpISkrIjFzQQitt5kjxtBmGWGVwPAsAxltM
 Django==1.6.11.2
 
 # sha256: ca3Sb2gsLnZSxD0Bq2rBscaT2Gn2YxQvX3w3sAeI0WI
 django-pipeline==1.3.27
 
-# sha256: Nv3kS62iU_XEYsDkRT4Da80w0qK3JvdoxOiiJs8MwRM
-django-evolution==0.7.5
+# sha256: WChUkMgGmM9kL_3RXyheU4UDgJKJw8i3sLwUu9bt990
+django-evolution==0.7.6
 
 # sha256: ow34iO4NoyxIN8Mo7PhZ6ZLtttGF76fUk0HMGUnbsk0
 django-haystack==2.3.1
 
-# sha256: 3s51UxD-KLkPiZpQ7iSJ5CqotLhBGShfB6T8IW7FbEM
-Djblets==0.8.22
+# sha256: O36VAyPUd-QGYNc3v3l3fZEiw5YqVa9b1ggZ5ARy_Gw
+django-multiselectfield==0.1.3
+
+# sha256: mB1aH66OqVReFq96EIDemGr5lIxjdf-A_ez8m6Js4WM
+Djblets==0.9
 
 # sha256: x9txeBCraWX2bIzwOYqYydjfmC2jm0zX8WKRHriVlvo
 docutils==0.12
 
 # sha256: QNACzzYNDgNc8suYXhMI1BqqCHy_wTWy3C2EQpbqVGw
 ecdsa==0.13
 
 # sha256: f2UH1ADQft_R6oIF2jaAgAmwxTn1uKbgq1Qze5VebcM
@@ -92,16 +95,16 @@ recaptcha-client==1.0.6
 Whoosh==2.6.0
 
 # sha256: 8s4emJsnLPy2d2FnY-Ci5-xlnv-meoiqkrOmVSj2Cjw
 pycrypto==2.6.1
 
 # sha256: SFxYdfcE05QYN1gC0971KqEk7KP85BG_dgBMsBBodzU
 RBTools==0.6.1
 
-# sha256: X2xQ4h9WvqrQBtn1zW97NwLuDRDBnNhI0l114UqVmcE
-ReviewBoard==2.0.20
+# sha256: xEzBQPEqEq0pduwgBSqSc5LJ9UnX0Z-E5ioj9vSFjMw
+ReviewBoard==2.5.2
 
 # sha256: EkiQ9BcjyFqoLf4IB0Mq6kbSSusNr840CWnSCJVIwsM
 requests==2.4.3
 
 # sha256: QYqTw5en7asj5ViNvAZ6x0pyPts9VBvUk295R252Rdo
 six==1.9.0
--- a/pylib/mozreview/mozreview/static/mozreview/css/commits.less
+++ b/pylib/mozreview/mozreview/static/mozreview/css/commits.less
@@ -87,17 +87,17 @@
    td,
    th {
      padding: 5px;
      border-left: 1px solid #C1C1C1;
      border-bottom: 1px solid #C1C1C1;
    }
 
    & > thead > tr {
-     background: transparent url("/static/mozreview/header_bg.png") repeat-x scroll left bottom;
+     background: transparent url("../header_bg.png") repeat-x scroll left bottom;
    }
 
    & > tbody td > a.commit_sha {
      font-family: monospace
    }
 
    /* This was copied from the rb dashboard less file.*/
     .approval,
@@ -146,17 +146,17 @@
         display: inline-block;
         padding: 0 3px 0 1px;
         text-align: center;
         font-weight: bold
        }
      }
 
     .shipit-count {
-      background-image: url("/static/mozreview/shipit_bg.png");
+      background-image: url("../shipit_bg.png");
       background-position: top left;
       background-repeat: repeat-x;
       background-color: #6bc810;
       border: 1px #478a06 solid;
       color: #205003;
     }
 }
 
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -1,28 +1,30 @@
 --find-links https://downloads.reviewboard.org/releases/Django/1.6/
---find-links https://downloads.reviewboard.org/releases/Djblets/0.8/
+--find-links https://downloads.reviewboard.org/releases/Djblets/0.9/
 --find-links https://downloads.reviewboard.org/releases/django-evolution/0.7/
 --find-links https://downloads.reviewboard.org/releases/RBTools/0.6/
---find-links https://downloads.reviewboard.org/releases/ReviewBoard/2.0/
+--find-links https://downloads.reviewboard.org/releases/ReviewBoard/2.5/
 alabaster==0.7.3
 amqp==1.4.8
 ansible==1.9.0.1
 anyjson==0.3.3
 Babel==1.3
 backports.ssl-match-hostname==3.4.0.2
 beautifulsoup4==4.3.2
 blessings==1.6
 cffi==1.3.1
 coverage==3.7.1
 cryptography==1.1.2
 Django==1.6.11.2
-django-evolution==0.7.5
+django-evolution==0.7.6
 django-haystack==2.3.1
+django-multiselectfield==0.1.3
 django-pipeline==1.3.27
+Djblets==0.9
 docker-py==1.6.0
 docutils==0.12
 ecdsa==0.13
 enum34==1.1.1
 flake8==2.4.1
 feedparser==5.1.3
 jsmin==2.1.1
 futures==2.2.0
@@ -63,17 +65,17 @@ python-hglib==1.7
 python-ldap==2.4.19
 python-memcached==1.54
 pytz==2015.7
 PyYAML==3.11
 RBTools==0.6.1
 recaptcha-client==1.0.6
 requests==2.7.0
 responses==0.3.0
-ReviewBoard==2.0.20
+ReviewBoard==2.5.2
 selenium==2.48.0
 setuptools==18.8.1
 six==1.10.0
 snowballstemmer==1.2.0
 Sphinx==1.3.3
 sphinx-rtd-theme==0.1.9
 websocket-client==0.34.0
 Whoosh==2.6.0