Skip to content

Commit 8b23196

Browse files
authored
Merge pull request #12 from iscc/develop
Housekeeping: tab order, state updates, release skill fixes
2 parents 6f7dfa3 + 8f6e291 commit 8b23196

File tree

4 files changed

+38
-72
lines changed

4 files changed

+38
-72
lines changed

.claude/context/issues.md

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,3 @@ fields: `**Spec:**` (spec gap link), `**Upstream:**` (external repo). The review
66
resolved issues after verification (history in git).
77

88
<!-- Add issues below this line -->
9-
10-
### Tab order inconsistency across doc pages
11-
12-
**Priority:** low | **Source:** [review]
13-
14-
**Spec:** `specs/documentation.md` — "Standard tab order: Python, Rust, Java, Node.js, WASM"
15-
16-
Tab order differs across pages: spec says "Python, Rust, Java, Node.js, WASM" (no Go), landing page
17-
uses "Rust, Python, Node.js, Java, Go, WASM" (Rust first), tutorial uses "Python, Rust, Node.js,
18-
Java, Go, WASM" (Python first, includes Go). The spec should be updated to include Go and a single
19-
canonical order should be applied consistently. `HUMAN REVIEW REQUESTED` — spec change needed to add
20-
Go to the standard tab order.

.claude/context/specs/documentation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ config format.
5858
## Per-Language Code Examples
5959

6060
All code examples use tabbed format (`pymdownx.tabbed`) showing equivalent code in multiple
61-
languages. Standard tab order: Python, Rust, Java, Node.js, WASM. Only languages relevant to the
61+
languages. Standard tab order: Python, Rust, Node.js, Java, Go, WASM. Only languages relevant to the
6262
example are included. The landing page quick start and all how-to guides use this pattern.
6363

6464
## Custom Domain

.claude/context/state.md

Lines changed: 25 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
1-
<!-- assessed-at: f336294 -->
1+
<!-- assessed-at: 9f228df -->
22

33
# Project State
44

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

7-
## Phase: All Automatable CID Work Complete — Human Tasks Remain
7+
## Phase: All Functional Work Complete — Ready for 0.0.3 Release
88

99
All seven language bindings (Rust, Python, Node.js, WASM, C FFI, Java, Go) export 30/30 Tier 1
10-
symbols and pass conformance. CI is green on all 9 jobs. This iteration added a C FFI API reference
11-
page (`docs/c-ffi-api.md`, 694 lines) documenting all 44 exported `extern "C"` symbols with C type
12-
mappings, struct layouts, and memory management guidance. All functional requirements are met.
13-
Remaining gaps: Java API reference page (spec-required, not yet created), and human tasks: PR merge,
14-
publishing triggers, Maven Central setup, and tab order decision.
10+
symbols and pass conformance. CI is green on all 9 jobs. v0.0.2 is published to all registries
11+
(PyPI, crates.io, npm @iscc/lib, npm @iscc/wasm). PR #10 merged to main. Java API reference page
12+
complete. All functional requirements are met. OIDC trusted publishing configured for crates.io.
13+
Maven Central external setup (GPG signing, Sonatype) complete.
1514

1615
## Rust Core Crate
1716

@@ -47,7 +46,7 @@ publishing triggers, Maven Central setup, and tab order decision.
4746
- `DataHasher` and `InstanceHasher` as `#[pyclass]` with file-like object support
4847
- 198 tests passing across 6 files (CI-verified); `ruff check` and `ruff format --check` pass
4948
(CI-verified)
50-
- `iscc-lib 0.0.2` not yet published to PyPI (0.0.1 was published; release not re-triggered)
49+
- `iscc-lib 0.0.2` published to PyPI
5150

5251
## Node.js Bindings
5352

@@ -59,7 +58,7 @@ publishing triggers, Maven Central setup, and tab order decision.
5958
- 124 tests (CI-verified); `cargo clippy -p iscc-napi --all-targets -- -D warnings` clean
6059
(CI-verified)
6160
- `repository` field in `package.json` for npm provenance verification
62-
- `@iscc/lib 0.0.2` not yet published to npm (awaiting release trigger)
61+
- `@iscc/lib 0.0.2` published to npm
6362
- **Nothing missing** in Node.js bindings
6463

