aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md72
1 files changed, 56 insertions, 16 deletions
diff --git a/README.md b/README.md
index 47519118..003cfd7b 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,15 @@
[![DOI](https://zenodo.org/badge/5591/genenetwork/genenetwork2.svg)](https://zenodo.org/badge/latestdoi/5591/genenetwork/genenetwork2) [![JOSS](http://joss.theoj.org/papers/10.21105/joss.00025/status.svg)](http://joss.theoj.org/papers/10.21105/joss.00025)
+[![Actions Status](https://github.com/genenetwork/genenetwork2/workflows/tests/badge.svg)](https://github.com/genenetwork/genenetwork2/actions)
+
# GeneNetwork
-This repository contains the source code for the GeneNetwork (GN)
-server http://gn2.genenetwork.org/ (version 2 aka GN2). GN is a Web
-2.0 style framework with included tools for doing genetics online
-using high-throughput data. GN is used for a wide range of studies. An
-exhaustive list of publications mentioning GN and its previous
-incarnation WebQTL can be found
-[here](http://www.genenetwork.org/reference.html).
+This repository contains the current source code for GeneNetwork (GN)
+(https://www.genenetwork.org/ (version 2). GN2 is a Web
+2.0-style framework that includes data and computational tools for online genetics and genomic analysis of
+many different populations and many types of molecular, cellular, and physiological data.
+The system is used by scientists and clinians in the field of precision health care and systems genetics.
+GN and its predecessors have been in operation since Jan 1994, making it one of the longest-lived web services in biomedical research (https://en.wikipedia.org/wiki/GeneNetwork, and see a partial list of publications using GN and its predecessor, WebQTL (https://genenetwork.org/references/).
## Install
@@ -19,13 +20,14 @@ developers). See the [installation docs](doc/README.org).
## Run
-Once installed GN2 can be run online through a browser interface
+Once having installed GN2 it can be run through a browser
+interface
```sh
genenetwork2
```
-(default is http://localhost:5003/). A quick example is
+A quick example is
```sh
env GN2_PROFILE=~/opt/gn-latest SERVER_PORT=5300 GENENETWORK_FILES=~/data/gn2_data/ ./bin/genenetwork2 ./etc/default_settings.py -gunicorn-dev
@@ -35,14 +37,26 @@ For full examples (you may need to set a number of environment
variables), including running scripts and a Python REPL, also see the
startup script [./bin/genenetwork2](https://github.com/genenetwork/genenetwork2/blob/testing/bin/genenetwork2).
-Also Mysql and Elasticsearch need to be running, see
+Also mariadb and redis need to be running, see
[INSTALL](./doc/README.org).
## Testing
+To have tests pass, the redis and mariadb instance should be running, because of
+asserts sprinkled in the code base.
+
+Right now, the only tests running in CI are unittests. Please make
+sure the existing unittests are green when submitting a PR.
+
+See
+[./bin/genenetwork2](https://github.com/genenetwork/genenetwork2/blob/testing/doc/docker-container.org)
+for more details.
+
+#### Mechanical Rob
+
We are building 'Mechanical Rob' automated testing using Python
-[requests](https://github.com/genenetwork/genenetwork2/tree/master/test/lib)
-which can be run with something like
+[requests](https://github.com/genenetwork/genenetwork2/tree/testing/test/requests)
+which can be run with:
```sh
env GN2_PROFILE=~/opt/gn-latest ./bin/genenetwork2 ./etc/default_settings.py -c ../test/requests/test-website.py -a http://localhost:5003
@@ -54,6 +68,32 @@ and executes test-website.py in a Python interpreter. The -a switch
says to run all tests and the URL points to the running GN2 http
server.
+#### Unit tests
+
+To run unittests, first `cd` into the genenetwork2 directory:
+
+```sh
+# You can use the coverage tool to run the tests
+# You could omit the -v which makes the output verbose
+runcmd coverage run -m unittest discover -v
+
+# Alternatively, you could run the unittests using:
+runpython -m unittest discover -v
+
+# To generate a report in wqflask/coverage_html_report/:
+runcmd coverage html
+```
+
+The `runcmd` and `runpython` are shell aliases defined in the following way:
+
+```sh
+alias runpython="env GN2_PROFILE=~/opt/gn-latest TMPDIR=/tmp SERVER_PORT=5004 GENENETWORK_FILES=/gnu/data/gn2_data/ ./bin/genenetwork2
+
+alias runcmd="time env GN2_PROFILE=~/opt/gn-latest TMPDIR=//tmp SERVER_PORT=5004 GENENETWORK_FILES=/gnu/data/gn2_data/ ./bin/genenetwork2 ./etc/default_settings.py -cli"
+```
+
+Replace some of the env variables as per your use case.
+
## Documentation
User documentation can be found
@@ -73,10 +113,10 @@ Contribute to GN2 source code by forking the
[github repository](https://github.com/genenetwork/genenetwork2/) with
git and sending us pull requests.
-For development GN2 has a
-[mailing list](http://listserv.uthsc.edu/mailman/listinfo/genenetwork-dev)
-and an active IRC channel #genenetwork on freenode.net with a
-[web interface](http://webchat.freenode.net/).
+For development GN2 has a [mailing
+list](http://listserv.uthsc.edu/mailman/listinfo/genenetwork-dev) and
+an active IRC channel #genenetwork on freenode.net with a [web
+interface](http://webchat.freenode.net/).
## License