[armedbear-devel] Maven versus ASDF versions
Cyrus Harmon
ch-lisp at bobobeach.com
Sun Feb 23 17:38:33 UTC 2014
Oh, I see! Thanks for showing me the correct :mvn invocation for, e.g., -SNAPSHOT. Works great!
On Feb 23, 2014, at 9:02 AM, Mark Evenson <evenson at panix.com> wrote:
> On 2/23/14, 1:27, Cyrus Harmon wrote:
>>
>> Whoops. I attached the wrong patch.
>>
>> Correct one (hopefully) attached:
>>
>>
>>
>>
>>
>>
>> On Feb 22, 2014, at 5:21 PM, Cyrus Harmon <ch-lisp at bobobeach.com> wrote:
>>
>>>
>>> The attached patch adds support for maven snapshot versions with the following defsystem component syntax:
>>>
>>> (:mvn "org.openscience.cdk/cdk-bundle" :version "1.5.6" :snapshot t)
>>>
>>> I’m open to other suggestions to solving this, but this works for my immediate needs.
>
> No, that isn't a sufficiently generalized solution for my tastes, but
> congratulations on hacking it to work for you!
>
> As far as I understand Maven, the "-SNAPSHOT" is merely a suffix to the
> version coordinate and is merely a convention, not supported by the
> underlying Maven infrastructure as the version in Maven is merely an
> opaque string without any meaningful ordering operations between
> different versions (i.e. there is no sure way to tell that one version
> in Maven is greater or lesser than another). So, making an keyword
> argument for "-SNAPSHOT" but not "-rc-1" and whatever else gets stuffed
> in here is the wrong way forward, especially as we can see that your
> diff is mostly about "carrying the extra arg" through the various method
> calls which would have to be duplicated for every additional suffix that
> one encounters.
>
> ASDF tries to be much stricter about its version component, which
> probably means that trying to use the ASDF VERSION component to
> represent both Maven's and ASDF's notion of a version is probably a
> losing battle. Currently, the ASDF on abcl-1.3.0-dev signals a
> non-intelligible error about ASDF/SYSTEM:BUILTIN-SYSTEM-P when ASDF
> encounters a VERSION that is not strictly three integers separated by
> two periods.
>
> Fortunately, the current version of ASDF and ABCL-ASDF accepts the
> following form:
>
> (:mvn "org.openscience.cdk/cdk-bundle/1.5.6-SNAPSHOT")
>
> which should do what you want without patching the API. This is where
> the ENSURE-PARSED-MVN function that you recently patched comes in,
> "fixing up" the MVN component to contain the right values. This works,
> since in spite of requiring that ASDF versions can be meaningfully
> compared, ASDF itself does not use this requirement for anything other
> than possibly upgrading its own components.
>
> I couldn't find your artifact on the standard Maven repo, but tested it
> with the following artifact:
>
> (:mvn "org.mod4j.com.google.inject/guice/1.0-XTEXT-PATCHED")
>
> Could you test that this will work for your case?
>
> Longer term, the way forward is to clearly not use the ASDF VERSION
> field to store the MVN version at all.
>
> --
> "A screaming comes across the sky. It has happened before, but there
> is nothing to compare to it now."
>
More information about the armedbear-devel
mailing list