chore(release): 0.8.4
Version 0.8.3 -> 0.8.4 in pyproject.toml, __init__.py and uv.lock, and the guard pin in [tool.uv.sources] moved from v1.3.0 to v1.4.0 (uv.lock follows via `uv lock`: the guard's version, source and requires-dist lines, nothing else). CHANGELOG [Unreleased] closed as [0.8.4] with K3-21's and K3-22's entries moved as written, plus one entry for the guard pin: 1.4.0 parses a flow sequence of plain scalars that 1.3.0 refused (26 of 28 frontmatter blocks refused by 1.3.0, 0 of 28 by 1.4.0, on one five-document bundle). Dependency range llm-ingestion-guard>=1.2,<2.0 unchanged. README: the four install lines and llms.txt's one to @v0.8.4, the guard pairing prose to v0.8.4 / v1.4.0, the pip fallback to @v1.4.0, a v0.8.4 row as the current tag (seventeen checker rules), and the suite count (1783 collected, 1782 passed, 1 skipped) with its history extended. No behaviour change in src/ beyond the version string. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
e98ca6d25f
commit
69dc51fa89
6 changed files with 42 additions and 21 deletions
10
CHANGELOG.md
10
CHANGELOG.md
|
|
@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [0.8.4] — 2026-09-11
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- **`parent` reaches the reader (K3-21 A).** `okf consume` resolves a
|
- **`parent` reaches the reader (K3-21 A).** `okf consume` resolves a
|
||||||
|
|
@ -43,6 +45,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
path repeats the document's directory in 675 bodies and moved the delivered
|
path repeats the document's directory in 675 bodies and moved the delivered
|
||||||
set on 2 of 8 questions at the default `k` (3 of 8 at `k` 50), hit@k
|
set on 2 of 8 questions at the default `k` (3 of 8 at `k` 50), hit@k
|
||||||
unchanged.
|
unchanged.
|
||||||
|
- **The guard pin moves from `v1.3.0` to `v1.4.0`** (`[tool.uv.sources]`, and
|
||||||
|
the pip fallback in the README). Installing `@v0.8.4` gives a different
|
||||||
|
guard than installing `@v0.8.3`: 1.4.0 parses a flow sequence of plain
|
||||||
|
scalars -- `source_offset: [1, 24]`, `derived: [number]` -- where 1.3.0
|
||||||
|
raised "a flow sequence admits flow mappings only". Measured with both
|
||||||
|
guards' `parse_frontmatter` on one bundle built from the five-document
|
||||||
|
project: 1.3.0 refuses 26 of its 28 frontmatter blocks, 1.4.0 refuses 0 of
|
||||||
|
28. The dependency range `llm-ingestion-guard>=1.2,<2.0` is unchanged.
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
|
|
||||||
37
README.md
37
README.md
|
|
@ -9,7 +9,7 @@ call anywhere in the run path.
|
||||||
Python 3.10+ and [uv](https://docs.astral.sh/uv/). One line:
|
Python 3.10+ and [uv](https://docs.astral.sh/uv/). One line:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
uv tool install "llm-ingestion-okf[extract] @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.8.3"
|
uv tool install "llm-ingestion-okf[extract] @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.8.4"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Use it
|
## Use it
|
||||||
|
|
@ -59,12 +59,12 @@ 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:
|
both install by direct reference. With uv, one command resolves both:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
uv pip install "llm-ingestion-okf @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.8.3"
|
uv pip install "llm-ingestion-okf @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.8.4"
|
||||||
```
|
```
|
||||||
|
|
||||||
uv resolves the guard on its own, because it reads the `[tool.uv.sources]`
|
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 `v0.8.3`
|
entry in the `pyproject.toml` **of the tag it is installing**, and `v0.8.4`
|
||||||
points that entry at `llm-ingestion-guard` `v1.3.0`. Use `uv tool install`
|
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
|
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.
|
active virtualenv — that is the form the first screen shows.
|
||||||
|
|
||||||
|
|
@ -73,12 +73,12 @@ With plain pip, the transitive git dependency does not resolve on its own —
|
||||||
`No matching distribution found for llm-ingestion-guard`:
|
`No matching distribution found for llm-ingestion-guard`:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
pip install "llm-ingestion-guard @ git+https://git.fromaitochitta.com/open/llm-ingestion-pipeline-security.git@v1.3.0"
|
pip install "llm-ingestion-guard @ git+https://git.fromaitochitta.com/open/llm-ingestion-pipeline-security.git@v1.4.0"
|
||||||
pip install "llm-ingestion-okf @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.8.3"
|
pip install "llm-ingestion-okf @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.8.4"
|
||||||
```
|
```
|
||||||
|
|
||||||
The guard tag is paired to the okf tag, not to this branch. `v0.8.3` declares
|
The guard tag is paired to the okf tag, not to this branch. `v0.8.4` declares
|
||||||
`llm-ingestion-guard>=1.2,<2.0`, which `v1.3.0` satisfies; the pairing above is
|
`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
|
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
|
off `main` and installing it against an older okf tag is the one combination
|
||||||
that fails.
|
that fails.
|
||||||
|
|
@ -88,7 +88,17 @@ that fails.
|
||||||
These are not install lines. They record what each earlier tag was, so a reader
|
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.
|
who meets one in an older document knows what they are looking at.
|
||||||
|
|
||||||
- `v0.8.3` — the current tag: a NISO-STS document's own `<doc-number>` names
|
- `v0.8.4` — the current tag: frontmatter this library writes is YAML a YAML
|
||||||
|
reader reads back the same (a block scalar it would misread is written
|
||||||
|
double-quoted; a flow leaf with no form both readers accept is refused), and
|
||||||
|
`okf consume` resolves a concept's `parent:` pointer into the excerpt
|
||||||
|
(`parent: { concept_id, title }`) with one enclosing-section link in a
|
||||||
|
heading-only body, a pointer the index now resolves too. `okf consume
|
||||||
|
--follow-parent` and `okf build --shell-parent` ship off; `okf check` has
|
||||||
|
seventeen rules (`parent_unfollowable`). The guard pin moves to `v1.4.0`,
|
||||||
|
which reads a flow sequence of plain scalars (`source_offset: [1, 24]`) that
|
||||||
|
the previous pin refused.
|
||||||
|
- `v0.8.3` — a NISO-STS document's own `<doc-number>` names
|
||||||
its directory and titles its `sources` entry, `okf build --frontmatter
|
its directory and titles its `sources` entry, `okf build --frontmatter
|
||||||
KEY=VALUE` stamps a key on every concept of a run, and an STS section's
|
KEY=VALUE` stamps a key on every concept of a run, and an STS section's
|
||||||
`description` comes from its own first spec point. `okf consume` keeps a
|
`description` comes from its own first spec point. `okf consume` keeps a
|
||||||
|
|
@ -567,7 +577,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.
|
builds the bundle and writes a skill beside it, the third asks.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
uv tool install "llm-ingestion-okf[extract] @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.8.3"
|
uv tool install "llm-ingestion-okf[extract] @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.8.4"
|
||||||
okf project ~/my-documents
|
okf project ~/my-documents
|
||||||
claude
|
claude
|
||||||
```
|
```
|
||||||
|
|
@ -900,8 +910,8 @@ From a checkout, the test suite runs with:
|
||||||
.venv/bin/python -m pytest
|
.venv/bin/python -m pytest
|
||||||
```
|
```
|
||||||
|
|
||||||
The suite is the verification surface for everything above: **1668 tests
|
The suite is the verification surface for everything above: **1783 tests
|
||||||
collected, 1667 passed and 1 skipped**, run on 2026-09-11 with the `[extract]`
|
collected, 1782 passed and 1 skipped**, run on 2026-09-11 with the `[extract]`
|
||||||
extra installed. Both numbers are given because they are two measurements: the
|
extra installed. Both numbers are given because they are two measurements: the
|
||||||
figure published before the `v0.8.2` release was the PASSED count, and `pytest
|
figure published before the `v0.8.2` release was the PASSED count, and `pytest
|
||||||
--collect-only -q` reported one more.
|
--collect-only -q` reported one more.
|
||||||
|
|
@ -909,7 +919,8 @@ figure published before the `v0.8.2` release was the PASSED count, and `pytest
|
||||||
updated as the suite grew — at 1515 until the `v0.8.0` release, at 1575
|
updated as the suite grew — at 1515 until the `v0.8.0` release, at 1575
|
||||||
through it, at 1582 through the `v0.8.1` release, at 1602 through the
|
through it, at 1582 through the `v0.8.1` release, at 1602 through the
|
||||||
`v0.8.2` release, at 1658 after K3-19, and at 1667 after K3-20 and through
|
`v0.8.2` release, at 1658 after K3-19, and at 1667 after K3-20 and through
|
||||||
the `v0.8.3` release: a count is a measurement with a date on it.)
|
the `v0.8.3` release; the figure above is the `v0.8.4` release's, after K3-22
|
||||||
|
and K3-21: a count is a measurement with a date on it.)
|
||||||
Without the extra the same suite skips the tests covering the parser path;
|
Without the extra the same suite skips the tests covering the parser path;
|
||||||
that split was last counted on 2026-08-21 as 589 passed and 7 skipped and has
|
that split was last counted on 2026-08-21 as 589 passed and 7 skipped and has
|
||||||
**not** been re-measured since. The tests holding the fail-fast rejection for
|
**not** been re-measured since. The tests holding the fail-fast rejection for
|
||||||
|
|
|
||||||
2
llms.txt
2
llms.txt
|
|
@ -6,7 +6,7 @@ Requires Python 3.10+ and [uv](https://docs.astral.sh/uv/). Neither this package
|
||||||
nor the guard it depends on is on a package index yet; one command resolves both:
|
nor the guard it depends on is on a package index yet; one command resolves both:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
uv tool install "llm-ingestion-okf[extract] @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.8.3"
|
uv tool install "llm-ingestion-okf[extract] @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.8.4"
|
||||||
```
|
```
|
||||||
|
|
||||||
Then, in the folder you want to work from:
|
Then, in the folder you want to work from:
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "llm-ingestion-okf"
|
name = "llm-ingestion-okf"
|
||||||
version = "0.8.3"
|
version = "0.8.4"
|
||||||
description = "Shared OKF (Open Knowledge Format) ingestion library: spec-based connectors, bundle inbox, and external-bundle import, with security delegated to llm-ingestion-guard."
|
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"
|
readme = "README.md"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
|
|
@ -255,4 +255,4 @@ ignore_missing_imports = true
|
||||||
# true of this tree. Reading a range off one and installing it against the
|
# true of this tree. Reading a range off one and installing it against the
|
||||||
# other is the one combination that fails.
|
# other is the one combination that fails.
|
||||||
[tool.uv.sources]
|
[tool.uv.sources]
|
||||||
llm-ingestion-guard = { git = "https://git.fromaitochitta.com/open/llm-ingestion-pipeline-security.git", tag = "v1.3.0" }
|
llm-ingestion-guard = { git = "https://git.fromaitochitta.com/open/llm-ingestion-pipeline-security.git", tag = "v1.4.0" }
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,7 @@ from .manifest import (
|
||||||
)
|
)
|
||||||
from .materialize import IngestResult, materialize_bundle
|
from .materialize import IngestResult, materialize_bundle
|
||||||
|
|
||||||
__version__ = "0.8.3"
|
__version__ = "0.8.4"
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
"BlockedFile",
|
"BlockedFile",
|
||||||
|
|
|
||||||
8
uv.lock
generated
8
uv.lock
generated
|
|
@ -542,12 +542,12 @@ wheels = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "llm-ingestion-guard"
|
name = "llm-ingestion-guard"
|
||||||
version = "1.3.0"
|
version = "1.4.0"
|
||||||
source = { git = "https://git.fromaitochitta.com/open/llm-ingestion-pipeline-security.git?tag=v1.3.0#44e2b31afdf2ea11028d5ccc5235b3a7cea2a4ff" }
|
source = { git = "https://git.fromaitochitta.com/open/llm-ingestion-pipeline-security.git?tag=v1.4.0#d19de8cb3854fa8cedb732d6668261ee1afedacb" }
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "llm-ingestion-okf"
|
name = "llm-ingestion-okf"
|
||||||
version = "0.8.3"
|
version = "0.8.4"
|
||||||
source = { editable = "." }
|
source = { editable = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "llm-ingestion-guard" },
|
{ name = "llm-ingestion-guard" },
|
||||||
|
|
@ -575,7 +575,7 @@ dev = [
|
||||||
|
|
||||||
[package.metadata]
|
[package.metadata]
|
||||||
requires-dist = [
|
requires-dist = [
|
||||||
{ name = "llm-ingestion-guard", git = "https://git.fromaitochitta.com/open/llm-ingestion-pipeline-security.git?tag=v1.3.0" },
|
{ name = "llm-ingestion-guard", git = "https://git.fromaitochitta.com/open/llm-ingestion-pipeline-security.git?tag=v1.4.0" },
|
||||||
{ name = "onnxruntime", marker = "extra == 'ocr'", specifier = ">=1.20,<2" },
|
{ name = "onnxruntime", marker = "extra == 'ocr'", specifier = ">=1.20,<2" },
|
||||||
{ name = "pdfplumber", marker = "extra == 'extract'", specifier = ">=0.11.10,<0.12" },
|
{ name = "pdfplumber", marker = "extra == 'extract'", specifier = ">=0.11.10,<0.12" },
|
||||||
{ name = "pypandoc-binary", marker = "extra == 'extract'", specifier = "==1.17" },
|
{ name = "pypandoc-binary", marker = "extra == 'extract'", specifier = "==1.17" },
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue