docs(release): R5, v0.8.3 installed and measured from the tag
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
0963dfa5e5
commit
0308169c79
1 changed files with 153 additions and 0 deletions
153
docs/2026-09-11-r5-release-v083.md
Normal file
153
docs/2026-09-11-r5-release-v083.md
Normal file
|
|
@ -0,0 +1,153 @@
|
||||||
|
# R5: release v0.8.3
|
||||||
|
|
||||||
|
A patch release and nothing else. It carries what rounds 19 and 20 landed and
|
||||||
|
no tag had: a NISO-STS document's own `<doc-number>` naming its directory and
|
||||||
|
titling its `sources` entry, `okf build --frontmatter KEY=VALUE`, `description`
|
||||||
|
from an STS section's first spec point (K3-19), and the `okf consume` fix that
|
||||||
|
keeps a leading directory every concept id shares out of the first fusion
|
||||||
|
signal, with `okf build --shell-parent` shipped off (K3-20). The reason the two
|
||||||
|
are tagged together is measured: K3-19 alone took the known-positive from rank
|
||||||
|
1 to not delivered at the default `k` (13 at `k` = 50), and K3-20 A is what put
|
||||||
|
it back at rank 1. No behaviour change in `src/` beyond the version string, no
|
||||||
|
push.
|
||||||
|
|
||||||
|
Tag: `v0.8.3`, local and annotated, on `0963dfa` (`chore(release): 0.8.3`).
|
||||||
|
`v0.8.2` stays on `b6c54e9`, `v0.8.1` on `3daf983` and `v0.8.0` on `4d1f9d3` --
|
||||||
|
verified with `git tag --points-at`, all three still resolve there.
|
||||||
|
|
||||||
|
## 1 What this round did, and what it did not
|
||||||
|
|
||||||
|
Did: the version on all three lines it lives on (`pyproject.toml`,
|
||||||
|
`src/llm_ingestion_okf/__init__.py`, and the package's entry in `uv.lock`), the
|
||||||
|
`[Unreleased]` block closed as `[0.8.3] — 2026-09-11` with its five entries and
|
||||||
|
its closing `--ingested-at` paragraph moved unedited, five install lines to
|
||||||
|
`@v0.8.3`, the tag-history list given a `v0.8.3` row and `v0.8.2` demoted, two
|
||||||
|
prose lines on the guard pairing and the test count with its history corrected
|
||||||
|
where the tag would otherwise make them false, one commit, four gates, one tag.
|
||||||
|
|
||||||
|
The block carries two `### Added` headings (Added, Fixed, Changed, Added). Both
|
||||||
|
were kept. One Added section would have meant moving an entry body across the
|
||||||
|
Fixed and Changed entries, and the entries are the rounds' own, in the order
|
||||||
|
the rounds wrote them.
|
||||||
|
|
||||||
|
Did not: no extractor, no arm, no rule, no flag moved. `--shell-parent`,
|
||||||
|
`--pdf-outline` and `--bold-title` stay OFF and `--title-covered` stays ON
|
||||||
|
exactly as the rounds shipped them -- a release does not re-verify a default.
|
||||||
|
No new dependency, `[extract]` untouched, `skills/okf-consume/` and
|
||||||
|
`skills/okf-consume-template/` untouched, `docs/` history not rewritten,
|
||||||
|
nothing pushed.
|
||||||
|
|
||||||
|
## 2 Premises, re-measured before building on them
|
||||||
|
|
||||||
|
| premise | re-measured |
|
||||||
|
|---|---|
|
||||||
|
| HEAD at dispatch | `4595dde`, 0 commits over it, tree clean |
|
||||||
|
| `git ls-remote origin refs/heads/main` | `7cca9e0` |
|
||||||
|
| remote tags `v0.8*` | `v0.8.0` -> `4d1f9d3` and `v0.8.1` -> `3daf983` only; **`v0.8.2` is not pushed** |
|
||||||
|
| `uv.lock` for this package | `0.8.2` before the bump |
|
||||||
|
| install lines: README 4, `llms.txt` 1 | confirmed, README at lines 12, 62, 77 and 552 |
|
||||||
|
| `grep -rn 'v0\.7\.0\|0\.7\.0' README.md docs llms.txt CLAUDE.md` | **33 lines over 10 files**, not 32 over 9; README still exactly one (the `v0.7.0` history row), `llms.txt` and `CLAUDE.md` 0 |
|
||||||
|
| `[Unreleased]` content | five entries over four headings, as the order said |
|
||||||
|
| guard source in `[tool.uv.sources]` | still tag `v1.3.0`, dependency still `>=1.2,<2.0` |
|
||||||
|
| ruff | 0.16.6 |
|
||||||
|
| coordination inbox / order queue | 0 messages; this order the only pending one |
|
||||||
|
|
||||||
|
## 3 The lockfile
|
||||||
|
|
||||||
|
`pyproject.toml` and `__init__.py` were bumped first, then `uv lock` was run and
|
||||||
|
its diff measured: exactly one line, `version = "0.8.2"` -> `"0.8.3"` under
|
||||||
|
`name = "llm-ingestion-okf"`. No other package moved, so the file was kept as
|
||||||
|
`uv lock` wrote it. In the export of the tag, `uv lock --check` exits **0**.
|
||||||
|
|
||||||
|
## 4 README lines the tag would otherwise make false
|
||||||
|
|
||||||
|
- The two guard-pairing lines name `v0.8.3` instead of `v0.8.2` and nothing
|
||||||
|
else, because the tag's `[tool.uv.sources]` still points at guard `v1.3.0`.
|
||||||
|
- The test count is **1668 collected, 1667 passed, 1 skipped**. The sentence
|
||||||
|
saying that the figure published before the `v0.8.2` release was the passed
|
||||||
|
count stays: it is still true of the past, and it still explains why two
|
||||||
|
numbers are given. The history parenthesis gains "at 1658 after K3-19, and
|
||||||
|
at 1667 after K3-20 and through the `v0.8.3` release"; changing only the
|
||||||
|
last figure would have made the previous published one false.
|
||||||
|
- `grep -rn 'okf\.git@v0\.8\.2' README.md llms.txt` returns nothing (exit 1),
|
||||||
|
run beside the known-positive `okf\.git@v0\.8\.3` = README 4 + `llms.txt` 1.
|
||||||
|
A bare `v0.8.2` remains three times, all intentional: the `v0.8.2` history
|
||||||
|
row, the test-count sentence, and the count history.
|
||||||
|
`grep -rln 'v0\.7\.0' docs/` is 6 before and after.
|
||||||
|
|
||||||
|
## 5 The four gates, after `git add` and after commit
|
||||||
|
|
||||||
|
ruff **0.16.6**. `ruff check src tests tools` -- All checks passed.
|
||||||
|
`ruff format --check .` -- 125 files already formatted. `mypy src` -- no issues
|
||||||
|
in 21 source files, rc 0 (the first run's rc was read through a pipe and did not
|
||||||
|
count, so it was re-run with rc taken directly). `pytest -q` -- **1667 passed,
|
||||||
|
1 skipped**, 1668 collected, re-measured on the release commit. The skip is
|
||||||
|
`OKF_HTML_CORPUS` unset. `tests/test_default_bundle_pin.py` alone: 7 passed of
|
||||||
|
7, in the working tree against the pinned artifact on this machine -- not in the
|
||||||
|
export.
|
||||||
|
|
||||||
|
## 6 The acceptance gate: installation FROM THE TAG
|
||||||
|
|
||||||
|
No `uv tool install`, no `uv tool uninstall`, no `--force`. The operator's
|
||||||
|
`okf` on PATH (a uv tool install) was located and not touched; everything ran
|
||||||
|
from the export's own venv (CPython 3.11.14).
|
||||||
|
|
||||||
|
```
|
||||||
|
git archive v0.8.3 | tar -x -C <scratch>/r5-install/export
|
||||||
|
cd <export> && uv sync --frozen --extra extract
|
||||||
|
```
|
||||||
|
|
||||||
|
| row | measured |
|
||||||
|
|---|---|
|
||||||
|
| version from the tag's bytes | **0.8.3** (`importlib.metadata`) |
|
||||||
|
| `uv lock --check` in the export | **rc 0** |
|
||||||
|
| `len(contract_check.RULES)` | **16** |
|
||||||
|
| `okf check` on `skills/okf-consume/` and its payload | **conformant: 16 rules over 3 excerpts and 0 withheld entries, 0 findings**, rc 0 |
|
||||||
|
| `okf project` on the five-document folder | **26 concepts of 5 documents, 52 md, 0 of 5 left out** |
|
||||||
|
| HTML corpus | **proposed 828 plan(s); 0 document(s) with no boundary; 0 unreadable**, 3 206 concepts / 6 015 md |
|
||||||
|
| R761 XML | **2 761 concepts** at shipped defaults, no arm flag; the folder holds 1 file at top level and 110 in total, 109 of them images under `graphics/` (43 png, 41 jpg, 25 bmp), coded unreadable |
|
||||||
|
| R761 document directory (new this round) | **`r761-prosesskoden/`**, not the delivery file's UUID stem; denominator 1 document |
|
||||||
|
| hit@1 / 8 / 50 on the R761 bundle | **6/6 / 6/6 / 6/6** at the default `k` and at `k` = 50, N = 6 scored of 8 asked |
|
||||||
|
| the known-positive (new this round) | **rank 1 at the default `k` and rank 1 at `k` = 50**, denominator 1 |
|
||||||
|
| `--shell-parent` (new this round) | **675 of 710** heading-only concepts carry `parent:`; **0 of 2 761** without the flag, and 0 non-heading-only concepts with it; `--shell-parent` and `--no-shell-parent` both in `okf build --help` |
|
||||||
|
| round 17's known-negative on the five-document bundle | the section the question names at **rank 1** (6 793 B), the neighbour at rank 2 (10 590 B); both concepts exist and both are delivered of 8 |
|
||||||
|
|
||||||
|
"Heading-only" was counted as a concept whose body, after the frontmatter, is
|
||||||
|
at most one non-blank line and that line a heading: 710 on both bundles.
|
||||||
|
|
||||||
|
The hit@k instrument lives in the consumer's repository and was only read. It
|
||||||
|
writes its payloads to fixed paths another session also writes, so it ran as a
|
||||||
|
scratch copy that differs from the original in exactly those two output paths
|
||||||
|
(`diff`: 2 lines).
|
||||||
|
|
||||||
|
The suite was not run inside the export this round.
|
||||||
|
|
||||||
|
## 7 Honesty limits
|
||||||
|
|
||||||
|
- **One machine, one interpreter.** The installation is measured on one Intel
|
||||||
|
Mac with the interpreter `uv` resolved in the export. It is not a
|
||||||
|
portability claim, and the channel is a local export, not the Forgejo tag,
|
||||||
|
which does not exist until the push.
|
||||||
|
- **`okf project`'s 26 is ONE corpus of five documents** -- the same five every
|
||||||
|
previous round used, so it is a regression control, not a sample.
|
||||||
|
- **828 of 828 and 2 761 of 2 761 are ONE publisher's files from ONE product.**
|
||||||
|
They say the reader lost nothing against its own denominator; they say
|
||||||
|
nothing about documents nobody in that pipeline wrote.
|
||||||
|
- **`r761-prosesskoden` is ONE publisher's `<doc-number>` on ONE document.** It
|
||||||
|
says the tag carries K3-19's directory naming; it says nothing about how
|
||||||
|
other publishers fill `<std-ident>`.
|
||||||
|
- **675 of 710 are shells in ONE document, and `okf consume` does not read
|
||||||
|
`parent` yet.** The row measures that the key is written, not that it helps
|
||||||
|
any reader.
|
||||||
|
- **hit@1 and the known-positive rank are 6 scored questions and ONE
|
||||||
|
known-positive on ONE bundle, against a fasit someone else set.** They are
|
||||||
|
re-measured from the tag's bytes, which is all they add.
|
||||||
|
- **The known-negative is ONE constructed question on ONE small bundle.**
|
||||||
|
- **The grep criterion is deliberately NOT "0 hits on `v0.8.2`".** Three bare
|
||||||
|
occurrences remain and must. The zero on `okf.git@v0.8.2` ran beside a
|
||||||
|
known-positive, so it is a measurement and not a query that could never
|
||||||
|
match.
|
||||||
|
- **"The tag installs" is not "the tag is correct".** No functionality is
|
||||||
|
verified here beyond what K3-19 and K3-20 already measured; the rows above
|
||||||
|
prove the exported bytes run and reproduce the counts the repository already
|
||||||
|
published.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue