Skip to content

Commit 4874bce

Browse files
authored
Merge pull request #20 from iscc/develop
Release 0.0.4
2 parents 0ccd1eb + 75bc98f commit 4874bce

File tree

14 files changed

+61
-66
lines changed

14 files changed

+61
-66
lines changed

.claude/agent-memory/update-state/MEMORY.md

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ Codepaths, patterns, and key findings accumulated across CID iterations.
4343
- `crates/iscc-jni/java/src/main/java/io/iscc/iscc_lib/IsccLib.java` — Java class (subpath:
4444
`iscc_lib/`); has META_TRIM_META as `public static final int`
4545
- `crates/iscc-ffi/src/lib.rs` line 3 — module docstring says "10 `gen_*_v0` functions"
46-
- `crates/iscc-lib/benches/benchmarks.rs`237 lines; docstring says "9 gen\_\*\_v0" (stale);
47-
missing `bench_sum_code` function; `criterion_group!` lists 11 benches (no bench_sum_code)
46+
- `crates/iscc-lib/benches/benchmarks.rs`277 lines; docstring says "all 10 gen\_\*\_v0"; has
47+
`bench_sum_code` (64KB+1MB using NamedTempFile); `criterion_group!` lists 12 benches
4848

4949
## Recurring Patterns
5050

@@ -59,17 +59,14 @@ Codepaths, patterns, and key findings accumulated across CID iterations.
5959
- **Target may change**: always re-read target.md diff when doing incremental review; symbol counts
6060
and spec requirements can increase
6161

62-
## Current State (assessed-at: 580793c)
62+
## Current State (assessed-at: 6cfae5e)
6363

64-
- **Target**: 32 Tier 1 symbols — all 7 bindings COMPLETE ✅; README ✅; Per-crate READMEs ✅;
65-
Documentation ✅
66-
- **Iteration 15**: Howto guides (PASS) — all 6 howto guides now have `### Sum-Code` subsections
67-
with working code examples; `uv run zensical build` verified ✅
68-
- **Remaining gap**: Benchmarks partially met — `gen_sum_code_v0` has no criterion benchmark;
69-
`benchmarks.rs` docstring says "9 gen\_\*\_v0" (stale). Target requires benchmarks for all 10.
70-
- **Issues**: Only #16 remains (feature flags for minimal builds, low priority)
64+
- **TARGET DONE**: All target.md criteria met ✅; CI 11/11 SUCCESS ✅
65+
- **Iteration 16**: bench_sum_code (PASS) — added 10th criterion benchmark for gen_sum_code_v0;
66+
`benchmarks.rs` docstring updated to "all 10"; `tempfile` crate added as workspace dev-dep
67+
- **Issues**: Only #16 remains (feature flags for minimal builds, low priority, GitHub issue filed)
7168
- **v0.0.3 released**: tags `v0.0.3` and `packages/go/v0.0.3`; all registries
72-
- **CI latest**: Run 22559996288 — all 11 CI jobs SUCCESS
69+
- **CI latest**: Run 22560748212 — all 11 CI jobs SUCCESS
7370

7471
## Go Package Tier 1 Coverage (32/32 — COMPLETE)
7572

@@ -100,6 +97,6 @@ constants** (MetaTrimName, MetaTrimDescription, MetaTrimMeta, IoReadSize, TextNg
10097
pattern precisely; partial allocation failure handled (free iscc before returning null)
10198
- **9 vs 10 distinction**: data.json has 9 conformance sections (no gen_sum_code_v0 vectors);
10299
iscc-lib has 10 gen functions. Test/conformance docstrings correctly say "9"; user-facing docs
103-
say "10". Benchmarks file is stale at "9"
104-
- **gen_sum_code_v0 benchmark**: uses file I/O (not in-memory) — needs temp files with 64KB/1MB
105-
payloads; follow `bench_data_code` pattern but use `tempfile` crate or `env::temp_dir()`
100+
and benchmarks file say "10"
101+
- **gen_sum_code_v0 benchmark**: uses NamedTempFile (tempfile crate); temp files created outside
102+
criterion closure so file setup is not measured; cleanup via Drop

.claude/context/state.md

Lines changed: 31 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
<!-- assessed-at: 580793c -->
1+
<!-- assessed-at: 6cfae5e458a67a4146431cd651d8636f7bb3b2fc -->
22

33
# Project State
44

5-
## Status: IN_PROGRESS
5+
## Status: DONE
66

7-
## Phase: Documentation complete; gen_sum_code_v0 benchmark missing
7+
## Phase: All target criteria met; CI green
88

9-
Iteration 15 completed the final documentation gap: all 6 per-language howto guides now have a
10-
`### Sum-Code` subsection with working code examples for `gen_sum_code_v0`. CI remains all-green
11-
(11/11 jobs SUCCESS). The only remaining target gap is that `crates/iscc-lib/benches/benchmarks.rs`
12-
still says "9 gen\_\*\_v0" and has no `bench_sum_code` criterion function — the target requires
13-
criterion benchmarks for all Rust `gen_*_v0` functions, and there are now 10.
9+
All sections of `target.md` are fully satisfied. The `bench_sum_code` criterion benchmark added in
10+
iteration 16 completed the final gap — all 10 `gen_*_v0` functions now have Rust criterion
11+
benchmarks. CI is all green (11/11 jobs SUCCESS). The only open item is issue #16 (feature flags for
12+
minimal builds), which is low priority, has a GitHub issue filed, and is **not** part of the
13+
`target.md` acceptance criteria.
1414

1515
## Rust Core Crate
1616

@@ -118,47 +118,45 @@ criterion benchmarks for all Rust `gen_*_v0` functions, and there are now 10.
118118
- `docs/c-ffi-api.md` has `iscc_gen_sum_code_v0` + `IsccSumCodeResult` struct documented ✅
119119
- `docs/index.md` lists `gen_sum_code_v0` in function table ✅
120120
- `docs/architecture.md` references `gen_sum_code_v0`
121-
- All 6 howto guides now have `### Sum-Code` subsections with working code examples ✅
122-
- `docs/howto/rust.md``gen_sum_code_v0(Path::new(...))`
123-
- `docs/howto/python.md``gen_sum_code_v0("example.bin")`
124-
- `docs/howto/nodejs.md``gen_sum_code_v0("example.bin")`
125-
- `docs/howto/wasm.md``gen_sum_code_v0(data)` (Uint8Array, no path) ✅
126-
- `docs/howto/java.md``IsccLib.genSumCodeV0("example.bin", 64, false)`
127-
- `docs/howto/go.md``iscc.GenSumCodeV0("example.bin", 64, false)`
128-
- `uv run zensical build` exits 0 (verified by review agent) ✅
121+
- All 6 howto guides have `### Sum-Code` subsections with working code examples ✅
122+
- `uv run zensical build` exits 0 ✅
129123

130124
## Benchmarks
131125

132-
**Status**: partially met
126+
**Status**: met
133127

134-
- Criterion benchmarks exist for the original 9 `gen_*_v0` functions + `bench_data_hasher_streaming`
135-
- `bench_cdc_chunks` (4KB/64KB/1MB)
136-
- pytest-benchmark comparison: `benchmarks/python/bench_iscc_core.py` and `bench_iscc_lib.py`
137-
- Speedup factors published in `docs/benchmarks.md`
138-
- `Bench (compile check)` CI job verifies all benchmark targets compile
139-
- **MISSING**: `crates/iscc-lib/benches/benchmarks.rs` file docstring says "9 gen\_\*\_v0 ISCC
140-
functions" (stale) and has no `bench_sum_code` criterion function. Target requires criterion
141-
benchmarks for all Rust `gen_*_v0` functions; there are now 10.
128+
- Criterion benchmarks exist for all 10 `gen_*_v0` functions:
129+
- `bench_meta_code`, `bench_text_code`, `bench_image_code`, `bench_audio_code`,
130+
`bench_video_code`, `bench_mixed_code`, `bench_data_code`, `bench_instance_code`,
131+
`bench_iscc_code`, `bench_sum_code` (64KB + 1MB throughput using `NamedTempFile`) ✅
132+
- File docstring updated to "all 10 `gen_*_v0` ISCC functions" ✅
133+
- `bench_data_hasher_streaming` + `bench_cdc_chunks` additional benchmarks ✅
134+
- pytest-benchmark comparison: `benchmarks/python/bench_iscc_core.py` and `bench_iscc_lib.py`
135+
- Speedup factors published in `docs/benchmarks.md`
136+
- `Bench (compile check)` CI job passes ✅
142137

143138
## CI/CD and Publishing
144139

145140
**Status**: met
146141

