From 04d71e2c99c208d2b4465aa1009f7e5147537c90 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ren=C3=A9=20Sch=C3=B6ne?= <rene.schoene@tu-dresden.de>
Date: Wed, 21 Oct 2020 12:02:02 +0000
Subject: [PATCH] Resolve "Add GitLab Pages"

---
 .gitlab-ci.yml                   |  13 +++
 pages/.gitignore                 |   1 +
 pages/Command-Line-Arguments.rst |  13 +++
 pages/Makefile                   |  20 ++++
 pages/Supported-Relations.rst    |  23 +++++
 pages/Using.rst                  |  38 +++++++
 pages/conf.py                    |  65 ++++++++++++
 pages/images/relast-process.png  | Bin 0 -> 15896 bytes
 pages/index.rst                  |  23 +++++
 pages/make.bat                   |  35 +++++++
 pages/publications.rst           | 163 +++++++++++++++++++++++++++++++
 11 files changed, 394 insertions(+)
 create mode 100644 pages/.gitignore
 create mode 100644 pages/Command-Line-Arguments.rst
 create mode 100644 pages/Makefile
 create mode 100644 pages/Supported-Relations.rst
 create mode 100644 pages/Using.rst
 create mode 100644 pages/conf.py
 create mode 100644 pages/images/relast-process.png
 create mode 100644 pages/index.rst
 create mode 100644 pages/make.bat
 create mode 100644 pages/publications.rst

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b6bf485..e5a30e5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,6 +2,7 @@ stages:
 - build
 - test
 - jar
+- deploy
 
 build:
   image: openjdk:8
@@ -41,3 +42,15 @@ jar:
   artifacts:
     paths:
       - "/builds/jastadd/*/build/libs/*relast*.jar"
+
+pages:
+  image: python:3.7-alpine
+  stage: deploy
+  script:
+  - pip install -U sphinx sphinx-rtd-theme recommonmark sphinxemoji sphinx-markdown-tables
+  - sphinx-build -b html pages/ public
+  artifacts:
+    paths:
+    - public
+  only:
+  - master
diff --git a/pages/.gitignore b/pages/.gitignore
new file mode 100644
index 0000000..69fa449
--- /dev/null
+++ b/pages/.gitignore
@@ -0,0 +1 @@
+_build/
diff --git a/pages/Command-Line-Arguments.rst b/pages/Command-Line-Arguments.rst
new file mode 100644
index 0000000..1711faf
--- /dev/null
+++ b/pages/Command-Line-Arguments.rst
@@ -0,0 +1,13 @@
+Supported command-line options
+==============================
+
+--ast                   print AST (ignores quiet option)
+--file                  write output to files <filename>Gen.ast and <filename>Gen.jadd
+--grammarName           name of the generated grammar and aspect (without file extension)
+--jastAddList           set the name of the List type in JastAdd (has to match the option '--List' or its default List)
+--listClass             determine the class name of the nonterminal reference list
+--quiet                 do not output anything on stdout
+--resolverHelper        create a subtype for each type containing a string that can be used to resolve the type later
+--serializer            generate a (de-)serializer (allowed values: jackson, jackson-json-pointer, jackson-manual-references)
+--useJastAddNames       generate names in the form of addX, removeX and setX. If omitted, the default, original naming scheme resulting in addToX, removeFromX and setX will be used.
+--version               print version and exit
diff --git a/pages/Makefile b/pages/Makefile
new file mode 100644
index 0000000..d4bb2cb
--- /dev/null
+++ b/pages/Makefile
@@ -0,0 +1,20 @@
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line, and also
+# from the environment for the first two.
+SPHINXOPTS    ?=
+SPHINXBUILD   ?= sphinx-build
+SOURCEDIR     = .
+BUILDDIR      = _build
+
+# Put it first so that "make" without argument is like "make help".
+help:
+	@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile
+	@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/pages/Supported-Relations.rst b/pages/Supported-Relations.rst
new file mode 100644
index 0000000..2319257
--- /dev/null
+++ b/pages/Supported-Relations.rst
@@ -0,0 +1,23 @@
+Supported relations
+===================
+
+.. code:: Java
+
+  // Directed relations
+  A.b    -> B;
+  A.b?   -> B;
+  A.bs*  -> B;
+  B      <- A.b  ;
+  B      <- A.b? ;
+  B      <- A.bs*;
+
+  // Bidirectional relations
+  A.b   <-> B.a;
+  A.b   <-> B.a?;
+  A.b   <-> B.as*;
+  A.b?  <-> B.a;
+  A.b?  <-> B.a?;
+  A.b?  <-> B.as*;
+  A.bs* <-> B.a;
+  A.bs* <-> B.a?;
+  A.bs* <-> B.as*;
diff --git a/pages/Using.rst b/pages/Using.rst
new file mode 100644
index 0000000..bfd7734
--- /dev/null
+++ b/pages/Using.rst
@@ -0,0 +1,38 @@
+Using Relational RAGs
+=====================
+
+The Relational RAGs preprocessor takes a ``.relast`` file as input comprising AST rules and relations. It produces files that afterwards are processed by JastAdd_ to generated Java code.
+To use it in your project, build the JAR file running
+
+.. code:: Bash
+
+  ./gradlew jar
+
+This will produce ``build/libs/relast.jar``. Copy it to your project and extend your build config (preferably Gradle_) with the following:
+
+.. code:: Groovy
+
+  task preprocess(type: JavaExec) {
+      group = 'Build'
+      main = "-jar"
+      args = [
+              "libs/relast.jar",
+              "./src/main/jastadd/main.relast",
+              "--listClass=RefList",
+              "--jastAddList=JastAddList",
+              "--file"
+      ]
+
+      inputs.files file("./src/main/jastadd/main.relast")
+      outputs.files file("./src/main/jastadd/mainGen.ast"), file("./src/main/jastadd/mainGen.jadd")
+  }
+
+Note that you may have to change
+
+- the directory of ``relast.jar``
+- the ``.relast`` file(s) both as argument(s) and input file(s)
+- the output files
+- parameters of RelAST (in this case, the list classes were renamed), the following table shows the supported ones
+
+.. _JastAdd: http://jastadd.org/
+.. _Gradle: https://gradle.org/
diff --git a/pages/conf.py b/pages/conf.py
new file mode 100644
index 0000000..df20528
--- /dev/null
+++ b/pages/conf.py
@@ -0,0 +1,65 @@
+# Configuration file for the Sphinx documentation builder.
+#
+# This file only contains a selection of the most common options. For a full
+# list see the documentation:
+# https://www.sphinx-doc.org/en/master/usage/configuration.html
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+
+
+# -- Project information -----------------------------------------------------
+
+project = 'Relational RAGs'
+copyright = '2020, Johannes Mey, René Schöne, Görel Hedin, Emma Söderberg, Thomas Kühn, Niklas Fors, Jesper Öqvist, Uwe Aßmann'
+author = 'Johannes Mey, René Schöne, Görel Hedin, Emma Söderberg, Thomas Kühn, Niklas Fors, Jesper Öqvist, Uwe Aßmann'
+
+# The full version, including alpha/beta/rc tags
+release = '0.3.0'
+
+
+# -- General configuration ---------------------------------------------------
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+    'sphinx_rtd_theme',
+    'recommonmark',
+    'sphinxemoji.sphinxemoji',
+    'sphinx_markdown_tables'
+]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This pattern also affects html_static_path and html_extra_path.
+exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
+
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+#
+html_theme = 'sphinx_rtd_theme'
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+sphinxemoji_style = 'twemoji'
+
+html_theme_options = {
+    'navigation_depth': 4,
+}
diff --git a/pages/images/relast-process.png b/pages/images/relast-process.png
new file mode 100644
index 0000000000000000000000000000000000000000..e3dda55dbd8e7a3bcb98207e8c81f52f4a682d10
GIT binary patch
literal 15896
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

literal 0
HcmV?d00001

