julie-extract v2.12.0
v2.12.0
This feature release adds versioned, golden-backed test-role evidence for
continuous-testing consumers while keeping execution and verdict logic outside
the extraction product.
Test Evidence Contract
kind_coverage.test_detectionis now published through the library snapshot,
julie-extract languages --json, SQLite capability rows, and JSONL exports.- The fixed role vocabulary is
test_case,test_container, and
test_lifecycle. Positive capability claims require an emitted role in a
registered golden fixture. - Consumers get explicit
supported, source-backednot_applicable, and owned
open_gapsclassifications. Absence remains unknown when capability evidence,
indexed-file status, or parse health is insufficient. - The versioned consumer contract is documented in
docs/contracts/test-evidence-v1.md. - Release packages include both the test-evidence contract and the
continuous-testing evidence-boundary decision.
Golden Closure
- All 28 code languages now have golden-backed evidence for at least one emitted
test role. - All 108 language-role cells are classified exactly once: 60 are supported, 6
are source-backednot_applicable, and 42 remain explicitopen_gapswith
closure ownership. - The strict language-quality gate now includes test detection for code
languages and still reportssilent_cells: 0andquality_bar_debts: 0. - CSS and regex provide the source-backed negative cases. HTML, JSON, Markdown,
SQL, TOML, and YAML retain explicit gaps because test meaning comes from an
external host, framework, or schema rather than the standalone language.
Extraction Fixes
- Razor now detects embedded C# test attributes such as
[Fact]without
misclassifying ordinary declarations. - Vue
<script>and<script setup>sections now publish JavaScript and
TypeScript call-style test roles with host-SFC spans, body spans, stable IDs,
and parent relationships. - Ordinary declarations and qualified member calls remain negative controls for
call-style test detection.
Continuous-Testing Boundary
julie-extractors owns emitted test roles plus capability and diagnostic
evidence. Miller owns deterministic graph candidates over extracted facts. Eros
owns runner inventory, scheduling, results, freshness, and verdicts. This release
does not add a watcher, runner inventory, scheduler, result store, or impact
verdict engine.
The boundary decision is recorded in
docs/architecture/continuous-testing-evidence-boundary.md.
Contract Versions
- Rust package versions change from
2.11.0to2.12.0across
julie-extract-artifact,julie-extract-cli, andjulie-extractors. - SQLite schema stays
4. extract_contract_versionstays3.- JSONL schema stays
3. test_detectionis additive within the existing versioned capability object.- Parser dependency pins are unchanged.
Release Preparation
The local release candidate is verified with:
cargo fmt --check
cargo test -p xtask
cargo xtask test default
cargo xtask test contract
cargo deny --all-features check
node scripts/language-data-quality-report.mjs --strict
cargo xtask release preflight --version 2.12.0
cargo xtask release package-list
git diff --checkPublished Release
Published 2026-07-10T15:30:13Z as
https://github.com/anortham/julie-extractors/releases/tag/v2.12.0.
- Release commit:
3f00c928d056919cc86dcce79b0751eedc9a3767 - Release workflow:
https://github.com/anortham/julie-extractors/actions/runs/29103308762 - Release evidence:
docs/release-evidence/2026-07-10-v2-12-0-release.md
| Target | Archive SHA-256 |
|---|---|
aarch64-apple-darwin |
249ed102deece8841c2965d7ad370ef08e63a82d093315a21f374a4457e57812 |
x86_64-apple-darwin |
29ce60fbfc96d636eb1500df3d563c8739dd7bf1ef8097f00bda531c6ca467b5 |
x86_64-pc-windows-msvc |
b4c428bc25638381e9ad46603cc3f30cd5ebb0065f0df83134afdda43b6df9ef |
x86_64-unknown-linux-gnu |
578946c36965e80407a26f774ea730c0bce9bd536b20ce7e46e96098ed3006a2 |
The release workflow and all downloaded assets passed. The separate
push-triggered CI run exposed seven Linux Rust 1.97 Clippy findings after the
release was already live; v2.12.1 is prepared as a behavior-preserving source
and CI-hygiene superseding patch.