From bdd5b561cbf8283532fbc7422da4867632fa8963 Mon Sep 17 00:00:00 2001
From: Erwan Jahier <erwan.jahier@univ-grenoble-alpes.fr>
Date: Fri, 22 Mar 2019 15:59:54 +0100
Subject: [PATCH] Doc: Initiate a contributors guide

---
 guides/contributors/README.md    | 139 +++++++++++++++++++++++++++++++
 guides/contributors/README.org   | 103 +++++++++++++++++++++++
 {doc => guides/users}/README.md  |  36 +++++---
 {doc => guides/users}/README.org |   5 ++
 4 files changed, 272 insertions(+), 11 deletions(-)
 create mode 100644 guides/contributors/README.md
 create mode 100644 guides/contributors/README.org
 rename {doc => guides/users}/README.md (83%)
 rename {doc => guides/users}/README.org (96%)

diff --git a/guides/contributors/README.md b/guides/contributors/README.md
new file mode 100644
index 00000000..9d254ef7
--- /dev/null
+++ b/guides/contributors/README.md
@@ -0,0 +1,139 @@
+- [Compiling sasa sources](#org30c5984)
+- [Graph editor](#org350e6d3)
+- [The Algo API](#orgf0dab07)
+- [Demons](#org009ddc4)
+- [Dealing with  Algorithm values](#org02f3ab5)
+- [Representing Processes](#org889a969)
+- [CLI arguments (sasa options)](#org83b3139)
+- [The Main Simulation](#orge4efe80)
+- [Generating Version Numbers](#orgd3a1891)
+- [Pluging `sasa` on Synchronous tools](#org20e7801)
+  - [RIF](#org286d056)
+  - [The rdbg plugin](#org769e7a6)
+
+Self-stabilizing Algorithms SimulAtor (Simulation d'Algorithmes autoStAbilisants)
+
+Contributors Guide
+
+
+<a id="org30c5984"></a>
+
+# Compiling sasa sources
+
+You will need:
+
+-   make
+-   a set of tools installable via opam
+    -   dune
+    -   ocamlgraph
+    -   lutin (not for compiling actually, but for using sasa with custom demons)
+
+cf the test job in the Gitlab CI script: <../../.gitlab-ci.yml> for a working installation process.
+
+
+<a id="org350e6d3"></a>
+
+# Graph editor
+
+Based on dot + custom fields (algo, init) <../../lib/sasacore/topology.mli> <../../lib/sasacore/topology.ml>
+
+This module is also used from `rdbg` (<../../test/rdbg-utils/dot.ml>)
+
+
+<a id="orgf0dab07"></a>
+
+# The Algo API
+
+<../../lib/algo/algo.mli> <../../lib/algo/algo.ml>
+
+Functions registration is based on Dynlink + (Hash)tables
+
+Users only need to see the [mli](../../lib/algo/algo.mli) file.
+
+
+<a id="org009ddc4"></a>
+
+# Demons
+
+built-in + custom
+
+<../../lib/sasacore/demon.mli> <../../lib/sasacore/demon.ml>
+
+custom in Lutin that can generated by:
+
+<../../lib/sasacore/genLutin.mli> <../../lib/sasacore/genLutin.ml>
+
+
+<a id="org02f3ab5"></a>
+
+# Dealing with  Algorithm values
+
+<../../lib/sasacore/env.mli> <../../lib/sasacore/env.ml>
+
+
+<a id="org889a969"></a>
+
+# Representing Processes
+
+<../../lib/sasacore/process.mli>
+
+
+<a id="org83b3139"></a>
+
+# CLI arguments (sasa options)
+
+<../../lib/sasacore/sasArg.mli> <../../lib/sasacore/sasArg.ml>
+
+
+<a id="orge4efe80"></a>
+
+# The Main Simulation
+
+Splitted into 2 modules, so that the sasa rdbg plugin can reuse the step functions <../../lib/sasacore/sasa.ml>
+
+<../../src/sasaMain.ml>
+
+
+<a id="orgd3a1891"></a>
+
+# Generating Version Numbers
+
+The <../../lib/sasacore/sasaVersion.ml> is automatically generated
+
+-   by <../../Makefile.version>
+-   using git tags that are automatically generated using the `release` job of the CI script, which is based on [semantic-release-gitlab](https://www.npmjs.com/package/semantic-release-gitlab)
+
+In order to generate sensible version numbers, please follow in your commit messages the conventions described here: <https://www.npmjs.com/package/conventional-changelog-eslint>
+
+This also permits to generate some Releases Notes: <https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/releases>
+
+
+<a id="org20e7801"></a>
+
+# Pluging `sasa` on Synchronous tools
+
+
+<a id="org286d056"></a>
+
+## RIF
+
+<http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#outline-container-sec-5>
+
+```ocaml
+(* Time-stamp: <modified the 13/03/2019 (at 17:45) by Erwan Jahier> *)
+
+(** Reads on stdin a bool *)
+
+val bool: bool -> Process.t -> string -> bool
+```
+
+<../../lib/sasacore/rifRead.mli> <../../lib/sasacore/rifRead.ml>
+
+
+<a id="org769e7a6"></a>
+
+## The rdbg plugin
+
+<https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/rdbg/blob/master/src/rdbgPlugin.mli> <https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/lutils/blob/master/src/data.mli>
+
+<../../test/rdbg-utils/dot.ml>
diff --git a/guides/contributors/README.org b/guides/contributors/README.org
new file mode 100644
index 00000000..fd4210e0
--- /dev/null
+++ b/guides/contributors/README.org
@@ -0,0 +1,103 @@
+
+Self-stabilizing Algorithms SimulAtor
+(Simulation d'Algorithmes  autoStAbilisants)
+
+Contributors Guide
+
+
+* Compiling sasa sources
+
+You will need:
+- make
+- a set of tools installable via opam
+  - dune 
+  - ocamlgraph
+  - lutin (not for compiling actually, but for using sasa with custom demons)
+
+cf the test job in the Gitlab CI script:  file:../../.gitlab-ci.yml
+for a working installation process.
+
+* Graph editor
+
+Based on dot + custom fields (algo, init)
+file:../../lib/sasacore/topology.mli
+file:../../lib/sasacore/topology.ml
+
+This module is also used from =rdbg= (file:../../test/rdbg-utils/dot.ml) 
+
+* The Algo API
+file:../../lib/algo/algo.mli
+file:../../lib/algo/algo.ml
+
+Functions registration is based on Dynlink + (Hash)tables
+
+Users only need to see the [[file:../../lib/algo/algo.mli][mli]] file.
+
+* Demons 
+
+built-in + custom
+
+file:../../lib/sasacore/demon.mli
+file:../../lib/sasacore/demon.ml 
+
+custom in Lutin that can generated by:
+
+file:../../lib/sasacore/genLutin.mli 
+file:../../lib/sasacore/genLutin.ml 
+
+* Dealing with  Algorithm values
+
+file:../../lib/sasacore/env.mli 
+file:../../lib/sasacore/env.ml
+
+* Representing Processes
+
+file:../../lib/sasacore/process.mli 
+
+* CLI arguments (sasa options)
+
+
+file:../../lib/sasacore/sasArg.mli 
+file:../../lib/sasacore/sasArg.ml
+
+* The Main Simulation 
+
+Splitted into 2 modules, so that the sasa rdbg plugin 
+can reuse the step functions 
+file:../../lib/sasacore/sasa.ml 
+
+
+file:../../src/sasaMain.ml
+
+* Generating Version Numbers
+
+The file:../../lib/sasacore/sasaVersion.ml is automatically generated
+- by file:../../Makefile.version
+- using git tags that are automatically generated using the =release=
+  job of the CI script, which is based on  [[https://www.npmjs.com/package/semantic-release-gitlab][semantic-release-gitlab]] 
+
+In order to generate sensible version numbers, please follow in your
+commit messages the conventions described here:
+https://www.npmjs.com/package/conventional-changelog-eslint
+
+This also permits to generate some Releases Notes:
+https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/releases
+
+* Pluging =sasa= on Synchronous tools
+
+** RIF 
+http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#outline-container-sec-5
+
+
+#+INCLUDE: "../../lib/sasacore/rifRead.mli" src ocaml
+
+file:../../lib/sasacore/rifRead.mli
+file:../../lib/sasacore/rifRead.ml
+
+
+** The rdbg plugin 
+
+https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/rdbg/blob/master/src/rdbgPlugin.mli 
+https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/lutils/blob/master/src/data.mli
+
+file:../../test/rdbg-utils/dot.ml
diff --git a/doc/README.md b/guides/users/README.md
similarity index 83%
rename from doc/README.md
rename to guides/users/README.md
index c944be7b..3c3d4151 100644
--- a/doc/README.md
+++ b/guides/users/README.md
@@ -1,8 +1,10 @@
-- [Dot files](#org0cd41b9)
-- [Algorithms](#org33281bc)
-- [Simulation](#org629cdd4)
-- [Custom mode](#org44c3285)
-- [Installation (not yet working)](#orgdce8a56)
+- [Dot files](#org8fd8577)
+- [Algorithms](#orgcbbf32f)
+- [Simulation](#org996e21a)
+- [Custom mode](#orgd85b8c1)
+- [rdbg](#orgc83f02b)
+- [Releases Notes](#org56e1efd)
+- [Installation (not yet working)](#orgf1a43f7)
 
 Basically, one needs to provide
 
@@ -10,7 +12,7 @@ Basically, one needs to provide
 2.  the algorithms mentionned in the dot file
 
 
-<a id="org0cd41b9"></a>
+<a id="org8fd8577"></a>
 
 # Dot files
 
@@ -34,7 +36,7 @@ graph ring {
 ```
 
 
-<a id="org33281bc"></a>
+<a id="orgcbbf32f"></a>
 
 # Algorithms
 
@@ -77,7 +79,7 @@ ocamlopt -shared -I +sasa some_algo.ml -o some_algo.cmxs
 Some examples can be found in the [test](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/tree/master/test) directory.
 
 
-<a id="org629cdd4"></a>
+<a id="org996e21a"></a>
 
 # Simulation
 
@@ -87,14 +89,26 @@ sasa --help
 ```
 
 
-<a id="org44c3285"></a>
+<a id="orgd85b8c1"></a>
 
 # Custom mode
 
 For using the custom mode, it is mandatory to register actions
 
 
-<a id="orgdce8a56"></a>
+<a id="orgc83f02b"></a>
+
+# rdbg
+
+
+<a id="org56e1efd"></a>
+
+# Releases Notes
+
+<https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/releases>
+
+
+<a id="orgf1a43f7"></a>
 
 # Installation (not yet working)
 
@@ -111,4 +125,4 @@ Once is is done, upgrading to the last version of the tools is as simple as:
 ```yaml
 opam update
 opam upgrade
-```
\ No newline at end of file
+```
diff --git a/doc/README.org b/guides/users/README.org
similarity index 96%
rename from doc/README.org
rename to guides/users/README.org
index 1c380830..644ec0c3 100644
--- a/doc/README.org
+++ b/guides/users/README.org
@@ -81,6 +81,11 @@ Some examples can be found in the [[https://gricad-gitlab.univ-grenoble-alpes.fr
 
 For using the custom mode, it is mandatory to register actions 
 
+* rdbg
+* Releases Notes
+
+https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/releases
+
 * Installation (not yet working)
 
 #+BEGIN_SRC  sh :tangle sh/install-opam.sh :noweb yes  :tangle-mode (identity #o444)
-- 
GitLab