The EvoAl repository contains different locations where stuff is stored. This documentation gives a short introduction to the structure and stuff contained.
ci
Scripts and files used during GitLab's CI run.
-
settings.xml
: Configuration file for maven to successfully download and upload stuff from EvoAl's package registry. -
create-pages.py
: Python script for automatically generating an update site that is hosted with GtiLab pages. -
create-release.sh
Shell script for packaging a release archive. This script requires that the code has been packaged (mvn package
) and can be used for creating a local release for testing purposes. -
regression-coverage.sh
Executes all examples inevoal/examples
and measures the code coverage.
src/languages
The languages folder contains all maven projects related to EvoAl's DSLs. Since they are built using Tycho, they create proper Eclipse plugins and an Eclipse Update Site.
src/evoal
The EvoAl implementation. You will find the core implementation and all default plugins here.
src/mirror
Dependency resolution for Tycho projects can be very slow. Therefore, EvoAl's CI/CD uses a customised Docker image that contains maven and a mirror of the Eclipse Update site.
src/xtext
Currently, Xtext does not fully support Java's module concept. The modules org.eclipse.xtext
and org.eclipse.xtext.utils
export the same package,
which is forbidden. Therefore, we need to merge these two packages for EvoAl:
- Download both jar files
- Extract the jar files
- Remove any signing information
- Merge both directories
- Zip the resulting folder
- Download pom file of
org.eclipse.xtext
- Increment version number
- Remove
org.eclipse.xtext
from dependencies - Upload the resulting jar file:
mvn deploy:deploy-file \
-DrepositoryId=evoal-artifacts \
-Durl=https://gitlab.informatik.uni-bremen.de/api/v4/projects/30380/packages/maven \
-Dfile=org.eclipse.xtext-2.29.1.jar \
-DgroupId=org.eclipse.xtext \
-DartifactId=org.eclipse.xtext \
-Dversion=2.29.1 \
-Dpackaging=jar \
-DpomFile=org.eclipse.xtext-2.29.1.pom