Repository navigation
fix(#8): read the engine version by its shape; classifier jars under their own version - #14
Merged
Merged
Conversation
…their own version arcadedb-engine-(.+).jar read arcadedb-engine-26.11.1-SNAPSHOT-tests.jar as version 26.11.1-SNAPSHOT-tests and failed a valid jar set with "more than one version". The version is now matched by shape and any suffix is a classifier, counted under its own version: a classifier jar of another version (which ships on the classpath) still fails, and a classifier jar alone is no engine jar. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #8
ENGINE_JAR_PATTERN = r"^arcadedb-engine-(.+)\.jar$"treated everything afterarcadedb-engine-as the version. Soarcadedb-engine-26.11.1-SNAPSHOT-tests.jarread as version26.11.1-SNAPSHOT-tests, and a valid jar set failed with "Engine jars of more than one version".The version is now matched by its shape:
X.Y.Z, optionally followed by-RCnand/or-SNAPSHOT. Whatever comes after it is a Maven classifier. A classifier jar counts under its own version and isn't skipped, because it carries engine classes and ships on the classpath (jvm.pyadds every*.jar). As a result:Test plan
tests/test_extract_version_classifiers.py(24 cases). RED: 16 failed onmainbefore the first fix.jar-with-dependencies,native,test-sources.-sourcesjar alone raises "no engine jar".tests/test_extract_version.pypasses unchanged.arcadedata/arcadedb:lateststill reads26.11.1-SNAPSHOT.Coverage
Invariant: every engine jar in the set, with or without a classifier, is counted under its real version, and the set must have exactly one version plus a plain engine jar.
Callers, found with
git grep -nE 'arcadedb-engine|extract_version': build.sh, build-native.sh, Dockerfile.build, write_version.py and both workflows' download-jars all go throughextract_raw_version_from_jars. No other code parses engine jar names.build.sh:444builds the exact namearcadedb-integration-{version}.jar.tests/test_server_packaging.py:91matchesarcadedb-studio*in the bundled jars; the image ships no studio classifier jar.Known gaps: A version with a qualifier other than
-RCn/-SNAPSHOT(say-beta1) would now read as the bare version plus a classifier. ArcadeDB doesn't publish such versions today.Adversarial pass
The first version of this fix skipped classifier jars.
-jar-with-dependencies,-nativebrought the bug back). Real. Fixed: the version is now matched by shape, so any suffix is a classifier, with tests.Review cycles
This repository has no Claude review workflow, so no bot review was waited for. Final state:
no-reviewer.🤖 Generated with Claude Code