diff options
| author | Ralph Amissah <ralph.amissah@gmail.com> | 2026-05-25 11:33:14 -0400 |
|---|---|---|
| committer | Ralph Amissah <ralph.amissah@gmail.com> | 2026-05-25 12:21:38 -0400 |
| commit | 6ce2e8efb3a81b724840c06d62d5c8379992f7f0 (patch) | |
| tree | 4112c585d0f907d905ffde4d4887587e6fffea0d /org | |
| parent | ocda + outputs split: module/import + dub.json fixups (diff) | |
Three small follow-ups to the ocda/outputs split:
1. Add src/sisudoc/ocda/package.d (module sisudoc.ocda) as a 2-line
public re-export of sisudoc.ocda.abstraction. Provides downstream
consumers with a canonical "import sisudoc.ocda;" entry point and
a stable handle for eventual peer-repo packaging of the
abstraction library.
2. Fix the D import-path root in dub.json so it matches the declared
module names:
- spine:abstraction sub-package
"importPaths": [ "./src/sisudoc" ] -> [ "./src" ]
- main package buildTypes (dmd, ldc2, ldmd2, gdc, gdmd)
"-I=src/sisudoc" -> "-I=src"
The modules are named sisudoc.ocda.* / sisudoc.outputs.* /
sisudoc.* so the filesystem-based resolver needs to see
./src as the root (so <root>/sisudoc/ocda/X.d resolves).
3. Replace dyaml sub-package's destructive preGenerateCommands
("rm -rf ./src/ext_depends/D-YAML/{examples,testsuite}") with
declarative excludedSourceFiles globs. The two directories do
not exist in the vendored D-YAML tree, so the rm was a no-op
in practice; the glob form is defensive (would silently skip
them if they were ever re-introduced) and removes the
destructive side-effect from every build.
(assisted by Claude-Code)
Diffstat (limited to 'org')
| -rw-r--r-- | org/config_dub.org | 18 | ||||
| -rw-r--r-- | org/ocda.org | 30 |
2 files changed, 38 insertions, 10 deletions
diff --git a/org/config_dub.org b/org/config_dub.org index d82a5ac..10dd6e5 100644 --- a/org/config_dub.org +++ b/org/config_dub.org @@ -54,27 +54,27 @@ "targetType": "executable", "buildTypes": { "dmd": { - "dflags": [ "-O", "-J=views", "-I=src/sisudoc" ], + "dflags": [ "-O", "-J=views", "-I=src" ], "buildOptions": [ "inline", "verbose" ], "buildRequirements": [ "allowWarnings" ] }, "ldc2": { - "lflags": [ "-O2", "-I=src/sisudoc" ], + "lflags": [ "-O2", "-I=src" ], "buildOptions": [ "optimize", "inline", "verbose" ], "buildRequirements": [ "allowWarnings" ] }, "ldmd2": { - "dflags": [ "-O", "-J=views", "-I=src/sisudoc" ], + "dflags": [ "-O", "-J=views", "-I=src" ], "buildOptions": [ "optimize", "inline", "verbose" ], "buildRequirements": [ "allowWarnings" ] }, "gdc": { - "lflags": [ "-O2", "-J=views", "-I=src/sisudoc" ], + "lflags": [ "-O2", "-J=views", "-I=src" ], "buildOptions": [ "optimize", "inline" ], "buildRequirements": [ "allowWarnings" ] }, "gdmd": { - "dflags": [ "-O", "-J=views", "-I=src/sisudoc" ], + "dflags": [ "-O", "-J=views", "-I=src" ], "buildOptions": [ "optimize", "inline" ], "buildRequirements": [ "allowWarnings" ] } @@ -95,7 +95,7 @@ "license": "AGPL-3.0+", "targetType": "library", "sourcePaths": [ "./src/sisudoc/ocda" ], - "importPaths": [ "./src/sisudoc" ], + "importPaths": [ "./src" ], "buildRequirements": [ "allowWarnings" ], "dependencies": { "spine:dyaml": "*", @@ -147,9 +147,9 @@ "./src/ext_depends/D-YAML/source", "./src/ext_depends/tinyendian/source" ], - "preGenerateCommands": [ - "rm -rf ./src/ext_depends/D-YAML/examples", - "rm -rf ./src/ext_depends/D-YAML/testsuite" + "excludedSourceFiles": [ + "./src/ext_depends/D-YAML/examples/**", + "./src/ext_depends/D-YAML/testsuite/**" ] } ], diff --git a/org/ocda.org b/org/ocda.org index a24e335..d5651cc 100644 --- a/org/ocda.org +++ b/org/ocda.org @@ -22,7 +22,35 @@ - Process markup document, create document abstraction -** library template :module:metadoc_from_src: +** library templates +*** ocda package.d + +#+HEADER: :tangle "../src/sisudoc/ocda/package.d" +#+HEADER: :noweb yes +#+BEGIN_SRC d +<<doc_header_including_copyright_and_license>> +/++ + sisudoc.ocda - canonical entry point of the document-abstraction + library. + + Pipeline position: markup -> abstraction -> output. This package is + the abstraction stage; the output stage lives in + sisudoc.outputs.io_out and consumes the values produced here. + + This file re-exports sisudoc.ocda.abstraction (the documented public + API surface) so that consumers can write + import sisudoc.ocda; + and reach the entry points (spineAbstraction!(), docAbstraction!(), + spineAbstractionTxt) without depending on spine's directory layout. + + No logic lives here. ++/ +module sisudoc.ocda; +@safe: +public import sisudoc.ocda.abstraction; +#+END_SRC + +*** ocda/abstraction package.d #+HEADER: :tangle "../src/sisudoc/ocda/abstraction/package.d" #+HEADER: :noweb yes |
