Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 24 Next »

2.5.4 branch prep

Create .externals_2-5-xto2-5-4 file

Documents the 2.5.x revisions that were used to construct this branch. Create a temp folder for .externals_2-5-xto2-5-4 and then issue an svn import WITHOUT including the temp folder in the destination path and .externals_2-5-xto2-5-4 will be added.

svn import tmpexternals https://source.sakaiproject.org/svn/sakai/branches/sakai_2-5-4 -m "add .externals_2-5-xto2-5-4"
sakai.properties updates
1. Release.

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.

version.service=RELEASE
version.sakai=2.5.4
. . .
# 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

2. Demo and Sample

Update reference/docs/sakai.properties AND reference/demo/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.

reference/demo/sakai.properties

version.service=DEMO
version.sakai=2.5.4

reference/docs/sakai.properties

version.service=DEV
version.sakai=2.5.4
pom.xml updates
0. Update /master/pom.xml <sakai.version> from M2 to 2.5.4.

<sakai.version>2.5.4</sakai.version>.

1. Update /master/pom.xml Sakai Maven plugin <version> from M2 to 1.0.

Done.

<plugin>
  <inherited>true</inherited>
  <groupId>org.sakaiproject.maven.plugins</groupId>
  <artifactId>sakai</artifactId>
    <version>*1.0*</version>
    . . . .
</plugin>
2. Update all pom.xml <version> values from M2 to 2.5.4.

Done.

3. entitybroker/pom.xml

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

4. /pack-demo/pom.xml.

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

5. Update Sections-app pom.xml.

(minus) WARNING: update bad pom after 2.5.4 branch is created and before artifacts are generated. This was fixed for 2.5.x but excluded in .externals. Sections-app pom.xml <testiNcludes> element should be <testIncludes>.

http://jira.sakaiproject.org/jira/browse/SAK-13214

.svnignore

Update .svnignore and commit changes.

Add

Sakai.keystore
sakaiartifactgenerator.sh
Add SAK-14949 patch.

Done.

Update .externals

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

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

(!) When running sed watch out for mucking up the content-review project when searching on -r.

sed 's/-r [0-9]*/-r 55588/' < .externals > .externals_temp
cp .externals_temp .externals

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

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

Cut RC1 tag.
RC2 prep

Took new revisions of the following projects to Announcement, Samigo (bugs), Syllabus (dependency), reference (scripts), JSF (required dependency) and Velocity per P. Peterson.

hende157:~ arwhyte$ svn del https://source.sakaiproject.org/svn/jsf/branches/sakai_2-5-4 -m "delete branch before recreating with new 2-5-x revision"

Committed revision 55869.
hende157:~ arwhyte$ svn copy -r54464 https://source.sakaiproject.org/svn/jsf/branches/sakai_2-5-x https://source.sakaiproject.org/svn/jsf/branches/sakai_2-5-4 -m 'Build jsf sakai_2-5-4 branch'

Committed revision 55870.
hende157:~ arwhyte$ svn del https://source.sakaiproject.org/svn/reference/branches/sakai_2-5-4/ -m "delete branch before recreating with new 2-5-x revision"

Committed revision 55871.
hende157:~ arwhyte$ svn copy -r55214 https://source.sakaiproject.org/svn/reference/branches/sakai_2-5-x https://source.sakaiproject.org/svn/reference/branches/sakai_2-5-4 -m 'Build reference sakai_2-5-4 branch'

Committed revision 55872.
hende157:~ arwhyte$ svn del https://source.sakaiproject.org/svn/sam/branches/sakai_2-5-4/ -m "delete branch before recreating with new 2-5-x revision"

Committed revision 55873.
hende157:~ arwhyte$ svn copy -r55819 https://source.sakaiproject.org/svn/sam/branches/sakai_2-5-x https://source.sakaiproject.org/svn/sam/branches/sakai_2-5-4 -m 'Build sam sakai_2-5-4 branch'

Committed revision 55874.
hende157:~ arwhyte$ svn del https://source.sakaiproject.org/svn/syllabus/branches/sakai_2-5-4/ -m "delete branch before recreating with new 2-5-x revision"

Committed revision 55875.
hende157:~ arwhyte$ svn copy -r54855 https://source.sakaiproject.org/svn/syllabus/branches/sakai_2-5-x https://source.sakaiproject.org/svn/syllabus/branches/sakai_2-5-4 -m 'Build syllabus sakai_2-5-4 branch'