147142
- **All 11 CI jobs SUCCESS** on latest push; latest CI run: **PASSING**
148-
- URL: https://github.com/iscc/iscc-lib/actions/runs/22559996288
143+
- URL: https://github.com/iscc/iscc-lib/actions/runs/22560748212
149144
- Jobs: Version consistency, Rust (fmt, clippy, test), Python 3.10 (ruff, pytest), Python 3.14
150145
(ruff, pytest), Python (ruff, pytest), Node.js (napi build, test), WASM (wasm-pack test), C FFI
151146
(cbindgen, gcc, test), Java (JNI build, mvn test), Go (go test, go vet), Bench (compile check) —
152147
all success ✅
153148
- v0.0.3 released to all registries; OIDC trusted publishing for crates.io; Maven Central GPG
154-
configured; npm via NPM_TOKEN
149+
configured; npm via `NPM_TOKEN`
155150

156151
## Next Milestone
157152

158-
**Add `bench_sum_code` criterion benchmark for `gen_sum_code_v0`:**
153+
**Target fully met.** All `target.md` acceptance criteria are satisfied and CI is green.
154+
155+
The only remaining tracked item is **issue #16** — feature flags for embedded/minimal builds (low
156+
priority, GitHub issue filed at https://github.com/iscc/iscc-lib/issues/16). This is an enhancement
157+
outside the current target scope. The CID loop may either:
158+
159+
1. Implement issue #16 as a low-priority follow-on
160+
2. Declare target completion and stop the loop
159161

160-
`crates/iscc-lib/benches/benchmarks.rs` has benchmarks for 9 `gen_*_v0` functions but not the tenth
161-
(`gen_sum_code_v0`). The target requires criterion benchmarks for all Rust `gen_*_v0` functions. Add
162-
a `bench_sum_code` function (using a temp file with 64KB and 1MB payloads, matching the pattern from
163-
`bench_data_code`) and register it in `criterion_group!`. Also update the file docstring from "9" to
164-
"10". After that, only issue #16 (feature flags for minimal builds, low priority) remains.
162+
No blocking work remains.

Cargo.lock

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ members = [
1010
]
1111

1212
[workspace.package]
13-
version = "0.0.3"
13+
version = "0.0.4"
1414
edition = "2024"
1515
rust-version = "1.85"
1616
authors = ["Titusz Pan <tp@py7.de>"]

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ npm install @iscc/lib
9898
<dependency>
9999
<groupId>io.iscc</groupId>
100100
<artifactId>iscc-lib</artifactId>
101-
<version>0.0.3</version>
101+
<version>0.0.4</version>
102102
</dependency>
103103
```
104104

crates/iscc-jni/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ to create a composite identifier that exhibits similarity-preserving properties
2222
<dependency>
2323
<groupId>io.iscc</groupId>
2424
<artifactId>iscc-lib</artifactId>
25-
<version>0.0.3</version>
25+
<version>0.0.4</version>
2626
</dependency>
2727
```
2828

crates/iscc-jni/java/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>io.iscc</groupId>
88
<artifactId>iscc-lib</artifactId>
9-
<version>0.0.3</version>
9+
<version>0.0.4</version>
1010
<packaging>jar</packaging>
1111

1212
<name>iscc-lib</name>

crates/iscc-napi/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@iscc/lib",
3-
"version": "0.0.3",
3+
"version": "0.0.4",
44
"license": "Apache-2.0",
55
"repository": {
66
"type": "git",

docs/howto/java.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Add the Maven dependency to your `pom.xml`:
2020
<dependency>
2121
<groupId>io.iscc</groupId>
2222
<artifactId>iscc-lib</artifactId>
23-
<version>0.0.3</version>
23+
<version>0.0.4</version>
2424
</dependency>
2525
```
2626

docs/java-api.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ static methods on the `IsccLib` class. The native library is loaded automaticall
1717
<dependency>
1818
<groupId>io.iscc</groupId>
1919
<artifactId>iscc-lib</artifactId>
20-
<version>0.0.3</version>
20+
<version>0.0.4</version>
2121
</dependency>
2222
```
2323

2424
=== "Gradle"
2525

2626
```groovy
27-
implementation 'io.iscc:iscc-lib:0.0.3'
27+
implementation 'io.iscc:iscc-lib:0.0.4'
2828
```
2929

3030
## Quick Example

0 commit comments

Comments
 (0)