<div dir="ltr">Hi,<div>I know much more about maven than asdf and actually maven knows much more about the version than what you say. </div><div> - SNAPSHOT is not an arbitrary keyword (eg. a classifier in maven parlance) but something that is baked in the artefact resolution and repository definition of maven. Snapshot versions can be updated and new versions looked for in a remote repository whereas "release" versions are never updated</div>
<div> - if the version number follows maven conventions (X.Y.Z numbers) then actually you can define version ranges in dependencies (<a href="http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-project-dependencies.html">http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-project-dependencies.html</a>),</div>
<div> - moreover, there is a notion of ordering which is maintained in a repository metadata so that one can request the LATEST version of some artefact.</div><div><br></div><div>My 2 cts</div><div><br></div><div>Regards,</div>
</div><div class="gmail_extra"><br clear="all"><div><div dir="ltr"><div><div><div>--<br></div>Arnaud Bailly<br></div>FoldLabs Associate: <a href="http://foldlabs.com" target="_blank">http://foldlabs.com</a><br></div></div>
</div>
<br><br><div class="gmail_quote">On Sun, Feb 23, 2014 at 5:02 PM, Mark Evenson <span dir="ltr"><<a href="mailto:evenson@panix.com" target="_blank">evenson@panix.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 2/23/14, 1:27, Cyrus Harmon wrote:<br>
><br>
> Whoops. I attached the wrong patch.<br>
><br>
> Correct one (hopefully) attached:<br>
><br>
><br>
><br>
><br>
><br>
><br>
> On Feb 22, 2014, at 5:21 PM, Cyrus Harmon <<a href="mailto:ch-lisp@bobobeach.com">ch-lisp@bobobeach.com</a>> wrote:<br>
><br>
>><br>
>> The attached patch adds support for maven snapshot versions with the following defsystem component syntax:<br>
>><br>
>>    (:mvn "org.openscience.cdk/cdk-bundle" :version "1.5.6" :snapshot t)<br>
>><br>
>> I’m open to other suggestions to solving this, but this works for my immediate needs.<br>
<br>
No, that isn't a sufficiently generalized solution for my tastes, but<br>
congratulations on hacking it to work for you!<br>
<br>
As far as I understand Maven, the "-SNAPSHOT" is merely a suffix to the<br>
version coordinate and is merely a convention, not supported by the<br>
underlying Maven infrastructure as the version in Maven is merely an<br>
opaque string without any meaningful ordering operations between<br>
different versions (i.e. there is no sure way to tell that one version<br>
in Maven is greater or lesser than another).  So, making an keyword<br>
argument for "-SNAPSHOT" but not "-rc-1" and whatever else gets stuffed<br>
in here is the wrong way forward, especially as we can see that your<br>
diff is mostly about "carrying the extra arg" through the various method<br>
calls which would have to be duplicated for every additional suffix that<br>
one encounters.<br>
<br>
ASDF tries to be much stricter about its version component, which<br>
probably means that trying to use the ASDF VERSION component to<br>
represent both Maven's and ASDF's notion of a version is probably a<br>
losing battle.  Currently, the ASDF  on abcl-1.3.0-dev signals a<br>
non-intelligible error about ASDF/SYSTEM:BUILTIN-SYSTEM-P when ASDF<br>
encounters a VERSION that is not strictly three integers separated by<br>
two periods.<br>
<br>
Fortunately, the current version of ASDF and ABCL-ASDF accepts the<br>
following form:<br>
<br>
   (:mvn "org.openscience.cdk/cdk-bundle/1.5.6-SNAPSHOT")<br>
<br>
which should do what you want without patching the API.  This is where<br>
the ENSURE-PARSED-MVN function that you recently patched comes in,<br>
"fixing up" the MVN component to contain the right values.  This works,<br>
since in spite of requiring that ASDF versions can be meaningfully<br>
compared, ASDF itself does not use this requirement for anything other<br>
than possibly upgrading its own components.<br>
<br>
I couldn't find your artifact on the standard Maven repo, but tested it<br>
with the following artifact:<br>
<br>
    (:mvn "org.mod4j.com.google.inject/guice/1.0-XTEXT-PATCHED")<br>
<br>
Could you test that this will work for your case?<br>
<br>
Longer term, the way forward is to clearly not use the ASDF VERSION<br>
field to store the MVN version at all.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
"A screaming comes across the sky.  It has happened before, but there<br>
is nothing to compare to it now."<br>
<br>
</font></span></blockquote></div><br></div>