diff options
| author | Ralph Amissah <ralph.amissah@gmail.com> | 2026-05-23 22:32:45 -0400 |
|---|---|---|
| committer | Ralph Amissah <ralph.amissah@gmail.com> | 2026-05-23 22:48:23 -0400 |
| commit | 09d1ec0f4e00f970b27d300706aff6b7dc83eaaa (patch) | |
| tree | 458496e142d76f8f8db8fa3b43efeaa9598275e6 | |
| parent | 0.21.0 (diff) | |
decouple abstraction phase2: dub sub-package splitsisudoc-spine_v0.21.0
Declare sisudoc.abstraction as a dub sub-package (spine:abstraction)
within the existing dub.json. The sub-package's sourcePaths cover
exactly the abstraction-side clusters that were freed from io_out
edges in phase 0 and phase 1:
- src/sisudoc/abstraction (package surface + ssp serialiser)
- src/sisudoc/meta (per-document abstraction)
- src/sisudoc/io_in (file/pod ingress)
Its declared dependencies are spine:dyaml and spine:imageformats
only - no d2sqlite3, no io_out. The main "spine" package adds
spine:abstraction to its dependencies and lists those three
directories in excludedSourceFiles so dub does not compile the
abstraction-side sources twice when the executable is built with
--combined (as the nix derivation does).
(assisted by Claude-Code)
| -rw-r--r-- | dub.json | 28 | ||||
| -rw-r--r-- | org/config_dub.org | 28 |
2 files changed, 56 insertions, 0 deletions
@@ -10,6 +10,11 @@ "license": "AGPL-3.0+", "targetPath": "./bin", "sourcePaths": [ "./src/sisudoc" ], + "excludedSourceFiles": [ + "src/sisudoc/abstraction/*", + "src/sisudoc/meta/*", + "src/sisudoc/io_in/*" + ], "importPaths": [ "./views" ], "stringImportPaths": [ "./views" ], "buildRequirements": [ "allowWarnings" ], @@ -42,12 +47,35 @@ } }, "dependencies": { + "spine:abstraction": "*", "spine:d2sqlite3": "*", "spine:imageformats": "*", "spine:dyaml": "*" }, "subPackages": [ { + "name": "abstraction", + "description": "sisudoc-abstraction: in-memory document object model + .ssp serialisation (markup -> abstraction stage, independent of output formats)", + "homepage": "https://sisudoc.org", + "authors": [ "Ralph Amissah" ], + "copyright": "Copyright © 2015 - 2026 Ralph Amissah", + "license": "AGPL-3.0+", + "targetType": "library", + "sourcePaths": [ + "./src/sisudoc/abstraction", + "./src/sisudoc/meta", + "./src/sisudoc/io_in" + ], + "importPaths": [ + "./src/sisudoc" + ], + "buildRequirements": [ "allowWarnings" ], + "dependencies": { + "spine:dyaml": "*", + "spine:imageformats": "*" + } + }, + { "name": "d2sqlite3", "description": "A thin wrapper around SQLite 3", "homepage": "https://github.com/dlang-community/d2sqlite3", diff --git a/org/config_dub.org b/org/config_dub.org index 27a9c22..b1700e5 100644 --- a/org/config_dub.org +++ b/org/config_dub.org @@ -47,6 +47,11 @@ "license": "AGPL-3.0+", "targetPath": "./bin", "sourcePaths": [ "./src/sisudoc" ], + "excludedSourceFiles": [ + "src/sisudoc/abstraction/*", + "src/sisudoc/meta/*", + "src/sisudoc/io_in/*" + ], "importPaths": [ "./views" ], "stringImportPaths": [ "./views" ], "buildRequirements": [ "allowWarnings" ], @@ -79,12 +84,35 @@ } }, "dependencies": { + "spine:abstraction": "*", "spine:d2sqlite3": "*", "spine:imageformats": "*", "spine:dyaml": "*" }, "subPackages": [ { + "name": "abstraction", + "description": "sisudoc-abstraction: in-memory document object model + .ssp serialisation (markup -> abstraction stage, independent of output formats)", + "homepage": "https://sisudoc.org", + "authors": [ "Ralph Amissah" ], + "copyright": "Copyright © 2015 - 2026 Ralph Amissah", + "license": "AGPL-3.0+", + "targetType": "library", + "sourcePaths": [ + "./src/sisudoc/abstraction", + "./src/sisudoc/meta", + "./src/sisudoc/io_in" + ], + "importPaths": [ + "./src/sisudoc" + ], + "buildRequirements": [ "allowWarnings" ], + "dependencies": { + "spine:dyaml": "*", + "spine:imageformats": "*" + } + }, + { "name": "d2sqlite3", "description": "A thin wrapper around SQLite 3", "homepage": "https://github.com/dlang-community/d2sqlite3", |
