diff --git a/README.md b/README.md index 95136565..b09a434d 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,6 @@ # [Geppetto](http://www.geppetto.org/) -[![Stories in Ready](https://badge.waffle.io/openworm/org.geppetto.png?label=ready&title=Ready)](https://waffle.io/openworm/org.geppetto) [![StackShare](http://img.shields.io/badge/tech-stack-0690fa.svg?style=flat)](http://stackshare.io/tarelli/geppetto) #### [Website](http://www.geppetto.org/) | [Documentation](http://docs.geppetto.org/) | [Releases](https://github.com/openworm/org.geppetto/releases/) @@ -12,19 +11,22 @@ **Geppetto is an open-source platform to build web-based applications to visualize and simulate neuroscience data and models.** -**If you just want to play with a demo Geppetto deployment you don't need to install anything, just visit .** +**If you want to play with a demo application built with Geppetto just visit .** -If you want to setup your own Geppetto deployment from sources use our [Setup Instructions](http://docs.geppetto.org/en/latest/osxlinuxsetup.html). If you need help building a neuroscience application using Geppetto or if you want to join the project as a contributor you can [send an email](mailto:matteo@geppetto.org) or just interact with us through GitHub! +If you want to build your own Geppetto application follow these [instructions](http://docs.geppetto.org/en/latest/build.html) and [these steps](http://docs.geppetto.org/en/latest/osxlinuxsetup.html) to setup the source code using the Java Backend. -This is the umbrella project that keeps together all the different Geppetto modules currently available: +The demo application is available in [this repository](https://github.com/openworm/geppetto-application) which you can fork to build your own. Every Geppetto application has an npm dependency on [geppetto-client](https://github.com/openworm/geppetto-client/tree/development) which makes all the frontend Geppetto components and infrastructure available to the application. A Geppetto application can be deployed on different backends based on Java (via Eclipse Virgo) or Python (via [Jupyter Notebook](https://github.com/openworm/org.geppetto.frontend.jupyter) or [Django](https://github.com/MetaCell/pygeppetto-django)). + +#### Web client + The [Geppetto Client](https://github.com/openworm/geppetto-client/tree/development) is reused in all Geppetto applications. It contains all the GUI components, the Javascript facilities to interact with the Geppetto Model and the infrastructure to communicae with the backend. The Geppetto client is available from [npm](https://www.npmjs.com/package/@geppettoengine/geppetto-client). #### Java backend -The Java backend is used in client-server deployments of Geppetto. The Java backend is modular allowing each deployment to be customised only with the relevant bundles. +The Java backend is the reference backend implementation and is used in client-server deployments of Geppetto. The Java backend is modular allowing each deployment to be customised only with the relevant bundles. * Essential * [org.geppetto.model](https://github.com/openworm/org.geppetto.model) [![Build Status](https://travis-ci.org/openworm/org.geppetto.model.png?branch=master)](https://travis-ci.org/openworm/org.geppetto.model) * [org.geppetto.core](https://github.com/openworm/org.geppetto.core) [![Build Status](https://travis-ci.org/openworm/org.geppetto.core.png?branch=master)](https://travis-ci.org/openworm/org.geppetto.core) * [org.geppetto.simulation](https://github.com/openworm/org.geppetto.simulation) [![Build Status](https://travis-ci.org/openworm/org.geppetto.simulation.png?branch=master)](https://travis-ci.org/openworm/org.geppetto.simulation) - * [org.geppetto.frontend](https://github.com/openworm/org.geppetto.frontend) [![Build Status](https://travis-ci.org/openworm/org.geppetto.frontend.png?branch=master)](https://travis-ci.org/openworm/org.geppetto.frontend) (Note: The frontend is resused on all backends) + * [org.geppetto.frontend](https://github.com/openworm/org.geppetto.frontend) [![Build Status](https://travis-ci.org/openworm/org.geppetto.frontend.png?branch=master)](https://travis-ci.org/openworm/org.geppetto.frontend) (Note: the repository of the geppetto application you want to deploy in a Java Backend needs to be cloned inside this bundle) * Optional * [org.geppetto.persistence](https://github.com/openworm/org.geppetto.persistence) [![Build Status](https://travis-ci.org/openworm/org.geppetto.persistence.png?branch=master)](https://travis-ci.org/openworm/org.geppetto.persistence) * [org.geppetto.datasources](https://github.com/openworm/org.geppetto.datasources) [![Build Status](https://travis-ci.org/openworm/org.geppetto.datasources.png?branch=master)](https://travis-ci.org/openworm/org.geppetto.datasources) @@ -37,18 +39,20 @@ The Java backend is used in client-server deployments of Geppetto. The Java back * Fluid mechanics (Currently in development) * [org.geppetto.sibernetic](https://github.com/openworm/org.geppetto.sibernetic) [![Build Status](https://travis-ci.org/openworm/org.geppetto.sibernetic.png?branch=master)](https://travis-ci.org/openworm/org.geppetto.sibernetic) -#### Python Backend (prototype, in development) -The Python backend is based on a Geppetto Jupyter extension which allows the user to interact with the Geppetto frontend from Python. This deployment makes it ideal to use Geppetto as a visualization/computational local playground. - * [org.geppetto.frontend.jupyter](https://github.com/openworm/org.geppetto.frontend.jupyter) [![Build Status](https://travis-ci.org/openworm/org.geppetto.frontend.jupyter.png?branch=master)](https://travis-ci.org/openworm/org.geppetto.frontend.jupyter) +#### Python Backend (working prototype, in development) + +Python backends are being developed both on top of [Django](https://github.com/MetaCell/pygeppetto-django) and as a [Jupyter Notebook extension](https://github.com/openworm/org.geppetto.frontend.jupyter). The Jupyter extension allows the user to host a Geppetto application inside a Jupyter Notebook environment. The application will talk to the Python kernel of the notebook which will act as a backend. Client-server deployments based on the Jupyter Notebook extension are also possible using Jupyter Hub. + + * [org.geppetto.frontend.jupyter](https://github.com/openworm/org.geppetto.frontend.jupyter) + +All Python backends will reuse pyGeppetto as the main library. pyGeppetto contains the code to work with a Geppetto model and to implement the REST and Websockets APIs which is independent of the specific server (e.g., Django, Jupyter, etc.). + * [pyGeppetto](https://github.com/openworm/pygeppetto) #### Node.js Backend (proof of concept) * [org.geppetto.frontend.nodejs](https://github.com/openworm/org.geppetto.frontend.nodejs) [![Build Status](https://travis-ci.org/openworm/org.geppetto.frontend.nodejs.png?branch=master)](https://travis-ci.org/openworm/org.geppetto.frontend.nodejs) -Geppetto is an open-source project with a growing community, if you want to contribute (with either new simulators support, visualisation widgets or backend magic) please do get in touch at or fork any of the bundles and do what you please. - - #### [Website](http://www.geppetto.org/) | [Documentation](http://docs.geppetto.org/) | [Releases](https://github.com/openworm/org.geppetto/releases/) #### [Contribution guidelines](http://docs.geppetto.org/en/latest/contribute.html#how-to-contribute-code-to-geppetto) | [Development progress](https://waffle.io/openworm/org.geppetto) diff --git a/geppetto.plan b/geppetto.plan index 8389a865..c2a35091 100644 --- a/geppetto.plan +++ b/geppetto.plan @@ -1,17 +1,10 @@ - - - - - - - - - - - - + + + + + + + + + + diff --git a/pom.xml b/pom.xml index 0ce7a36d..38625fb0 100644 --- a/pom.xml +++ b/pom.xml @@ -1,16 +1,15 @@ - - 4.0.0 - org.geppetto - org.geppetto - Geppetto - 0.4.2 - pom - - ../org.geppetto.model - ../org.geppetto.core - ../org.geppetto.model.neuroml - ../org.geppetto.simulation - ../org.geppetto.frontend - - + + 4.0.0 + org.geppetto + org.geppetto + Geppetto + 1.0.0 + pom + + ../org.geppetto.model + ../org.geppetto.core + ../org.geppetto.model.neuroml + ../org.geppetto.simulation + ../org.geppetto.frontend + + diff --git a/utilities/docker/geppetto-persistence/Dockerfile b/utilities/docker/geppetto-persistence/Dockerfile index 0ab10e49..b598572c 100644 --- a/utilities/docker/geppetto-persistence/Dockerfile +++ b/utilities/docker/geppetto-persistence/Dockerfile @@ -1,83 +1,71 @@ -FROM java:8 -MAINTAINER Stephen Larson "slarson@openworm.org" +FROM metacell/java-virgo-maven:development +LABEL maintainer="Facundo Rodriguez " ARG aKey ENV aKey=${aKey} ARG sKey ENV sKey=${sKey} -ARG mainBranch=development -ENV mainBranch=${mainBranch} -RUN echo "USE GIT BRANCH ------------ $mainBranch"; -RUN apt-get update && apt-get install -qq -y sudo +ARG targetBranch=master +ARG originBranch=master +ARG defaultBranch=master +RUN /bin/echo -e "\e[1;35mORIGIN BRANCH ------------ $originBranch\e[0m" &&\ + /bin/echo -e "\e[1;35mTARGET BRANCH ------------ $targetBranch\e[0m" &&\ + /bin/echo -e "\e[1;35mDEFAULT BRANCH ------------ $defaultBranch\e[0m" -# Install maven -RUN apt-get update - -RUN useradd -ms /bin/bash developer - -RUN mkdir -p /home/developer && mkdir -p /etc/sudoers.d \ - echo "developer:x:1000:1000:Developer,,,:/home/developer:/bin/bash" >> /etc/passwd && \ - echo "developer:x:1000:" >> /etc/group && \ - echo "developer ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/developer && \ - chmod 0440 /etc/sudoers.d/developer && \ - chown developer:developer -R /home/developer && \ - chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo - -USER developer -ENV HOME /home/developer -WORKDIR /home/developer - -# get maven 3.5.2 -RUN sudo wget --no-verbose -O /tmp/apache-maven-3.5.2-bin.tar.gz http://archive.apache.org/dist/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz - -# install maven -RUN sudo tar xzf /tmp/apache-maven-3.5.2-bin.tar.gz -C /opt/ -RUN sudo ln -s /opt/apache-maven-3.5.2 /opt/maven -RUN sudo ln -s /opt/maven/bin/mvn /usr/local/bin -RUN sudo rm -f /tmp/apache-maven-3.5.2-bin.tar.gz -ENV MAVEN_HOME /opt/maven - -#VIRGO INSTALL -USER root -RUN apt-get update && apt-get install -qq -y curl bsdtar locate && apt-get install -qq -y net-tools -USER developer -RUN mkdir -p /home/developer/virgo -RUN curl -L 'http://www.eclipse.org/downloads/download.php?file=/virgo/release/VP/3.7.2.RELEASE/virgo-tomcat-server-3.7.2.RELEASE.zip&r=1' | bsdtar --strip-components 1 -C /home/developer/virgo -xzf - -ADD dmk.sh /home/developer/virgo/bin/ -RUN rm /home/developer/virgo/configuration/java-server.profile -ADD java-server.profile /home/developer/virgo/configuration/ -RUN rm /home/developer/virgo/configuration/tomcat-server.xml -ADD tomcat-server.xml /home/developer/virgo/configuration/ -USER root -RUN chown developer /home/developer/virgo/bin/dmk.sh -USER developer -RUN chmod u+x /home/developer/virgo/bin/*.sh -ENV SERVER_HOME /home/developer/virgo -#VOLUME /home/developer/virgo -#END VIRGO INSTALL - -RUN mvn --version - -#GET GEPPETTO SOURCES -USER root -RUN mkdir -p workspace && cd workspace && git clone http://github.com/openworm/org.geppetto && cd org.geppetto && git checkout master -RUN chmod -R 777 workspace -USER developer +# get geppetto +RUN mkdir -p workspace &&\ + cd workspace &&\ + ../copy.sh http://github.com/openworm/org.geppetto.git "${targetBranch}" "${originBranch}" "${defaultBranch}" COPY config.json workspace/org.geppetto/utilities/source_setup/ RUN sudo mv /home/developer/workspace/org.geppetto/utilities/docker/geppetto-persistence/geppetto.plan /home/developer - COPY geppetto.plan workspace/org.geppetto/ -RUN sudo chmod -R 777 workspace; -RUN cd workspace && git clone https://github.com/openworm/org.geppetto.model.git && cd org.geppetto.model && git checkout $mainBranch && mvn --quiet install; -RUN cd workspace && git clone https://github.com/openworm/org.geppetto.core.git && cd org.geppetto.core && git checkout $mainBranch && mvn --quiet install; -RUN cd workspace && git clone https://github.com/openworm/org.geppetto.model.neuroml.git && cd org.geppetto.model.neuroml && git checkout $mainBranch && mvn --quiet install; -RUN cd workspace && git clone https://github.com/openworm/org.geppetto.simulation.git && cd org.geppetto.simulation && git checkout $mainBranch && mvn --quiet install; -RUN cd workspace && git clone https://github.com/openworm/org.geppetto.frontend.git && cd org.geppetto.frontend && git checkout $mainBranch && mvn --quiet install; -RUN cd workspace && git clone https://github.com/openworm/org.geppetto.persistence.git && cd org.geppetto.persistence && git checkout $mainBranch && mvn --quiet install; - +WORKDIR $HOME/workspace +RUN ../copy.sh https://github.com/openworm/org.geppetto.model.git "${targetBranch}" "${originBranch}" "${defaultBranch}" &&\ + cd org.geppetto.model &&\ + /bin/echo -e "\e[96mMaven install org.geppetto.model\e[0m" &&\ + mvn --quiet install &&\ + rm -rf src + +RUN ../copy.sh https://github.com/openworm/org.geppetto.core.git "${targetBranch}" "${originBranch}" "${defaultBranch}" &&\ + cd org.geppetto.core &&\ + /bin/echo -e "\e[96mMaven install org.geppetto.core\e[0m" &&\ + mvn --quiet install &&\ + rm -rf src + +RUN ../copy.sh https://github.com/openworm/org.geppetto.model.neuroml.git "${targetBranch}" "${originBranch}" "${defaultBranch}" &&\ + cd org.geppetto.model.neuroml &&\ + /bin/echo -e "\e[96mMaven install org.geppetto.model.neuroml\e[0m" &&\ + mvn --quiet install &&\ + rm -rf src + +RUN ../copy.sh https://github.com/openworm/org.geppetto.simulation.git "${targetBranch}" "${originBranch}" "${defaultBranch}" &&\ + cd org.geppetto.simulation &&\ + /bin/echo -e "\e[96mMaven install org.geppetto.simulation\e[0m" &&\ + mvn --quiet install &&\ + rm -rf src + +RUN ../copy.sh https://github.com/openworm/org.geppetto.frontend.git "${targetBranch}" "${originBranch}" "${defaultBranch}" + +RUN cd $HOME/workspace/org.geppetto.frontend/src/main &&\ + $HOME/copy.sh https://github.com/openworm/geppetto-application.git "${targetBranch}" "${originBranch}" "${defaultBranch}" &&\ + mv geppetto-application webapp + +RUN cd $HOME/workspace/org.geppetto.frontend/src/main/webapp &&\ + $HOME/rename.sh https://github.com/openworm/geppetto-client.git "${targetBranch}" "${originBranch}" "${defaultBranch}" + +RUN cd $HOME/workspace/org.geppetto.frontend &&\ + mvn --quiet install &&\ + rm -rf src + +RUN ../copy.sh https://github.com/openworm/org.geppetto.persistence.git "${targetBranch}" "${originBranch}" "${defaultBranch}" &&\ + cd org.geppetto.persistence &&\ + /bin/echo -e "\e[96mMaven install org.geppetto.persistence\e[0m" &&\ + mvn --quiet install + +WORKDIR $HOME #END GET GEPPETTO SOURCES #INSTALL MYSQL @@ -87,7 +75,7 @@ ENV MYSQL_USER=mysql \ MYSQL_RUN_DIR=/run/mysqld \ MYSQL_LOG_DIR=/var/log/mysql -RUN apt-get update \ +RUN apt-get -o Acquire::Check-Valid-Until=false update \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y mysql-server \ && rm -rf ${MYSQL_DATA_DIR} \ && rm -rf /var/lib/apt/lists/* @@ -114,7 +102,7 @@ RUN service mysql start && mysql -uroot < /home/developer/geppetto/init.sql #END SETUP MYSQL INITIAL DATA USER developer -RUN cd /home/developer/workspace/org.geppetto.persistence && mvn install --quiet && mvn install +# RUN cd /home/developer/workspace/org.geppetto.persistence && mvn install --quiet && mvn install RUN sudo service mysql start && cd /home/developer/workspace/org.geppetto.persistence && mvn exec:java -Dexec.mainClass="org.geppetto.persistence.util.DBTestData" -Dexec.classpathScope=runtime diff --git a/utilities/docker/geppetto-persistence/geppetto.plan b/utilities/docker/geppetto-persistence/geppetto.plan index b66f96da..c657eece 100644 --- a/utilities/docker/geppetto-persistence/geppetto.plan +++ b/utilities/docker/geppetto-persistence/geppetto.plan @@ -7,12 +7,12 @@ http://www.springsource.org/schema/dm-server/plan/springsource-dm-server-plan.xsd"> - - - - - - + + + + + +