Commit 71056612 authored by Mathieu's avatar Mathieu
Browse files

Merge branch 'master' of github.com:openmole/openmole

parents 86a8b696 0ac0ce72
stages:
- assemble
image: openmole/build
assemble:
stage: assemble
script:
#- bash -x build.sh
#- '(cd openmole && sbt test)' # Metaspace error to be solved
- git lfs fetch
- '(cd build-system && sbt publishLocal)'
- '(cd libraries && sbt publishLocal)'
- '(cd openmole && ./generateSite $PWD/site)'
#- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
#- mkdir -p ~/.ssh
#- chmod 700 ~/.ssh
#- echo "$SSH_PRIVATE_KEY" >~/.ssh/identity
#- chmod 400 ~/.ssh/identity
#- ssh-keyscan -p 21022 docker.openmole.org > ~/.ssh/known_hosts
#- chmod 644 ~/.ssh/known_hosts
#- echo "put -r ./openmole/site/* next" >./tonext
#- sftp -i ~/.ssh/identity -b ./tonext -P 21022 user@docker.openmole.org
only:
refs:
- 9-dev
[lfs]
url = https://gitlab.iscpif.fr/openmole/openmole.git/info/lfs
url = https://gitlab.openmole.org/openmole/openmole.git/info/lfs
#url = ssh://git@gitlab.iscpif.fr:20022/openmole/openmole.git
[OpenMOLE](http://www.openmole.org) (Open MOdeL Experiment) is a workflow engine designed to leverage the computing power of distributed execution environments for naturally parallel processes. A process is told naturally parallel if the same computation runs many times for a set of different inputs, such as model experiment or data processing, ...
[OpenMOLE](http://www.openmole.org) (Open MOdeL Experiment) has been developed since 2008 as a free and open-source platform. It offers tools to run, explore, diagnose and optimize your numerical model, taking advantage of distributed computing environments. With OpenMOLE you can explore your already developed model, in any language (Java, Binary exe, NetLogo, R, SciLab, Python, C++...).
* The stable version is available [here](http://openmole.org).
* A fresh build of the developement version is available [here](http://next.openmole.org).
* The __stable version__ is available on [openmole.org](http://openmole.org).
* A __fresh build__ of the developement version is available on [next.openmole.org](http://next.openmole.org).
It is a free software distributed under the [AGPLv3](http://www.gnu.org/licenses/agpl.html) free software license.
OpenMOLE is distributed under the [AGPLv3](http://www.gnu.org/licenses/agpl.html) free software license.
## OpenMOLE by example ##
Imagine that you want to understand and/or optimize some parameters of an executable that you generally set in an empirical or arbitrary manner.
Then embed the executable in OpenMOLE (*5 minutes*), use one of the distributed genetic algorithms provided by OpenMOLE (*5 minutes*) and launch the workflow on a distributed execution environment with thousands of machines (*1 minute*).
Imagine that you want to understand and/or optimize some parameters of an executable that you generally set in an empirical or arbitrary manner. Then embed the executable in OpenMOLE (*5 minutes*), use one of the distributed genetic algorithms provided by OpenMOLE (*5 minutes*) and launch the workflow on a distributed execution environment with thousands of machines (*1 minute*).
To summarize, you can **design large scale distributed programs** reusing **legacy code** and advanced numeric methods in approximately **10 minutes**.
## Try it! ##
To checkout OpenMOLE you can play with to the [demo site](http://demo.openmole.org) (this site is wiped out every two hours). You should click on the little cart and try out some of the market place examples.
:warning: Don't provide any credential to this site! :warning:
To checkout OpenMOLE you can play with to the [demo site](http://demo.openmole.org) (this site is wiped out every few hours). You should click on the little cart and try out some of the market place examples.
## OpenMOLE Features: ##
- **Expressive workflows** – Graphical and textual (**Domain Specific Language**) workflow system to describe naturally parallel processes,
- **Expressive syntax** – A Domain Specific Language to describe your exploration processes,
- **Transparent distributed computing** – Zero-deployment (no installation step) approach to distribute the workload transparently on your multi-core machines, desktop-grids, clusters, grids, ...
- **Works with your programs** – Embed user’s executables (**Java, Binary exe, NetLogo, R, Scilab, Python, C++, ...**),
- **Scalable** – Handles millions of tasks and TB of data,
- **Advanced methods** – Advanced numerical experiments (design of experiments, stochastic replication, calibration, sensitivity analysis, ...),
- **Mature** – Developed since 2008, used in many real world applications and for daily production by many scientists.
- **Advanced methods** – Advanced numerical experiments (design of experiments, optimization, calibration, sensitivity analysis, ...).
## OpenMOLE Avanced Features: ##
## Need some help to get started? ##
- **Workflow plateform** – Design scientific workflows that may use legacy code,
- **Distributed genetic algorithms** - Distribute the computation of your fitness functions,
- **Distributed computing** - A high level aproach to distributed computing.
To get help please go to [on the OpenMOLE help forum](http://ask.openmole.org).
*.log
target/
target/*
*.orig
build
build/*
dist
dist/*
private
private/*
release/
release/*
*.iml
*.ipr
*.iws
*.iml
.idea/
.idea/*
*~
.project
.settings
*.bak
.directory
.DS_Store
*.history
**/openmole/bin/org.openmole.marketindex/src/main/resources/openmole-market
## Emacs, make this -*- mode: sh; -*-
FROM debian:testing-slim
MAINTAINER "Romain Reuillon"
## Set a default user. Available via runtime flag `--user docker`
## Add user to 'staff' group, granting them write privileges to /usr/local/lib/R/site.library
## User should also have & own a home directory (for rstudio or linked volumes to work properly).
RUN useradd docker \
&& mkdir /home/docker \
&& chown docker:docker /home/docker \
&& addgroup docker staff
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ed \
less \
locales \
vim-tiny \
wget \
ca-certificates \
fonts-texgyre \
&& rm -rf /var/lib/apt/lists/*
## Configure default locale, see https://github.com/rocker-org/rocker/issues/19
RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \
&& locale-gen en_US.utf8 \
&& /usr/sbin/update-locale LANG=en_US.UTF-8
ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8
## Use Debian unstable via pinning -- new style via APT::Default-Release
#RUN echo "deb http://http.debian.net/debian sid main" > /etc/apt/sources.list.d/debian-unstable.list \
# && echo 'APT::Default-Release "testing";' > /etc/apt/apt.conf.d/default
## Now install R and littler, and create a link for littler in /usr/local/bin
## Also set a default CRAN repo, and make sure littler knows about it too
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
littler \
r-cran-littler \
r-base \
r-base-dev \
r-recommended \
&& echo 'options(repos = c(CRAN = "https://cran.rstudio.com/"), download.file.method = "libcurl")' >> /etc/R/Rprofile.site \
&& echo 'source("/etc/R/Rprofile.site")' >> /etc/littler.r \
&& ln -s /usr/share/doc/littler/examples/install.r /usr/local/bin/install.r \
&& ln -s /usr/share/doc/littler/examples/install2.r /usr/local/bin/install2.r \
&& ln -s /usr/share/doc/littler/examples/installGithub.r /usr/local/bin/installGithub.r \
&& ln -s /usr/share/doc/littler/examples/testInstalled.r /usr/local/bin/testInstalled.r \
&& install.r docopt \
&& rm -rf /tmp/downloaded_packages/ /tmp/*.rds \
&& rm -rf /var/lib/apt/lists/*
RUN R --slave -e 'install.packages(c("jsonlite"), dependencies = T)'
CMD ["R"]
## Emacs, make this -*- mode: sh; -*-
FROM debian:stretch-slim
MAINTAINER "Romain Reuillon"
## Set a default user. Available via runtime flag `--user docker`
## Add user to 'staff' group, granting them write privileges to /usr/local/lib/R/site.library
## User should also have & own a home directory (for rstudio or linked volumes to work properly).
RUN useradd docker \
&& mkdir /home/docker \
&& chown docker:docker /home/docker \
&& addgroup docker staff
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ed \
less \
locales \
vim-tiny \
wget \
ca-certificates \
fonts-texgyre \
&& rm -rf /var/lib/apt/lists/*
## Configure default locale, see https://github.com/rocker-org/rocker/issues/19
RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \
&& locale-gen en_US.utf8 \
&& /usr/sbin/update-locale LANG=en_US.UTF-8 \
&& ln -s /etc/locale.alias /usr/share/locale/locale.alias \
&& apt install locales
ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8
## Use Debian unstable via pinning -- new style via APT::Default-Release
#RUN echo "deb http://http.debian.net/debian sid main" > /etc/apt/sources.list.d/debian-unstable.list \
# && echo 'APT::Default-Release "testing";' > /etc/apt/apt.conf.d/default
#RUN apt-get update \
# && apt-get install -y \
# scilab \
# && rm -rf /var/lib/apt/lists/*
RUN wget http://www.scilab.org/download/5.5.2/scilab-5.5.2.bin.linux-x86_64.tar.gz && \
tar -xvzf scilab-5.5.2.bin.linux-x86_64.tar.gz && \
ln -s $PWD/scilab-5.5.2/bin/scilab /usr/bin/scilab && \
ln -s $PWD/scilab-5.5.2/bin/scilab-cli /usr/bin/scilab-cli && \
rm *.tar.gz
#RUN R --slave -e 'install.packages(c("jsonlite"), dependencies = T)'
CMD ["scilab-cli"]
## Emacs, make this -*- mode: sh; -*-
FROM debian:stretch-slim
MAINTAINER "Romain Reuillon"
## Set a default user. Available via runtime flag `--user docker`
## Add user to 'staff' group, granting them write privileges to /usr/local/lib/R/site.library
## User should also have & own a home directory (for rstudio or linked volumes to work properly).
RUN useradd docker \
&& mkdir /home/docker \
&& chown docker:docker /home/docker \
&& addgroup docker staff
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ed \
less \
locales \
vim-tiny \
wget \
ca-certificates \
fonts-texgyre \
&& rm -rf /var/lib/apt/lists/*
## Configure default locale, see https://github.com/rocker-org/rocker/issues/19
RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \
&& locale-gen en_US.utf8 \
&& /usr/sbin/update-locale LANG=en_US.UTF-8 \
&& ln -s /etc/locale.alias /usr/share/locale/locale.alias \
&& apt install locales
ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8
## Use Debian unstable via pinning -- new style via APT::Default-Release
#RUN echo "deb http://http.debian.net/debian sid main" > /etc/apt/sources.list.d/debian-unstable.list \
# && echo 'APT::Default-Release "testing";' > /etc/apt/apt.conf.d/default
#RUN apt-get update \
# && apt-get install -y \
# scilab \
# && rm -rf /var/lib/apt/lists/*
RUN wget http://www.scilab.org/download/6.0.1/scilab-6.0.1.bin.linux-x86_64.tar.gz && \
tar -xvzf scilab-6.0.1.bin.linux-x86_64.tar.gz && \
ln -s $PWD/scilab-6.0.1/bin/scilab /usr/bin/scilab && \
ln -s $PWD/scilab-6.0.1/bin/scilab-cli /usr/bin/scilab-cli && \
rm *.tar.gz
#RUN R --slave -e 'install.packages(c("jsonlite"), dependencies = T)'
CMD ["scilab-cli"]
## Emacs, make this -*- mode: sh; -*-
FROM debian:testing-slim
MAINTAINER "Romain Reuillon"
## Set a default user. Available via runtime flag `--user docker`
## Add user to 'staff' group, granting them write privileges to /usr/local/lib/R/site.library
## User should also have & own a home directory (for rstudio or linked volumes to work properly).
RUN useradd docker \
&& mkdir /home/docker \
&& chown docker:docker /home/docker \
&& addgroup docker staff
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ed \
less \
locales \
vim-tiny \
wget \
ca-certificates \
fonts-texgyre \
&& rm -rf /var/lib/apt/lists/*
## Configure default locale, see https://github.com/rocker-org/rocker/issues/19
RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \
&& locale-gen en_US.utf8 \
&& /usr/sbin/update-locale LANG=en_US.UTF-8 \
#&& ln -s /etc/locale.alias /usr/share/locale/locale.alias \
&& apt install locales
ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8
## Use Debian unstable via pinning -- new style via APT::Default-Release
#RUN echo "deb http://http.debian.net/debian sid main" > /etc/apt/sources.list.d/debian-unstable.list \
# && echo 'APT::Default-Release "testing";' > /etc/apt/apt.conf.d/default
#RUN apt-get update \
# && apt-get install -y \
# scilab \
# && rm -rf /var/lib/apt/lists/*
RUN wget http://www.scilab.org/download/6.0.2/scilab-6.0.2.bin.linux-x86_64.tar.gz && \
tar -xvzf scilab-6.0.2.bin.linux-x86_64.tar.gz && \
ln -s $PWD/scilab-6.0.2/bin/scilab /usr/bin/scilab && \
ln -s $PWD/scilab-6.0.2/bin/scilab-cli /usr/bin/scilab-cli && \
rm *.tar.gz
CMD ["scilab-cli"]
......@@ -7,17 +7,18 @@ def settings = Seq(
resolvers += DefaultMavenRepository,
resolvers += Resolver.sonatypeRepo("snapshots"),
resolvers += Resolver.sonatypeRepo("releases"),
scalaVersion in Global := "2.12.6",
resolvers += Resolver.sonatypeRepo("staging"),
scalaVersion in Global := "2.12.7",
scalacOptions ++= Seq("-deprecation"),
publishArtifact in (packageDoc in publishLocal) := false,
publishArtifact in (packageSrc in publishLocal) := false,
organization := "org.openmole.library",
isSnapshot := true
)
)
lazy val scalatraVersion = "2.5.0"
lazy val jettyVersion = "9.2.19.v20160908"
lazy val scalatraVersion = "2.6.3"
lazy val jettyVersion = "9.3.25.v20180904"
lazy val scalatra = OsgiProject(dir, "org.scalatra",
exports = Seq("org.scalatra.*, org.fusesource.*", "grizzled.*", "org.eclipse.jetty.*", "javax.*"),
......@@ -42,7 +43,7 @@ lazy val shapeless = OsgiProject(dir, "com.chuusai.shapeless", exports = Seq("s
version := shapelessVersion
) settings(settings: _*)
lazy val circeVersion = "0.9.1"
lazy val circeVersion = "0.10.0"
lazy val circe = OsgiProject(dir, "io.circe",
exports = Seq("io.circe.*", "!cats.*", "!scala.*", "!shapeless.*"),
privatePackages = Seq("jawn.*"),
......@@ -59,14 +60,14 @@ lazy val circe = OsgiProject(dir, "io.circe",
lazy val logback = OsgiProject(dir, "ch.qos.logback", exports = Seq("ch.qos.logback.*", "org.slf4j.impl"), dynamicImports = Seq("*")) settings
(libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.0.9", version := "1.0.9") settings(settings: _*)
lazy val h2Version = "1.4.196"
lazy val h2Version = "1.4.199"
lazy val h2 = OsgiProject(dir, "org.h2", dynamicImports = Seq("*"), privatePackages = Seq("META-INF.*")) settings
(libraryDependencies += "com.h2database" % "h2" % h2Version, version := h2Version) settings(settings: _*)
lazy val bonecp = OsgiProject(dir, "com.jolbox.bonecp", dynamicImports = Seq("*")) settings
(libraryDependencies += "com.jolbox" % "bonecp" % "0.8.0-rc1", version := "0.8.0-rc1") settings(settings: _*)
lazy val slickVersion = "3.2.0"
lazy val slickVersion = "3.3.0"
lazy val slick = OsgiProject(dir,"com.typesafe.slick", exports = Seq("slick.*"), privatePackages = Seq("org.reactivestreams.*")) settings
(libraryDependencies += "com.typesafe.slick" %% "slick" % slickVersion, version := slickVersion) settings(settings: _*)
......@@ -90,11 +91,13 @@ lazy val xstream = OsgiProject(
"!org.xml.sax.*",
"!sun.misc.*",
"!org.joda.time.*",
"!com.sun.xml.*",
"!com.ibm.xml.*",
"!javax.*",
"*"),
privatePackages = Seq("!scala.*", "META-INF.services.*", "*")) settings(
libraryDependencies ++= Seq("com.thoughtworks.xstream" % "xstream" % "1.4.10", "net.sf.kxml" % "kxml2" % "2.3.0"),
version := "1.4.10") settings(settings: _*)
libraryDependencies ++= Seq("com.thoughtworks.xstream" % "xstream" % "1.4.11", "net.sf.kxml" % "kxml2" % "2.3.0"),
version := "1.4.11") settings(settings: _*)
lazy val scalaLang = OsgiProject(
dir,
......@@ -111,6 +114,7 @@ lazy val scalaLang = OsgiProject(
"jline" % "jline" % "2.12.1",
"org.scala-stm" %% "scala-stm" % "0.8",
"com.typesafe" % "config" % "1.2.1",
"org.scalameta" %% "scalameta" % "4.1.0",
"org.scala-lang" % "scala-compiler" % scalaVersion.value
)
}, version := scalaVersion.value) settings(settings: _*)
......@@ -135,7 +139,7 @@ lazy val netlogo5 = OsgiProject(
"asm" % "asm-all" % "3.3.1" % "provided",
"org.picocontainer" % "picocontainer" % "2.13.6" % "provided"), version := netLogo5Version, scalaVersion := "2.9.2", crossPaths := false) settings(settings: _*)
lazy val netLogo6Version = "6.0.4"
lazy val netLogo6Version = "6.1.0"
lazy val netlogo6 = OsgiProject(
dir,
......@@ -146,13 +150,15 @@ lazy val netlogo6 = OsgiProject(
//resolvers += Resolver.bintrayRepo("netlogo", "NetLogo-JVM"),
libraryDependencies ++= Seq(
"org.nlogo" % "netlogo" % netLogo6Version % "provided" from s"https://dl.bintray.com/netlogo/NetLogo-JVM/org/nlogo/netlogo/$netLogo6Version/netlogo-$netLogo6Version.jar",
"org.scala-lang" % "scala-library" % "2.12.4" % "provided",
"org.scala-lang" % "scala-library" % "2.12.8" % "provided",
"org.scala-lang.modules" %% "scala-parser-combinators" % "1.0.5" % "provided",
"commons-codec" % "commons-codec" % "1.10" % "provided",
"org.ow2.asm" % "asm-all" % "5.0.4" % "provided",
"org.picocontainer" % "picocontainer" % "2.13.6" % "provided",
"org.parboiled" %% "parboiled" % "2.1.3" % "provided"
), version := netLogo6Version, scalaVersion := "2.12.4", crossPaths := false) settings(settings: _*)
"org.parboiled" %% "parboiled" % "2.1.3" % "provided",
"com.typesafe" % "config" % "1.3.1" % "provided",
"net.lingala.zip4j" % "zip4j" % "1.3.2" % "provided"
), version := netLogo6Version, scalaVersion := "2.12.8", crossPaths := false) settings(settings: _*)
lazy val scalaTagsVersion = "0.6.5"
lazy val scalaRxVersion = "0.4.0"
......@@ -160,7 +166,7 @@ lazy val scalaDomVersion = "0.9.3"
lazy val scalaUpickleVersion = "0.4.4"
lazy val scalaBoopickleVersion = "1.2.6"
lazy val scalaAutowireVersion = "0.2.6"
lazy val scalajsVersion = "0.6.23"
lazy val scalajsVersion = "0.6.28"
lazy val rx = OsgiProject(dir, "rx", exports = Seq("rx.*")) settings(
libraryDependencies ++= Seq("com.lihaoyi" %% "scalarx" % scalaRxVersion),
......@@ -183,9 +189,9 @@ lazy val scalatexSite =
libraryDependencies += "com.lihaoyi" %% "scalatex-site" % "0.3.12",
version := "0.3.12") settings(settings: _*)
lazy val upickle = OsgiProject(dir, "upickle", exports = Seq("upickle.*", "jawn.*", "derive.*", "sourcecode.*"), imports = Seq("*")) settings(
lazy val upickle = OsgiProject(dir, "upickle", exports = Seq("upickle.*", "jawn.*", "derive.*"), imports = Seq("*")) settings(
libraryDependencies ++= Seq("com.lihaoyi" %% "upickle" % scalaUpickleVersion),
version := scalaUpickleVersion) settings(settings: _*)
version := scalaUpickleVersion) settings(settings: _*) dependsOn(sourceCode)
lazy val boopickle = OsgiProject(dir, "boopickle", exports = Seq("boopickle.*"), imports = Seq("*")) settings(
libraryDependencies ++= Seq("io.suzaku" %% "boopickle" % scalaBoopickleVersion),
......@@ -211,34 +217,37 @@ lazy val cats =
version := catsVersion
) settings(settings: _*)
lazy val freedslVersion = "0.26"
lazy val squantsVersion = "1.3.0"
lazy val squants =
lazy val squants =
OsgiProject(dir, "squants") settings (
libraryDependencies += "org.typelevel" %% "squants" % squantsVersion,
version := squantsVersion
) settings(settings: _*)
lazy val freedsl =
OsgiProject(dir, "freedsl", exports = Seq("freedsl.*", "freestyle.*", "mainecoon.*")) settings (
libraryDependencies += "fr.iscpif.freedsl" %% "freedsl" % freedslVersion,
libraryDependencies += "fr.iscpif.freedsl" %% "random" % freedslVersion,
libraryDependencies += "fr.iscpif.freedsl" %% "system" % freedslVersion,
libraryDependencies += "fr.iscpif.freedsl" %% "io" % freedslVersion,
libraryDependencies += "fr.iscpif.freedsl" %% "filesystem" % freedslVersion,
libraryDependencies += "fr.iscpif.freedsl" %% "errorhandler" % freedslVersion,
libraryDependencies += "fr.iscpif.freedsl" %% "tool" % freedslVersion,
libraryDependencies += "fr.iscpif.freedsl" %% "dsl" % freedslVersion,
version := freedslVersion
) dependsOn(cats, squants) settings(settings: _*)
lazy val mgoVersion = "3.17"
lazy val mgoVersion = "3.29"
lazy val mgo = OsgiProject(dir, "mgo", imports = Seq("!better.*", "*")) settings(
lazy val mgo = OsgiProject(dir, "mgo", exports = Seq("mgo.*", "freestyle.*"), imports = Seq("!better.*", "!javax.xml.*", "!scala.meta.*", "!sun.misc.*", "*"), privatePackages = Seq("!scala.*", "!monocle.*", "!org.apache.commons.math3.*", "!cats.*", "!squants.*", "!scalaz.*", "*")) settings(
libraryDependencies += "fr.iscpif" %% "mgo" % mgoVersion,
version := mgoVersion) dependsOn(monocle, freedsl, math) settings(settings: _*)
version := mgoVersion) dependsOn(monocle, math, cats, squants) settings(settings: _*)
lazy val spatialdataVersion = "0.2"
lazy val spatialdata = OsgiProject(dir, "org.openmole.spatialdata",
exports = Seq("org.openmole.spatialdata.*"),
privatePackages = Seq("!scala.*","!org.apache.commons.math3.*","*")
) settings(
resolvers += "osgeo" at "http://download.osgeo.org/webdav/geotools/",
libraryDependencies += "org.openmole.library" %% "spatialdata" % spatialdataVersion,
version := spatialdataVersion//,
//embeddedJars := (Keys.externalDependencyClasspath in Compile).value map (_.data) filter (f=> (f.getName startsWith "gt-")) // embed geotools jars
) settings(settings: _*)
/*lazy val familyVersion = "1.3"
lazy val family = OsgiProject(dir, "fr.iscpif.family") settings(
......@@ -337,9 +346,10 @@ lazy val config = OsgiProject(dir, "org.apache.commons.configuration2",
libraryDependencies += "commons-beanutils" % "commons-beanutils" % "1.9.2",
version := "2.2") settings(settings: _*) dependsOn (logging)
def sourceCodeVersion = "0.1.4"
lazy val sourceCode = OsgiProject(dir, "sourcecode") settings (
libraryDependencies += "com.lihaoyi" %% "sourcecode" % "0.1.3",
version := "0.1.3"
libraryDependencies += "com.lihaoyi" %% "sourcecode" % sourceCodeVersion,
version := sourceCodeVersion
) settings(settings: _*)
......@@ -349,7 +359,7 @@ lazy val effectaside = OsgiProject(dir, "effectaside", imports = Seq("*")) setti
version := effectasideVersion
)
def gridscaleVersion = "2.12"
def gridscaleVersion = "2.21"
lazy val gridscale = OsgiProject(dir, "gridscale", imports = Seq("*"), exports = Seq("gridscale.*", "enumeratum.*")) settings (
libraryDependencies += "fr.iscpif.gridscale" %% "gridscale" % gridscaleVersion,
version := gridscaleVersion
......@@ -368,8 +378,12 @@ lazy val gridscaleHTTP = OsgiProject(dir, "gridscale.http", imports = Seq("*"),
lazy val gridscaleSSH = OsgiProject(dir, "gridscale.ssh", imports = Seq("*")) settings (
libraryDependencies += "fr.iscpif.gridscale" %% "ssh" % gridscaleVersion,
version := gridscaleVersion
) settings(settings: _*) dependsOn(jzlib) dependsOn(gridscale)
) settings(settings: _*) dependsOn(sshj) dependsOn(gridscale)
lazy val sshj = OsgiProject(dir, "com.hierynomus.sshj", imports = Seq("*"), exports = Seq("com.hierynomus.*", "net.schmizz.*"), privatePackages = Seq("!scala.*", "!org.bouncycastle.*", "!org.slf4j.*", "**"), dynamicImports = Seq("org.bouncycastle.*")) settings (
libraryDependencies += "com.hierynomus" % "sshj" % "0.27.0",
version := "0.27.0"
) settings(settings: _*)
lazy val gridscaleCluster = OsgiProject(dir, "gridscale.cluster", imports = Seq("*")) settings (
libraryDependencies += "fr.iscpif.gridscale" %% "cluster" % gridscaleVersion,
......@@ -401,7 +415,6 @@ lazy val gridscaleSLURM = OsgiProject(dir, "gridscale.slurm", imports = Seq("*")
version := gridscaleVersion
) settings(settings: _*) dependsOn(gridscale, gridscaleCluster)
lazy val gridscaleEGI = OsgiProject(dir, "gridscale.egi", imports = Seq("*")) settings (
libraryDependencies += "fr.iscpif.gridscale" %% "egi" % gridscaleVersion,
version := gridscaleVersion
......@@ -419,7 +432,3 @@ lazy val gridscaleWebDAV = OsgiProject(dir, "gridscale.webdav", imports = Seq("*
version := gridscaleVersion
) settings(settings: _*) dependsOn(gridscale, gridscaleHTTP)
lazy val jzlib = OsgiProject(dir, "com.jcraft.jzlib", imports = Seq("*")) settings (
libraryDependencies += "com.jcraft" % "jzlib" % "1.1.3",
version := "1.1.3"
) settings(settings: _*)
......@@ -2,4 +2,6 @@
-J-Xmx3G
-J-Xss2M
-J-Dfile.encoding=UTF-8
-J-XX:MaxMetaspaceSize=512m
-J-XX:MaxMetaspaceSize=1G
-Dlog4j2.disable.jmx=true
-Dlog4j.shutdownHookEnabled=false
......@@ -29,7 +29,6 @@ import org.openmole.core.project._
import org.openmole.core.tools.io.Prettifier._
import org.openmole.core.workflow.execution.Environment
import org.openmole.core.workflow.mole.{ Mole, MoleExecution }
import org.openmole.core.workflow.puzzle._
import org.openmole.core.workflow.validation.Validation
import org.openmole.core.module
import org.openmole.core.pluginmanager.PluginManager
......@@ -52,7 +51,7 @@ class Command(val console: ScalaREPL, val variables: ConsoleVariables) { command
"Failed" environment.failed
)
} println(s"$label: $number")
val errors = environment.errors
val errors = Environment.errors(environment)
def low = errors.count(_.level.intValue() <= Level.INFO.intValue())
def warning = errors.count(_.level.intValue() == Level.WARNING.intValue())
def severe = errors.count(_.level.intValue() == Level.SEVERE.intValue())
......@@ -90,9 +89,10 @@ class Command(val console: ScalaREPL, val variables: ConsoleVariables) { command
implicit def stringToLevel(s: String) = Level.parse(s.toUpperCase)
def errors(environment: Environment, level: Level = Level.INFO) = {
def filtered = environment.clearErrors.filter {
e e.level.intValue() >= level.intValue()
}
def filtered =
Environment.clearErrors(environment).filter {
e e.level.intValue() >= level.intValue()
}
for {
error filtered
......@@ -125,10 +125,10 @@ class Command(val console: ScalaREPL, val variables: ConsoleVariables) { command
}
finally ConsoleVariables.bindVariables(console, variables)
def load(file: File, args: Seq[String] = Seq.empty)(implicit services: Services): Puzzle =
def load(file: File, args: Seq[String] = Seq.empty)(implicit services: Services): DSL =
loadAny(file) match {
case res: Puzzle res
case x throw new UserBadDataError("The result is not a puzzle")
case res: DSL res