You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by ho...@apache.org on 2006/12/05 08:34:22 UTC

svn commit: r482538 - in /incubator/solr/trunk: CHANGES.txt build.xml

Author: hossman
Date: Mon Dec  4 23:34:22 2006
New Revision: 482538

URL: http://svn.apache.org/viewvc?view=rev&rev=482538
Log:
new numeric build property specversion added so we can ensure our manifest files have a purely numeric Specification-Version

Modified:
    incubator/solr/trunk/CHANGES.txt
    incubator/solr/trunk/build.xml

Modified: incubator/solr/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/solr/trunk/CHANGES.txt?view=diff&rev=482538&r1=482537&r2=482538
==============================================================================
--- incubator/solr/trunk/CHANGES.txt (original)
+++ incubator/solr/trunk/CHANGES.txt Mon Dec  4 23:34:22 2006
@@ -163,5 +163,7 @@
 10. Removed src/apps containing the legacy "SolrTest" app (hossman, SOLR-3)
 11. Simplified index.jsp and form.jsp, primarily by removing/hiding XML
     specific params, and adding an option to pick the output type. (hossman)
+12. Added new numeric build property "specversion" to allow clean
+    MANIFEST.MF files (hossman)
 
 2006/01/17 Solr open sourced, moves to Apache Incubator

Modified: incubator/solr/trunk/build.xml
URL: http://svn.apache.org/viewvc/incubator/solr/trunk/build.xml?view=diff&rev=482538&r1=482537&r2=482538
==============================================================================
--- incubator/solr/trunk/build.xml (original)
+++ incubator/solr/trunk/build.xml Mon Dec  4 23:34:22 2006
@@ -27,14 +27,37 @@
     <format property="year" pattern="yyyy"/>
     <format property="DSTAMP" pattern="yyyy-MM-dd"/>
     <format property="TSTAMP" pattern="HH:mm:ss"/>
+    <!-- datetime format that is safe to treat as part of a dotted version -->
+    <format property="dateversion" pattern="yyyy.MM.dd.HH.mm.ss" />
   </tstamp>
 
   <!-- Java Version we are compatible with -->
   <property name="java.compat.version" value="1.5" />
 
-  <!-- Solr version -->
+  <!-- Solr Implimentation Version -->
+  <!--
+       This can be any string value that does not include spaces
+       This will be used when creating build artifact file names.
+
+       By default, this should be set to "X.Y.N-dev" where X.Y.N is
+       "1 greater" then the last version released (on this branch).
+    -->
   <property name="version" value="1.1-dev" />
-
+  
+  <!-- Solr Specification Version -->
+  <!--
+       This will be used in the Manifest file, and therefore must
+       match the pattern "digit+{.digit+}*"
+       
+       By default, this should be set to "X.Y.M.${dateversion}"
+       where X.Y.M is the last version released (on this branch).
+    -->
+  <property name="specversion" value="1.0.${dateversion}" />
+
+  <!-- Incubation Artifact Disclaimer Suffix -->
+  <!-- Once graduated from incubation, find/remove all refs to this prop -->
+  <property name="incubation-suffix" value="-incubating" />
+  
   <!-- 3rd party libraries for compilation -->
   <property name="lib" value="lib" />
 
@@ -51,7 +74,7 @@
   <property name="example" value="example" />
 
   <property name="fullname" value="apache-${ant.project.name}"/>
-  <property name="fullnamever" value="apache-${ant.project.name}-${version}"/>
+  <property name="fullnamever" value="apache-${ant.project.name}-${version}${incubation-suffix}"/>
 
   <!-- Javadoc properties -->
   <property name="javadoc.years" value="2006 - ${year}" />
@@ -148,8 +171,8 @@
       use="true"
       encoding="utf8"
       access="${javadoc.access}"
-      windowtitle="${Name} ${version} API"
-      doctitle="${Name} ${version} API"
+      windowtitle="${Name} ${version}${incubation-suffix} API"
+      doctitle="${Name} ${version}${incubation-suffix} API (${specversion})"
       bottom="Copyright &amp;copy; ${javadoc.years} The Apache Software Foundation"
       >
         <packageset dir="${src}/java"/>
@@ -255,38 +278,44 @@
      <manifest mode="replace" file="${dest}/META-INF/MANIFEST.MF">
         <!--
         http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#JAR%20Manifest
- 
-        Manifest-Version must be "digit+{.digit+}*"
-        ...so what do we want to do instead?
-        <attribute name="Manifest-Version" value="${version}"/>
+        http://java.sun.com/j2se/1.5.0/docs/guide/versioning/spec/versioning2.html
+        http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Package.html
+        http://java.sun.com/j2se/1.5.0/docs/api/java/util/jar/package-summary.html
+        http://java.sun.com/developer/Books/javaprogramming/JAR/basics/manifest.html
         -->
-        <!-- don't included a 'Created-by' attribute, it's purpose is 
+        <!-- Don't set 'Manifest-Version' it identifies the version of the
+             manifest file format, and should allways be 1.0 (the default)
+
+             Don't set 'Created-by' attribute, it's purpose is 
              to identify the version of java used to build the jar,
-             which ant will do by default - but ant will happily
-             override with a bogus string if you tell it to
-          -->
-        <section name="org/apache/solr/">
-          <attribute name="Extension-Name" 
-                     value="org.apache.solr"/>
-          <attribute name="Specification-Title" 
-                     value="Apache Solr Search Server"/>
-          <!-- spec version can be any string -->
-          <attribute name="Specification-Version" 
-                     value="${version}"/>
-          <attribute name="Specification-Vendor" 
-                     value="The Apache Software Foundation"/>
-          <attribute name="Implementation-Title" 
-                     value="org.apache.solr"/>
-          <!-- impl version can be any string -->
-          <attribute name="Implementation-Version" 
-                     value="${version} - ${DSTAMP} ${TSTAMP}"/>
-          <attribute name="Implementation-Vendor" 
-                     value="The Apache Software Foundation"/>
-          <attribute name="X-Compile-Source-JDK" 
-                     value="${java.compat.version}"/>
-          <attribute name="X-Compile-Target-JDK" 
-                     value="${java.compat.version}"/>
-        </section>
+             which ant will do by default.
+
+             Ant will happily override these with bogus strings if you
+             tell it to, so don't.
+
+             NOTE: we don't use section info because all of our manifest data
+             applies to the entire jar/war ... no package specific info.
+        -->
+        <attribute name="Extension-Name" 
+                   value="org.apache.solr"/>
+        <attribute name="Specification-Title" 
+                   value="Apache Solr Search Server"/>
+        <!-- spec version must match "digit+{.digit+}*" -->
+        <attribute name="Specification-Version" 
+                   value="${specversion}"/>
+        <attribute name="Specification-Vendor" 
+                   value="The Apache Software Foundation"/>
+        <attribute name="Implementation-Title" 
+                   value="org.apache.solr"/>
+        <!-- impl version can be any string -->
+        <attribute name="Implementation-Version" 
+                   value="${version}${incubation-suffix} - ${user.name} - ${DSTAMP} ${TSTAMP}"/>
+        <attribute name="Implementation-Vendor" 
+                   value="The Apache Software Foundation"/>
+        <attribute name="X-Compile-Source-JDK" 
+                   value="${java.compat.version}"/>
+        <attribute name="X-Compile-Target-JDK" 
+                   value="${java.compat.version}"/>
      </manifest>
   </target>