chore(release): prepare 1.1.1 — version sync and changelog
Patch release. It adds no capability over 1.1.0 and changes no package behaviour. What changes is that the fixtures, tests, tools and documents use generic, fictitious examples. Help text reworded in `okf build --assets`, `--pdf-outline` and the `okf quality --fasit` provenance line, and the `--fasit` bar is written as the round share 999/1000. The version is synced in pyproject.toml, src/llm_ingestion_okf/__init__.py, uv.lock (uv lock --check clean), README (install lines and the tag list) and CHANGELOG. No tag: the operator tags. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
81d7194e20
commit
306bf7c05c
5 changed files with 75 additions and 10 deletions
62
CHANGELOG.md
62
CHANGELOG.md
|
|
@ -5,6 +5,68 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.1.1] — 2026-09-23
|
||||
|
||||
Sector-specific example material is replaced by generic, fictitious examples.
|
||||
Nothing a bundle is built from, and no verdict, changes; what changes is what
|
||||
the tests, fixtures, tools and documents are written about.
|
||||
|
||||
### Changed
|
||||
|
||||
- **Every fixture and test document is fictitious.** They are now written
|
||||
about an invented kitchen-and-baking handbook series. Two things move with
|
||||
the words: the fixtures written by `make_fixtures.py`,
|
||||
`make_k2_office.py`, `make_image_fixtures.py` and
|
||||
`make_accounting_fixtures.py` are regenerated, and the image-inbox and
|
||||
accounting documents are renamed `kapittel-7-*`. Their structural counts
|
||||
are identical before and after: elements, images, rows, cells, headings,
|
||||
bookmarks and the witness inventory's per-document totals. The texts, the
|
||||
frozen literals and three office text digests moved with them.
|
||||
- **Help text names no source document.** `okf build --assets` and
|
||||
`--pdf-outline` now describe their evidence as "a long reference
|
||||
standard". The `okf quality --fasit` provenance line now reads "one pinned
|
||||
reference build against its own declared structure".
|
||||
- **The `okf quality --fasit` bar is `999/1000`.** It was the known-good
|
||||
arm's own measured fraction, which named the document it was read off. The
|
||||
round share sits just under it (99.9 %), and every build measured reads the
|
||||
same verdict under it: the known-good arm passes, an older build of the
|
||||
same product (99.7 %) and the known-bad arm (41.6 %) fail. One corpus, as
|
||||
before.
|
||||
- **Measurement prose names no document by its numbers.** Section totals,
|
||||
page counts and build sizes that identify one reference document or one
|
||||
generated HTML corpus are written as N, M, an offset of N or a share, in
|
||||
docstrings, comments, help text, reports, README and this file. No
|
||||
measured relation changes.
|
||||
- **The STS test fixtures carry fictitious titles.** `sts-identity.xml`,
|
||||
`sts-inherit.xml` and `sts-empty-label.xml` are written about a kitchen
|
||||
counter, with their labels renumbered; their structure (nesting, spec
|
||||
points, label-only points) is unchanged, and so is every test's shape.
|
||||
- **Thirteen dated measurement reports are removed.** They documented runs on
|
||||
a retired reference corpus and nothing else. The reports that remain keep
|
||||
their reasoning and their numbers without the names, and the links to the
|
||||
removed reports are gone.
|
||||
- **`tools/okf_accounting_gate.py` takes `--corpus PATH`.** The option is
|
||||
repeatable, takes a directory, a zip or one file, and has no default. It
|
||||
replaces the two options that named one real corpus each. Row 6 measures
|
||||
whatever it is given, and row 5 compares the PDF pair alone.
|
||||
- **`tools/okf_witness.py` has no STS JSON reader.** The reader and its role
|
||||
map existed for one publisher's delivery. A `.json` file is now counted as
|
||||
generic JSON, the way the package reads it. The reader's three twins and
|
||||
five tests are removed. In `tools/okf_gate_mutants.py`, `W09` is removed
|
||||
and `W03`/`W07` edit the one remaining role map.
|
||||
|
||||
### Added
|
||||
|
||||
- **`tests/test_excluded_terms.py`.** No tracked file may carry a term from a
|
||||
git-ignored local list (`*.local.txt`). The check covers the file's path,
|
||||
its text, and the text inside a binary fixture (zip members, inflated PDF
|
||||
streams). Without the list the check is skipped with a message and never
|
||||
passed. The scanner's own known-positive runs on a synthetic term either
|
||||
way. A term never uses `\b`, because `_` is a word character and a code
|
||||
written beside one would pass; a synthetic known-positive holds that shape,
|
||||
and a known-negative list of ordinary words and codes holds the list from
|
||||
growing too wide.
|
||||
|
||||
## [1.1.0] — 2026-09-21
|
||||
|
||||
The reading side. Nothing here changes how a bundle is built from a folder;
|
||||
|
|
|
|||
17
README.md
17
README.md
|
|
@ -10,7 +10,7 @@ types](#supported-file-types) lists each one with the evidence behind it.
|
|||
Python 3.10+ and [uv](https://docs.astral.sh/uv/). One line:
|
||||
|
||||
```sh
|
||||
uv tool install "llm-ingestion-okf[extract] @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v1.1.0"
|
||||
uv tool install "llm-ingestion-okf[extract] @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v1.1.1"
|
||||
```
|
||||
|
||||
## Use it
|
||||
|
|
@ -209,11 +209,11 @@ Neither this package nor the guard it depends on is on a package index yet, so
|
|||
both install by direct reference. With uv, one command resolves both:
|
||||
|
||||
```sh
|
||||
uv pip install "llm-ingestion-okf[extract] @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v1.1.0"
|
||||
uv pip install "llm-ingestion-okf[extract] @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v1.1.1"
|
||||
```
|
||||
|
||||
uv resolves the guard on its own, because it reads the `[tool.uv.sources]`
|
||||
entry in the `pyproject.toml` **of the tag it is installing**, and `v1.1.0`
|
||||
entry in the `pyproject.toml` **of the tag it is installing**, and `v1.1.1`
|
||||
points that entry at `llm-ingestion-guard` `v1.4.0`. Use `uv tool install`
|
||||
instead of `uv pip install` when you want the `okf` command on `PATH` without an
|
||||
active virtualenv — that is the form the first screen shows.
|
||||
|
|
@ -224,10 +224,10 @@ With plain pip, the transitive git dependency does not resolve on its own —
|
|||
|
||||
```sh
|
||||
pip install "llm-ingestion-guard @ git+https://git.fromaitochitta.com/open/llm-ingestion-pipeline-security.git@v1.4.0"
|
||||
pip install "llm-ingestion-okf[extract] @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v1.1.0"
|
||||
pip install "llm-ingestion-okf[extract] @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v1.1.1"
|
||||
```
|
||||
|
||||
The guard tag is paired to the okf tag, not to this branch. `v1.1.0` declares
|
||||
The guard tag is paired to the okf tag, not to this branch. `v1.1.1` declares
|
||||
`llm-ingestion-guard>=1.2,<2.0`, which `v1.4.0` satisfies; the pairing above is
|
||||
read off that tag's own `[tool.uv.sources]`, not off this branch. Reading a pin
|
||||
off `main` and installing it against an older okf tag is the one combination
|
||||
|
|
@ -238,7 +238,10 @@ that fails.
|
|||
These are not install lines. They record what each earlier tag was, so a reader
|
||||
who meets one in an older document knows what they are looking at.
|
||||
|
||||
- `v1.1.0` — the current tag. The reading side: BM25 ranking on passages and
|
||||
- `v1.1.1` — the current tag. No capability over `v1.1.0`: sector-specific
|
||||
example material in fixtures, tests, tools and documents is replaced by
|
||||
generic, fictitious examples. See the CHANGELOG.
|
||||
- `v1.1.0` — the reading side: BM25 ranking on passages and
|
||||
titles, several sub-questions in one call, a map per bundle, a signal for
|
||||
weak coverage, and one generic skill plus the server as the standard way in
|
||||
over a whole folder of bundles. The payload contract is `okf-consumption/2`,
|
||||
|
|
@ -1273,7 +1276,7 @@ not need this repository — the first line installs the command, the second
|
|||
builds the bundle and writes a skill beside it, the third asks.
|
||||
|
||||
```sh
|
||||
uv tool install "llm-ingestion-okf[extract] @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v1.1.0"
|
||||
uv tool install "llm-ingestion-okf[extract] @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v1.1.1"
|
||||
okf project ~/my-documents
|
||||
claude
|
||||
```
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|||
|
||||
[project]
|
||||
name = "llm-ingestion-okf"
|
||||
version = "1.1.0"
|
||||
version = "1.1.1"
|
||||
description = "Shared OKF (Open Knowledge Format) ingestion library: spec-based connectors, bundle inbox, and external-bundle import, with security delegated to llm-ingestion-guard."
|
||||
readme = "README.md"
|
||||
license = "MIT"
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ from .manifest import (
|
|||
)
|
||||
from .materialize import IngestResult, materialize_bundle
|
||||
|
||||
__version__ = "1.1.0"
|
||||
__version__ = "1.1.1"
|
||||
|
||||
__all__ = [
|
||||
"BlockedFile",
|
||||
|
|
|
|||
2
uv.lock
generated
2
uv.lock
generated
|
|
@ -547,7 +547,7 @@ source = { git = "https://git.fromaitochitta.com/open/llm-ingestion-pipeline-sec
|
|||
|
||||
[[package]]
|
||||
name = "llm-ingestion-okf"
|
||||
version = "1.1.0"
|
||||
version = "1.1.1"
|
||||
source = { editable = "." }
|
||||
dependencies = [
|
||||
{ name = "llm-ingestion-guard" },
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue