You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2022/02/23 21:39:37 UTC

[allura] branch master updated (57eae8c -> eb9a073)

This is an automated email from the ASF dual-hosted git repository.

brondsem pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/allura.git.


    from 57eae8c  Remove old force_ssl.logged_in config, which is the only situation a 302 Found would've been appropriate for http/https redirects
     new 1a1a251  python3.7 - upgrade docs and docker config to support python3.7
     new 86f2137  python3.7 - remove python_version conditional on pillow package
     new 7dda533  python3.7 - committing initial jenkins script
     new 65938f2  python3.7 - add remaining test dependencies used by jenkins to requirements-dev.txt
     new b372805  python3.7 - update jenkins script to use docker-compose
     new f06ccf6  python3.7 - remove pin on GitPython for <= py3.6
     new eb9a073  python3.7 - update CHANGE

The 7 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 Allura/docs/getting_started/install_each_step.rst | 21 ++---
 Allura/docs/getting_started/installation.rst      |  2 +-
 CHANGES                                           |  2 +
 Dockerfile                                        | 44 ++++++----
 requirements-dev.txt                              |  3 +
 requirements.in                                   |  3 +-
 requirements.txt                                  |  4 +-
 scripts/init-docker-dev.sh                        |  6 +-
 scripts/jenkins-python3.7.sh                      | 98 +++++++++++++++++++++++
 9 files changed, 149 insertions(+), 34 deletions(-)
 create mode 100755 scripts/jenkins-python3.7.sh

[allura] 07/07: python3.7 - update CHANGE

Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

brondsem pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/allura.git

commit eb9a073fba555fb9f15947001f91d8d275df818e
Author: Dillon Walls <di...@slashdotmedia.com>
AuthorDate: Fri Feb 18 12:35:08 2022 -0500

    python3.7 - update CHANGE
---
 CHANGES | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CHANGES b/CHANGES
index 5afced3..1d03275 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,6 @@
 Unreleased
 
