Hi Stelian,
"Stelian Ionescu" sionescu@cddr.org writes:
"Stelian Ionescu" sionescu@cddr.org writes:
I'm working with a project that bundles up CL systems, and then copies
What do you mean by "bundles" ? Copying the source code as-is ?
It's copying the files as declared in defsystem, so files that aren't declared as part of the project, examples, documentation etc are not copied. So it's important for us to know what files are actually used by a system.
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?
ASDF is a build system, not a software packaging system. The :STATIC-FILE component was meant to handle data files that might be required at runtime, not any metadata in general.
OK, I can understand this when it comes to my suggestion about tracking the location of the license file. Though I find it disappointing, since some licenses declare statements like "Redistributions in binary form must reproduce the above copyright". Not having a way to identify the license file makes it difficult to ad hear to the license's of all project dependencies.
The regex "^LICEN[CS]E|COPYING(.md)?$" should identify most license files, by convention.
I should apologise, I think I haven't been getting enough sleep, I was re-reading this thread and I think I miss-understood your comment "ASDF is a build system, not a software packaging system." I totally agree with this statement. I'm not talking about making it into one. But there are attributes of a project that are best declared in the project definition, like the :license-file location. The license file like you allude to is not a runtime dependency but it's often required to be part of the source distribution and part of the binary distribution, so i think it would be better served with special treatment.
This could be caught if the builds were hermetical, and this would also help with issues related other static files that are missing from the ASD file. At the moment it's just luck if anyone actually adds the :STATIC-FILE components needed by their system. Is there some way to help system authors avoid accidentally missing files?
Not that I know of.
Do you think it would be a reasonable feature to add the ability to declare a file instead of just a string for the long-description? This seems like a common point of error