Skip to content

fix: move similarity-screen-rdkit 'derived-from' to annotation-properties - #30

Merged
tdudgeon merged 1 commit into
mainfrom
fix/derived-from-annotation-placement
Aug 13, 2026
Merged

fix: move similarity-screen-rdkit 'derived-from' to annotation-properties#30
tdudgeon merged 1 commit into
mainfrom
fix/derived-from-annotation-placement

Conversation

@tdudgeon

Copy link
Copy Markdown
Collaborator

What broke

im-data-manager-job-decoder 2.7.0 was released on 2026-08-13 and immediately
turned CI red in the
squonk2-jobs umbrella repo:

! Job definition "data-manager/rdkit.yaml" does not comply with schema
Additional properties are not allowed ('derived-from' was unexpected)

It is a real bug, not a schema regression

derived-from is legitimate and supported — 2.7.0 makes it a first-class
property of the new annotation-properties definition. Only its placement here
was wrong. In similarity-screen-rdkit it sits one level too deep, inside
fields-descriptor:

jobs.similarity-screen-rdkit…annotation-properties.fields-descriptor.derived-from   ← wrong
jobs.cluster-butina…annotation-properties.derived-from                              ← the other 8

An indentation slip — 16 spaces where 14 were meant. The other eight occurrences
in this file are correct, which makes the intent unambiguous.

It survived because annotation-properties was declared
additionalProperties: true, so the block was free-form and any key validated.
2.7.0 models it properly and the slip surfaced. This is exactly the class of hole
docs/schema-coverage.md
describes, and closing it found a genuine latent defect first time out.

Why the version bump

Not purely cosmetic. This output has been shipping a fields-descriptor carrying
a stray key and no derived-from annotation at all. Fixing the placement
changes the annotation the Data Manager actually receives, so
similarity-screen-rdkit goes 1.0.11.0.2 per
the versioning rules.

Verification

Reproduced CI exactly — jote 0.13.0 resolving decoder 2.7.0:

Manifest Result
manifest-im-virtual-screening.yaml 32/32
manifest-moldb.yaml 12/12
manifest-fragnet-search.yaml 3/3
manifest-im-mordred.yaml 2/2
manifest-dmpk.yaml 1/1
manifest-silicos-it.yaml 0/0

Before the fix, manifest-im-virtual-screening.yaml failed; all six now pass.

I also validated every Job Definition across all ten Job repositories against
the 2.7.0 schema: this was the only violation in the ecosystem, so no other
repository needs changing.

Related

A companion PR in squonk2-jobs pins the decoder in CI. The umbrella workflow
pins JOTE_VERSION but jote declares im-data-manager-job-decoder>=2.6.1 with no
upper bound — the schemas live in the decoder, so they float, and a decoder
release lands as a failure on whatever unrelated PR comes next.

🤖 Generated with Claude Code

…ties

'derived-from' was nested one level too deep, inside 'fields-descriptor',
rather than sitting alongside it under 'annotation-properties'. The other
eight occurrences in this file are placed correctly; this one is an
indentation slip.

It went unnoticed because 'annotation-properties' was declared
'additionalProperties: true' in the Job Definition schema, so the whole
block was free-form and any key validated. im-data-manager-job-decoder
2.7.0 (released 2026-08-13) models the block properly, and the misplaced
key now fails validation:

    ! Job definition "data-manager/rdkit.yaml" does not comply with schema
    Additional properties are not allowed ('derived-from' was unexpected)

'derived-from' is legitimate and supported - it is a first-class property
of the new 'annotation-properties' definition. Only its placement was
wrong.

This is not purely cosmetic: the output has been emitting a
'fields-descriptor' carrying a stray key and no 'derived-from' annotation
at all. Fixing the placement changes the annotation the Data Manager
receives, so the Job version is bumped 1.0.1 -> 1.0.2.

Verified with jote 0.13.0 against decoder 2.7.0 - all six manifests pass
'jote --dry-run' (32/32 for manifest-im-virtual-screening.yaml).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.

1 participant