Committed revision 55876.
hende157:~ arwhyte$ svn del https://source.sakaiproject.org/svn/velocity/branches/sakai_2-5-4/ -m "delete branch before recreating with new 2-5-x revision"

Committed revision 55877.
hende157:~ arwhyte$ svn copy -r55824 https://source.sakaiproject.org/svn/velocity/branches/sakai_2-5-x https://source.sakaiproject.org/svn/velocity/branches/sakai_2-5-4 -m 'Build velocity sakai_2-5-4 branch'

Committed revision 55878.
hende157:~ arwhyte$ svn del https://source.sakaiproject.org/svn/osp/branches/sakai_2-5-4/ -m "delete branch before recreating with new 2-5-x revision"

Committed revision 55879.
hende157:~ arwhyte$ svn copy -r49423 https://source.sakaiproject.org/svn/osp/branches/sakai_2-5-x https://source.sakaiproject.org/svn/osp/branches/sakai_2-5-4 -m 'Build osp sakai_2-5-4 branch'

hende157:~ arwhyte$ svn del https://source.sakaiproject.org/svn/announcement/branches/sakai_2-5-4/ -m "delete then recreate branch"

Committed revision 55881.
hende157:~ arwhyte$ svn copy -r55225 https://source.sakaiproject.org/svn/announcement/branches/sakai_2-5-x https://source.sakaiproject.org/svn/announcement/branches/sakai_2-5-4 -m 'Build announcement sakai_2-5-4 branch'

Committed revision 55882.

Check out 2.5.4 branch .externals and update revision to r 55882 to grab head of the branch.

Release Prep

Local build machine environment
  1. Check out 2.5.4 branch
  2. clean Tomcat 5.5.26
  3. empty .m2/repository/org/sakaiproject
  4. new MySQL 5.0.51 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>
favicon

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

<!-- 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" />
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.

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

3. wagon-webdav <build> extension

<!-- Required for Dav -->
<extensions>
    <extension>
	<groupId>org.apache.maven.wagon</groupId>
	<artifactId>wagon-webdav</artifactId>
        <version>1.0-beta-2</version>
    </extension>
</extensions>
(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>
            <!-- 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>

2. Confirm that taglib profile is included.

<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

Check out 2.5.4 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.

cd /Users/arwhyte/Development/svn/sakai_tag_prep
svn co -N https://source.sakaiproject.org/svn/sakai/branches/sakai_2-5-4 sakai_2-5-4_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"

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

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.4 branch checkout folder and run

sh sakaiartifactgenerator.sh 2.5.4 storepass keystore

The artifactgenerator script performs the following steps

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

4. updates <version> (M2 to 2.5.4) in
all pom.xml
all .classpath
all runconversion.sh, also content-runconversion.sh

The script pauses to allow the changes to be committed. Once the commits are completed, update the .externals file (all projects) to r52308 in preparation for cutting the final release tag.

sed -e "s/ -r 0-9*/ -r 52308/" <.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 code (samigo-audio jar is not signed)

The script then pauses to allow a manual modification of samigo-audio pom.xml to uncomment the jar sign execution goal. Uncomment the maven-jar-plugin. Comment out <keystore>, <alias> and <storepass>.

WARNING DO NOT COMMIT this change to the samigo-audio pom.xml file.

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

6. perform the following mvn actions:

mvn install (in /master)
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

Check samigo audio jar for signature

jarsigner -verify sakai-samigo-audio-2.5.4.jar

Check artifacts

1. Build and deploy the sakai-src artifact.

WARNING do not issue clean and install goals or local repo will get wiped prematurely (Sakai maven2 repo has yet to be updated).

cd master
mvn install
cd ..
mvn -o -Dmaven.test.skip=true sakai:deploy

2. Run the demo artifact.
3. Checkout 2.5.4 branch and import into Eclipse. Check pom.xml files for correct revision.

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.5.4.tgz -C /var/www/html/

Generate checksums (example)

md5sum sakai-bin-2.5.4.tar.gz > sakai-bin-2.5.4_tar_gz.md5

Cut release tag from 2.5.4 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.bash 2-5-4

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.

Build release page

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

  • No labels