I did an analysis of how system properties are used in Quicklisp systems, and this suggests that the following initargs be added: :website-url <=== widely requested. the URL suffix makes it less ambiguous. :bug-tracker-url <=== Zach's request that makes a *whole* lot of sense :development-email <=== More actionable name than :author-email. Or maybe just use mailto: URL in bug-tracker-url? :long-name <=== we have :long-description already, so why not?
I believe some kind of :source-control slot might be useful, though between SVN, GIT, Mercurial, etc., there is no common URL pattern, so we'd have to specify some structure. Either a list of `(,vcs-keyword ,@url+options) or a command to checkout / clone the repository to be parsed, or something.
Here are the uses of component properties in Quicklisp systems:
asd's that directly use asdf:component-property: *** yaclml => :features <=== property for version comparison. See arnesi below. *** amazon-ecs => :website <=== Yes, need to be added to ASDF 3. *** hemlock.asd => :last-loaded-as-source <=== bad implementation of latin1 encodings with lifted from ASDF 1's bad implementation of load-source-op. Let's just use asdf-encodings for that, and/or use UTF-8, furgossake.
asd's that use :properties in defsystem: *** arnesi, arnesi+ => :features <=== misguided property used for version comparison and pseudo #+features version comparison should use :version. The pseudo-features should probably be replaced by either having separate systems or actual features, depending on their use pattern. If actually useful, create a subclass with a :component-features initarg. *** lkcas, thopter => :long-name <=== used by the Makefile through component-property. I could add that to defclass system, or he could use a subclass. *** cl-irc cliki-bot rss cl-syslog com.informatimago.clext com.informatimago.clisp com.informatimago.clmisc com.informatimago.common-lisp.arithmetic om.informatimago.common-lisp.bank com.informatimago.common-lisp.cesarum com.informatimago.common-lisp com.informatimago.common-lisp.csv com.informatimago.common-lisp.cxx com.informatimago.common-lisp.data-encoding com.informatimago.common-lisp.diagram com.informatimago.common-lisp.ed com.informatimago.common-lisp.graphviz com.informatimago.common-lisp.heap com.informatimago.common-lisp.html-base com.informatimago.common-lisp.html-generator com.informatimago.common-lisp.html-parser com.informatimago.common-lisp.http com.informatimago.common-lisp.interactive com.informatimago.common-lisp.invoice com.informatimago.common-lisp.lisp com.informatimago.common-lisp.lisp.ibcl com.informatimago.common-lisp.lisp.stepper com.informatimago.common-lisp.lisp-reader com.informatimago.common-lisp.lisp-sexp com.informatimago.common-lisp.lisp-text com.informatimago.common-lisp.parser com.informatimago.common-lisp.picture com.informatimago.common-lisp.regexp com.informatimago.common-lisp.rfc2822 com.informatimago.common-lisp.rfc3548 com.informatimago.common-lisp.telnet com.informatimago.common-lisp.unix linc com.informatimago.lispdoc com.informatimago.lua com.informatimago.cocoa-playground com.informatimago.objcl com.informatimago.rdp com.informatimago.rdp.basic com.informatimago.rdp.basic.example com.informatimago.rdp.example com.informatimago.susv3 com.informatimago.common-lisp.tools.make-depends com.informatimago.xcode spartns xlunit => (WTF???? uninterned symbols, really?) #:author-email <=== somewhat useful piece of data #:date <=== You're never going to get anything but stale information here. (#:albert #:output-dirs) <=== An absolute pathname in a .asd? Braindamage! (#:albert #:formats) <=== should be moved to some albert-system class slots (#:albert #:docbook #:template) (#:albert #:docbook #:bgcolor) (#:albert #:docbook #:textcolor) (#:albert #:docbook #:dtd) *** portableaserve => (WTF???? The same albert thing, just incompatibly?) ("system" "author" "email") ("albert" "presentation" "output-dir") ("albert" "presentation" "formats") ("albert" "docbook" "dtd") ("albert" "docbook" "template") !! Albert should probably use its own subclass to put its information *** com.clearly-useful.generic-collection-interface => :com.clearly-useful <=== whatever you're doing, use a subclass. *** metatilities => :ait-timeout :system-applicable-p <=== same comment *** ucw ucw-core => it.bese.ucw.system::version <=== WTF? use :version instead.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org "On two occasions I have been asked [by members of Parliament!], `Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question." — Charles Babbage