Draft: More expressive version strings and constraints
The goal of this MR is to make specifying both version strings and version constraints more expressive.
We would like version strings to carry additional information, such as pre-release status.
We would like to expand version constraints so that system consumers can knock out known bad versions. Additionally, system developers should be able to communicate known incompatibilities to their users.
- Get confirmation that we want our default version strings to follow Semver grammar and ordering semantics. If not, decide on and implement another.
- Get consensus that the version-related generic functions are extensible enough to allow someone to substitute their own version string grammar and semantics.
- Implement version constraints (first take at documentation is complete).
- Update ASDF's build scripts to support adding pre-release information to version strings.
- Update ASDF self upgrade functions to account for new version string format.
- Run ASDF upgrade tests to make sure older versions of ASDF believe that newer versions are actually newer.