deptree
2024-10-12
ASDF systems dependency listing and archiving tool for Common Lisp
1Enumerating system's dependencies
(deptree system-name)
Example: (deptree "hunchentoot")
The resulting list of system names is deduplicated and pruned of dependencies within same system directories.
2Listing dependencies' pathnames
(systems-paths dependencies)
Example: (systems-paths (deptree "hunchentoot"))
3Archiving system's dependencies
(systems-archive dependencies /tarball-pathname/ &key (sanitize-p t) (path-prefix ""))
Example: (systems-archive (deptree "hunchentoot") #p"/tmp/hunchentoot-deps.tgz")
Before archiving, make sure the dependencies are in fact present on your host. If you are using Quicklisp it's as easy as quickload-ing the system.
All systems directories are stored flat (with prepeneded :PATH-PREFIX
) regardless their original
absolute pathnames. Since feature-conditional dependencies are honored, please ensure you're archiving from
the relevant platform.
Unless :SANITIZE-P
is NIL, the function will clean up git and Mercurial DVCS data from the archives.
4Listing systems' licenses
(systems-licenses systems)
Example: (systems-licenses (deptree "hunchentoot"))
Produces a list of pairs (system-name . license-string) for the supplied list of licenses.
5Collating systems' license set
(license-set systems)
Example: (license-set (deptree "hunchentoot"))
Produces a mostly deduplicated list of licenses. Variations in character case or hyphens are collated.