6564
## WASM Bindings
@@ -72,7 +71,7 @@ publishing triggers, Maven Central setup, and tab order decision.
7271
implemented
7372
- `conformance_selftest` gated behind `#[cfg(feature = "conformance")]`
7473
- 69 total `#[wasm_bindgen_test]` tests; CI-verified passing
75-
- `@iscc/wasm 0.0.2` not yet published to npm (awaiting release trigger)
74+
- `@iscc/wasm 0.0.2` published to npm
7675
- **Nothing missing** in WASM bindings
7776

7877
## C FFI
@@ -98,7 +97,7 @@ publishing triggers, Maven Central setup, and tab order decision.
9897
- `docs/howto/java.md` complete; navigation entry in `zensical.toml` present
9998
- `build-jni` + `assemble-jar` release jobs in `release.yml`; 5-platform matrix
10099
- Version: `pom.xml` at `0.0.2` (synced)
101-
- Missing: Maven Central publishing (GPG signing, Sonatype); end-to-end release untested
100+
- Maven Central external setup complete (GPG signing, Sonatype); end-to-end release untested
102101

103102
## Go Bindings
104103

@@ -135,10 +134,10 @@ publishing triggers, Maven Central setup, and tab order decision.
135134

136135
## Documentation
137136

138-
**Status**: partially met
137+
**Status**: met
139138

140-
- **15 pages** deployed to lib.iscc.codes; all navigation sections complete
141-
- `docs/llms.txt` references all 15 doc pages; `scripts/gen_llms_full.py` generates
139+
- **16 pages** deployed to lib.iscc.codes; all navigation sections complete
140+
- `docs/llms.txt` references all doc pages; `scripts/gen_llms_full.py` generates
142141
`site/llms-full.txt`
143142
- Getting-started tutorial in tabbed multi-language format: 7 sections × 6 languages (Python, Rust,
144143
Node.js, Java, Go, WASM)
@@ -148,15 +147,12 @@ publishing triggers, Maven Central setup, and tab order decision.
148147
- ISCC branding, copy-page split-button, Open Graph meta tags in place
149148
- `docs/architecture.md`: Go correctly shown as standalone module (separate from Rust binding
150149
crates) with green styling and accurate prose; all stale wazero references removed
151-
- **Reference section** (zensical.toml): Rust API, Python API, C FFI — present and complete
150+
- **Reference section** (zensical.toml): Rust API, Python API, C FFI, Java API — all present and
151+
complete
152152
- **C FFI API reference** (`docs/c-ffi-api.md`, 694 lines): all 44 exported `extern "C"` symbols
153153
documented with C type mappings, struct layouts, memory management guidance, and error handling
154-
- **Missing**: Java API reference page (spec requires "Java API" in Reference section alongside Rust
155-
API, Python API, and C FFI; not yet created)
156-
- **Known issue (low priority, filed, needs human decision):**
157-
- Tab order inconsistency across pages: spec says "Python, Rust, Java, Node.js, WASM" (no Go),
158-
landing page uses "Rust, Python, ...", tutorial uses "Python, Rust, Node.js, Java, Go, WASM" —
159-
spec update needed to add Go; `HUMAN REVIEW REQUESTED` for canonical tab order
154+
- **Java API reference** (`docs/java-api.md`): all 30 Tier 1 symbols documented
155+
- **Tab order**: standardized to Python, Rust, Node.js, Java, Go, WASM across all pages
160156

161157
## Benchmarks
162158

@@ -175,38 +171,20 @@ publishing triggers, Maven Central setup, and tab order decision.
175171

176172
## CI/CD and Publishing
177173

178-
**Status**: partially met
174+
**Status**: met
179175

