We also cut ourselves off from the standard Linux java library
deployment.  See, for reference, the listing of /usr/share/java in
Fedora 9 (http://people.apache.org/~tvolkert/javalib.txt).  If we
don't include version numbers, our different versions will stomp on
each other in this folder.

-T

On Fri, Mar 27, 2009 at 11:33 AM, Todd Volkert <[email protected]> wrote:
> And here are some counter points:
>
> * With version numbers, you're not precluding users from partitioning
> their libraries into directories, whereas without version numbers,
> you're forcing them to.
>
> * With version numbers, users immediately know which version they're
> using without having to compare file size or extract some META-INF
> files to know its version -- let's go for simplicity.
>
> * The argument that you have to update your library dependencies is a
> weak one, imho.  I had to do it with a Pivot app I wrote, and it was a
> 2 second change that I only undertake when I upgrade to a new Pivot
> version, which won't be all that often.  And larger, more enterprise
> applications use frameworks like Maven to manage their dependencies,
> so they don't have to worry about "updating their classpath in all of
> their build and deployment environments" either.  And along those
> lines, Maven requires participating libraries to put their version
> numbers in there, so by not doing so, we're precluding our users from
> using Pivot in a Maven repository without modifying our distribution
> structure.
>
> -T
>
> On Fri, Mar 27, 2009 at 11:25 AM, Greg Brown <[email protected]> wrote:
>> One additional consideration. If the goal in embedding version numbers in 
>> the JAR file name is to help manage different installed versions, I'd 
>> suggest that an approach like the following is preferable. Each of the 
>> following would be a directory containing pivot-core.jar, pivot-wtk.jar, 
>> etc. (without embedded version numbers), and apache-pivot would be a 
>> symbolic link to the directory for the "current" version:
>>
>> apache-pivot->apache-pivot-1.1
>> apache-pivot-1.0
>> apache-pivot-1.0.1
>> apache-pivot-1.1
>> apache-pivot-1.2
>>
>> This is effectively how Mac OSX manages system libraries.
>>
>> On Friday, March 27, 2009, at 11:18AM, "Greg Brown" <[email protected]> wrote:
>>>-1
>>>
>>>All, please consider the impact such a change would have before casting your 
>>>vote. You will now be responsible for manually updating dependencies as new 
>>>versions are released. You won't simply be able to drop in new JARs and be 
>>>off and running. This isn't as much of an issue for server-based 
>>>development, where Tomcat (or some such) will automatically load JARs from 
>>>your lib directory; in client-side deployment, you will be required to 
>>>update your classpath in all of your build and deployment environments.
>>>
>>>Other things to consider:
>>>
>>>- As Todd mentioned, .NET does not include version numbers in DLL names; it 
>>>uses the Global Assembly Cache (a sort of meta-directory for code) to 
>>>partition versions
>>>- Maven employs a directory structure to partition versions
>>>- Mac OSX employs a directory structure to partition versions
>>>- Other Apache projects including Tomcat and Ant do not embed version 
>>>numbers in their JAR file names, only the distribution artifacts
>>>- The JAR files will still contain the version information in the manifest
>>>
>>>G
>>>
>>>On Friday, March 27, 2009, at 11:07AM, "Christopher Brind" 
>>><[email protected]> wrote:
>>>>+1
>>>>
>>>>2009/3/27 Todd Volkert <[email protected]>
>>>>
>>>>> There is some disagreement among the PPMC members as to whether we
>>>>> should include version numbers in our JAR files that we release, so
>>>>> I'd like to call for a consensus vote:
>>>>>
>>>>> Please cast your vote:
>>>>>   [+1] include version numbers
>>>>>   [=0] don't care
>>>>>   [-1] don't include version numbers
>>>>>
>>>>> For some background, here are some links that discuss this issue:
>>>>>
>>>>> http://stackoverflow.com/questions/119426/jar-file-naming-conventions
>>>>> - advocates embedding the version number
>>>>>
>>>>>
>>>>> http://javahowto.blogspot.com/2006/05/java-jar-file-naming-conventions-and.html
>>>>> - advocates embedding the version number unless the JAR is distributed
>>>>> in a larger deliverable
>>>>>
>>>>> http://publib.boulder.ibm.com/wasce/V2.1.0/en/adding-java-libraries.html
>>>>> - advocates using a directory structure to partition JARs
>>>>>
>>>>> ** note that .NET does not embed version numbers in the file name.
>>>>>
>>>>> Thanks!
>>>>> -T
>>>>>
>>>>
>>>
>>>
>>
>

Reply via email to