Skip to content

chore(deps): bump biolink-model to 4.4.5 and drop absorbed class-field grants - #209

Merged
SkyeAv merged 2 commits into
mainfrom
update-biolink-model
Oct 1, 2026
Merged

SkyeAv merged 2 commits into
mainfrom
update-biolink-model

Conversation

@SkyeAv

@SkyeAv SkyeAv commented Oct 1, 2026 •

Copy link
Copy Markdown
Owner

Bumps the pinned biolink-model dependency from 4.4.4 to 4.4.5 and lets the model absorb the CLASS_FIELD_OVERRIDES grants it now declares natively.

Dependency bump

  • Pin: pyproject.toml moves biolink-model>=4.4.4 -> >=4.4.5; uv.lock relocked via uv lock --upgrade-package biolink-model (same linkml-runtime==1.11.1 pin, so no transitive churn).
  • Derived vocabulary: categories, predicates, qualifiers, and enums follow the installed model with no code change; the tripwires in tests/test_biolink.py are the designed instrument for this update.

Absorbed grants

  • Tripwire fired as designed. The 4.4.5 mixin consolidation (biolink-model PR #1803), the regulatory_approvals rename (#1814), and the phenotypic-feature sex_qualifier attachment (#1817) made most of the original grant stack native to EntityToDiseaseAssociation / EntityToPhenotypicFeatureAssociation.
  • Removed grants: anatomical_context_qualifier, disease_context_qualifier, frequency_qualifier, and regulatory_approvals on both pinned classes, plus sex_qualifier on EntityToPhenotypicFeatureAssociation.
  • Remaining grants (deliberately ahead of the model): population_context_qualifier and temporal_context_qualifier on both classes, plus sex_qualifier on EntityToDiseaseAssociation only.
  • Probe swap: tests/test_biolink.py::test_validate_record_tolerates_class_field_override_grants now probes population_context_qualifier; a regulatory_approvals probe would pass natively and exercise nothing.
  • Behavior note: prune_to_class coerces natively declared multivalued slots, so kept regulatory_approvals / anatomical_context_qualifier values now wrap into lists on the pinned classes where the grant used to pass them through verbatim.

Docs

  • docs/configuration/table.md: the allow-list, category_override, and split_by sections now describe which qualifiers are native since 4.4.5 and which remain granted.

Testing

  • make check: ruff check / ruff format --check clean, pyright -> 0 errors, 0 warnings, pytest -q -> 1674 passed, 52 skipped, cargo test -> 127 + 11 + 17 passed, clippy -D warnings clean.
  • Second commit: Rust 1.99.0 turned needless_borrows_for_generic_args on by default and CI denies warnings, so the five .map_err(&validation_ctx) borrows in rust/src/fullmap.rs are dropped (behavior-preserving; cargo fmt --check, clippy -D warnings, and all 156 cargo test cases pass under 1.99.0).

Caveats

  • Upstream version-string slip: the PyPI 4.4.5 wheel still ships a schema whose version: reads 4.4.4 (the v4.4.5 tag source says 4.4.5), so BIOLINK_VERSION keeps reporting 4.4.4 until the next upstream release; distill's versions.biolink_model reads distribution metadata and already reports 4.4.5.
  • No CHANGELOG entry: entries ship in the chore(release) commit per repo convention.

…d grants

The biolink-model 4.4.5 mixin consolidation attached the disease/phenotype
qualifier stack to the pinned EntityToDiseaseAssociation /
EntityToPhenotypicFeatureAssociation classes, renamed
FDA_regulatory_approvals to the canonical regulatory_approvals on them,
and added sex_qualifier to the phenotypic-feature side. The
CLASS_FIELD_OVERRIDES tripwire fired exactly as designed: the grants for
anatomical_context_qualifier, disease_context_qualifier,
frequency_qualifier, and regulatory_approvals (both classes) plus
sex_qualifier on EntityToPhenotypicFeatureAssociation are absorbed and
removed. The remaining deliberate grants are population_context_qualifier
and temporal_context_qualifier on both classes plus sex_qualifier on
EntityToDiseaseAssociation.

One behavioral consequence of absorption: prune_to_class now coerces
natively declared multivalued slots (regulatory_approvals,
anatomical_context_qualifier) on the pinned classes, so kept values wrap
into lists where the grant used to pass them through verbatim.

Known upstream quirk: the PyPI 4.4.5 wheel still carries a schema whose
version string reads 4.4.4 (the v4.4.5 tag source says 4.4.5), so
BIOLINK_VERSION keeps reporting 4.4.4 until the next upstream release.

Note: the pin is bumped in pyproject.toml and uv.lock; versioned release
cut left to the usual release flow.
@coderabbitai

coderabbitai Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 0aa37d8e-66dd-49b4-9998-3536a5bdcc71

  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Rust 1.99.0 turned needless_borrows_for_generic_args on by default and
CI denies warnings, so the five .map_err(&validation_ctx) calls in
extract_validate_rename fail the rust job (main will hit the same on its
next CI run). Passing validation_ctx by value is behavior-preserving;
cargo fmt, clippy -D warnings, and the full cargo test suite pass under
1.99.0.
@SkyeAv
SkyeAv merged commit 47000b5 into main Oct 1, 2026
5 checks passed
SkyeAv added a commit that referenced this pull request Oct 1, 2026
Cut 19.5.1 and bump the package version in pyproject.toml, CITATION.cff, and
uv.lock.

Patch: docs-only surface refresh plus a behavior-preserving dependency bump.
biolink-model 4.4.5 absorbs the dropped CLASS_FIELD_OVERRIDES grants upstream
(the effective field set on the pinned EntityToDiseaseAssociation /
EntityToPhenotypicFeatureAssociation classes is unchanged) and the Rust layer
passes validation_ctx by value to satisfy Rust 1.99's
needless_borrows_for_generic_args lint (#209). Documentation gains a statement
of need and audience, a Getting help pathway, experimental labels on the
agent/optimize/distill surfaces, runnable fullmap prerequisites in the
tutorial, a three-method installation guide, and plain-ASCII prose (#205);
CODE_OF_CONDUCT.md ships Contributor Covenant 2.1 with CITATION.cff maintainer
emails as enforcement contacts (#206); CITATION.cff gains verified ORCIDs for
all three authors and a factual abstract (#207).

Changelog:
- Versioned the release as 19.5.1 dated 2026-10-01; added Changed entries for
  #205, #206, #207, and #209 with PR links.

Docs: none needed here; the release changelog section is the docs update.

Testing:
- make check -> exit 0: ruff check/format clean, pyright clean, pytest
  1674 passed / 52 skipped in 29.33s, cargo test 156 passed / 0 failed
  (127 + 11 + 17 + 1 across 5 suites), cargo clippy -D warnings clean
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