Skip to content

Release v3.1.0 - #19

Merged
ecrum19 merged 1 commit into
mainfrom
release/v3.1.0
Sep 22, 2026
Merged

ecrum19 merged 1 commit into
mainfrom
release/v3.1.0

Conversation

@ecrum19

@ecrum19 ecrum19 commented Sep 22, 2026

Copy link
Copy Markdown
Owner

Version markers only — pyproject.toml, CITATION.cff, README.md, conda-recipe/.

A minor rather than a patch, because three things changed behaviour rather than fixing it in place:

COTTAS is queryable. Through comunica over DuckDB instead of pycottas' rdflib Store. The old path took 12.7 s for LIMIT 1 on a 39 MB artifact and ran 41 h on q05_sample_genotype_counts without finishing; the same cell now completes in 99.8 min with all four engines agreeing. Queries are also interruptible for the first time — run_query_process existed with no callers, and no engine emitted the exit 124 the query loop keys on, so --validation-query-timeout could not stop anything.

The oracle matches the emitter. It counted value items for INFO only while the emitter also decomposes positional FORMAT keys, so any file with AD or PL failed validation. And it never learned which representation produced the graph, so --info-representation raw could not pass at all.

Validation gained a SHACL layer, bundled and applied by default below 512 MiB, with severity-aware pyshacl parsing.

The conda sha256 is back to its placeholder: the v3.1.0 source archive does not exist until the tag is pushed. Populate it after tagging with python3 scripts/release.py 3.1.0 --fetch-conda-sha256.

Known, pre-existing and not from this release: the vendored vcf-core-vocabulary.bundle.ttl is at 2.1.2 while the vocabulary checkout is at 2.1.3. The drift check skips without a sibling checkout, so CI does not see it — worth a decision, but it predates this branch.

🤖 Generated with Claude Code

A minor rather than a patch: COTTAS gained a working query engine, validation
gained a SHACL shape layer, and the census oracle learned two things it had been
getting wrong on real data.

COTTAS is queried through comunica over DuckDB instead of pycottas' rdflib
Store. The old path could not answer a genotype query at benchmark scale --
12.7 s for LIMIT 1 on a 39 MB artifact, and 41 hours on
q05_sample_genotype_counts without finishing. The same cell now completes in
99.8 minutes with every engine agreeing. A query is also finally interruptible:
run_query_process existed with no callers, and no engine ever emitted the exit
124 the query loop keys on, so --validation-query-timeout could not stop
anything.

The oracle counted value items for INFO only, while the emitter decomposes
positional FORMAT keys too. Any file with AD or PL -- most real VCFs -- failed
validation with the whole item layer reported as unexpected. It also scored
every run against a structured expectation because the representation was never
passed across the container boundary, so --info-representation raw could not
pass at all.

Also: the SHACL profile bundled and applied by default below 512 MiB, severity-
aware pyshacl parsing, QLever as the validation default, a cohort-scale refusal
before the volume fills, and TSV intermediates freed at the last reader.

Conda sha256 returns to its placeholder until the tag exists; populate it with
`python3 scripts/release.py 3.1.0 --fetch-conda-sha256` after pushing v3.1.0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@ecrum19
ecrum19 merged commit d3b34d5 into main Sep 22, 2026
24 checks passed
@ecrum19
ecrum19 deleted the release/v3.1.0 branch September 22, 2026 14:53
@ecrum19 ecrum19 mentioned this pull request Sep 25, 2026
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.

2 participants