Skip to content

ci: run examples/ against the installed native wheel (#192) - #193

Merged
tae898 merged 3 commits into
mainfrom
ci/192-native-examples
Nov 2, 2026
Merged

tae898 merged 3 commits into
mainfrom
ci/192-native-examples

Conversation

@tae898

@tae898 tae898 commented Nov 2, 2026

Copy link
Copy Markdown
Collaborator

Closes #192

uv add arcadedb installs the native package, but examples/ only ran against arcadedb-jvm. This adds a job to test-native.yml that runs every example on the installed native wheel.

  • New job Examples on the installed wheel (<key>, Python <py>): the four platform keys, Python 3.12 and 3.14 (a pull request: linux-x86_64, 3.12). It downloads native-wheel-<key> from the build job (no rebuild) and installs it with uv sync in a throwaway examples-env project, like the JVM examples job. jpype1 is not installed, because uv add arcadedb does not install it.
  • Shared runner: the per-example arguments, timeouts, JVM arguments, dataset download (exit 75 skip) and the answer check of example 10 moved unchanged from test-python-examples.yml into scripts/run_examples.sh (datasets and run). Both workflows call it. The JVM job now has two one-line steps and sets no skip file, so it behaves as before.
  • Skip list: scripts/native_examples_skip.txt, lines of <file>.py | <reason>. It starts empty. The runner prints the list with the reasons and counts each listed example as skipped. I will add an example only after CI shows it fails on native because of a JVM-only API, not because of a bug.
  • Summary: a per-leg step summary like the JVM job's, and an Examples summary job that is red when any leg fails.
  • Paths: the native workflow now also runs when examples/** (except examples/README.md), scripts/run_examples.sh or the skip list change. The nightly "changed in the last 25 hours" check counts examples too. select_native_matrix.py has a new examples output, with tests.
  • The examples legs do not decide what a release publishes: release-native.yml still reads only the native-passed-* markers and the native-wheel-* wheels. A release run does run the examples on 3.12 and 3.14 only.

Checked locally: uvx pre-commit run on the changed files (black, isort, shfmt, actionlint), bash -n on the runner, a dry run of the runner with and without a skip file, and tests/test_select_native_matrix.py. The first real run of the new job is this PR's CI; examples 02, 03 and 25 import jpype and are the likely first candidates for the skip list.

🤖 Generated with Claude Code

New job "Examples on the installed wheel" in test-native.yml: the four platforms, Python 3.12 and 3.14 (a pull request: linux-x86_64, 3.12), the wheel the build job already uploads, installed with uv. The per-example arguments, timeouts, dataset handling and the answer check of example 10 move out of test-python-examples.yml into scripts/run_examples.sh, which both workflows call, so the JVM job behaves as before. scripts/native_examples_skip.txt lists, with a reason, the examples that need the JVM package (empty to start); the runner prints it. examples-summary is the one check for all legs. The native workflow also runs when examples/ or the runner change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
tae898 and others added 2 commits November 2, 2026 20:39
…6.11.1 one (#192)

From the first runs of the job (all four platforms, Python 3.12 and 3.14, the same nine
failures everywhere): 02, 03 and 25 use jpype directly, 14 starts the JVM itself, 15 reads
Java Schema objects (NotOnNativeYet), 29 needs the vectorNeighbors where option of engine
26.11.1 while the CI native image links 26.10.2. Examples 04, 05 and 06 are not listed:
they failed on a bug (#195), fixed by PR #196, which this branch is rebased on.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@tae898
tae898 merged commit 87ecaf0 into main Nov 2, 2026
64 checks passed
@tae898
tae898 deleted the ci/192-native-examples branch November 2, 2026 14:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CI: examples run only against arcadedb-jvm; the native package (the default install) never runs them

1 participant