On 2018-08-22 02:10 PM, Pascal Bourguignon wrote:
On 22 Aug 2018, at 00:36, Daniel Pezely <daniel@pezely.com> wrote:

I posted this to Stack Overflow but was hoping for more input.

https://stackoverflow.com/questions/51638864/common-lisp-style-multiple-packages-in-same-repo

May I get recommendations or links to representative code repositories with good style for multiple related Common Lisp packages, please? [...]

You’re asking about different things.
[...]
In short: it depends!


Thanks, Pascal!

Yes, these are different-- yet intertwined as integral parts of a whole.

Regarding git repos: in this case, it's just one person.  The source code is small enough that it would be maintained by one person for foreseeable future, including potential forks supplying missing features that might be apparent to those familiar with conventional mmap use cases.

Regarding asdf systems versus packages: the hooks for invoking the test harness (Prove), launches via asdf mechanisms.  For practical purposes, these are tightly coupled here.

Regarding files: as much as I admire the Smalltalk model, my pragmatic side tips the scales in favour of being confined to conventional CL tools and approach, hence: asdf, uiop-posix, Prove and accommodating possible future inclusion by Quicklisp.


Oddly enough, I was expecting to drink from a fire hose of highly opinionated yet qualified CL advice.

By way of comparison, I just returned from Rust Conf in Portland, Oregon/US, last week and was reminded that their `cargo` package manager has "workspaces" [1].  It synchronizes dependencies of multiple packages within a common directory tree.  That satisfies criteria described in the original post, apart from being for a different language of course.

(Unfortunately, I don't have time to contribute a Lispy equivalent as the most recent start-up company didn't quite go as intended... but I digress.)

[1] https://doc.rust-lang.org/book/second-edition/ch14-03-cargo-workspaces.html


Thanks again for all your recommendations and insights!

  -Daniel