Draft: Resolve "The dictatorship of versioning"
Closes #50
When compared to the approach I described in #50, this doesn't have component-raw-version
. I realized it's unnecessary as we're already exporting the version
symbol, so extensions can access that slot directly.
This MR no longer restricts the contents of the version
slot. Existing functions for reading the slot (component-version
and system-version
) now only return the contents of the slot if it meets ASDF preexisting requirements (string of dot-separated natural numbers).
Make version normalization a GF so it can be extended. Add system-aesthetic-version-string
to allow extensions to provide a string representation of their version objects.
Edited by Robert Goldman