<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>I posted this to Stack Overflow but was hoping for more input.<br>
</p>
<p><a class="moz-txt-link-freetext" href="https://stackoverflow.com/questions/51638864/common-lisp-style-multiple-packages-in-same-repo">https://stackoverflow.com/questions/51638864/common-lisp-style-multiple-packages-in-same-repo</a></p>
<p><br>
</p>
<div class="post-text" itemprop="text">
<p>May I get recommendations or links to representative code
repositories with good style for multiple related Common Lisp
packages, please?</p>
<p>For instance, consider a high-level workflow library with
accompanying lower-level API, each in its own CL package but
same git repo due to synchronized releases.</p>
<p>Each system (<code>*.asd</code> file) isolates tests and may be
invoked using:</p>
<p><code>(asdf:test-system foo :force t)</code></p>
<p>Separate systems may be built via <code>make</code>, which
definitely helps isolate SBCL code-coverage reports.</p>
<p>Some users of the library may only want to load the lower-level
API. For simplifying dependencies for those using higher-level
API, it seems best to keep everything bundled in one repo. Any
revision to one library would likely require updating all for
the same release.</p>
<p>I currently have a single directory tree with a subdirectory
for each CL package. There's a top-level <code>Makefile</code>
plus one in each subdirectory that the library maintain would
use. The top-level also contains symbolic links for <code>.asd</code>
files pointing into relevant subdirectories. (It's a library
deeply dependent upon POSIX calls via <code>uiop-posix</code>,
so it's only applicable on an OS with sym-links.)</p>
<p>This seems to be an issue at large considering issue #1 for
Quicklisp-docs [0].</p>
<p>Found nothing relevant in Google's CL style guide [1], State of
the Common Lisp Ecosystem, 2015 [2], Edi's CL Recipes [3] or
Lisp-lang [4]. Browsing repos seem to have quite a mix of
styles.</p>
<ul>
<li>[0] <a
href="https://github.com/rudolfochrist/quicklisp-docs/issues/1"
rel="nofollow noreferrer">https://github.com/rudolfochrist/quicklisp-docs/issues/1</a></li>
<li>[1] <a
href="https://google.github.io/styleguide/lispguide.xml"
rel="nofollow noreferrer">https://google.github.io/styleguide/lispguide.xml</a></li>
<li>[2] <a
href="https://web.archive.org/web/20160305061250/http://eudoxia.me/article/common-lisp-sotu-2015/"
rel="nofollow noreferrer">https://web.archive.org/web/20160305061250/http://eudoxia.me/article/common-lisp-sotu-2015/</a></li>
<li>[3] <a href="http://weitz.de/cl-recipes/" rel="nofollow
noreferrer">http://weitz.de/cl-recipes/</a></li>
<li>[4] <a href="http://lisp-lang.org/learn/writing-libraries"
rel="nofollow noreferrer">http://lisp-lang.org/learn/writing-libraries</a>
but see also their section on Continuous Integration</li>
</ul>
<p>Repo to be fixed: <a href="https://gitlab.com/dpezely/cl-mmap"
rel="nofollow noreferrer">https://gitlab.com/dpezely/cl-mmap</a><br>
(commit a23bd88d of 2018-07-14; release will be tagged when
fixed)</p>
<p>Thanks,<br>
-Daniel</p>
<p><br>
</p>
</div>
</body>
</html>