<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sisudoc-spine/src/sisudoc/ocda/package.d, branch main</title>
<subtitle>SiSU Spine: document publishing and search (in D) 2015</subtitle>
<link rel='alternate' type='text/html' href='https://doc-reform.org/projects/sisudoc-spine/'/>
<entry>
<title>ocda public surface + dub.json import-path and dyaml cleanups</title>
<updated>2026-05-25T16:21:38+00:00</updated>
<author>
<name>Ralph Amissah</name>
<email>ralph.amissah@gmail.com</email>
</author>
<published>2026-05-25T15:33:14+00:00</published>
<link rel='alternate' type='text/html' href='https://doc-reform.org/projects/sisudoc-spine/commit/?id=6ce2e8efb3a81b724840c06d62d5c8379992f7f0'/>
<id>6ce2e8efb3a81b724840c06d62d5c8379992f7f0</id>
<content type='text'>
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" ] -&gt; [ "./src" ]
   - main package buildTypes (dmd, ldc2, ldmd2, gdc, gdmd)
     "-I=src/sisudoc" -&gt; "-I=src"
   The modules are named sisudoc.ocda.* / sisudoc.outputs.* /
   sisudoc.* so the filesystem-based resolver needs to see
   ./src as the root (so &lt;root&gt;/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)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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" ] -&gt; [ "./src" ]
   - main package buildTypes (dmd, ldc2, ldmd2, gdc, gdmd)
     "-I=src/sisudoc" -&gt; "-I=src"
   The modules are named sisudoc.ocda.* / sisudoc.outputs.* /
   sisudoc.* so the filesystem-based resolver needs to see
   ./src as the root (so &lt;root&gt;/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)
</pre>
</div>
</content>
</entry>
</feed>
