From 3640a5bf8c00f4b4b92c4324e720843b607f0d4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Esteban=20Zim=C3=A1nyi?= Date: Mon, 31 Aug 2026 18:13:52 +0200 Subject: [PATCH] Build the JMEOS jar the way its own script defines it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit JMEOS carries `tools/regen-from-catalog.sh`, the single runnable definition of that build: it stages the catalog and libmeos, and jmeos-core's generate-sources emits GeneratedFunctions from the catalog. `tools/refresh-from-master.sh` reaches the same script through the shared chain, so calling it from the workflow leaves the CI path and the by-hand path unable to drift. The workflow named `-Dmaven.test.skip=true`, which skips test COMPILATION as well as execution, so a JMEOS whose test sources do not compile against the catalog this job derived still produced a green jar step. Naming LIBMEOS runs the FFI suite against the libmeos the job just built — 1792 tests, 0 failures, 0 errors, 0 skipped — which is what tells a jar that merely compiles from one whose generated surface answers. `tools/refresh-from-master.sh` no longer offers `--skip-tests`: the chain it forwards to carries no such option, so the line documented a flag that is refused. --- .github/workflows/maven.yml | 18 +++++++++--------- tools/refresh-from-master.sh | 1 - 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index eaf9cbf..1d8a689 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -46,16 +46,16 @@ jobs: path: jmeos - name: Build + install the JMEOS jar as org.jmeos:meos:1.0 - # Mirror MobilitySpark and MobilityFlink: stage the derived catalog + libmeos into the - # JMEOS checkout and build it (jmeos-core's generate-sources emits GeneratedFunctions - # from the catalog), then install the plain jar/JMEOS.jar under the org.jmeos:meos:1.0 - # coordinates the binding depends on. Tests are skipped — JMEOS's own CI exercises its - # FFI suite; only the jar is needed here. + # JMEOS's own tools/regen-from-catalog.sh is the single runnable definition of this + # build — it stages the catalog and libmeos, and jmeos-core's generate-sources emits + # GeneratedFunctions from the catalog. tools/refresh-from-master.sh reaches it through + # the same script, so the CI path and the by-hand path cannot drift. Naming LIBMEOS + # runs JMEOS's FFI suite against the libmeos this job just built, which is what tells a + # jar that merely compiles from one whose generated surface answers. run: | - mkdir -p jmeos/codegen/input - cp "${{ steps.provision.outputs.catalog-path }}" jmeos/codegen/input/meos-idl.json - cp /usr/local/lib/libmeos.so jmeos/jmeos-core/src/ - mvn -B -f jmeos/pom.xml clean install -Dmaven.test.skip=true + CATALOG="${{ steps.provision.outputs.catalog-path }}" \ + LIBMEOS=/usr/local/lib/libmeos.so \ + jmeos/tools/regen-from-catalog.sh mvn -B install:install-file \ -Dfile=jmeos/jar/JMEOS.jar \ -DgroupId=org.jmeos -DartifactId=meos -Dversion=1.0 -Dpackaging=jar diff --git a/tools/refresh-from-master.sh b/tools/refresh-from-master.sh index 26e9155..2c966df 100755 --- a/tools/refresh-from-master.sh +++ b/tools/refresh-from-master.sh @@ -10,7 +10,6 @@ # # All of refresh-jvm-chain.sh's options pass through, e.g.: # tools/refresh-from-master.sh --mdb ~/src/MobilityDB # refresh against a local MobilityDB branch -# tools/refresh-from-master.sh --skip-tests # regenerate + compile, skip the test run # # MEOSAPI= uses an existing MEOS-API checkout (any branch); otherwise MEOS-API master is # cloned into the work dir. WORK_DIR overrides the scratch location (default /.meos-chain).