Development
Packaging
Before packaging, you need to install the JS dependencies (i.e. node modules). Easiest approach is to use Docker:
docker compose up -d
docker compose exec node bash # open a bash session inside the node docker container
cd extract
./install_dependencies.sh # run the script to install dependencies
Stop docker compose and generate a WAR of the application, run the following command:
mvn clean package
Package while skipping tests (compile and run)
mvn clean package "-Dmaven.test.skip" # add double quotes on windows powershell
In addition to the WAR file, the delivery archive of a new version contains:
- The latest version of the database update script
(
sql/update_db.sql) - The FME sample script (
fme/)
Tests
Unit tests can be run independently of packaging with the command:
mvn -q test -Punit-tests --batch-mode --fail-at-end
To run integration tests:
mvn -q verify -Pintegration-tests --batch-mode
For functional tests (requires the application to be running on localhost port 8080):
mvn -q verify -Pfunctional-tests --batch-mode
Documentation (edit and build)
If you would like to set up a local development environment to edit the current documentation, perform the following steps. You just need an installation of python 3 on your machine.
-
Create and activate a python virtual environment (not mandatory but recommended)
python -m venv .venv Set-ExecutionPolicy Unrestricted -Scope Process # only for windows .venv\Scripts\Activate.ps1 -
Install the necessary packages
pip install mkdocs-material mkdocs-exclude-search -
Build and serve the documentation on localhost
mkdocs serve - Visit http://localhost:8000
You can then edit the markdown files under ./docs following the syntax from mkdocs-material. The browser will automatically reload when changes are made to the ./docs folder.
To publish your modification, send them (only the markdown files) through a pull request on GitHub. When your pull request will be merged to the main branch, the documentation will automatically be build and publish to the documentation website.