Antoine Levy-Lambert wrote:
Hi,

Steve had already sent an email to repository at apache dot org.

http://mail-archives.apache.org/mod_mbox/www-repository/200606.mbox/browser

Also,  Carlos Sanchez answered my JIRA issue, giving a pointer to :

http://www.apache.org/dev/release-publishing.html


see this too
http://jakarta.apache.org/commons/releases/index.html


http://www.apache.org/dist/java-repository/ant/jars is the source of
ibiblio.org regarding everything that comes from apache, so we do not
have to add uploads to other sites to ReleaseInstructions.

What we should do is  figure out how we are going to generate and upload
POM files (Maven project descriptors) to
http://www.apache.org/dist/java-repository/ant/jars. This possibly even
in 2 flavors for Maven 1 and Maven 2 ???


Pom2 files. they can downconvert.

This is roughly how we do it on smartfrog. If a project has a .pom file it gets copied with property expansion. Otherwise we <echo> out a pom (this is ant1.6.5 compatible)


  <!-- ========================================================== -->
  <!-- init all the maven2 support   -->
  <!-- ========================================================== -->
<target name="m2-init" depends="init,init-proxy,declare-extended-smartfrog-tasks">
   <!-- per project, CVS managed override -->
    <property file="libraries.properties" />
    <!-- central CVS managed libraries list -->
    <property file="${smartfrog.components.dir}/libraries.properties" />

    <!-- Maven2 stuff
All components build into the org.smartfrog group, unless otherwise stated, but
      are their own artifacts.
      -->
<property name="m2.repository" location="${user.home}/.m2/repository" />


    <!-- make the root path of an artifact -->
    <macrodef name="m2-makepath">
      <attribute name="property"/>
      <attribute name="groupIDpath"/>
      <attribute name="artifactID" default="@{groupIDpath}"/>
      <attribute name="version"/>
      <sequential>
        <property name="@{property}"

location="${m2.repository}/@{groupIDpath}/@{artifactID}/@{version}" />
      </sequential>
    </macrodef>

    <property name="m2.groupID" value="org.smartfrog" />
    <property name="m2.groupID.path" value="org/smartfrog" />
    <m2-makepath property="m2.subdir"
      groupIDpath="${m2.groupID.path}"
      artifactID="${artifact.name}"
      version="${Version}" />
    <!-- pom setup -->
     <property name="target.pom"
         location="${dist.lib.dir}/${jarfile.stub}.pom"/>
     <property name="project.pom" location="project-template.pom"/>
     <available property="project.haspom" file="${project.pom}"/>
   </target>



  <!-- ========================================================== -->
  <!-- POM creation/copy, depending on whether it exists or not   -->
  <!-- ========================================================== -->

   <target name="m2-copy-pom" depends="m2-init" if="project.haspom">
     <copy file="${project.pom}" tofile="${target.pom}" >
      <!-- we expand ant properties here.  -->
       <filterchain>
        <expandproperties/>
       </filterchain>
     </copy>
   </target>

   <!-- inline creation of a very minimal (zero dependency) pom -->
   <target name="m2-make-pom" depends="m2-init" unless="project.haspom">
   <echo message="Creating Pom ${target.pom}" level="verbose"/>
   <echo file="${target.pom}"><![CDATA[<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>${m2.groupID}</groupId>
  <artifactId>${artifact.name}</artifactId>
  <packaging>jar</packaging>
  <version>${Version}</version>
</project>
]]></echo>

   </target>

   <target name="m2-pom" depends="m2-copy-pom,m2-make-pom" />

  <!-- ========================================================== -->
  <!-- this is not  normally for overriding -->
  <!-- install the jar, to the local maven2 repository -->
  <!-- ========================================================== -->
  <target name="m2-install" depends="checksum-target-jar,m2-pom"
      description="copy the JAR file local maven repository">

    <mkdir dir="${m2.subdir}"/>
    <copy file="${target.jar}" todir="${m2.subdir}"/>
    <!-- copy a pom -->
    <copy file="${target.pom}" todir="${m2.subdir}" failonerror="false"/>
<copy file="${target.jar}.md5" todir="${m2.subdir}" failonerror="false"/>

  </target>


by default, stub poms declare no dependencies  *at all*.

for ant we could have a dir src/etc/pom into which the different pom templates for each component goes e.g ant-junit.pom has a dependency on junit of ${junit.version}, and on ant-${ant.version}

the build

1. copies the templates with property expansion enabled (like "m2-copy-pom" above)
2. creates .md5 checksums of the poms and their artifacts
3. signs this stuff by <exec gpg>
4. scps the files and signatures to a location, the default being the apache repository, but with any other location supported. 5. could also have a stub announcement email in the same dir, do the same property-expanding-copy and GPG sign trick to produce authenticated email for the announcement

-steve



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to