From 3f34ec6afde21801eff0b655949a6d219e47943c Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Tue, 13 Oct 2026 16:54:02 -0400 Subject: release 2.1.0: versions, the library locked, the pipeline The writer's version follows the format's: 2.1.0 in dub.json, gleam.toml and both flakes (it was 2.0.0), and manifest.toml locks the library at 2.1.0 to match. A release is numbered major.minor.patch, major.minor being the format and shared with the specification and the library, the patch the writer's own. flake.lock, in dlang/ and gleam/, pins the library at its 2.1.0 release and nixpkgs as that release locks it, so the writer builds with what the library was built and checked with. The READMEs say plain nix build, and how to build against a working copy of the library instead. The pipeline no longer builds or runs sisudoc-ssp-reader and sisudoc-ocda-db-reader, which are frozen: ocda-read, the library's reader, covers both, and read.sh already ran it from both forms and in both languages. Gone from build.sh, config.sh, one.sh and read.sh, and from pipeline/README.md, which with config.sh now names spine's --show-abstraction as the README does. build.sh still gives the writer the library beside it, so that the library run and the library built in are the same one. README, to what was decided for these writers: the outputs must be identical from every form and the D and Gleam writers must agree byte for byte, but they are not held to spine's bytes; each format has its own judge, and a difference from spine is there to read better. The introduction said "identical to each other and to spine's", and the example compared --text with spine's text file, which fails by design; the example now compares the .ssp and the .ocda.db. The documents the checks run over are the markup document samples, named with their repository and the spine flags that build the artefacts, and the counts read "all" or "every document" rather than a number, here and in dlang/, gleam/ and pipeline/README.md. The format is 2.1, and the license is stated. Checked: D and Gleam build from the lock; over the markup document samples, D == Gleam in text, markdown, html, epub and typst for every document-language, and the .ssp and the .ocda.db give the same output. (assisted by Claude-Code) --- dlang/README.md | 16 ++++++++-------- dlang/dub.json | 2 +- dlang/flake.lock | 16 ++++++++-------- dlang/flake.nix | 2 +- 4 files changed, 18 insertions(+), 18 deletions(-) (limited to 'dlang') diff --git a/dlang/README.md b/dlang/README.md index e3a41b6..add15f1 100644 --- a/dlang/README.md +++ b/dlang/README.md @@ -27,7 +27,7 @@ and everything it needs is in the model. ## Build and run ```sh -nix build --override-input ocda-lib path:../../sisudoc-ocda-lib +nix build ./result/bin/ocda-write --text .ssp ./result/bin/ocda-write --html .ocda.db de ./result/bin/ocda-write --html .sisupod @@ -49,19 +49,19 @@ separate product; for five modules a second build step buys nothing. ## The checks `--text` and `--md` are checked against the html writer's objects, word for -word, and against each other language's writer, byte for byte: **36 of 36 on -every count.** Byte identity with `spine --text` was the first oracle and is -no longer the target; see the repository README. +word, and against each other language's writer, byte for byte: **every +document on every count.** Byte identity with `spine --text` was the first +oracle and is no longer the target; see the repository README. -`--html` is checked harder still: it parses, every `href="#x"` -resolves, no id appears twice, no heading falls outside `h1`..`h6`, and the -objects' visible text equals spine's scroll html exactly. **36 of 36 on each, +`--html` is checked harder still: it parses, every `href="#x"` resolves, no +id appears twice, no heading falls outside `h1`..`h6`, and the objects' +visible text equals spine's scroll html exactly. **Every document, on each, and byte identical to the Gleam writer.** See the repository README for what it does differently from spine and why. `--epub` is judged by `epubcheck`, and `--typst` by typst: a link to a label that does not exist is a compile error, so a silent compile means every -internal link in the document resolves. **36 of 36 on each, and byte +internal link in the document resolves. **Every document, on each, and byte identical to the Gleam writer.** ## Where it is faithful rather than sensible diff --git a/dlang/dub.json b/dlang/dub.json index dcc891c..901b02e 100644 --- a/dlang/dub.json +++ b/dlang/dub.json @@ -2,7 +2,7 @@ "authors": [ "Ralph Amissah" ], "copyright": "Copyright (C) 2026 Ralph Amissah", "name": "ocda-write", - "version": "2.0.0", + "version": "2.1.0", "description": "sample writers over the object-centric document abstraction", "homepage": "https://sisudoc.org", "license": "AGPL-3.0+", diff --git a/dlang/flake.lock b/dlang/flake.lock index 13a94c9..a83226a 100644 --- a/dlang/flake.lock +++ b/dlang/flake.lock @@ -2,11 +2,11 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1790652569, - "narHash": "sha256-k8Fu4c9Z+4Nh7mUr0cfw++ITQiyEhlWxoJBOkI3tOcQ=", - "rev": "b6c8664de9b6cc07fe5666a29f91884ba81197c4", + "lastModified": 1792506237, + "narHash": "sha256-hVMDyAXU0kxRuG3GygbZkzf5x+aBNEC0NYEJ6KwHtD4=", + "rev": "5adc50831c259f87faeb09ddf930d43597197473", "type": "tarball", - "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.11pre1082290.b6c8664de9b6/nixexprs.tar.zst" + "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.11pre1097770.5adc50831c25/nixexprs.tar.zst" }, "original": { "type": "tarball", @@ -16,11 +16,11 @@ "ocda-lib": { "flake": false, "locked": { - "lastModified": 1791851051, - "narHash": "sha256-mVI3uGQ1z7S5OMMFjl5UoWShE3p0ucXlr6cVU1iAsgI=", + "lastModified": 1791924842, + "narHash": "sha256-C79k2X32NxKPqrE7nJVegYThtA6Dm2pg/B/yb9RiObE=", "ref": "refs/heads/main", - "rev": "4e4f2f8c2b2c043077390cb4ccf7ce97ffe4ac6b", - "revCount": 3, + "rev": "79a7a0cf09c9d6b5d9974376dcb7a98bd5bdbcba", + "revCount": 4, "type": "git", "url": "git://git.sisudoc.org/tools/sisudoc-ocda-lib" }, diff --git a/dlang/flake.nix b/dlang/flake.nix index d3923f0..c7ed73b 100644 --- a/dlang/flake.nix +++ b/dlang/flake.nix @@ -25,7 +25,7 @@ mkWrite = { compiler, compilerBin }: pkgs.stdenv.mkDerivation { pname = "ocda-write"; - version = "2.0.0"; + version = "2.1.0"; src = self; nativeBuildInputs = [ compiler ]; buildInputs = [ pkgs.sqlite pkgs.zstd ]; -- cgit v1.2.3