diff --git a/pages/index.rst b/pages/index.rst
new file mode 100644
index 0000000..a529404
--- /dev/null
+++ b/pages/index.rst
@@ -0,0 +1,23 @@
+.. Relational RAGs documentation master file, created by
+   sphinx-quickstart on Tue Oct 20 11:41:47 2020.
+   You can adapt this file completely to your liking, but it should at least
+   contain the root `toctree` directive.
+
+Relational RAGs documentation
+=============================
+
+.. toctree::
+   :caption: Contents:
+   :hidden:
+
+   Using.rst
+   Command-Line-Arguments.rst
+   Supported-Relations.rst
+   publications.rst
+
+.. image:: images/relast-process.png
+  :alt: RelAST process
+
+See `releases page`_ for the latest version.
+
+.. _releases page: https://git-st.inf.tu-dresden.de/jastadd/relational-rags/-/releases
diff --git a/pages/make.bat b/pages/make.bat
new file mode 100644
index 0000000..922152e
--- /dev/null
+++ b/pages/make.bat
@@ -0,0 +1,35 @@
+@ECHO OFF
+
+pushd %~dp0
+
+REM Command file for Sphinx documentation
+
+if "%SPHINXBUILD%" == "" (
+	set SPHINXBUILD=sphinx-build
+)
+set SOURCEDIR=.
+set BUILDDIR=_build
+
+if "%1" == "" goto help
+
+%SPHINXBUILD% >NUL 2>NUL
+if errorlevel 9009 (
+	echo.
+	echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
+	echo.installed, then set the SPHINXBUILD environment variable to point
+	echo.to the full path of the 'sphinx-build' executable. Alternatively you
+	echo.may add the Sphinx directory to PATH.
+	echo.
+	echo.If you don't have Sphinx installed, grab it from
+	echo.http://sphinx-doc.org/
+	exit /b 1
+)
+
+%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
+goto end
+
+:help
+%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
+
+:end
+popd
diff --git a/pages/publications.rst b/pages/publications.rst
new file mode 100644
index 0000000..038cc59
--- /dev/null
+++ b/pages/publications.rst
@@ -0,0 +1,163 @@
+Publications
+============
+
+Main publication at SLE'18
+--------------------------
+
+.. raw:: html
+
+  <link rel="stylesheet"
+      href="https://dl.acm.org/specs/products/acm/widgets/authorizer/scss/style.css" />
+  <style>
+  .multi-search {
+    min-height: 0;
+    padding: 0px;
+  }
+  .issue-item {
+  }
+  </style>
+  <div class="multi-search multi-search--issue-item">
+              <div class="issue-item clearfix">
+                  <div class="issue-item__citation">
+                      <div class="issue-heading">chapter</div>
+                  </div>
+                  <div class="issue-item__content">
+                      <h5 class="issue-item__title"><a
+                              href="https://dl.acm.org/doi/10.1145/3276604.3276616?cid=81318498502">Continuous
+                              model validation using reference attribute
+                              grammars</a></h5>
+
+                      <ul class="rlist--inline loa truncate-list"
+                          title="list of authors" data-lines="2">
+                          <li><a href="https://dl.acm.org/profile/99659180755"
+                                  title="Johannes Mey"><img class="author-picture"
+                                      src="https://dl.acm.org/pb-assets/icons/DOs/default-profile-1543932446943.svg"
+                                      alt="Johannes Mey profile image" /><span>Johannes
+                                      Mey</span></a><span
+                                  class="loa_author_inst hidden">
+                                  <p data-doi="10.1145/contrib-99659180755">TU
+                                      Dresden, Germany</p>
+                              </span><span>, </span></li>
+                          <li><a href="https://dl.acm.org/profile/81318498502"
+                                  title="René Schöne"><img class="author-picture"
+                                      src="https://dl.acm.org/do/10.1145/contrib-81318498502/rel-imgonly/author-rene.jpg"
+                                      alt="René Schöne profile image" /><span>René
+                                      Schöne</span></a><span
+                                  class="loa_author_inst hidden">
+                                  <p data-doi="10.1145/contrib-81318498502">TU
+                                      Dresden, Germany</p>
+                              </span><span>, </span></li>
+                          <li><a href="https://dl.acm.org/profile/81100270533"
+                                  title="Görel Hedin"><img class="author-picture"
+                                      src="https://dl.acm.org/do/10.1145/contrib-81100270533/rel-imgonly/81100270533.jpg"
+                                      alt="Görel Hedin profile image" /><span>Görel
+                                      Hedin</span></a><span
+                                  class="loa_author_inst hidden">
+                                  <p data-doi="10.1145/contrib-81100270533">Lund
+                                      University, Sweden</p>
+                              </span><span>, </span></li>
+                          <li><a href="https://dl.acm.org/profile/81482659289"
+                                  title="Emma Söderberg"><img
+                                      class="author-picture"
+                                      src="https://dl.acm.org/pb-assets/icons/DOs/default-profile-1543932446943.svg"
+                                      alt="Emma Söderberg profile image" /><span>Emma
+                                      Söderberg</span></a><span
+                                  class="loa_author_inst hidden">
+                                  <p data-doi="10.1145/contrib-81482659289">Lund
+                                      University, Sweden</p>
+                              </span><span>, </span></li>
+                          <li><a href="https://dl.acm.org/profile/81100443648"
+                                  title="Thomas Kühn"><img class="author-picture"
+                                      src="https://dl.acm.org/pb-assets/icons/DOs/default-profile-1543932446943.svg"
+                                      alt="Thomas Kühn profile image" /><span>Thomas
+                                      Kühn</span></a><span
+                                  class="loa_author_inst hidden">
+                                  <p data-doi="10.1145/contrib-81100443648">TU
+                                      Dresden, Germany</p>
+                              </span><span>, </span></li>
+                          <li><a href="https://dl.acm.org/profile/82459076457"
+                                  title="Niklas Fors"><img class="author-picture"
+                                      src="https://dl.acm.org/pb-assets/icons/DOs/default-profile-1543932446943.svg"
+                                      alt="Niklas Fors profile image" /><span>Niklas
+                                      Fors</span></a><span
+                                  class="loa_author_inst hidden">
+                                  <p data-doi="10.1145/contrib-82459076457">Lund
+                                      University, Sweden</p>
+                              </span><span>, </span></li>
+                          <li><a href="https://dl.acm.org/profile/82858857457"
+                                  title="Jesper Öqvist"><img
+                                      class="author-picture"
+                                      src="https://dl.acm.org/pb-assets/icons/DOs/default-profile-1543932446943.svg"
+                                      alt="Jesper Öqvist profile image" /><span>Jesper
+                                      Öqvist</span></a><span
+                                  class="loa_author_inst hidden">
+                                  <p data-doi="10.1145/contrib-82858857457">Lund
+                                      University, Sweden</p>
+                              </span><span>, </span></li>
+                          <li><a href="https://dl.acm.org/profile/81100444066"
+                                  title="Uwe Aßmann"><img class="author-picture"
+                                      src="https://dl.acm.org/pb-assets/icons/DOs/default-profile-1543932446943.svg"
+                                      alt="Uwe Aßmann profile image" /><span>Uwe
+                                      Aßmann</span></a><span
+                                  class="loa_author_inst hidden">
+                                  <p data-doi="10.1145/contrib-81100444066">TU
+                                      Dresden, Germany</p>
+                              </span></li>
+                      </ul>
+
+                      <div class="issue-item__detail"><span>October
+                              2018</span><span class="dot-separator">pp 70-82
+                          </span><span><a
+                                  href="https://doi.org/10.1145/3276604.3276616"
+                                  class="issue-item__doi  dot-separator">https://doi.org/10.1145/3276604.3276616</a></span>
+                      </div>
+                      <div data-lines='4'
+                          class="issue-item__abstract truncate-text">
+                          <div class="issue-item__abstract truncate-text"
+                              data-lines="4">
+
+                              <p>Just like current software systems, models are
+                                  characterised by increasing complexity
+                                  and rate of change. Yet, these models only
+                                  become useful if they can be continuously
+                                  evaluated and validated. To achieve sufficiently
+                                  low response times for large ...
+                              </p>
+                          </div>
+                      </div>
+                  </div>
+              </div>
+  </div>
+  <br/>
+
+Follow-Up publication in JCL
+----------------------------
+
+**Relational reference attribute grammars: Improving continuous model validation**
+
+Johannes Mey |a|, René Schöne |a|, Görel Hedin |b|, Emma Söderberg |b|, Thomas Kühn |a|, Niklas Fors |b|, Jesper Öqvist |b|, Uwe Aßmann |a| 
+
+- |a| Technische Universitãt Dresden, Germany
+- |b| Lund University, Sweden
+
+Received 31 March 2019, Revised 1 November 2019, Accepted 20 December 2019, Available online 20 January 2020.
+
+https://doi.org/10.1016/j.cola.2019.100940
+
+.. |a| replace:: :sup:`a`
+.. |b| replace:: :sup:`b`
+
+
+Publications using Relational RAGs
+----------------------------------
+
+- `Subpage on RagConnect`_
+- Götz, Sebastian, Johannes Mey, René Schöne, and Uwe Aßmann. **“A JastAdd- and ILP-Based Solution to the Software-Selection and Hardware-Mapping-Problem at the TTC 2018.”** In 11th Transformation Tool Contest, 2018.
+- Götz, Sebastian, Johannes Mey, René Schöne, and Uwe Aßmann. **“Quality-Based Software-Selection and Hardware-Mapping as Model Transformation Problem.”** In 11th Transformation Tool Contest, 2018.
+- Mey, Johannes, René Schöne, Christopher Werner, and Uwe Aßmann. **“Transforming Truth Tables to Binary Decision Diagrams Using Relational Reference Attribute Grammars.”** In Proceedings of the 12th Transformation Tool Contest (TTC  2019), 2019.
+- Schöne, René, and Johannes Mey. **“A JastAdd-Based Solution to the TTC 2018 Social Media Case.”** In 11th Transformation Tool Contest, 2018.
+- Schöne, René, Johannes Mey, Boqi Ren, and Uwe Aßmann. **“Bridging the Gap between Smart Home Platforms and Machine Learning Using Relational Reference Attribute Grammars.”** In Proceedings of the 14th International Workshop on Models\@run.Time, 533–42. Munich, 2019. https://doi.org/10.1109/MODELS-C.2019.00083
+- Mey, Johannes, Thomas Kühn, René Schöne, and Uwe Aßmann. **“Reusing Static Analysis across Different Domain-Specific Languages Using Reference Attribute Grammars.”** Programming 4, no. 3 (February 17, 2020). https://doi.org/10.22152/programming-journal.org/2020/4/15
+
+
+.. _Subpage on RagConnect: http://connector.relational-rags.eu/
-- 
GitLab