-This release drops support for Python 3.6.
+[#8413] This release drops support for Python 3.6.
 
 Breaking Changes
  * [#8399] In an effort to update the Docker startup steps to make them as 

[allura] 04/07: python3.7 - add remaining test dependencies used by jenkins to requirements-dev.txt

Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

brondsem pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/allura.git

commit 65938f260614f2bf9a527594d5c8af7850c6b37a
Author: Dillon Walls <di...@slashdotmedia.com>
AuthorDate: Thu Feb 17 11:13:25 2022 -0500

    python3.7 - add remaining test dependencies used by jenkins to requirements-dev.txt
---
 requirements-dev.txt | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/requirements-dev.txt b/requirements-dev.txt
index c0ea97f..de987cb 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -8,3 +8,6 @@ sphinx-rtd-theme
 sphinxcontrib-programoutput
 coverage
 nose
+nose-xunitmp
+pycodestyle
+pyflakes

[allura] 02/07: python3.7 - remove python_version conditional on pillow package

Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

brondsem pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/allura.git

commit 86f21372c6e1b197516cde489b74e2505e31308a
Author: Dillon Walls <di...@slashdotmedia.com>
AuthorDate: Thu Feb 17 10:50:41 2022 -0500

    python3.7 - remove python_version conditional on pillow package
---
 requirements.txt | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/requirements.txt b/requirements.txt
index 99e8edb..0cea305 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -112,9 +112,7 @@ pastedeploy==2.0.1
     #   pastescript
 pastescript==3.1.0
     # via -r requirements.in
-pillow==8.3.2 ; python_version < "3.7"
-    # via -r requirements.in
-pillow==9.0.0 ; python_version >= "3.7"
+pillow==9.0.0
     # via -r requirements.in
 profanityfilter==2.0.6
     # via -r requirements.in

[allura] 06/07: python3.7 - remove pin on GitPython for <= py3.6

Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

brondsem pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/allura.git

commit f06ccf6e5bc12a2477fe5ea315940eaeab7d999f
Author: Dillon Walls <di...@slashdotmedia.com>
AuthorDate: Fri Feb 18 11:46:57 2022 -0500

    python3.7 - remove pin on GitPython for <= py3.6
---
 requirements.in | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/requirements.in b/requirements.in
index f62f95a..6b8fc92 100644
--- a/requirements.in
+++ b/requirements.in
@@ -11,8 +11,7 @@ emoji!=1.6.0
 feedgenerator
 feedparser
 FormEncode
-# 3.1.23 drops py36 support
-GitPython<=3.1.23
+GitPython
 html5lib
 Jinja2
 Markdown

[allura] 01/07: python3.7 - upgrade docs and docker config to support python3.7

Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

brondsem pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/allura.git

commit 1a1a251ab71d74518450b86ddaa3f2b903039f49
Author: Dillon Walls <di...@slashdotmedia.com>
AuthorDate: Wed Feb 16 21:56:06 2022 -0500

    python3.7 - upgrade docs and docker config to support python3.7
---
 Allura/docs/getting_started/install_each_step.rst | 21 ++++++-----
 Allura/docs/getting_started/installation.rst      |  2 +-
 CHANGES                                           |  2 ++
 Dockerfile                                        | 44 ++++++++++++++---------
 scripts/init-docker-dev.sh                        |  6 ++--
 5 files changed, 46 insertions(+), 29 deletions(-)

diff --git a/Allura/docs/getting_started/install_each_step.rst b/Allura/docs/getting_started/install_each_step.rst
index e1ed1e8..6f10b11 100644
--- a/Allura/docs/getting_started/install_each_step.rst
+++ b/Allura/docs/getting_started/install_each_step.rst
@@ -47,19 +47,22 @@ In these instructions, we'll use `VirtualBox <http://www.virtualbox.org>`__ and
 System Packages
 ^^^^^^^^^^^^^^^
 
-Before we begin, you'll need to install some system packages.  Allura currently supports Python 3.6 and 3.7.
+Before we begin, you'll need to install some system packages.  Allura currently supports Python 3.7.
 
 .. code-block:: bash
 
-    ~$ sudo apt-get install git-core python3-dev gcc libmagic1 libssl-dev libldap2-dev libsasl2-dev libjpeg8-dev zlib1g-dev libffi-dev
+    ~$ sudo apt-get update
+    ~$ sudo apt-get install software-properties-common
+    ~$ sudo add-apt-repository ppa:deadsnakes/ppa
+    ~$ sudo apt-get update
+    ~$ sudo apt-get install git-core python3.7 python3.7-dev gcc libmagic1 libssl-dev libldap2-dev libsasl2-dev libjpeg8-dev zlib1g-dev libffi-dev
 
 To install MongoDB, follow the instructions `here <https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/>`_.
 
 Optional, for SVN support:
 
 .. code-block:: bash
-
-    ~$ sudo apt-get install subversion python3-svn
+    ~$ sudo apt-get install subversion libsvn-dev make g++ python3-svn
 
 Setting up a python virtual environment
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -68,13 +71,13 @@ The first step to installing the Allura platform is installing a virtual environ
 
 .. code-block:: bash
 
-    ~$ sudo apt-get install python3-venv
+    ~$ sudo apt-get install python3.7-venv
 
 Then create a virtual environment.  We'll call our Allura environment 'env-allura'.
 
 .. code-block:: bash
 
-    ~$ python3 -m venv env-allura
+    ~$ python3.7 -m venv env-allura
 
 This gives us a nice, clean environment into which we can install all the allura dependencies.
 In order to use the virtual environment, you'll need to activate it:
@@ -116,11 +119,11 @@ We'll upgrade `pip <https://pip.pypa.io/en/stable/>`_ to make sure its a current
 
 This may take a little while.
 
-Optional, for SVN support: symlink the system pysvn package into our virtual environment
+Optional, for SVN support: install the wheel package then use the pysvn-installer script to build a pysvn wheel.
 
 .. code-block:: bash
-
-    (env-allura)~/src/allura$ ln -s /usr/lib/python3/dist-packages/pysvn ~/env-allura/lib/python3.*/site-packages/
+    (env-allura)~/src/allura$ pip install wheel
+    (env-allura)~/src/allura$ curl https://raw.githubusercontent.com/reviewboard/pysvn-installer/master/install.py | python
 
 Next, run this to set up all the Allura tools:
 
diff --git a/Allura/docs/getting_started/installation.rst b/Allura/docs/getting_started/installation.rst
index 2b24fe4..9c449db 100644
--- a/Allura/docs/getting_started/installation.rst
+++ b/Allura/docs/getting_started/installation.rst
@@ -273,7 +273,7 @@ If you'd like to use another webserver, here are a few options:
 .. code-block:: bash
 
     ~$ pip install mod_wsgi  # requires httpd2 devel libraries installed in the system
-    ~$ mod_wsgi-express start-server development.ini --application-type paste --user allura --group allura --port 8080  --python-path /PATH/TO/VIRTUALENV/lib/python3.6/site-packages/
+    ~$ mod_wsgi-express start-server development.ini --application-type paste --user allura --group allura --port 8080  --python-path /PATH/TO/VIRTUALENV/lib/python3.7/site-packages/
 
 For any other wsgi server (e.g. mod_wsgi with Apache, or waitress) you will need a wsgi callable set up like this:
 
diff --git a/CHANGES b/CHANGES
index 2f8b6a0..5afced3 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,7 @@
 Unreleased
 
+This release drops support for Python 3.6.
+
 Breaking Changes
  * [#8399] In an effort to update the Docker startup steps to make them as 
    easy as possible and compatible across as many OS's as possible, the default
diff --git a/Dockerfile b/Dockerfile
index 382763e..340b3e0 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -17,23 +17,33 @@
 
 FROM ubuntu:18.04
 
-RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
-    git-core \
-    python3-dev \
-    gcc \
-    libmagic1 \
-    libssl-dev \
-    libldap2-dev \
-    libsasl2-dev \
-    libjpeg8-dev \
-    zlib1g-dev \
-    python3-venv \
-    zip \
-    subversion \
-    python3-svn \
-    curl \
-    locales \
-    sudo \
+# Ubunutu 18.04's latest python is 3.6 (and Ubuntu 20.04's is 3.8)
+# In order to get python3.7, we must add the deadsnakes apt repo, and install 3.7 specifically
+RUN apt-get update \
+    && apt-get install software-properties-common -y --no-install-recommends \
+    && add-apt-repository ppa:deadsnakes/ppa
+
+RUN apt-get update \
+    && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+        git-core \
+        python3.7 \
+        python3.7-venv \
+        python3.7-dev \
+        gcc \
+        libmagic1 \
+        libssl-dev \
+        libldap2-dev \
+        libsasl2-dev \
+        libjpeg8-dev \
+        zlib1g-dev \
+        zip \
+        subversion \
+        curl \
+        locales \
+        g++ \
+        libsvn-dev \
+        make \
+        sudo \
     && rm -rf /var/lib/apt/lists/*
 
 # up-to-date version of node & npm
diff --git a/scripts/init-docker-dev.sh b/scripts/init-docker-dev.sh
index 6927951..7066f7c 100755
--- a/scripts/init-docker-dev.sh
+++ b/scripts/init-docker-dev.sh
@@ -37,11 +37,13 @@ echo "# No robots.txt rules here" > /allura-data/www-misc/robots.txt
 cp /allura/Allura/allura/public/nf/favicon.ico /allura-data/www-misc/favicon.ico
 
 # share venv to allow update and sharing across containers
+rm -rf /allura-data/virtualenv
 if [ ! -e /allura-data/virtualenv ]; then
     echo -e "Creating virtualenv\n"
-    python3 -m venv /allura-data/virtualenv
+    python3.7 -m venv /allura-data/virtualenv
     /allura-data/virtualenv/bin/pip install -U pip
-    ln -s /usr/lib/python3/dist-packages/pysvn /allura-data/virtualenv/lib/python3.*/site-packages/
+    /allura-data/virtualenv/bin/pip install -U wheel
+    curl https://raw.githubusercontent.com/reviewboard/pysvn-installer/master/install.py | /allura-data/virtualenv/bin/python
     echo # just a new line
 fi
 source /allura-data/virtualenv/bin/activate

[allura] 05/07: python3.7 - update jenkins script to use docker-compose

Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

brondsem pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/allura.git

commit b372805d742fa326861ebed73b6e229ec054e25b
Author: Dillon Walls <di...@slashdotmedia.com>
AuthorDate: Thu Feb 17 11:34:33 2022 -0500

    python3.7 - update jenkins script to use docker-compose
---
 scripts/jenkins-python3.7.sh | 124 ++++++++++++++++++++++++++-----------------
 1 file changed, 75 insertions(+), 49 deletions(-)

diff --git a/scripts/jenkins-python3.7.sh b/scripts/jenkins-python3.7.sh
old mode 100644
new mode 100755
index e2243d4..1cf4217
--- a/scripts/jenkins-python3.7.sh
+++ b/scripts/jenkins-python3.7.sh
@@ -1,72 +1,98 @@
 #!/bin/bash
 # need to specify the shell, else Jenkins will quit after the first non-zero exit
 
+#       Licensed to the Apache Software Foundation (ASF) under one
+#       or more contributor license agreements.  See the NOTICE file
+#       distributed with this work for additional information
+#       regarding copyright ownership.  The ASF licenses this file
+#       to you under the Apache License, Version 2.0 (the
+#       "License"); you may not use this file except in compliance
+#       with the License.  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#       Unless required by applicable law or agreed to in writing,
+#       software distributed under the License is distributed on an
+#       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#       KIND, either express or implied.  See the License for the
+#       specific language governing permissions and limitations
+#       under the License.
+
+IMAGE_TAG=allura
+
+echo
+echo "============================================================================="
+echo "Jenkins Host Info:"
+echo "============================================================================="
 echo -n 'cpu count: '; grep -c processor /proc/cpuinfo 
-echo python path: `which python; python -V`
-echo python3 path: `which python3; python3 -V`
-echo python3.7 path: `which python3.7;`
+echo hostname: `hostname --short`
+echo NODE_NAME: $NODE_NAME
 echo path: $PATH
 echo workspace: $WORKSPACE
 echo jenkins_home: $JENKINS_HOME
 echo home: $HOME
 echo pwd: `pwd`
-echo REBUILD_VENV: $REBUILD_VENV
-echo LANG: $LANG
 env
-git --version
-svn --version
-echo pip: `pip3 --version`
-echo npm: `npm --version`
-
-rm -rf ".allura-venv"
-
-# ubuntu "python3-venv" isn't installed, so can't do the simple approach, instead use full "virtualenv" package
-#  python3 -m venv .allura-venv || exit
-pip3 install --user virtualenv || exit  # TODO: upgrade it?  seeing 15.x and 20.x
-echo virtualenv 3: `python3 -m virtualenv --version`
-# `python3 -m virtualenv` can sometimes default to using the py2 binary (weird!) so be explicit:
-python3 -m virtualenv --python `which python3` .allura-venv || exit
-
-. .allura-venv/bin/activate || exit
 
+echo
+echo "============================================================================="
+echo "Run: cleanup previous runs"
+echo "============================================================================="
+rm -rf ./allura-data
 git clean -f -x  # remove test.log, nosetest.xml etc (don't use -d since it'd remove our venv dir)
 
-echo venv-pip: `pip --version`
-pip --version | grep 'python 3' || exit  # ensure on py3
-
-# retry a few times
-# MAIN_PIP="pip install -r requirements.txt --no-deps --upgrade --upgrade-strategy=only-if-needed"
-MAIN_PIP="pip install -r requirements.txt --upgrade --upgrade-strategy=only-if-needed"
-$MAIN_PIP || (echo "retrying pip install after short sleep"; sleep 2; $MAIN_PIP) || exit
-
-pip install pycodestyle pyflakes coverage nose nose-xunitmp --no-deps --upgrade --upgrade-strategy=only-if-needed || exit
-
-# handy script to download, compile, and install pysvn
-curl https://raw.githubusercontent.com/reviewboard/pysvn-installer/master/install.py | python
+echo
+echo "============================================================================="
+echo "Run: build docker image"
+echo "============================================================================="
+docker-compose build
+
+echo
+echo "============================================================================="
+echo "Docker Container Info:"
+echo "============================================================================="
+docker-compose run web bash -c '
+echo python path: `which python; python -V`;
+echo python3.7 path: `which python3.7; python3.7 -V`;
+git --version;
+svn --version;
+echo pip: `pip3 --version`;
+echo npm: `npm --version`;'
+
+echo
+echo "============================================================================="
+echo "Setup: venv, pip, pysvn, ./rebuild-all.sh, npm, etc."
+echo "============================================================================="
+docker-compose run web scripts/init-docker-dev.sh
+
+echo
+echo "============================================================================="
+echo "Setup: tests"
+echo "============================================================================="
+# set up test dependencies
+docker-compose run web pip install -r requirements-dev.txt
+
+echo
+echo "============================================================================="
+echo "Run: tests"
+echo "============================================================================="
 
 # use "Allura* Forge* scripts" instead of "." so that .allura-venv doesn't get checked too (and '.' gives './' prefixed results which don't work out)
-pyflakes Allura* Forge* scripts | awk -F\: '{printf "%s:%s: [E]%s\n", $1, $2, $3}' > pyflakes.txt
-pycodestyle Allura* Forge* scripts > pep8.txt
-
-./rebuild-all.bash
-
-# fresh start with npm
-#rm -rf node_modules
-npm install || (echo "retrying npm install"; sleep 5; npm install) || (echo "retrying npm install"; sleep 5; npm install) || (echo "retrying npm install"; sleep 5; npm install) || (echo "retrying npm install"; sleep 5; npm install) || (echo "retrying npm install"; sleep 5; npm install) 
+docker-compose run web pyflakes Allura* Forge* scripts | awk -F\: '{printf "%s:%s: [E]%s\n", $1, $2, $3}' > pyflakes.txt
+docker-compose run web pycodestyle Allura* Forge* scripts > pep8.txt
 
 # TODO: ALLURA_VALIDATION=all
-LANG=en_US.UTF-8 ./run_tests --with-xunitmp # --with-coverage --cover-erase
+docker-compose run -e LANG=en_US.UTF-8 web ./run_tests --with-xunitmp # --with-coverage --cover-erase
 retcode=$?
 
 #find . -name .coverage -maxdepth 2 | while read coveragefile; do pushd `dirname $coveragefile`; coverage xml --include='forge*,allura*'; popd; done;
 
-rm -f call_count.csv
-./scripts/perf/call_count.py --data-file call_count.csv
-
-
-# debugging
-echo npm: `npm --version`
-echo hostname: `hostname --short`
-echo NODE_NAME: $NODE_NAME
+echo
+echo "============================================================================="
+echo "Shutdown"
+echo "============================================================================="
+docker-compose down
+docker container prune -f
+docker volume prune -f
 
 exit $retcode
\ No newline at end of file

[allura] 03/07: python3.7 - committing initial jenkins script

Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

brondsem pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/allura.git

commit 7dda533451ec8733c8d0fa51ba6988deccd982f6
Author: Dillon Walls <di...@slashdotmedia.com>
AuthorDate: Thu Feb 17 10:51:11 2022 -0500

    python3.7 - committing initial jenkins script
---
 scripts/jenkins-python3.7.sh | 72 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)

diff --git a/scripts/jenkins-python3.7.sh b/scripts/jenkins-python3.7.sh
new file mode 100644
index 0000000..e2243d4
--- /dev/null
+++ b/scripts/jenkins-python3.7.sh
@@ -0,0 +1,72 @@
+#!/bin/bash
+# need to specify the shell, else Jenkins will quit after the first non-zero exit
+
+echo -n 'cpu count: '; grep -c processor /proc/cpuinfo 
+echo python path: `which python; python -V`
+echo python3 path: `which python3; python3 -V`
+echo python3.7 path: `which python3.7;`
+echo path: $PATH
+echo workspace: $WORKSPACE
+echo jenkins_home: $JENKINS_HOME
+echo home: $HOME
+echo pwd: `pwd`
+echo REBUILD_VENV: $REBUILD_VENV
+echo LANG: $LANG
+env
+git --version
+svn --version
+echo pip: `pip3 --version`
+echo npm: `npm --version`
+
+rm -rf ".allura-venv"
+
+# ubuntu "python3-venv" isn't installed, so can't do the simple approach, instead use full "virtualenv" package
+#  python3 -m venv .allura-venv || exit
+pip3 install --user virtualenv || exit  # TODO: upgrade it?  seeing 15.x and 20.x
+echo virtualenv 3: `python3 -m virtualenv --version`
+# `python3 -m virtualenv` can sometimes default to using the py2 binary (weird!) so be explicit:
+python3 -m virtualenv --python `which python3` .allura-venv || exit
+
+. .allura-venv/bin/activate || exit
+
+git clean -f -x  # remove test.log, nosetest.xml etc (don't use -d since it'd remove our venv dir)
+
+echo venv-pip: `pip --version`
+pip --version | grep 'python 3' || exit  # ensure on py3
+
+# retry a few times
+# MAIN_PIP="pip install -r requirements.txt --no-deps --upgrade --upgrade-strategy=only-if-needed"
+MAIN_PIP="pip install -r requirements.txt --upgrade --upgrade-strategy=only-if-needed"
+$MAIN_PIP || (echo "retrying pip install after short sleep"; sleep 2; $MAIN_PIP) || exit
+
+pip install pycodestyle pyflakes coverage nose nose-xunitmp --no-deps --upgrade --upgrade-strategy=only-if-needed || exit
+
+# handy script to download, compile, and install pysvn
+curl https://raw.githubusercontent.com/reviewboard/pysvn-installer/master/install.py | python
+
+# use "Allura* Forge* scripts" instead of "." so that .allura-venv doesn't get checked too (and '.' gives './' prefixed results which don't work out)
+pyflakes Allura* Forge* scripts | awk -F\: '{printf "%s:%s: [E]%s\n", $1, $2, $3}' > pyflakes.txt
+pycodestyle Allura* Forge* scripts > pep8.txt
+
+./rebuild-all.bash
+
+# fresh start with npm
+#rm -rf node_modules
+npm install || (echo "retrying npm install"; sleep 5; npm install) || (echo "retrying npm install"; sleep 5; npm install) || (echo "retrying npm install"; sleep 5; npm install) || (echo "retrying npm install"; sleep 5; npm install) || (echo "retrying npm install"; sleep 5; npm install) 
+
+# TODO: ALLURA_VALIDATION=all
+LANG=en_US.UTF-8 ./run_tests --with-xunitmp # --with-coverage --cover-erase
+retcode=$?
+
+#find . -name .coverage -maxdepth 2 | while read coveragefile; do pushd `dirname $coveragefile`; coverage xml --include='forge*,allura*'; popd; done;
+
+rm -f call_count.csv
+./scripts/perf/call_count.py --data-file call_count.csv
+
+
+# debugging
+echo npm: `npm --version`
+echo hostname: `hostname --short`
+echo NODE_NAME: $NODE_NAME
+
+exit $retcode
\ No newline at end of file