sakai-2.8.1 release

2.8.1 branch prep

PROPERTIES SETTINGS (*.sakai.properties: default, demo, sample)

Version
version.service=RELEASE
version.sakai=2.8.1
version.service=DEMO
version.sakai=2.8.1
version.service=SAMPLE
version.sakai=2.8.1
Stealth settings

Stealth the following tools in both release and demo:

Release

# 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=sakai.profile

Demo

# 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.
stealthTools@org.sakaiproject.tool.api.ActiveToolManager=sakai.profile,sakai.search

(minus) Review reference/docs/sakai.properties version.service and version.sakai. These files should not have been updated by developers. Check logs for changes.

reference/docs/sakai.properties

version.service=RELEASE
version.sakai=2.8.1

POM UPDATES

Update all Sakai non-indie pom.xml <version> values to 2.8.1.
Update /master/pom.xml <sakai.version> to 2.8.1.
<sakai.version>2.8.1</sakai.version>
Ensure that /master/pom.xml includes all the correct indie version properties.
<sakai.version>2.8.1</sakai.version>
<sakai.kernel.version>1.2.6</sakai.kernel.version>
. . .
<sakai.basiclti.version>1.3.4</sakai.basiclti.version>
		<sakai.common.version>1.1.4</sakai.common.version>
		<sakai.contentreview.version>2.8.6</sakai.contentreview.version>
		<sakai.edu-services.version>1.1.3</sakai.edu-services.version>
		<sakai.ets.version>0.5.4</sakai.ets.version>
		<sakai.entitybroker.version>1.4.3</sakai.entitybroker.version>
		<sakai.hybrid.version>1.1.5</sakai.hybrid.version>
		<sakai.jsf.version>2.8.3</sakai.jsf.version>
		<sakai.msgcntr.version>2.8.2</sakai.msgcntr.version>
		<sakai.polls.version>1.4.3</sakai.polls.version>
		<sakai.profile.version>2.8.3</sakai.profile.version>
		<sakai.profile2.version>1.4.4</sakai.profile2.version>
		<sakai.resetpass.version>2.8.3</sakai.resetpass.version>
		<sakai.sakai-mock.version>2.8.3</sakai.sakai-mock.version>
		<sakai.samigo.version>2.8.3</sakai.samigo.version>
		<sakai.scheduler.version>2.8.2</sakai.scheduler.version>
		<sakai.search.version>1.3.5</sakai.search.version>
		<sakai.shortenedurl.version>1.0.3</sakai.shortenedurl.version>
		<sakai.sitestats.version>2.2.2</sakai.sitestats.version>
        <sakai.webservices.version>1.0.3</sakai.webservices.version>
        <!-- Set the source encoding to avoid maven warnings -->
Confirm /master/pom.xml Sakai Maven plugin <version> from 1.2.0

<plugin>
  <inherited>true</inherited>
  <groupId>org.sakaiproject.maven.plugins</groupId>
  <artifactId>sakai</artifactId>
    <version>1.2.0</version>
    . . . .
</plugin>
Disable snapshot repo
<repository>
   <id>sakai-maven2-snapshots</id>
   <name>Sakai Maven Repo</name>
   <layout>default</layout>
   <url>http://source.sakaiproject.org/maven2-snapshots</url>
   <snapshots>
        <enabled>false</enabled>
   </snapshots>
</repository>

GENERATE RELEASE ARTIFACTS

Get copy of Maven2 repo

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. This takes far too long to accomplish. Just tar up maven2/org/sakaiproject and sftp or scp across the network. The challenge here is that you need all the Maven metadata files locally so that they can be properly updated during the release. Start thinking about using rsync.

Local build machine environment
  1. Check out 2.8.1 branch
  2. clean Tomcat 5.5.33
  3. empty .m2/repository/org/sakaiproject
  4. new MySQL 5.1.x sakai db
  5. Confirm maven-taglib is defined in .m2/settings.xml
<!-- Reference plugins in order to use <goalPrefix> short-hand -->
<pluginGroups>
    <pluginGroup>net.sourceforge.maven-taglib</pluginGroup>
</pluginGroups>
/master/pom.xml

(minus) Confirm <distributionManagement>, maven-taglib-plugin are in place. Commit changes if necessary.

1. <distributionManagement>

<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>

2. maven-taglib-plugin

<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>
(minus) /reference/conversion

Review sql conversion scripts, update and commit as necessary.

base pom.xml

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

<plugin>
               <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.7</version>
                <configuration>
                    <debug>true</debug>
                    <links>
                        <link>http://download.oracle.com/javase/1.5.0/docs/api/</link>
                        <link>http://download.oracle.com/javase/6/docs/api/</link>
                    </links>
                    <breakiterator>true</breakiterator>
                    <verbose>false</verbose>
                    <aggregate>true</aggregate>
                    <minmemory>168m</minmemory>
                    <maxmemory>1024m</maxmemory>
                    <additionalJOption>-J-Xms168m -J-Xmx1024m -J-XX:PermSize=128m -J-XX:NewSize=64m</additionalJOption>
                </configuration>
            </plugin>

2. Confirm that taglib profile is included.


<profile>
       <id>taglib</id>
            <modules>
                <module>gradebook/app/ui</module>
                <module>help/help-tool</module>
                <!-- <module>jsf/jsf-widgets</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>
Run sakai-cle-artifactmaker.bash
bash sakai-cle-artifactmaker.bash 2.8.1 /Users/arwhyte/Development/svn/sakai/branches/2.8.1
Update Sakai Maven2 repo

1. Make backup copy of current maven2/org/sakaiproject folder where x.x.x equals the previous Sakai release number. Then untar updated files:

sudo tar -xvzf mavenrepo-2.8.1.tgz -C /var/www/html/

2. Reset permissions

sudo chown -R shared_release:release sakaiproject
Download and check samigo audio jar for signature
jarsigner -verify sakai-samigo-audio-2.8.1.jar
Check artifacts

1. Build and deploy the sakai-src archives.

cd master
mvn clean install
cd ..
mvn clean install sakai:deploy

2. Test the sakai-bin archives

Check that the ant task built the archives correctly. Fix if necessary as follows:

tar -czvf sakai-bin-2.8.1.tgz ECLv2.text common components licenses server shared webapps

3. Run the demo artifact.

Cut release tag from 2.8.1 branch

The sakaitagbuilder.bash script accepts two arguments: Sakai version and tag suffix (e.g., blank, beta01, rc01, qa01). In this case no tag suffix is required.

bash sakaitagbuilder-2.8.bash SAK-21275 sakai-2.8.1 true tags 2.8.1

After the release is generated, backup .m2/repository/org/sakaiproject, whack original (to ensure someone new can populate their repo from scratch), download the release tag and build and deploy it to a fresh Tomcat and fresh MySQL database.

Update release pages

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