180176
- 3 workflows: `ci.yml`, `docs.yml`, `release.yml`
181177
- `ci.yml` covers **9 jobs**: Version consistency, Rust (fmt, clippy, test), Python (ruff, pytest),
182178
Node.js (napi build, test), WASM (wasm-pack test), Java (JNI build, mvn test), Go (go test, go
183179
vet), C FFI (cbindgen, gcc, test), Bench (compile check) — all 9 SUCCESS
184180
- **version-check** job: runs `python scripts/version_sync.py --check` using only Python 3.10
185181
- Go CI job: `CGO_ENABLED=0 go test` + `go vet` (pure Go, no Rust toolchain)
186-
- **Latest CI run on develop: PASSING**
187-
[Run 22515862498](https://github.com/iscc/iscc-lib/actions/runs/22515862498) — all 9 jobs
188-
SUCCESS
189-
- **PR #10 open**: develop → main "Pure Go rewrite & polyglot bindings progress"
190-
([#10](https://github.com/iscc/iscc-lib/pull/10))
191-
- Missing: OIDC trusted publishing for crates.io not configured (registry-side; human task)
192-
- Missing: npm publishing awaiting new release trigger (`0.0.2` not yet published)
193-
- Missing: Maven Central publishing configuration (GPG signing, Sonatype)
182+
- **PR #10 merged** to main
183+
- **v0.0.2 published** to all registries: PyPI, crates.io, npm (@iscc/lib, @iscc/wasm)
184+
- OIDC trusted publishing configured for crates.io
185+
- Maven Central external setup complete (GPG signing, Sonatype)
186+
- **Nothing missing** in CI/CD and Publishing
194187

195188
## Next Milestone
196189

197-
**One remaining automatable task: Java API reference page.**
198-
199-
The documentation spec (`specs/documentation.md`) explicitly lists "Java API" in the Reference
200-
section alongside Rust API, Python API, and C FFI. This is the only documentation gap that can be
201-
addressed without human involvement.
202-
203-
After that, all remaining work requires human action:
204-
205-
1. **Java API reference** — create `docs/java-api.md` documenting all 30 Tier 1 symbols via
206-
`IsccLib.java` static methods, types, exceptions, streaming API, and add nav entry to
207-
`zensical.toml`
208-
2. **Merge PR #10** (develop → main) — needs human approval and merge
209-
3. **Publish 0.0.2** to PyPI, npm — needs release trigger (`workflow_dispatch` or tag push)
210-
4. **Maven Central** — needs GPG key setup and Sonatype OSSRH account (external configuration)
211-
5. **Tab order** — canonical language tab order needs human decision (Python-first vs Rust-first)
212-
6. **OIDC for crates.io** — needs registry-side trusted publisher configuration
190+
**Ready for 0.0.3 release.** All functional work complete. No open issues.

docs/index.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -50,30 +50,30 @@ decentralized, content-based identification without a central registry.
5050

5151
## Quick Start
5252

53-
=== "Rust"
53+
=== "Python"
5454

5555
```bash
56-
cargo add iscc-lib
56+
pip install iscc-lib
5757
```
5858

59-
```rust
60-
use iscc_lib::gen_text_code_v0;
59+
```python
60+
from iscc_lib import gen_text_code_v0
6161

62-
let result = gen_text_code_v0("Hello World", 64)?;
63-
println!("{}", result.iscc);
62+
result = gen_text_code_v0("Hello World")
63+
print(result["iscc"])
6464
```
6565

66-
=== "Python"
66+
=== "Rust"
6767

6868
```bash
69-
pip install iscc-lib
69+
cargo add iscc-lib
7070
```
7171

72-
```python
73-
from iscc_lib import gen_text_code_v0
72+
```rust
73+
use iscc_lib::gen_text_code_v0;
7474

75-
result = gen_text_code_v0("Hello World")
76-
print(result["iscc"])
75+
let result = gen_text_code_v0("Hello World", 64)?;
76+
println!("{}", result.iscc);
7777
```
7878

7979
=== "Node.js"

0 commit comments

Comments
 (0)