Commit 9c49004e authored by Pietro Braghieri's avatar Pietro Braghieri
Browse files

Merge branch '60-documentation-improvement' into 'master'

Resolve "Documentation Improvement"

Closes #60

See merge request ESProjects/SDE!62
parents 2ece1a95 430f34b7
Syntax-derived editor for ES Tools
# Syntax-Derived Editor for ES Tools
**Project Build instruction:**
#### Editors
* [**OSS**](/eu.fbk.tools.editor/eu.fbk.tools.editor.oss)
-> [Contract](/eu.fbk.tools.editor/eu.fbk.tools.editor.contract)
-> [Expression](/eu.fbk.tools.editor/eu.fbk.tools.editor.contract.expression)
-> [Base Types](/eu.fbk.tools.editor/eu.fbk.tools.editor.basetype)
* [**NuSMV**](/eu.fbk.tools.editor/eu.fbk.tools.editor.nusmv)
-> [Base Types](/eu.fbk.tools.editor/eu.fbk.tools.editor.basetype)
* [**Fei**](/eu.fbk.tools.editor/eu.fbk.tools.editor.fei)
-> [Base Types](/eu.fbk.tools.editor/eu.fbk.tools.editor.basetype)
* [**Tfpg**](/eu.fbk.tools.editor/eu.fbk.tools.editor.tfpg)
-> [Base Types](/eu.fbk.tools.editor/eu.fbk.tools.editor.basetype)
* [**Tfpga**](/eu.fbk.tools.editor/eu.fbk.tools.editor.tfpga)
-> [Base Types](/eu.fbk.tools.editor/eu.fbk.tools.editor.basetype)
* [**CleanC**](/eu.fbk.tools.editor/eu.fbk.tools.editor.c)
-> [Statement](/eu.fbk.tools.editor/eu.fbk.tools.editor.c.statement)
-> [Expression](/eu.fbk.tools.editor/eu.fbk.tools.editor.c.expression)
Currently we can build SDE for Eclipse `Neon`, `2020-06` and `2021-03`.
To select the desired Eclipe version, please use the corresponding maven profile, respectively: `Neon`, `2020-06` and `2021-03`.
To select the desired Java version, please use the maven profile `Java8` or `Java11`.
Following a _not exhaustive_ representation of the grammars hierarchy (some are missing, i.e. Tfpg, Tfpga, and CleanC)
![Grammar Hierarchy](docs/Grammars%20Hierarchy.png)
**The grammar hierarchy must be taken into account in case of grammars changes and for the manual compilation**
#### Dependencies
Currently SDE has been tested for Eclipse `Neon`, `2020-06` and `2021-03`
|| Neon | 2020-06 | 2021-03 |
| ------ | ------ | ------ | -----|
| **Java** | 8 | 8 and 11 | 11 |
|**[Xtext](https://www.eclipse.org/Xtext/)** | 2.14 | 2.25 | 2.25 |
#### Project Build instruction:
SDE can be build for Eclipse `Neon`, `2020-06` and `2021-03` using Maven.
To select the desired Eclipse version, please use the corresponding Maven profile, respectively: `Neon`, `2020-06` and `2021-03`.
To select the desired Java version, set the maven profile to `Java8` or `Java11`.
- checkout the project
- from the terminal
- in case of `Neon`, from the root of the project run: `mvn clean install -Dhttps.protocols=TLSv1.2 -P Neon,Java8` (maven 3.x must be already installed)
- in case of `2020-06`, from the root of the project run: `mvn clean install -Dhttps.protocols=TLSv1.2 -P 2020-06,<Java8|Java11>`
- in case of `2021-03`, from the root of the project run: `mvn clean install -Dhttps.protocols=TLSv1.2 -P 2021,Java11`
- to update the Eclipse workspace, select all projects (Edit->Select all) and run 'Maven->Update Project' from the context menu of
- the Package Explorer view.
- to update the Eclipse workspace:
- activate the target platform corresponding to the Eclipse version
- select all projects `Edit->Select all` and run `Maven->Update Project` from the context menu of the Package Explorer view
#### Update Site Deployment instruction:
It is possible to deploy the SDE plugins on the FBK Update Site (accessible by everyone) by specifying the `deploy` maven phase.
There are actually two updated sites, the Development Update Site and the Production Update Site.
The first one (_Development_) should be aligned with the master source code and is used typically by the developers for integration activities.
The second one (_Production_) is not necessarily aligned with the master but it is an official release of SDE.
As mentioned above, it is possible automatically (via Maven) to build locally the update site of SDE and then copying it to the Update Site server.
Because of the Update Site server is writable only from the FBK local network, this activity must be executed from the FBK local network (or in the FBK VPN).
Also here, the maven command uses Profiles to set the target update site.
So, from the root of the project run:
- `mvn clean deploy -Dhttps.protocols=TLSv1.2 -P Neon,Java8,<DevelopmentUpdateSite|ProductionUpdateSite>`
- `mvn clean deploy -Dhttps.protocols=TLSv1.2 -P 2020-06,<Java8|Java11>,<DevelopmentUpdateSite|ProductionUpdateSite>`
- `mvn clean deploy -Dhttps.protocols=TLSv1.2 -P 2021,Java11,<DevelopmentUpdateSite|ProductionUpdateSite>`
##### Some notes on the SDE update sites
The following information refers to the current update site server installation but it may change in the future, so these notes should be kept up to date.
Server Name: `es-services-website.fbk.eu`
User: `esuser`
The `ssh private key` of the `esuser` must be already present in the machine that runs the maven command.
The repositories of the SDE update site are located in:
`/data/www/es-static.fbk.eu/html/tools/eclipse/<neon|2020-06|2021-03>/<sde|sde_devel>`
The `/data/www/es-static.fbk.eu/html/tools/eclipse/<neon|2020-06|2021-03>/<sde_prev|sde_devel_prev>` hold the very last previous uploads.
They are created/updated automatically at the end of each successful upload of a new update site.
#### The CI/CD
It is automatically activated soon after a push on the master. It runs in a `shell Gitlab runner` on `mitchell.fbk.eu`.
Currently builds the code and creates the update site repository for **Neon/Java8 only**.
In case of success of those two steps, automatically deploys the _Development_ update site to the server.
Concerning the Production Update site, in the [pipeline](https://gitlab.fbk.eu/ESProjects/SDE/-/pipelines) is available a manual activity (_manual_to_production_update_site_) that deploys the _Production_ update site on the server.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment