Skip to content

Commit

Permalink
Merge pull request #614 from openworm/development
Browse files Browse the repository at this point in the history
Release 1.0.0
  • Loading branch information
tarelli authored May 14, 2019
2 parents 03a09ce + b00b39a commit 1f8b088
Show file tree
Hide file tree
Showing 15 changed files with 505 additions and 541 deletions.
28 changes: 16 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,29 @@

# [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/)
#### [Contribution guidelines](http://docs.geppetto.org/en/latest/contribute.html#how-to-contribute-code-to-geppetto) | [Development progress](https://waffle.io/openworm/org.geppetto)

**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 <https://live.geppetto.org>.**
**If you want to play with a demo application built with Geppetto just visit <https://live.geppetto.org>.**

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)
Expand All @@ -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 <[email protected]> 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)

Expand Down
27 changes: 10 additions & 17 deletions geppetto.plan
Original file line number Diff line number Diff line change
@@ -1,17 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<plan name="multi-artifact.plan" version="1.0.0" scoped="true" atomic="true"
xmlns="http://www.springsource.org/schema/dm-server/plan"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springsource.org/schema/dm-server/plan
http://www.springsource.org/schema/dm-server/plan/springsource-dm-server-plan.xsd">


<artifact type="bundle" name="org.geppetto.model" version="0.4.2"/>
<artifact type="bundle" name="org.geppetto.core" version="0.4.2"/>
<artifact type="bundle" name="org.geppetto.model.neuroml" version="0.4.2"/>
<artifact type="bundle" name="org.geppetto.simulation" version="0.4.2"/>
<artifact type="bundle" name="org.geppetto.frontend" version="0.4.2"/>


</plan>
<?xml version="1.0" ?>
<plan atomic="true" name="multi-artifact.plan" scoped="true" version="1.0.0" xmlns="http://www.springsource.org/schema/dm-server/plan" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springsource.org/schema/dm-server/plan http://www.springsource.org/schema/dm-server/plan/springsource-dm-server-plan.xsd">

<artifact name="org.geppetto.model" type="bundle" version="1.0.0"/>
<artifact name="org.geppetto.core" type="bundle" version="1.0.0"/>
<artifact name="org.geppetto.model.neuroml" type="bundle" version="1.0.0"/>
<artifact name="org.geppetto.simulation" type="bundle" version="1.0.0"/>
<artifact name="org.geppetto.frontend" type="bundle" version="1.0.0"/>

</plan>
31 changes: 15 additions & 16 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.geppetto</groupId>
<artifactId>org.geppetto</artifactId>
<name>Geppetto</name>
<version>0.4.2</version>
<packaging>pom</packaging>
<modules>
<module>../org.geppetto.model</module>
<module>../org.geppetto.core</module>
<module>../org.geppetto.model.neuroml</module>
<module>../org.geppetto.simulation</module>
<module>../org.geppetto.frontend</module>
</modules>
</project>
<?xml version="1.0" ?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.geppetto</groupId>
<artifactId>org.geppetto</artifactId>
<name>Geppetto</name>
<version>1.0.0</version>
<packaging>pom</packaging>
<modules>
<module>../org.geppetto.model</module>
<module>../org.geppetto.core</module>
<module>../org.geppetto.model.neuroml</module>
<module>../org.geppetto.simulation</module>
<module>../org.geppetto.frontend</module>
</modules>
</project>
128 changes: 58 additions & 70 deletions utilities/docker/geppetto-persistence/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,83 +1,71 @@
FROM java:8
MAINTAINER Stephen Larson "[email protected]"
FROM metacell/java-virgo-maven:development
LABEL maintainer="Facundo Rodriguez <[email protected]>"

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
Expand All @@ -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/*
Expand All @@ -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

Expand Down
12 changes: 6 additions & 6 deletions utilities/docker/geppetto-persistence/geppetto.plan
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@
http://www.springsource.org/schema/dm-server/plan/springsource-dm-server-plan.xsd">


<artifact type="bundle" name="org.geppetto.model" version="0.4.2"/>
<artifact type="bundle" name="org.geppetto.core" version="0.4.2"/>
<artifact type="bundle" name="org.geppetto.persistence" version="0.4.2"/>
<artifact type="bundle" name="org.geppetto.model.neuroml" version="0.4.2"/>
<artifact type="bundle" name="org.geppetto.simulation" version="0.4.2"/>
<artifact type="bundle" name="org.geppetto.frontend" version="0.4.2"/>
<artifact type="bundle" name="org.geppetto.model" version="1.0.0"/>
<artifact type="bundle" name="org.geppetto.core" version="1.0.0"/>
<artifact type="bundle" name="org.geppetto.persistence" version="1.0.0"/>
<artifact type="bundle" name="org.geppetto.model.neuroml" version="1.0.0"/>
<artifact type="bundle" name="org.geppetto.simulation" version="1.0.0"/>
<artifact type="bundle" name="org.geppetto.frontend" version="1.0.0"/>

<!--
<artifact type="bundle" name="org.geppetto.simulator.external" version="0.4.1"/>
Expand Down
8 changes: 8 additions & 0 deletions utilities/docker/geppetto-persistence/sources.list
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
deb http://deb.debian.org/debian/ jessie main
deb-src http://deb.debian.org/debian/ jessie main

deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main

deb http://archive.debian.org/debian jessie-backports main
deb-src http://archive.debian.org/debian jessie-backports main
Loading

0 comments on commit 1f8b088

Please sign in to comment.