Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
h3. Local build machine environment

...



# Check out 2.5.3 branch

...


# clean Tomcat 5.5.26

...


# empty .m2/repository/org/sakaiproject

...


# new MySQL 5.0.51 sakai db

...

 
# Confirm maven-taglib is defined in .M2/settings.xml

...



{noformat
}
<!-- Reference plugins in order to use <goalPrefix> short-hand -->
<pluginGroups>
    <pluginGroup>net.sourceforge.maven-taglib</pluginGroup>
</pluginGroups>

Tag preparation

...

{noformat}

h3. Tag preparation

h5. Create .externals_2-5-xto2-5-3 file

...


Do this for people interested in what 2-5-x project revisions were used to intitially build the 2.5.3 branch.

...

No Format
 

{noformat}
svn add .externals_2-5-xto2-5-3
svn commit -m "add .externals_2-5-xto2-5-3"

{noformat}

h5. sakai.properties

...



1. Update {{component/component-api/component/src/config/org/sakaiproject/config/sakai.properties

...

}} updating {{version.service}}, {{version.sakai}} and uncommenting {{stealthToolsstealthTools@org.sakaiproject.tool.api.ActiveToolManager}}.  Commit changes.

...



{noformat
}
version.service=RELEASE
version.sakai=2.5.3
. . .
# STEALTH TOOLS.  A stealth tool is a tool that is running in Sakai, but is not available to be added to a site in Worksite Setup.
# For Development/QA purposes stealthTools property will be commented out; release artifacts will have the property uncommented.
stealthTools@org.sakaiproject.tool.api.ActiveToolManager=blogger,sakai.messagecenter,sakai.podcasts,sakai.postem,sakai.rutgers.linktool,sakai.rutgers.testlink,sakai.search,sakai.site.roster

{noformat}

2. Update {{reference/docs/sakai.properties}} {{version.service}} and {{version.sakai}}.  Make sure stealthedTools property is commented out (i.e., enabling all provisional tools for the demo).  Commit changes.

...



{noformat
}
version.service=DEMO
version.sakai=2.5.3
favicon

...


{noformat}

h5. favicon

Replace Tomcat favicon.ico with Sakai favicon.  Add it to reference library.  Pack-demo pom.xml snippet below:

...



{noformat
}
<!-- Replace the favorite icon from tomcat -->
<copy file="${basedir}/../reference/library/src/webapp/icon/favicon.ico"
tofile="${basedir}/target/pack/webapps/ROOT/favicon.ico"
overwrite="true" />

...

{noformat}

h5. conversion scripts (runconversion.sh)

...



