Handling of readme and license files

Russell Sim rsl at simopolis.xyz
Fri Oct 14 20:51:37 UTC 2022


Hey,

I'm working with a project that bundles up CL systems, and then copies
them to a remote host.  To avoid copying unnecessary files, we rely on
the components and additional-input-files to find all the files needed
to load the system on the remote host.

I found some ASD files to load on the remote host. These systems are
expecting to read a long-description, usually a readme file.  All of
these projects are using reader macros to load this data, and none of
them declare the file as a :static-file component.

It's also often the case that the license of a project requires a copy
of the license be shipped with the project. Yet rarely do I see any
project declaring a :static-file for one in their asd file.

Am I correct in my understanding that using :static-files is this the
current recommended way to declare these files?

Is there any plan for ASDF to improve the handling of these 2 cases?  I
see other packaging systems often have a special field for the license
file, and having a :read-file form for the long-descripton much like the
version field has, would improve handling of these readme's greatly.

At the moment asd authors don't have an easy way to test asd evaluation
when files like the readme aren't present. Leading to error prone code
like this.

  :long-description
  #.(uiop:read-file-string
     (uiop:subpathname *load-pathname* "README.md"))

I pulled a sample of 800 packages from quicklisp, 95 of them are using
either uiop:read-file-string (65) or a safer, more verbose
with-open-file (30) form.

Thank you for your work maintaining this essential system.

Regards,
Russell Sim



More information about the asdf-devel mailing list