[asdf-devel] component-property
Faré
fahree at gmail.com
Thu Jan 31 21:51:59 UTC 2013
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 , at 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
More information about the asdf-devel
mailing list