Check for presence of *runconversion.sh (in assignment, content (named content-runconversion.sh, db) and make sure names get trapped by artifact generation script.


h5.

...

 /master/pom.xml

...



Confirm {{<distributionManagement>}}, {{maven-taglib-plugin}}, wagon-webdav {{<build>}} extensions are in place and that the org.sakaiproject.maven.plugins <version> is set to 1.0.  Commit changes if necessary.

...



1.

...

No Format
 {{<distributionManagement>}}

{noformat}
<distributionManagement>
    <repository>
      <uniqueVersion>false</uniqueVersion>
      <id>local</id>
      <name>Local Test</name>
      <url>file:///tmp/maven2</url>
      <layout>default</layout>
    </repository>
    <site>
      <id>local</id>
      <name>Local Test</name>
      <url>file:///tmp/site</url>
    </site>
  </distributionManagement>
{noformat}

2. {{maven-taglib-plugin

...

No Format
}}
{noformat}
<plugin>
	<groupId>net.sourceforge.maven-taglib</groupId>
	<artifactId>maven-taglib-plugin</artifactId>
	<configuration>
		<goalPrefix>taglib</goalPrefix>
		<taglib.src.dir>src</taglib.src.dir>
		<!-- <taglib.src.dir>src/webapp/WEB-INF</taglib.src.dir> -->
	</configuration>
</plugin>
{noformat}

3. wagon-webdav {{<build>

...

No Format
}} extension

{noformat}
<!-- Required for Dav -->
<extensions>
    <extension>
	<groupId>org.apache.maven.wagon</groupId>
	<artifactId>wagon-webdav</artifactId>
        <version>1.0-beta-2</version>
    </extension>
</extensions>
{noformat}

4. org.sakaiproject.maven.plugins

...



Make sure sakai maven plugin <version> value does not get overwritten (e.g. "M2" gets overwritten).  It should be 1.0 or later.

...

No Format
 

{noformat}
<plugin>
<inherited>true</inherited>
<groupId>org.sakaiproject.maven.plugins</groupId>
<artifactId>sakai</artifactId>
<version>1.0</version>
. . . .
{noformat}

h5. /pack-demo/pom.xml

...



Confirm that pack-demo pom includes the binary artifact generation code.

...




h5. entitybroker/pom.xml

...



Remove <distributionManagement> directive which disrupts build process as well as other extraneous definitions.  Commit changes.


h5.

...

 Update .svnignore

...

Add

No Format


Add

{noformat}
Sakai.keystore
sakaiartifactgenerator.sh
{noformat}

Commit changes.

h5.

...

 WARNING /reference/conversion

...



Review sql conversion scripts, update and commit as necessary.

h5.

...

 base pom.xml

...



1. Confirm javadoc plugin definition.  Should be configured as follows:

...



{noformat
}
<plugin>
            <!-- javadocs -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <configuration>
               <debug>true</debug>
               <links>
                  <link>http://java.sun.com/j2se/1.5.0/docs/api/</link>
		  <link>http://java.sun.com/j2ee/1.5.0/docs/api/</link>
		  <link>http://static.springframework.org/spring/docs/2.0.8/api/</link>
		  <link>http://java.sun.com/j2ee/javaserverfaces/1.1_01/docs/api/</link>
		  <link>http://jakarta.apache.org/velocity/api/</link>
		  <link>http://www.hibernate.org/hib_docs/v3/api/</link>
		  <link>http://james.apache.org/javadocs/</link>
		  <link>http://james.apache.org/mailet/</link>
               </links>
               <breakiterator>true</breakiterator>
               <verbose>false</verbose>
               <aggregate>true</aggregate>
               <maxmemory>512m</maxmemory>
               <additionalJOption>-J-Xms168m -J-Xmx512m -J-XX:PermSize=128m -J-XX:NewSize=64m</additionalJOption>
               <version>2.3</version>
            </configuration>
         </plugin>
{noformat}

2. Confirm that taglib profile is included.

...



{noformat
}
<profile>
      	<id>taglib</id>
      	<modules>
		 <module>gradebook/app/ui</module>
		 <module>help/help-tool</module>
		 <module>jsf/widgets</module>
		 <module>mailtool/mailtool</module>
		 <module>metaobj/metaobj-util/tool-lib</module>
		 <module>msgcntr/messageforums-app</module>
		 <module>osp/common/tool-lib</module>
		 <module>osp/glossary/tool-lib</module>
		 <module>osp/jsf/widgets</module>
		 <module>osp/presentation/tool-lib</module>
		 <module>podcasts/podcasts-app</module>
		 <module>postem/postem-app</module>
		 <module>profile/profile-app</module>
		 <module>roster/roster-app</module>
		 <module>rwiki/rwiki-tool/tool</module>
		 <module>sam/samigo-app</module>
		 <module>sections/sections-app</module>
		 <module>sections/sections-app-util</module>
		 <module>syllabus/syllabus-app</module>
      	</modules>
<profile>

Update .externals

...


{noformat}

h3.  Update .externals

Check out 2.5.3 branch .externals to local tag prep folder and update revision numbers to last tag prep commit.  This ensures that the next checkout will include all tag prep commits.

...



WARNING: event-shared-deploy pom failed to build. Incorrectly referencing db-base as parent.  This was fixed 2-5-x r50241 but missed when 2-5-3 was built (event r48404). No other event fixes were missed.  Fixed in branch and note for 2.5.4.

...



Two project commits:

...



{noformat
}
Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=52299 

Author: arwhyte@umich.edu 
Date: 2008-09-16 17:24:12 -0400 (Tue, 16 Sep 2008) 
New Revision: 52299 

Modified: 
component/branches/sakai_2-5-3/component-api/component/src/config/org/sakaiproject/config/sakai.properties 
Log: 
Stealth prov. tools for release.

Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=52303 

Author: arwhyte@umich.edu 
Date: 2008-09-16 18:47:19 -0400 (Tue, 16 Sep 2008) 
New Revision: 52303 

Modified: 
event/branches/sakai_2-5-3/event-shared-deploy/pom.xml 
Log: 
Pom fix missed when 2-5-3 branch was created (event -r48404). No other event fixes missed.  
{noformat}

{noformat
}
cd /Users/arwhyte/Development/svn/sakai_tag_prep
svn co -N https://source.sakaiproject.org/svn/sakai/branches/sakai_2-5-3 sakai_2-5-3_branch

Update manually component project only in .externals. Do not run sed and overwrite other projects.

svn propset -F .externals svn:externals .
svn propget svn:externals
svn commit -m "tag prep for next release"
{noformat}

Check out 2.5.3 branch again and confirm checkout includes all tag prep commits as well as updated .externals

...

Generate Release artifacts

...

.

h5.  Generate Release artifacts

1.  Mount Sakai Maven2 Repo using DAV (https:/source.sakaiproject.org/maven2 -> /Volumes/maven2).  WARNING: create backup folder of maven2 so that only one copy operation is required in event of a generation failure.

...

  
2.  Copy sakaiartifactgenerator.sh to local 2.5.3 branch checkout folder and run

...

No Format
 

{noformat}
sh sakaiartifactgenerator.sh 2.5.3 storepass keystore
{noformat}

The artifactgenerator script performs the following steps

...

No Format


1. clean out previous builds
2. clean out target, m2-target, bin
3. clean out {{/tmp/maven2}}

4. replacingupdates the<version> (M2 version with the release version to 2.5.3) in
all {{pom.xml}}

all {{.classpath}}
all {{runconversion.sh}}, also {{content-runconversion.sh}}

The script pauses to allow the changes to be committed.  Once Committhe changescommits andare thencompleted, update the  {{.externals}} file (all projects) to r52308 in preparation for cutting the final release tag.

sed -e "s/ -r[0-9]*/ -r52308/" <.externals >.externals.tmp
cp .externals.tmp .externals
rm -f .externals.tmp

svn propset -F .externals svn:externals .
svn propget svn:externals
svn commit -m "tag prep for next release"

Resume script run.

5. tar up the source

6. perform the following sequencemvn actions:
in /master mvn install
mvn -Ppack-demo install -Dkeystore=${location}/Sakai.keystore -Dalias=sakai -Dstorepass=${KEYSTOREPASS}
mvn install source:jar source:test-jar deploy -Dkeystore=${location}/Sakai.keystore -Dalias=sakai -Dstorepass=${KEYSTOREPASS}
mvn javadoc:javadoc
mvn -Ptaglib taglib:taglibdocjar deploy

where ${KEYSTOREPASS} is the keystore password and Sakai.keystore contains the certificates.

7. then package up
the maven repo in /tmp/maven2
the javadoc
the sakai-demo and sakai-bin artifacts
the taglibsdocs


h5. Signing the Samigo audio jar.  Uncomment the maven-jar-plugin. Comment out <keystore>, <alias> and <storepass>

...

.   DO NOT COMMIT.

...



{noformat
}

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-jar-plugin</artifactId>
        <executions>
           <execution>
              <goals>
                 <goal>sign</goal>
              </goals>
           </execution>
        </executions>
        <configuration>
<!--
           <keystore>/somepath/your.keystore</keystore>
           <alias>youralias</alias>
           <storepass>yourpassword</storepass>
-->
           <verify>true</verify>
        </configuration>
      </plugin>
    </plugins>

Update Sakai Maven2 repo

...


{noformat}


h3.  Update Sakai Maven2 repo

1.  Make backup copy of current /org/sakaiproject folder where x.x.x equals the previous Sakai release number.

...


{noformat
}
sudo cp -R sakaiproject sakaiproject.x.x.x

...


{noformat}

h3.  Generate checksums (example)

...



{noformat
}
md5sum sakai-bin-2.5.3.tar.gz > sakai-bin-2.5.3_tar_gz.md5

...


{noformat}

h3. CutCut release tag from 2.5.3

...

 branch

h3.  release tag from 2.5.3

...

 branch

h3.  Build release page

Make sure that external links to Confluence release pages are updated.