Skip to content

Try to remove some duplication at the model level#165

Open
jmchilton wants to merge 2 commits intogalaxyproject:mainfrom
jmchilton:schema_dedup
Open

Try to remove some duplication at the model level#165
jmchilton wants to merge 2 commits intogalaxyproject:mainfrom
jmchilton:schema_dedup

Conversation

@jmchilton
Copy link
Copy Markdown
Member

No description provided.

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 26, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 41.03%. Comparing base (09544c2) to head (061f812).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #165   +/-   ##
=======================================
  Coverage   41.03%   41.03%           
=======================================
  Files          51       51           
  Lines        1974     1974           
  Branches      441      441           
=======================================
  Hits          810      810           
  Misses       1047     1047           
  Partials      117      117           
Flag Coverage Δ
unittests 41.03% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

jmchilton and others added 2 commits March 29, 2026 09:41
CreatorPerson, CreatorOrganization, BaseCreator and their discriminator
enums are structurally identical between Format2 and native schemas.
Move them to schema/common/common.yml so the definition is shared.

Both pydantic schemas now generate the same class names (CreatorPerson,
CreatorOrganization) instead of having separate NativeCreatorPerson vs
CreatorPerson. This eliminates the cross-schema type mismatch for
creators in the normalized layer.

Note: schema-salad codegen (native_v0_1.py) not regenerated due to
pre-existing JSON-LD predicate collision from comment type enums.
Pydantic codegen works fine as it doesn't use JSON-LD.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace single-symbol comment type enums (TextCommentType, etc.) with
string fields using pydantic:type Literal overrides. The enum symbols
collided with GalaxyType symbols (both had 'text') and with each other
in the JSON-LD context.

Fix comment type fields to use full sld:type predicate attributes
(@vocab, refScope, typeDSL) matching other type fields in the schema.

Fix TextComment/MarkdownComment 'text' field to use GalaxyType/text
URI instead of a separate TextComment/text URI that collided.

Fix NativeSourceMetadata.url to use gxformat2common:Creator/url URI
to avoid collision with BaseCreator.url from common.yml.

Skip format2_nested_no_steps from round-trip loop in test_lint —
the workflow has dangling step references that can't survive conversion.

Regenerate all codegen: schema-salad (v19_09.py, native_v0_1.py) and
pydantic (gxformat2.py, native.py, strict variants).

Co-Authored-By: Claude Opus 4.6 (1M context) <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