Skip to content

rdkit.yaml: 'derived-from' is nested inside 'fields-descriptor' in similarity-screen-rdkit #29

Description

@claude-im

The problem

In data-manager/rdkit.yaml, job similarity-screen-rdkit, output variable
outputFile, the derived-from annotation is nested inside
fields-descriptor (line 1051, indented 16 spaces) instead of sitting beside
it, and no top-level derived-from is present:

            annotation-properties:
              fields-descriptor:
                origin: squonk2-job
                description: Similarity screen
                fields:
                  ...
                derived-from: inputFile      # <-- one level too deep

The intended annotation is therefore silently not applied. Every one of the
other eight derived-from entries in this file is correctly placed at 14
spaces, so this is a lone indentation slip.

Why it went unnoticed

The Job Definition schema declared additionalProperties: true for
annotation-properties, so an unrecognised key nested anywhere in there
validated cleanly and nothing ever complained.

That has now changed. InformaticsMatters/squonk2-data-manager-job-decoder#4
constrains annotation-properties to fields-descriptor, derived-from and
service-execution only. Run against all 18 Job Definitions in the
squonk2-jobs umbrella, the tightened schema produces exactly one failure —
this one:

FAIL virtual-screening/data-manager/rdkit.yaml | Additional properties are not allowed ('derived-from' was unexpected)

The fix

Lift derived-from: inputFile at data-manager/rdkit.yaml:1051 out of
fields-descriptor so it is a sibling of it, matching the other eight
occurrences in the file.

Ordering

This collection will not validate against decoder 2.7.0 until this lands, so
it should be merged before that decoder release is adopted. The identical
defect in the decoder's own copy of this definition
(example-definitions/good/virtual-screening-rdkit.yaml) is already corrected
in the decoder PR.

Verification

python3 -c "
import yaml, sys; sys.path.insert(0, '../squonk2-data-manager-job-decoder')
from decoder import decoder
print(decoder.validate_job_schema(yaml.safe_load(open('data-manager/rdkit.yaml'))))"

Expect None with a decoder checked out at the branch of
InformaticsMatters/squonk2-data-manager-job-decoder#4. Then run jote over the
affected tests to confirm the annotation now being applied does not disturb
them.

Raised from InformaticsMatters/squonk2-jobs#27.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions